wireless and mobile systems design l.
Skip this Video
Loading SlideShow in 5 Seconds..
Lecture 4 Middleware: Client-Server Computing PowerPoint Presentation
Download Presentation
Lecture 4 Middleware: Client-Server Computing

Loading in 2 Seconds...

play fullscreen
1 / 44

Lecture 4 Middleware: Client-Server Computing - PowerPoint PPT Presentation

  • Uploaded on

Wireless and Mobile Systems Design Lecture 4 Middleware: Client-Server Computing Lecture Objectives Differentiate and exemplify client-server, client-agent-server, and client-intercept-server models of middleware

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Lecture 4 Middleware: Client-Server Computing' - Mia_John

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
lecture objectives
Lecture Objectives
  • Differentiate and exemplify client-server,client-agent-server, and client-intercept-server models of middleware
  • Understand functionality provided by middleware for client, agent, and server software development
  • Understand how the client-server computational model middleware is able to deal with heterogeneous wireless devices and scalability
  • Characterize the design requirements of example client-server applications and rationalize the choice of middleware and design for application development

Middleware: Client-Server Computing 2

  • H. Gunzer, “Introduction to Web Services,” March 2002, http://bdn.borland.com/article/images/28818/webservices.pdf
  • Microsoft Developer Network, “Web Services Basics,” http://msdn.microsoft.com/webservices/understanding/webservicebasics/

Middleware: Client-Server Computing 3

  • Client-server and middleware overview
  • Client-server computational models
    • Client-server
    • Client-agent-server
    • Client-intercept-server
  • Web services overview
  • Web services based on Extensible Markup Language (XML) for mobile devices
    • Small Object Access Protocol (SOAP)
    • Web Service Description Language (WSDL)

Middleware: Client-Server Computing 4

middleware review
Middleware (Review)
  • Middleware is a layer between the operating system and applications that provides a set of services
    • Abstract interface to the application
    • Uniform view of operating systems, networks, and hardware platforms

Application Programs



Operating Systemand Networking Services

Middleware: Client-Server Computing 5

client server vs peer to peer
Client-Server vs. Peer-to-Peer

Client-Server Computing

Peer-to-Peer Computing


  • Client initiates communications
  • Client issues request to a server
  • Server replies or performs some service
  • Any participant can initiate communication
  • Any device can generate a request
  • Any device may provide a response

Middleware: Client-Server Computing 6

client server models for middleware
Client-Server Models for Middleware
  • Client-server
  • Client-agent-server
  • Client-intercept-server models

Middleware: Client-Server Computing 7

client server model 1
Client-Server Model (1)
  • Communication models
    • Message passing with queuing
    • Remote procedure call (RPC)
  • Client-server synchronization
    • Synchronous
      • Inadequate – Client is blocked if disconnected
    • Asynchronous
      • Client requests are queued locally and control is returned immediately to the client
      • When the mobile is connected, the queue is drained in the background and any queued messages or calls are forwarded to the server

Middleware: Client-Server Computing 8

client server model 2
Client-Server Model (2)



  • Optimization for mobile/wireless involves changes at both the client and server
  • Example (worst-case)
    • Standard web browser accessing an HTTP server over a wireless link

Mobile Host



Middleware: Client-Server Computing 9

client agent server model 1
Client-Agent-Server Model (1)
  • Computation is split into two units
    • Client-agent – optimized for mobile environment
    • Agent-server –traditional (non-mobile) design
  • Dealing with disconnection
    • Clients submit requests to the agent and retrieve responses from the agent upon reconnection
    • The agent can employ optimization and transformation techniques to the data to be transmitted depending, based on
      • Type of data
      • Type of devices
      • Application-specific requirements

Middleware: Client-Server Computing 10

client agent server model 2
Client-Agent-Server Model (2)



  • Optimization for mobile/wireless involves client and agent
  • Single application server to support both fixed network clients and mobile clients

Mobile Host




