Presentation is loading. Please wait.

Presentation is loading. Please wait.

Presentation 7 part 2: SOAP & WSDL.

Similar presentations


Presentation on theme: "Presentation 7 part 2: SOAP & WSDL."— Presentation transcript:

1 Presentation 7 part 2: SOAP & WSDL

2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)

3 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

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

5 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

6 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

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

8 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

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

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

11 Two types of communication

12 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>

13 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>

14 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=“http://stocks.com/StockQuotes"> <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body>

15 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=“http://stocks.com/StockQuotes"> <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body>

16 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=“http://stocks.com/StockQuotes"> <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body> Name is not important

17 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=”http://schemas.xmlsoap.org/soap/encoding" SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=" <tickerSymbol>SUNW</tickerSymbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> HTTP Name-space Encoding

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

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

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

21 WSDL WSDL is used for describing WebServices

22 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

23 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

24 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

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

26 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

27 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

28 HelloWorld.jws?wsdl

29 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

30 UDDI UDDI for publishing & discovery – the SOA

31 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

32 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

33 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 "Presentation 7 part 2: SOAP & WSDL."

Similar presentations


Ads by Google