Unraveling The Web Services Web Overview of Presentation

squabbletownmushySoftware and s/w Development

Dec 14, 2013 (3 years and 7 months ago)

61 views

1
1
Unraveling The Web Services
Web
An Introduction to SOAP,
WSDL, and UDDI
Michael Raymond
For 91.514 I&W II
October 16, 2002
2
Overview of Presentation
 Web Services Introduction
 Major Components of Web Services
 Current Web Service Examples
 What’s Next?
 Summary
 References
2
3
Web Services Introduction
 Systematic and extensible framework
 Based on XML - Lingua franca
 Microsoft “betting the company”
 Still under development
 Vacation package example
4
Web Services Protocol Stack
3
5
Major Components of Web
Services
 All based on the Extensible Markup Language
(XML)
 Communication protocols
 Simple Object Access Protocol (SOAP)
 Service descriptions
 Web Service Description Language (WSDL)
 Service discovery
 Universal Description, Discovery and Integration
(UDDI)
6
Web Services in Action
(from Oracle)
4
7
SOAP
 Communication protocol
 Built using XML
 Initially created by Microsoft
 Provides platform and language
independence
8
SOAP transaction (from
Oracle)
5
9
Structure of SOAP message
<SOAP:Envelope xmlns:SOAP=
"http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Header>
<!-- content of header goes here -->
</SOAP:Header>
<SOAP:Body>
<!-- content of body goes here -->
</SOAP:Body>
</SOAP:Envelope>
10
SOAP message containing an e-
ticket
POST /travelservice
SOAPAction: "http://www.acme-travel.com/checkin"
Content-Type: text/xml;charset="utf-8"
Content-Length:nnnn
<SOAP:Envelope xmlns:SOAP=
"http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<et:eTicket xmlns:et=
"http://www.acme-travel.com/eticket/schema">
<et:passengerName first="Joe" last="Smith"/>
<et:flightInfo airlineName="AA"
flightNumber="1111"
departureDate="2002-01-01"
departureTime="1905"/>
</et:eTicket>
</SOAP:Body>
</SOAP:Envelope>
6
11
SOAP RPC call
POST /travelservice
SOAPAction: "http://www.acme-travel.com/flightinfo"
Content-Type: text/xml;charset="utf-8"
Content-Length:nnnn
<SOAP:Envelope xmlns:SOAP=
"http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<m:GetFlightInfo
xmlns:m="http://www.acme-travel.com/flightinfo"
SOAP:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance">
<airlineName xsi:type="xsd:string">UL
</airlineName>
<flightNumber xsi:type="xsd:int">506
…..
12
SOAP RPC response
HTTP/1.1 200 OK
Content-Type: text/xml;charset="utf-8"
Content-Length:nnnn
<SOAP:Envelope xmlns:SOAP=
"http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<m:GetFlightInfoResponse
xmlns:m="http://www.acme-travel.com/flightinfo"
SOAP:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance">
<flightInfo>
<gate xsi:type="xsd:int">10</gate>
<status xsi:type="xsd:string">ON TIME</status>
……
7
13
WSDL
 Used to describe and expose Web
Services
 Developed by IBM and Microsoft
 XML based language
 WSDL document provides Abstract
Description and Concrete Binding
Information
14
WSDL doc structure (from
Oracle)
8
15
WSDL – Abstract Description
 3 main components
 Vocabulary
 Message
 Interaction
16
WSDL – Abstract Description
<message name="GetFlightInfoInput">
<part name="airlineName" type="xsd:string"/>
<part name="flightNumber" type="xsd:int"/>
</message>
<message name="GetFlightInfoOutput">
<part name="flightInfo" type="fixsd:FlightInfoType"/>
</message>
<portType name="AirportServicePortType">
<operation name="GetFlightInfo">
<input message="tns:GetFlightInfoInput"/>
<output message="tns:GetFlightInfoOutput"/>
</operation>
<operation name="CheckIn">
<input message="tns:CheckInInput"/>
</operation>
</portType>
9
17
WSDL – Concrete Binding
Information
 3 pieces
 What
communication protocol:
 SOAP over HTTP?
 How
to accomplish service interactions
 Individual service interactions over this protocol
 Where