Middleware: Client-Server Computing 11

client agent server example
Client-Agent-Server Example
  • Wireless Application Protocol (WAP)
    • Mobile device runs the client
    • The gateway acts as the agent
    • Standard HTTP server can be used















Middleware: Client-Server Computing 12

client intercept server model 1
Client-Intercept-Server Model (1)
  • Inter-agent optimization protocols can be used between the client-side agent and the server-side agent
    • Minimize communication cost via…
      • Caching
      • Differencing
      • Header reduction
      • One-HTTP connection per session
  • Caching/prefetching at the client agent to allow disconnected operations
    • For example, ADO .NET/SQL server CE

Middleware: Client-Server Computing 13

client intercept server model 2
Client-Intercept-Server Model (2)



  • Example – IBM Web Express
    • Web Browser (client)  HTTP Client-side agent  TCP/IP connection  Server side agent  HTTP  Web server

Mobile Host







Middleware: Client-Server Computing 14

web services
Web Services
  • Web Services are encapsulated, loosely coupled contracted functions offered via standard protocols where:
    • Encapsulated – implementation of the function is never seen from the outside
    • Loosely coupled – changing the implementation of one function does not require change of the invoking function
    • Contracted – there are publicly available descriptions of the function’s behavior, how to bind to the function, and its input and output parameters

From webservices.org, quoted in H. Gunzer, “Introduction to Web Services

Middleware: Client-Server Computing 15

web services architecture 1
Web Services Architecture (1)








Middleware: Client-Server Computing 16

web services architecture 2
Web Services Architecture (2)
  • Service broker
    • Look up service between a service provider and a service requestor
  • Service provider
    • Publishes its services to the service broker
  • Service requester
    • Asks the service broker where to find a suitable service provider and then binds itself to the provider

Middleware: Client-Server Computing 17

web services components
Web Services Components

UDDI is the “yellow pages” of web services

  • XML – Extensible Markup Language
  • SOAP – Simple Object Access Protocol
  • WSDL – Web Services Definition Language
  • UDDI – Universal Discovery Description Integration



Web Services






XML normally carried using HTTP

Middleware: Client-Server Computing 18

extensible markup language xml
Extensible Markup Language (XML)
  • XML is a platform-neural data standard for describing, storing and transporting data across the web
  • XML is a core technology for web services
    • XML is the basis for separately developed web services to interact with each other
    • XML facilitates component development
      • Package application functionality as small, easily connected web services
      • Compose an application using “web services” components

Middleware: Client-Server Computing 19

xml and microsoft s net
XML and Microsoft’s .NET
  • .NET is a Microsoft technology to develop XML web services on many platforms
    • .NET Active Server Page (ASP) – used to develop web services
    • .NET Compact Framework (CF) – used to develop web services on small devices
    • Microsoft Internet Toolkit (MIT) – used to develop server-side proxies to deal with heterogeneous mobile devices

Middleware: Client-Server Computing 20

xml and wireless web access 1
XML and Wireless Web Access (1)
  • The synergy between XML and wireless can be considered from two perspectives:
    • XML as a data representation technology
    • XML as a meta-language (a set of rules to define domain-specific data definition languages)
  • XML as a data representation technology
    • Facilitates content delivery (via XML transformation) to a wide variety of mobile devices and platforms

Middleware: Client-Server Computing 21

xml and wireless web access 2
XML and Wireless Web Access (2)
  • XML as a meta-language
    • Key to the success of XML-based wireless web access initiatives
    • WML – XML-compliant language used by WAP 1.0
    • XHTML – XML-compliant language adopted by WAP 1.2 and future i-mode
    • Web Service Description Language (WSDL) – XML-compliant language normally used in a WSDL document to describe a web service’s interface
      • Provides clients with information on how to invoke a web service

Middleware: Client-Server Computing 22

