Middleware: Client-Server Computing: Wireless and Mobile Systems Design
Middleware: Client-Server Computing: 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
● 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
Resources
● 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/
Application Programs
API
Middleware
Operating System
and Networking Services
Server
encoded
Client Gateway Server
request request
Web Encoders HTTP
Browser wireless Decoders Server
Protocol CGI,
encoded
Gateways response etc.
response
Middleware: Client-Server Computing
12
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
Client Application
Agent
Client Side Server
Agent
Service
Broker
inquire publish
Service Service
Requester bind Provider
UDDI
WDSL
SOAP
XML
UDDI
WDSL
SOAP
XML
From http://www.learnxmlws.com/tutors/wsdl/wsdl.aspx
UDDI
WDSL
SOAP
XML
<message name='Weather.GetTemperatureResponse'>
<part name='Result' type='xsd:float'/>
</message>
<portType name='WeatherSoapPort'>
<operation name='GetTemperature'
parameterOrder='zipcode celsius'>
<input message='wsdlns:Weather.GetTemperature' />
<output message='wsdlns:Weather.GetTemperatureResponse' />
</operation>
</portType>
<binding name='WeatherSoapBinding'
type='wsdlns:WeatherSoapPort' >
…
</binding>
● 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' >
<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>
UDDI
WSDL
SOAP
XML
HTTP FTP SMTP
Middleware: Client-Server Computing
44