Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOAP, WSDL & introduction to UDDI

Similar presentations


Presentation on theme: "SOAP, WSDL & introduction to UDDI"— Presentation transcript:

1 SOAP, WSDL & introduction to UDDI
Presentation 7: SOAP, WSDL & introduction to UDDI

2 Outline Overview of Web Services & SOAP Service-Oriented Architecture
Service Description Service Registration and Discovery Service Execution Emerging Web Services standards: SOAP, WSDL, UDDI (introduced)

3 Web Service Defined W3C definition:
[Definition: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.]

4 Overview SOAP & Web services
SOAP – Simple Object Access Protocol - & Web services: A light-weight & ultra heterogenic alternative to CORBA, DCOM & RMI Openness in focus – meant for opening legacy applications for others Not meant in the role of Inter business, large scale, transaction heavy communication (as CORBA & J2EE) But can prob. be used for it! Does not have services for transactions, concurrency, persistence, scalability Does have discovery services (UDDI) giving some degree of location transparency Does have Interface Definition Language for heterogeneity (WSDL) Fails on several of the dist. system requirements! But easy to implement yourself!

5 Why SOAP When We Have CORBA?
CORBA has been considered too complex by many May not be true with new development tools using wizards They aim at solving different tasks: SOAP covers light-weight application integration within the enterprise, exposing legacy business objects across enterprises, and sharing resources (like Google Search Engine, or Sonofon SMS/MMS API) on the net, as well as technology openness CORBA has a wide range of services for (as we shall see later): Locating, creating & moving objects Object relationship management between hosts Persistency services – activation frameworks etc. Distributed concurrency and transaction management Security Only some are supported in SOAP tech family – its lightweight Lesson: define your needs – and find the right technology

6 Regarding SOAP SOAP is not by it self revolutionary – its merely:
a framework for exchanging XML-based information in a network (via protocols of the TCP/IP family) – with RPC capabilities the currently most hyped XML / Web service technology But when combined with other technologies like WSDL & UDDI It solves several of the requirements of a Distributed System And the fact that it is an open standard – supported by all major software vendors and programming languages: C++ Java C# Delphi Visual Basic and many more Makes it somewhat revolutionary! A practical solution – like WWW

7 Examples of Web Services
Google's Web Service - access the Google search engine Amazon's Web Service - access Amazon's product information XMethods - collection of information about existing Web services SalCentral - WSDL / SOAP Web services search-engine

8 Google Web Service

9 Service-Oriented Architecture (SOA)
Opening up for doing business (the sharing of objects) on the Internet 3 Client Server Legacy code on server 1 2 Registry Abstract Architecture - Web service stack

10 Technologies for Implementing SOA
SOAP for communication WSDL for contract & binding UDDI & WSDL for registration & discovery

11 SOAP SOAP is used for Client/Server communications

12 What is SOAP? Simple Object Access Protocol Wire protocol similar to
IIOP for CORBA JRMP for RMI XML is used for data encoding “text” based protocol vs. “binary” protocol Supports XML-based RPC

13 What is Not SOAP? Not a component model Not a programming language
So it will not replace objects and components, i.e. EJB, JavaBeans and .NET Not a programming language So it will not replace Java, C# og C++ Not a solution for all So it will not replace other distributed computing technologies such as RMI and CORBA

14 Where is SOAP? W3C XML Protocol working group
SOAP 1.2 current version: Microsoft, SUN, Oracle, HP, IBM all support the W3C recommendation but there are still differences to be overcome security issues, transactions etc.

15 What does SOAP define? Message Envelope Encoding Rules RPC Convention
Binding with underlying protocols HTTP (which we will use in this course) SMTP FTP and others

16 SOAP Message Format Possible to Attach binaries (images, cryptographic material) to attachments

17 SOAP Message Envelope Encoding information Header Body Optional
Could contain context knowledge Security Transaction Body RPC methods and parameters Contains application data

18 Two types of communication

19 SOAP RPC Request Example
<SOAP-ENV:Envelope xmlns:SOAP-ENV="…" SOAP-ENV:encodingStyle="…"> <SOAP-ENV:Header> <!-- Optional context information --> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“some_URI"> <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

