Upload
eljah
View
44
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Lecture 6 & 7 SOAP WSDL UDDI. Highlights. eXtensible Markup Language (XML) Simple Object Access Protocol (SOAP) Web Services Description Language (WSDL) Directory Services Universal Description, Discovery, and Integration (UDDI). Standards for Web Services. - PowerPoint PPT Presentation
Citation preview
Lecture 6 & 7
SOAPWSDLUDDI
Chapter 2 2Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Highlights
eXtensible Markup Language (XML) Simple Object Access Protocol
(SOAP) Web Services Description Language (WSDL) Directory Services Universal Description, Discovery, and
Integration (UDDI)
Chapter 2 3Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Standards for Web Services
BPEL4WSOWL-S Service
Model
ebXMLCPA
Process and workflow orchestrations
QoS: Service descriptions and bindings
Contracts andagreements
XLANG
WSCL
WSDLebXML
CPP
ebXMLBPSS
XML, DTD, and XML Schema
HTTP, FTP, SMTP, SIP, etc.
SOAPebXML
messaging
OWL
UDDIebXML
Registries
WSCLWSCI
WS-Coordination
WS-AtomicTransaction and WS-BusinessActivity
OWL-S Service Grounding
OWL-S Service Profile
BTP
BPML
Discovery (not selection)
Messaging
Transport
QoS: Conversations
QoS: Choreography
QoS: Transactions
Encoding
WS-Policy
WS-Security
WS-Reliable Messaging
PSL
RDF
Chapter 2 7Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Web Services: Basic Architecture
ServiceBroker
ServiceProvider
ServiceRequesto
r
Bind or invoke(SOAP)
Find or discover(UDDI)
Publish or announce(WSDL)
Registry; well-known
Not well-known
Chapter 2 8Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Basic Profile (BP 1.0)
The Web Services Interoperability Organization (WS-I) has specified the following Basic Profile version 1.0: SOAP 1.1 HTTP 1.1 XML 1.0 XML Schema Parts 1 and 2 UDDI Version 2 WSDL 1.1
Chapter 2 9Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Describing a Service
Namee.g., GetTemperature
Types of Input Parameterse.g., (String, String)
Types of Output Parameterse.g., Integer
Chapter 2 10Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
SOAP (Simple Object Access Protocol)
Used to exchange messages via HTTP, SMTP, and SIP (Session Initiation Protocol for Internet telephony)
Originally designed for remote-procedure calls (RPC)
Works through firewalls on port 80 Character-based, so easy to encrypt/decrypt
and thus easy to secure Inefficient due to character, not binary, data
and large headers Does not describe bidirectional or n-party
interaction
SOAP architecture
An Envelope element that identifies the XML document as a SOAP message
A Header element that contains header information
A Body element that contains call and response information
A Fault element containing errors and status information
Chapter 2 11Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Chapter 2 12Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Ex. SOAP Request
POST /temp HTTP/1.1Host: www.socweather.comContent-Type: text/xml; charset="utf-8"Content-Length: xxxSOAPAction: "http://www.socweather.com/temp"
<!-- Above: HTTP headers and a blank line. --><!—These comments below: an XML document --><?xml version=“1.0”?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <env:Body> <m:GetTemp xmlns:m="http://www.socweather.com/temp.xsd"> <m:City>Honolulu</m:City> <m:When>now</m:When> </m:GetTemp> </env:Body></env:Envelope>
Chapter 2 13Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Ex. SOAP Response
HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: xxxSOAPAction: "http://www.socweather.com/temp"
<?xml version="1.0"?><env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<env:Body> <m:GetTempResponse
xmlns:m="http://www.socweather.com/temp.xsd"> <m:DegreesCelsius>30</m:DegreesCelsius> </m:GetTempResponse> </env:Body></env:Envelope>
Chapter 2 14Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
WSDL: Web Services Description Language
Describes a programmatic interface to a Web service, including Definitions of data types Input and output message formats The operations provided by the service Network addresses Protocol bindings
<?xml version="1.0"?><!-- the root element, wsdl:definitions, defines a set of --><!-- related services --><wsdl:definitions name="Temperature" targetNamespace="http://www.socweather.com/schema" xmlns:ts="http://www.socweather.com/TempSvc.wsdl" xmlns:tsxsd="http://schemas.socweather.com/TempSvc.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!-- wsdl:types encapsulates schema definitions of --><!-- communication types; here using xsd -->
<wsdl:types><!-- all type declarations are expressed in xsd --> <xsd:schema targetNamespace="http://namespaces.socweather.com" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
Chapter 2 15Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
<!-- xsd def: GetTemp [City string, When string] --> <xsd:element name="GetTemp"> <xsd:complexType> <xsd:sequence> <xsd:element name="City" type="string"/> <xsd:element name="When" type="string"/> </xsd:sequence> </xsd:complexType> </xsd:element>
<!-- xsd def: GetTempResponse [DegreesCelsius integer] --> <xsd:element name="GetTempResponse"> <!-- XML Schema entry as above --> </xsd:element>
<!-- xsd def: GetTempFault [errorMessage string] --> <xsd:element name="GetTempFault"> <!-- XML Schema entry as above --> </xsd:element> </xsd:schema> </wsdl:types>
Chapter 2 16Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
<!-- wsdl:message elements describe potential transactions --><!-- Most messages, as here, have only one part. Multiple --><!-- parts provide a way to aggregate complex messages -->
<!-- request GetTempRequest is of type GetTemp --> <wsdl:message name="GetTempRequest"> <wsdl:part name="body" element="tsxsd:GetTemp"/> </wsdl:message>
<!-- response GetTempResponse is of type GetTempResponse --> <wsdl:message name="GetTempResponse"> <wsdl:part name="body" element="tsxsd:GetTempResponse"/> </wsdl:message>
<!-- wsdl:portType describes messages in an operation --> <wsdl:portType name="GetTempPortType">
Chapter 2 17Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
<!-- wsdl:operation describes the entire protocol from --><!-- input to output or fault --> <wsdl:operation name="GetTemp"><!-- The order input preceding output indicates the --><!-- request-response operation type --> <wsdl:input message="ts:GetTempRequest"/> <wsdl:output message="ts:GetTempResponse"/> <wsdl:fault message="ts:GetTempFault"/> </wsdl:operation> </wsdl:portType>
<!-- wsdl:binding specifies a serialization protocol --> <wsdl:binding name="TempSvcSoapBinding" type="ts:GetTempPortType">
Chapter 2 18Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
<!-- leverage off soap:binding document style --> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<!-- semi-opaque container of network transport details --> <!-- classed by soap:binding above @@@ --> <wsdl:operation name="GetTemp"> <soap:operation soapAction="http://www.socweather.com/TempSvc"/><!-- further specify that the messages in the --><!-- wsdl:operation "GetTemp" use SOAP? @@@ --> <wsdl:input> <soap:body use="literal" namespace="http://schemas.socweather.com/TempSvc.xsd"/> </wsdl:input>
Chapter 2 19Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
<!-- As above for wsdl:output and wsdl:fault -->
</wsdl:operation> </wsdl:binding>
<!-- wsdl:service names a new service "TemperatureService" --> <wsdl:service name="TemperatureService"> <wsdl:documentation>socweather.com temperature service </wsdl:documentation>
<!-- connect it to the binding "TempSvcSoapBinding" above --> <wsdl:port name="GetTempPort" binding="ts:TempSvcSoapBinding">
<!-- give the binding a network address --> <soap:address location="http://www.socweather.com/TempSvc"/> </wsdl:port> </wsdl:service></wsdl:definitions>
Chapter 2 20Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Chapter 2 21Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
WSDL Data Model
definitions targetNamespace=thisNamespace xmins:tns=thisNamespace
types message name=in message name=out
portType name=foo operation input message=tns:in output message=tns:out
binding name=foobar type=tns:foo [binding information]
service name=foobar Service
Port name=foobarPort binding=tns:foobar [endpoint information]
Types contains data type definitionsMessages consist of one or more parts
A portType describes an abstract setof operations
A binding describes a concrete set offormats and protocols for the fooportTypes
A port describes an implementationof the foobar binding
Chapter 2 22Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Directory Services Support discovery: enable applications,
agents, Web service providers, Web service requestors, people, objects, and procedures to locate each other White pages – entries found by name Yellow pages – entries found by characteristics
and capabilities A basic directory might be a simple
database (passive) or a broker/facilitator (active, that provides alerts and recruits participants)
UDDI – both white pages and yellow pages, but passive
Chapter 2 23Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
UDDI: Universal Description, Discovery, and Integration
UDDI is a Web service that is based on SOAP and XML
UDDI registers tModels: technical descriptions of a
service’s behavior businessEntities: describes the
specifications of multiple tModels
Chapter 2 24Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Yellow, Green, and White Pages in UDDI
-businessKey : string(idl)-name : string(idl)-description : string(idl)-URL : string(idl)-contacts : contact-businessServices : businessService-identifierBag : keyedReference-categoryBag : keyedReference
businessEntity
1
*
-tModelKey : string(idl)-keyName : string(idl)-keyValue : string(idl)
keyedReference
-serviceKey : string(idl)-tModelKey : string(idl)-name : string(idl)-description : string(idl)-bindingTemplates
businessService
-phone : string(idl)-address : string(idl)
contact
businessEntity: Information about theparty who publishes information about
a service
businessService: Descriptiveinformation about a particular family of
technical services
bindingTemplate: Technicalinformation about a service entry point
and implementation specs
tModel: Descriptions of specificationsfor services or value sets. Basis for
technical fingerprints
businessEntities containbusinessServices
businessServices containbindingTemplates
bindingTemplates contain referencesto tModels. These references
designate the interface specificationsfor a service
Chapter 2 25Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Data Model for UDDI
Chapter 2 26Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
WSDL UDDI
<import>
<port>
<port>
BusinessEntity
BusinessService
BindingTemplate
BindingTemplate
Service Implementation
UDDI
<service>
Service Interface
<types>
<message>
<portType>
<binding>
tModel
WSDL
Chapter 2 27Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and
Michael Huhns
Chapter 2 Summary
The main triad of Web services standards Bring together well-known ideas
SOAP: object access and messaging WSDL: based on CORBA IDL UDDI: based on directories
Provide necessary functionality for interoperation
Are complicated in their details Meant for tool vendors rather than
programmers Increasingly hidden by tools