Client-Server Computing with Middleware: Understanding Web Services, SOAP, WSDL, and XML -, Study notes of Computer Science

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

Pre 2010

Uploaded on 02/13/2009

koofers-user-b6c
koofers-user-b6c 🇺🇸

10 documents

1 / 22

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
ECE/CS 4984
Wireless and Mobile Systems Design
Spring 2004
Lecture 4
Middleware: Client-Server Computing
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
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Partial preview of the text

Download Client-Server Computing with Middleware: Understanding Web Services, SOAP, WSDL, and XML - and more Study notes Computer Science in PDF only on Docsity!

ECE/CS 4984

Wireless and Mobile Systems Design Spring 2004

Lecture 4

Middleware: Client-Server Computing

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

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

ECE/CS 4984, Spring 2004 3 Middleware: Client-Server Computing

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/

ECE/CS 4984, Spring 2004 4 Middleware: Client-Server Computing

Agenda

! 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 Models for Middleware

! Client-server ! Client-agent-server ! Client-intercept-server models

ECE/CS 4984, Spring 2004 8 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 9 Middleware: Client-Server Computing

Mobile Host

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

Application Client

Application Server

Fixed Network

Wireless Network

ECE/CS 4984, Spring 2004 10 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 13 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 14 Middleware: Client-Server Computing

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

Application Server

Fixed Network

Wireless Network

Agent Client

Client Side Agent

ECE/CS 4984, Spring 2004 15 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 16 Middleware: Client-Server Computing

Web Services Architecture (1)

Service Broker

Service Broker

Service Broker

inquire publish

bind

ECE/CS 4984, Spring 2004 19 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 20 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 21 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 22 Middleware: Client-Server Computing

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. " 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

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

UDDI

WDSL

SOAP

XML

ECE/CS 4984, Spring 2004 26 Middleware: Client-Server Computing

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

UDDI

WDSL

SOAP

XML

ECE/CS 4984, Spring 2004 27 Middleware: Client-Server Computing

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

ECE/CS 4984, Spring 2004 28 Middleware: Client-Server Computing

Accessing Web Services

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

ECE/CS 4984, Spring 2004 31 Middleware: Client-Server Computing

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 element with the service address URL

ECE/CS 4984, Spring 2004 32 Middleware: Client-Server Computing

Example: WSDL Port Definitions

! 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

WSDL Message Element

! 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

Example: Messages Elements

! 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

WSDL Binding Element (1)

! 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

WSDL Binding Element (2)

! 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

Example: Binding Element

Ö

ECE/CS 4984, Spring 2004 40 Middleware: Client-Server Computing

WSDL Example I (1)