Download presentation
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=“ <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=“ <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=“ <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=” 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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.