














Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Lecture objectives and detailed information about client-server computing, middleware, web services, soap, wsdl, and xml. It covers topics such as client-server models, client-agent-server models, web services architecture, and xml transformation. Students will learn about the role of middleware, the differences between client-server and peer-to-peer computing, and the importance of xml in web services.
Typology: Study notes
1 / 22
This page cannot be seen from the preview
Don't miss anything!















Wireless and Mobile Systems Design Spring 2004
Scott F. Midkiff (based on a lecture developed by Ing-Ray Chen)
Copyright Reserved, I-.R. Chen and S. F. Midkiff
ECE/CS 4984, Spring 2004 2 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 3 Middleware: Client-Server Computing
! 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/
ECE/CS 4984, Spring 2004 4 Middleware: Client-Server Computing
! 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)
ECE/CS 4984, Spring 2004 7 Middleware: Client-Server Computing
! Client-server ! Client-agent-server ! Client-intercept-server models
ECE/CS 4984, Spring 2004 8 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 9 Middleware: Client-Server Computing
Mobile Host
! 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
Application Client
Application Server
Fixed Network
Wireless Network
ECE/CS 4984, Spring 2004 10 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 13 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 14 Middleware: Client-Server Computing
! Example ñ IBM Web Express " Web Browser (client) ↔ HTTP ↔ Client-side agent ↔ TCP/IP connection ↔ Server side agent ↔ HTTP ↔ Web server
Mobile Host
Application Server
Fixed Network
Wireless Network
Agent Client
Client Side Agent
ECE/CS 4984, Spring 2004 15 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 16 Middleware: Client-Server Computing
Service Broker
Service Broker
Service Broker
inquire publish
bind
ECE/CS 4984, Spring 2004 19 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 20 Middleware: Client-Server Computing
! .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
ECE/CS 4984, Spring 2004 21 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 22 Middleware: Client-Server Computing
! XML as a meta-language " Key to the success of XML-based wireless web access initiatives " WML ñ XML-compliant language used by WAP 1. " 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
ECE/CS 4984, Spring 2004 25 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 26 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 27 Middleware: Client-Server Computing
! 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
ECE/CS 4984, Spring 2004 28 Middleware: Client-Server Computing
From http://www.learnxmlws.com/tutors/wsdl/wsdl.aspx
ECE/CS 4984, Spring 2004 31 Middleware: Client-Server Computing
! 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 element with the service address URL
ECE/CS 4984, Spring 2004 32 Middleware: Client-Server Computing
! If the URL is http://www.ws/demos/wsdl/devxpert/ weatherservice.asp, the port definition would look like Ö
ECE/CS 4984, Spring 2004 33 Middleware: Client-Server Computing
! To use web services in an RPC model, WSDL describes the message structures by using the element " Each contains zero or more elements. " A corresponds to a parameter or a return value in the RPC call
ECE/CS 4984, Spring 2004 34 Middleware: Client-Server Computing
! The GetTemperature method would include one input message and one output message
xsd: float is predefined in http://www.w3.org/2001/XMLSchema
ECE/CS 4984, Spring 2004 37 Middleware: Client-Server Computing
! The WSDL element is used to bind a
! Inside the , element the 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
Ö
ECE/CS 4984, Spring 2004 38 Middleware: Client-Server Computing
! For each operation that this service exposes, a value of the SOAP Action is specified in the element " The client must put the SOAP Action value in the HTTP header when it invokes the service
ECE/CS 4984, Spring 2004 39 Middleware: Client-Server Computing
Ö
ECE/CS 4984, Spring 2004 40 Middleware: Client-Server Computing