xml transformation
XML Transformation
  • XML separates the data from a fixed description of how the data should be displayed
  • Extensible Style-Sheet Language (XLS) describes how to display content
  • XSLT is a scheme to transform XML data into device-specific formats






Middleware: Client-Server Computing 23

xslt to target xml to different devices
XSLT to Target XML to Different Devices


<?xml version=‘1.0’?>

<response id=“Result”>


ECE/CS 4984










XSLTfor i-mode



Middleware: Client-Server Computing 24

soap for invoking web services 1
SOAP for Invoking Web Services (1)
  • Small Object Access Protocol (SOAP) is a standard for invoking XML web services through remote procedure calls over HTTP
  • Used by Microsoft’s .NET
    • .NET Compact Frame implements SOAP 1.1 to allow smart devices to establish connections and move data to other devices





Middleware: Client-Server Computing 25

soap for invoking web services 2
SOAP for Invoking Web Services (2)
  • To make a method call to a web service…
    • Client first learns the service interface via the server’s Web Services Description Language (WSDL) document
    • Client then sends a request to the URL where the service is running in a SOAP message in XML format for the RPC





Middleware: Client-Server Computing 26

soap and wsdl
  • WSDL document specifies
    • The name of the method to be invoked
    • The namespace Universal Resource Identifier (URI) for the method name
      • A namespace is a unique string to fully qualify XML element and attribute names
    • The parameter names and their data types
    • The SOAPAction
      • Placed in the HTTP header that the client sends when it invokes the service
    • The URL at which the service is running

Middleware: Client-Server Computing 27

accessing web services
Accessing Web Services

From http://www.learnxmlws.com/tutors/wsdl/wsdl.aspx

Middleware: Client-Server Computing 28

Middleware: Client-Server Computing

wsdl for defining web services
WSDL for Defining Web Services
  • WSDL is an XML-based language used to…
    • Define a web service
    • Describe how to access methods provided by the service





Middleware: Client-Server Computing 29

example wsdl of a weather service
Example: WSDL of a Weather Service
  • <definitions> element is the root element of the WSDL document
  • Declare the WSDL name space as the default name space for the document
    • All elements and attributes belong to this name space unless they have another name space prefix
  • Each service is defined using a service element
  • <definitions name ='weatherservice'
  • xmlns='http://schemas.xmlsoap.org/wsdl/'>
  • <service name='WeatherService' >
  • </service>
  • </definitions>

Middleware: Client-Server Computing 30

port definitions in wsdl
Port Definitions in WSDL
  • Within a service element, you specify the different “ports” on which this service is accessible
  • A port specifies the service URL
  • Each port has a unique name and a binding attribute
  • When using SOAP, the port element contains a <soap:address/> element with the service address URL

Middleware: Client-Server Computing 31

example wsdl port definitions
Example: WSDL Port Definitions
  • If the URL is http://www.ws/demos/wsdl/devxpert/weatherservice.asp, the port definition would look like …

<port name=‘WeatherSoapPort’


<soap:address location=

‘http://www.ws/demos/wsdl/devxpert/weatherservice.asp’ />


Middleware: Client-Server Computing 32

wsdl message element
WSDL Message Element
  • To use web services in an RPC model, WSDL describes the message structures by using the <message> element
    • Each <message> contains zero or more <part> elements.
    • A <part> corresponds to a parameter or a return value in the RPC call

Middleware: Client-Server Computing 33

example messages elements
Example: Messages Elements
  • The GetTemperature method would include one input message and one output message
  • <message name='Weather.GetTemperature'>
  • <part name='zipcode' type='xsd:string'/>
  • <part name='celsius' type='xsd:boolean'/>
  • </message>
  • <message name='Weather.GetTemperatureResponse'>
  • <part name='Result' type='xsd:float'/>
  • </message>

xsd: float is predefined in http://www.w3.org/2001/XMLSchema

Middleware: Client-Server Computing 34

