Lecture 4 Middleware: Client-Server Computing Wireless and Mobile Systems Design.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
Overview Environment for Internet database connectivity
Overview of Web Services
Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Intesar G Ali IT DepartmentPalestinian Land Authority Web services Prepared by: Intesar Ali IT Department PLA August 2010.
31242/32549 Advanced Internet Programming Advanced Java Programming
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
SOAP.
1 Understanding Web Services Presented By: Woodas Lai.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
WEB SERVICES DAVIDE ZERBINO.
SOAP Quang Vinh Pham Simon De Baets Université Libre de Bruxelles1.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
Grid Computing, B. Wilkinson, 20043a.1 WEB SERVICES Introduction.
2006 IEEE International Conference on Web Services ICWS 2006 Overview.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Web Services Overview Mary Grammatikou 9/06/2009.
Chapter 12 Extending Web Applications. ASP.NET 2.0, Third Edition2.
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
Service-Oriented Programming
INTRODUCTION TO WEB DATABASE PROGRAMMING
1 Web Services Distributed Systems. 2 Service Oriented Architecture Service-Oriented Architecture (SOA) expresses a software architectural concept that.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
Web Services & WCF ~ Ankit. Web services A web service is a collection of protocols and standards used for exchanging data between applications or systems.
Web Services (SOAP, WSDL, and UDDI)
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
WEB SERVICE DESCRIPTION LANGUAGE ( WSDL) -SIVA SAGAR TELLA.
Lecture 15 Introduction to Web Services Web Service Applications.
Dodick Zulaimi Sudirman Lecture 14 Introduction to Web Service Pengantar Teknologi Internet Introduction to Internet Technology.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
1 WSDL Tutorial Heather Kreger (borrowed from Peter Brittenham) Web Services Architect IBM Emerging Technologies.
Introduction to Web Services Instructor: Dr. M. Anwar Hossain.
Overview Web Session 3 Matakuliah: Web Database Tahun: 2008.
1 Web Services Web and Database Management System.
XML and Web Services (II/2546)
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Kemal Baykal Rasim Ismayilov
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
Web Services Blake Schernekau March 27 th, Learning Objectives Understand Web Services Understand Web Services Figure out SOAP and what it is used.
Web Services. XML Namespaces, Schemas XML processing. Week 2.
SOAP, Web Service, WSDL Week 14 Web site:
Introduction to Web Services Srinath Vasireddy Support Professional Developer Support Microsoft Corporation.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 9 Web Services: JAX-RPC,
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
Sabri Kızanlık Ural Emekçi
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
WEB API.
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
WEB SERVICES From Chapter 19, Distributed Systems
Distributed System using Web Services
Presentation transcript:

Lecture 4 Middleware: Client-Server Computing Wireless and Mobile Systems Design

Middleware: Client-Server Computing 2 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 3 Resources ● H. Gunzer, “Introduction to Web Services,” March 2002, webservices.pdf ● Microsoft Developer Network, “Web Services Basics,” understanding/webservicebasics/

Middleware: Client-Server Computing 4 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)

Middleware: Client-Server Computing 5 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 Operating System and Networking Services Middleware Application Programs API

Middleware: Client-Server Computing 6 Client-Server Computing Client-Server vs. Peer-to-Peer Server Client initiates communications Client issues request to a server Server replies or performs some service Peer-to-Peer Computing Any participant can initiate communication Any device can generate a request Any device may provide a response

Middleware: Client-Server Computing 7 Client-Server Models for Middleware ● Client-server ● Client-agent-server ● Client-intercept-server models

Middleware: Client-Server Computing 8 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 9 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

Middleware: Client-Server Computing 10 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 11 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 Application Client Application Server Fixed Network Wireless Network Agent

Middleware: Client-Server Computing 12 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 Client Web Browser Server HTTP Server CGI, etc. Gateway Encoders Decoders encoded request encoded response request response Protocol Gateways wireless

Middleware: Client-Server Computing 13 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 14 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 Side Agent

Middleware: Client-Server Computing 15 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 16 Web Services Architecture (1) Service Broker Service Provider Service Requester inquirepublish bind

Middleware: Client-Server Computing 17 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 18 Web Services Components ● XML – Extensible Markup Language ● SOAP – Simple Object Access Protocol ● WSDL – Web Services Definition Language ● UDDI – Universal Discovery Description Integration UDDI WSDL SOAP XML HTTPFTPSMTP Web Services XML normally carried using HTTP UDDI is the “yellow pages” of web services

Middleware: Client-Server Computing 19 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 20 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 21 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 22 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 23 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 XML WML XHTML cHTML XSLT

Middleware: Client-Server Computing 24 XSLT to Target XML to Different Devices WML cHTML PDA-specific <class ECE/CS 4984 Invaluable XSLT for WAP XSLT for i-mode XSLT for PDA XSLT Engine

Middleware: Client-Server Computing 25 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

Middleware: Client-Server Computing 26 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

Middleware: Client-Server Computing 27 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 28 Accessing Web Services From Middleware: Client-Server Computing

Middleware: Client-Server Computing 29 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 UDDI WDSL SOAP XML

Middleware: Client-Server Computing 30 Example: WSDL of a Weather Service ● 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=' …

Middleware: Client-Server Computing 31 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

Middleware: Client-Server Computing 32 Example: WSDL Port Definitions ● If the URL is weatherservice.asp, the port definition would look like … <port name=‘WeatherSoapPort’ binding=‘wsdlns:WeatherSoapBinding’> <soap:address location= ‘ />

Middleware: Client-Server Computing 33 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

Middleware: Client-Server Computing 34 Example: Messages Elements ● The GetTemperature method would include one input message and one output message xsd: float is predefined in

Middleware: Client-Server Computing 35 WSDL Operation Element ● The WSDL 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 ● and elements are specified within an element ■ Each refers to the corresponding message by its fully qualified name

Middleware: Client-Server Computing 36 Example: Operation Element ● Example: wsdlns:Weather.GetTemperature <operation name='GetTemperature' parameterOrder='zipcode celsius'>

Middleware: Client-Server Computing 37 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 …

Middleware: Client-Server Computing 38 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

Middleware: Client-Server Computing 39 Example: Binding Element …

Middleware: Client-Server Computing 40 WSDL Example I (1) <soap:operation soapAction=' /> <soap:body use='encoded' namespace=' encodingStyle=' /> <soap:body use='encoded' namespace=' encodingStyle=' />

Middleware: Client-Server Computing 41 WSDL Example I (2) ● The element can… ■ Include and an element ■ Use a element within each to specify how the data is encoded ● The URI indicates the SOAP encoding style as described in the SOAP 1.1 specification

Middleware: Client-Server Computing 42 WSDL Example II (1) ● WSDL of XMethods, a delayed stock quote XML web service

Middleware: Client-Server Computing 43 WSDL Example II (2) net.xmethods.services.stockquote.StockQuote web service

Middleware: Client-Server Computing 44 Summary ● 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 UDDI WSDL SOAP XML HTTPFTPSMTP