20 SOAP RPC Response Example
<SOAP-ENV:Envelope xmlns:SOAP-ENV="…" SOAP-ENV:encodingStyle="…"> <SOAP-ENV:Header> <!-- Optional context information --> </SOAP-ENV:Header> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m=“some_URI"> <price>30.5</price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

21 SOAP RPC composition I Information needed for a method call:
The URI of the target object (marked with red) <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“ <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body>

22 SOAP RPC composition II
Information needed for a method call: The URI of the target object The Method Name <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“ <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body>

23 SOAP RPC composition III
Information needed for a method call: The URI of the target object The Method Name Parameters Binding protocol (next slide) <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“ <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body> Name is not important

24 SOAP RPC composition IV: complete SOAP RPC Request
STEP 4: BINDING TO PROTOCOL POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV=” SOAP-ENV:encodingStyle=” <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=" <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> HTTP Name-space Encoding

25 Request to HelloWorld.jws
HTTP Host Target HTTP Post Call Method name Input parameters type string

26 … and the HTTP Response from Server
Apache Tomcat Server Responding HTTP Response Method Response Parameter name Parameter value

27 In addition There is: Response handling Fault handling

28 Lucky us Luckly we dont have to understand SOAP
So it does not really matter that it is somewhat complex Unless we want to develop clients that do not have a SOAP API ... But then we need an XML parser … and more … BUT IT IS POSSIBLE and might be feasible

29 Issues with SOAP Issues with SOAP Low performance
Lack of business semantics Insufficient functionality for business operations Security Reliability Under development Low performance

30 WSDL WSDL is used for describing WebServices

31 What is WSDL? XML language for describing web services
Web service is described as – A set of communication endpoints (ports) Endpoint is made of Abstract definitions of operations and messages Concrete binding to networking protocol and message format

32 Why WSDL? Enables automation of communication details between communicating partners Machines can read WSDL Machines can invoke a service defined in WSDL Note that WSDL defines only low-level aspects of Web services, however other technologies might follow … Security Transactions Persistency

33 WSDL Document Example Simple service providing stock quotes
A single operation called GetLastTradePrice Deployed using SOAP 1.1 over HTTP Request takes a ticker symbol of type string Response returns price as a float

34 WSDL Elements Types Data type definitions
Used to describe exchanged messages Uses W3C XML Schema as canonical type system

35 WSDL Example: Types

36 WSDL Elements Messages Operations Port type
Abstract, typed definitions of data being exchanged Operations Abstract description of an action Refers to input and output messages Port type Collection of operations Resembles a Class in OOPL

37 Example: Messages, Operation, Port type

38 WSDL Elements Binding Port Service
Concrete protocol and data format for a particular Port type Example: SOAP 1.1, HTTP, MIME Port Defines a single communication endpoint Address for binding URL for HTTP, address for SMTP Service Aggregate set of related ports

39 HelloWorld.jws?wsdl

40 Tools Generate WSDL document from Generate SOAP messages from JAX-RPC
existing Java classes or EJB components AXIS: Java2WSDL Generate SOAP messages from WSDL document (via client stub and server skeleton) JAX-RPC Part of J2EE from Sun (needs AS) IDE Tools: NetBeans, Eclipse, Forte for Java, JBuilder, JDeveloper Microsoft: IIS for services and Visual Studio for IDE

41 UDDI UDDI for publishing & discovery – the SOA

42 UDDI Universel Descrition, Discovery & Integration
UDDI defines a scheme to publish and discover information about Webservices Programmatic registration and discovery business entities and their Webservices Based on SOAP, HTTP, XML Registry data Business registrations Service type definitions

43 Registration “ White pages” “ Yellow pages” “ Green pages”
– Address, contact, and known identifiers “ Yellow pages” industrial categorizations Industry: NAICS (Industry codes - US Govt.) Product/Services: UN/SPSC (ECMA) Location: Geographical taxonomy “ Green pages” technical information about services

44 What uses UDDI? Tool building client (Service Consumer)
Browse or search registry Create a service proxy Tool publishing the service Generates WSDL Construct UDDI entries Application that needs dynamic binding Directly access UDDI Query can be pre-generated


Download ppt "SOAP, WSDL & introduction to UDDI"

Similar presentations


Ads by Google