wsdl operation element
WSDL Operation Element
  • The WSDL <operation> element is used to specify which message is the input and which message is the output 
  • The parameterOrder attribute is optional and may be used to specify a space-delimited list of part names to indicate the order of parameters when making the RPC call
  • <input> and <output> elements are specified within an <operation> element
    • Each refers to the corresponding message by its fully qualified name

Middleware: Client-Server Computing 35

example operation element
Example: Operation Element
  • Example: wsdlns:Weather.GetTemperature
  • <portType name='WeatherSoapPort'>
  • <operation name='GetTemperature'
  • parameterOrder='zipcode celsius'>
  • <input message='wsdlns:Weather.GetTemperature' />
  • <output message='wsdlns:Weather.GetTemperatureResponse' />
  • </operation>
  • <!-- other operations would go here -->
  • </portType>

Middleware: Client-Server Computing 36

wsdl binding element 1
WSDL Binding Element (1)
  • The WSDL <binding> element is used to bind a <port>
  • Inside the <binding>, element the <soap:binding> extension element can specify the transport protocol and style of the request
    • SOAP can be used over HTTP, SMTP, or, possibly, any other transport
    • RPC and document are the two styles
  • <binding name='WeatherSoapBinding' type='wsdlns:WeatherSoapPort' >
  • </binding> 

Middleware: Client-Server Computing 37

wsdl binding element 2
WSDL Binding Element (2)
  • For each operation that this service exposes, a value of the SOAP Action is specified in the <soap:operation> element
    • The client must put the SOAP Action value in the HTTP header when it invokes the service

Middleware: Client-Server Computing 38

example binding element
Example: Binding Element
  • <binding name='WeatherSoapBinding' type='wsdlns:WeatherSoapPort' >
  • <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http' />
  • <operation name='GetTemperature' >
  • <soap:operation soapAction='http://tempuri.org/action/ Weather.GetTemperature' />
  • </operation>
  • </binding>

Middleware: Client-Server Computing 39

wsdl example i 1
WSDL Example I (1)

<binding name='WeatherSoapBinding' type='wsdlns:WeatherSoapPort' >

<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http' />

<operation name='GetTemperature' >


soapAction='http://tempuri.org/action/Weather.GetTemperature' />


<soap:body use='encoded' namespace='http://tempuri.org/message/'

encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' />



<soap:body use='encoded' namespace='http://tempuri.org/message/'

encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' />




Middleware: Client-Server Computing 40

wsdl example i 2
WSDL Example I (2)
  • The <operation> element can…
    • Include <input> and an <output> element
    • Use a <soap:body> element within each to specify how the data is encoded
  • The URI http://schemas.xmlsoap.org/soap/encoding/ indicates the SOAP encoding style as described in the SOAP 1.1 specification

Middleware: Client-Server Computing 41

wsdl example ii 1
WSDL Example II (1)
  • WSDL of XMethods, a delayed stock quote XML web service

Middleware: Client-Server Computing 42

wsdl example ii 2
WSDL Example II (2)

<service name="net.xmethods.services.stockquote.StockQuoteService">

  <documentation>net.xmethods.services.stockquote.StockQuote web service</documentation>

<port name="net.xmethods.services.stockquote.StockQuotePort" binding="tns:net.xmethods.services.stockquote.StockQuoteBinding">

  <soap:address location="" />



  <message name="getQuoteResponse1">

  <part name="Result" type="xsd:float" />


<message name="getQuoteRequest1">

  <part name="symbol" type="xsd:string" />


<portType name="net.xmethods.services.stockquote.StockQuotePortType">

<operation name="getQuote" parameterOrder="symbol">

  <input message="tns:getQuoteRequest1" />

  <output message="tns:getQuoteResponse1" />



Middleware: Client-Server Computing 43









  • Examined client-server computational model, including models for client-server middleware
    • Client-server
    • Client-agent-server
    • Client-intercept-server
  • Discussed web services
  • Examined web services based on XML

Middleware: Client-Server Computing 44