to terminate communication
 The network address
18
WSDL – Concrete Binding
Information
<binding name="AirportServiceSoapBinding"
type="tns:AirportServicePortType">
<soap:binding transport=
"http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetFlightInfo">
<soap:operation style="rpc"
soapAction="http://acme-travel/flightinfo"/>
<input>
<soap:body use="encoded"
namespace="http://acme-travel.com/flightinfo"
encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
…….
10
19
UDDI
 Service discovery
 Common repository to advertise
 Provides 2 basic specifications
 Organizing structure
 Categorization
20
UDDI – Organizing Structure
 Encodes 3 types of information
 “white pages”
 “yellow pages”
 “green pages”
 Organized around two entities
 businessEntity
 businessService
11
21
Simplified businessEntity
structure
<businessEntity businessKey=
"A687FG00-56NM-EFT1-3456-098765432124">
<name>Acme Travel Incorporated</name>
<description xml:lang="en">
Acme is a world leader in online travel services
</description>
<contacts>
<contact useType="US general">
<personName>Acme Inc.</personName>
<phone>1 800 CALL ACME</phone>
<email useType="">acme@acme-travel.com</email>
<address>
<addressLine>Acme</addressLine>
<addressLine>12 Maple Avenue</addressLine>
<addressLine>Springfield, CT 06785</addressLine>
…….
22
Simplified businessService
structure
<businessService serviceKey=
"894B5100-3AAF-11D5-80DC-002035229C64"
businessKey=
"D2033110-3AAF-11D5-80DC-002035229C64">
<name>ElectronicTravelService</name>
<description xml:lang="en">Electronic Travel Service</description>
<bindingTemplates>
<bindingTemplate bindingKey=
"6D665B10-3AAF-11D5-80DC-002035229C64"
……
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey=
"D2033110-3BGF-1KJH-234C-09873909802">
...
</tModelInstanceInfo>
</tModelInstanceDetails>
……
12
23
UDDI – Categorization
 Taxonomy and tModels
 3 standard taxonomies
 North American Industry Classification System
(NAICS)
 Universal Standard Products and Services Code
System (UNSPSC)
 International Organization for Standardization
Geographic taxonomy (ISO 3166)
24
Sample tModel definition
<tModel tModelKey="">
<name>http://www.travel.org/e-checkin-interface</name>
<description xml:lang="en">
Standard service interface definition for travel services
</description>
<overviewDoc>
<description xml:lang="en">
WSDL Service Interface Document
</description>
<overviewURL>
http://www.travel.org/services/e-checkin.wsdl
</overviewURL>
</overviewDoc>
<categoryBag> ...
</categoryBag>
</tModel>
13
25
Current Web Services
Directories
 UDDI business registry (UBR)
 www.uddi.org
 www.xmethods.net
(~250)
 www.salcentral.com
(~540)
26
What’s Next?
 Security
 SOAP Security Extensions proposal
 Reliability
 “Reliable SOAP” standard?
 Quality-of-service (QoS)
 Popular = heavy loads
14
27
Summary
 All based on the Extensible Markup
Language (XML)
 All still under development
 SOAP + WSDL + UDDI
 Security, Reliability, QoS are next
28
References
 Curbera, F.;Duftler, M.;Khalaf, R.; Nagy, W.;Mukhi, N.;
Weerawarana, S., “Unraveling the Web services web: an
introduction to SOAP, WSDL, and UDDI”, IEEE Internet
Computing Volume: 6, Issue: 2, March-April 2002, pp. 86 -93
 H. M. Deitel et al., Web Services A Technical Introduction (New
Jersey, Prentice Hall, 2003)
 S. Short, Building XML Web Services for the Microsoft .NET
Platform (Washington, Microsoft Press, 2002)
 Clark, D., Next-generation web services, IEEE Internet
Computing Volume: 6, Issue: 2, March-April 2002, pp. 12 -14
 Ingham, D.B.;Shrivastava, S.K.;Panzieri, F., Constructing
dependable Web services, IEEE Internet Computing Volume: 4,
Issue: 1, Jan.-Feb. 2000, pp. 25 -33.
15
29
Questions?