web services - dhirubhai ambani institute of information...

84
Web Services Web Services Kumar Majethia Kumar Majethia Probity Soft Pvt. Ltd. Probity Soft Pvt. Ltd.

Upload: vongoc

Post on 13-Apr-2018

237 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesKumar MajethiaKumar Majethia

Probity Soft Pvt. Ltd.Probity Soft Pvt. Ltd.

Page 2: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

AcknowledgementsAcknowledgements

W3C specifications W3C specifications –– www.w3.orgwww.w3.orgOASIS TC OASIS TC –– www.oasiswww.oasis--open.orgopen.orgGabriele Zacco Gabriele Zacco –– Astro Seminars on UDDIAstro Seminars on UDDIThomas Erl Thomas Erl -- www.wswww.ws--standards.comstandards.comNicholas Chase Nicholas Chase –– IBMIBMDon Box Don Box –– DevelopmentorDevelopmentor

Page 3: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 4: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

What is a Web Service?What is a Web Service?An Application ComponentAn Application ComponentAccessed over standard Web ProtocolsAccessed over standard Web Protocols

http, smtp etc.http, smtp etc.XML requests, responses and exceptionsXML requests, responses and exceptions

ContentContent--type: text/xml type: text/xml

As defined by the World Wide Web consortium As defined by the World Wide Web consortium (W3C)(W3C)

““a software application identified by a URI, whose a software application identified by a URI, whose interfaces and bindings are capable of being defined, interfaces and bindings are capable of being defined, described and discovered as XML artifacts. A web described and discovered as XML artifacts. A web service supports direct interactions with other software service supports direct interactions with other software agents using XMLagents using XML--based messages exchanged via based messages exchanged via InternetInternet--based protocolsbased protocols””

Page 5: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web Services Web Services -- SchematicSchematic

SOAP WSDL

UD

DI

Page 6: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web Services Web Services –– SchematicSchematic

Internet /Intranet

Internet /Intranet

<xml> <call>getCustomer</call><param><id>123</id>

</param></xml>

<xml> <call>getCustomer</call><param><id>123</id>

</param></xml>

http, smtp…

<xml><getCustomerResponse><id>123</id><Name>Acne Inc</Name><Fax>123-123-1234</Fax>

</getCustomerResponse></xml>

<xml><getCustomerResponse><id>123</id><Name>Acne Inc</Name><Fax>123-123-1234</Fax>

</getCustomerResponse></xml>

response, reply…

Method Call

Method Response

Web ServiceFacade

Request

Response

Customer getCustomer(int id)

Page 7: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Why Web Services ?Why Web Services ?

Bridge across the Bridge across the ““RPC DivideRPC Divide””Easy access through organizational Easy access through organizational boundariesboundariesStandard machineStandard machine--readable interface readable interface descriptionsdescriptionsXml allows for easy and controlled Xml allows for easy and controlled extensibilityextensibility

Page 8: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Types of Web ServicesTypes of Web Services

HTTP REST (Representational State HTTP REST (Representational State Transfer)Transfer)XmlXml--rpc (Xml Remote Procedure Calls)rpc (Xml Remote Procedure Calls)SOAP (Simple Object Access Protocol?)SOAP (Simple Object Access Protocol?)

Page 9: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

HTTP RESTHTTP RESTPost, Get, Put, Delete correspond to CRUD Post, Get, Put, Delete correspond to CRUD operationsoperationsFew verbs and lots of nounsFew verbs and lots of nounsThe verb getCustomer(123) appears as the URI The verb getCustomer(123) appears as the URI -- httphttp://example.com/Customer/1://example.com/Customer/123 23 -- a nouna nounAllows for easy access control using ACLsAllows for easy access control using ACLsExposed intent allows for better cache controlExposed intent allows for better cache controlInIn--keeping with the web paradigm (http is an keeping with the web paradigm (http is an application layer protocol)application layer protocol)Ideal for Get(s) of any kindIdeal for Get(s) of any kind

Page 10: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

XmlXml--rpc (HTTP)rpc (HTTP)

Simple RPC using Xml over HTTPSimple RPC using Xml over HTTPEasy to implement simple servicesEasy to implement simple servicesNot enough to handle enterprise level Not enough to handle enterprise level applications (too simplistic)applications (too simplistic)

No extensions for security, transactions, No extensions for security, transactions, reliable messaging, intermediaries etc.reliable messaging, intermediaries etc.

Page 11: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

XmlXml--rpc (HTTP)rpc (HTTP)

POST /RPC2 HTTP/1.0User-Agent: Frontier/5.1.2 (WinNT)Host: betty.userland.comContent-Type: text/xmlContent-length: 181

<?xml version="1.0"?><methodCall><methodName>

examples.getStateName</methodName><params><param><value><i4>41</i4></value></param>

</params></methodCall>

HTTP/1.1 200 OKConnection: closeContent-Length: 158Content-Type: text/xmlDate: Fri, 17 Jul 1998 19:55:08 GMTServer: UserLand Frontier/5.1.2-

WinNT

<?xml version="1.0"?><methodResponse><params><param><value>

<string>South Dakota

</string></value></param>

</params></methodResponse>

Xml-rpc Request Xml-rpc Response

Page 12: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 13: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP (Service Oriented SOAP (Service Oriented Application Protocol)Application Protocol)

The most widely supported messaging format and The most widely supported messaging format and protocol for use with Web Servicesprotocol for use with Web ServicesSupports standardized description of service interfaces Supports standardized description of service interfaces using WSDL (Web Services Definition Language)using WSDL (Web Services Definition Language)Supports publishing and subsequent discovery of Supports publishing and subsequent discovery of services using UDDI (Uniform Description and Discovery services using UDDI (Uniform Description and Discovery Interface)Interface)Provides supplemental specifications to handle security Provides supplemental specifications to handle security (ws(ws--Security), transactions (wsSecurity), transactions (ws--AtomicTransaction), AtomicTransaction), reliable messaging (wsreliable messaging (ws--Reliable Messaging) and other Reliable Messaging) and other (ws(ws--*) services required for enterprise class applications*) services required for enterprise class applicationsDoes not have a programming modelDoes not have a programming model

Page 14: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP (Service Oriented SOAP (Service Oriented Application Protocol)Application Protocol)

SOAP is a simple and lightweight XMLSOAP is a simple and lightweight XML--based based mechanism for creating structured data packages that mechanism for creating structured data packages that can be exchanged between network applications. can be exchanged between network applications. The latest SOAP specification is SOAP 1.2, which The latest SOAP specification is SOAP 1.2, which passes the recommendation criteria of the W3C passes the recommendation criteria of the W3C SOAP provides a simple enveloping mechanism and is SOAP provides a simple enveloping mechanism and is proven in being able to work with existing networking proven in being able to work with existing networking services technologies, such as HTTP. SOAP is also very services technologies, such as HTTP. SOAP is also very flexible and extensible. It provides capabilities to addflexible and extensible. It provides capabilities to add--on on standards and applicationstandards and application--defined extensions. defined extensions.

Page 15: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Sample SOAP MessageSample SOAP Message<?xml version="1.0"?><?xml version="1.0"?>

<<env:Envelopeenv:Envelope xmlns:env="http://www.w3.org/2003/05/soapxmlns:env="http://www.w3.org/2003/05/soap--envelope">envelope">

<<env:Headerenv:Header>>......

</</env:Headerenv:Header>>

<<env:Bodyenv:Body>>

<x:GetCustomer xmlns:x="http://www.examples.com/"><x:GetCustomer xmlns:x="http://www.examples.com/"><x:Id>123</x:Id><x:Id>123</x:Id>

</x:GetStateName></x:GetStateName>

</</env:Bodyenv:Body>>

</</env:Envelopeenv:Envelope>>

Page 16: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP terms & conceptsSOAP terms & conceptsSoap Node Soap Node –– A Soap Node is the faA Soap Node is the faççade that handles communication ade that handles communication between web services. A Soap Node can be a Requestor / Sender, Ubetween web services. A Soap Node can be a Requestor / Sender, Ultimate ltimate Receiver / Provider, or an IntermediaryReceiver / Provider, or an IntermediaryRole Role –– Each Soap Node may assume one or more roles when processing Each Soap Node may assume one or more roles when processing or relaying a Message. A receiving Node atleast plays the or relaying a Message. A receiving Node atleast plays the ““nextnext”” role. The role. The final provider of the Service assumes the role of final provider of the Service assumes the role of ““ultimateReceiverultimateReceiver””Message Exchange Patterns Message Exchange Patterns –– SOAP allows for RequestSOAP allows for Request--Response, FireResponse, Fire--AndAnd--Forget and Notification patterns between Requestor and ProviderForget and Notification patterns between Requestor and ProviderPayload Payload –– The actual request carried in the Body block is called the The actual request carried in the Body block is called the Payload. That is where you tell the ultimateReceiver to perform Payload. That is where you tell the ultimateReceiver to perform a task or a task or give some information to the ultimateReceivergive some information to the ultimateReceiverEndPoint EndPoint –– The URI where the Service is accessible is called the EndPoint The URI where the Service is accessible is called the EndPoint of the Serviceof the ServiceFault Fault –– A section within the Body block dedicated to providing exceptioA section within the Body block dedicated to providing exception n handling informationhandling informationMessage Path Message Path –– The path along which a SOAP message travlesThe path along which a SOAP message travles

Page 17: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 18: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Processing ModelSOAP Processing Model

The processing of a SOAP message is The processing of a SOAP message is dependent on the role assumed by a SOAP dependent on the role assumed by a SOAP Node. Node. If the SOAP intermediary plays the role as If the SOAP intermediary plays the role as defined by the SOAP message, it can then defined by the SOAP message, it can then process the message.process the message.

Page 19: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Processing ModelSOAP Processing Model

There are two options related to processing. If There are two options related to processing. If the SOAP header is targeted to this node and the SOAP header is targeted to this node and specifies a "mustUnderstand" flag set to "true," specifies a "mustUnderstand" flag set to "true," then the processing node must process that then the processing node must process that header. header. If there is no such requirement (i.e., If there is no such requirement (i.e., mustUnderstand flag is not set), it is up to the mustUnderstand flag is not set), it is up to the processing node to decide on the processing of processing node to decide on the processing of the message. the message.

Page 20: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Processing ModelSOAP Processing Model

Once the processing is completed, the message Once the processing is completed, the message will be directed to the next node. The decision will be directed to the next node. The decision on the next node selection is not specified by the on the next node selection is not specified by the SOAP specification. SOAP specification. Therefore, it is now the choice of the processing Therefore, it is now the choice of the processing node to make such a decision. However, there node to make such a decision. However, there are some standards that exist to specify are some standards that exist to specify common routing mechanisms, such as WScommon routing mechanisms, such as WS--Routing and WSRouting and WS--Addressing.Addressing.

Page 21: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Processing ModelSOAP Processing Model

Another interesting aspect of this messageAnother interesting aspect of this message--forwarding paradigm is the concept of relaying forwarding paradigm is the concept of relaying SOAP headers. A header can have a "relay" SOAP headers. A header can have a "relay" attribute value (i.e., true or false) to indicate that attribute value (i.e., true or false) to indicate that nonprocessed headers get forwarded to the next nonprocessed headers get forwarded to the next node. The default value is "false." node. The default value is "false." This indicates a SOAP node, which is targeted This indicates a SOAP node, which is targeted by this header, will not forward this header to the by this header, will not forward this header to the next node. next node.

Page 22: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 23: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Processing of SOAP MessagesProcessing of SOAP Messages

The division between header and body already The division between header and body already provides some indication of how SOAP expects provides some indication of how SOAP expects messages to be processed by the different messages to be processed by the different nodes along the message path. nodes along the message path. These nodes will, in most cases, constitute the These nodes will, in most cases, constitute the different tiers of the Web services middleware. different tiers of the Web services middleware. Nodes processing a message can play one or Nodes processing a message can play one or more roles. Each block in a SOAP header may more roles. Each block in a SOAP header may include the definition of the role for which it is include the definition of the role for which it is intended.intended.

Page 24: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Processing of SOAP MessagesProcessing of SOAP MessagesIf a block is assigned to a none role, it means that such a If a block is assigned to a none role, it means that such a block should not be processed by any node receiving the block should not be processed by any node receiving the message, although the block might be read if it contains message, although the block might be read if it contains information important for processing other blocks.information important for processing other blocks.If a block is assigned to the utilimateReceiver role, that If a block is assigned to the utilimateReceiver role, that block is solely intended for the recipient of the message, block is solely intended for the recipient of the message, not for any intermediate node.not for any intermediate node.If a block is assigned to the next role, any node receiving If a block is assigned to the next role, any node receiving the message can process that block. the message can process that block. The ultimateReceiver is also included in the the set of The ultimateReceiver is also included in the the set of next nodes.next nodes.The body of the message does not have a role The body of the message does not have a role associated to it. Its role defaults to ultimateReceiver.associated to it. Its role defaults to ultimateReceiver.

Page 25: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Processing of SOAP MessagesProcessing of SOAP Messages

Processing can involve:Processing can involve:removing blocks for the header, removing blocks for the header, performing some action like logging the message, performing some action like logging the message, extend the header with additional information,extend the header with additional information,removing the header and introducing a new one and removing the header and introducing a new one and more.more.

A block may contain a mustUnderstand flag, A block may contain a mustUnderstand flag, indicating that a node playing the role indicated indicating that a node playing the role indicated by the block must process the block as needed.by the block must process the block as needed.

Page 26: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Processing of SOAP MessagesProcessing of SOAP Messages

If the flag is set and for some reason, the node If the flag is set and for some reason, the node cannot process the block as needed, any further cannot process the block as needed, any further processing of that message stops and a fault is processing of that message stops and a fault is generated. The message is not forwarded to any generated. The message is not forwarded to any other node.other node.If the flag is not set or absent, a node is free to If the flag is not set or absent, a node is free to decide whether to process or ignore.decide whether to process or ignore.The body does not have a mustUnderstand flag. The body does not have a mustUnderstand flag. The utimateReceiver must process the body or The utimateReceiver must process the body or generate a fault.generate a fault.

Page 27: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 28: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP FeaturesSOAP Features

A SOAP feature is an extension to the SOAP A SOAP feature is an extension to the SOAP messaging framework. These features are messaging framework. These features are common in distributed computing such as common in distributed computing such as reliability, security, correlation, routing, and reliability, security, correlation, routing, and message exchange patterns such as message exchange patterns such as request/response, onerequest/response, one--way, and peerway, and peer--toto--peer peer conversations. conversations. SOAP does not specify how these are SOAP does not specify how these are implemented by a SOAP Nodeimplemented by a SOAP Node

Page 29: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP FeaturesSOAP Features

A SOAP feature has the following A SOAP feature has the following characteristics:characteristics:

A unique name used to identify the feature A unique name used to identify the feature and its properties. This enables us to identify and its properties. This enables us to identify whether a SOAP node supports a specific whether a SOAP node supports a specific feature. For example, if we have a feature feature. For example, if we have a feature called "securecalled "secure--sslssl--channel," then we can ask channel," then we can ask the SOAP nodes, including the ultimate the SOAP nodes, including the ultimate receiver, whether they support that feature or receiver, whether they support that feature or not.not.

Page 30: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP FeaturesSOAP Features

Most SOAP features are embedded in the Most SOAP features are embedded in the SOAP Header blocksSOAP Header blocksThese Headers are then processed by These Headers are then processed by SOAP nodes that implement the FeatureSOAP nodes that implement the Feature

Page 31: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Message Exchange PatternSOAP Message Exchange Pattern

One special type of SOAP feature is the One special type of SOAP feature is the MEP. A SOAP MEP is a template that MEP. A SOAP MEP is a template that establishes a pattern for the exchange of establishes a pattern for the exchange of messages between SOAP nodes.messages between SOAP nodes.Some examples of MEPs include Some examples of MEPs include request/response, onerequest/response, one--way, peerway, peer--toto--peer peer conversation, and so on. conversation, and so on.

Page 32: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 33: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP HeaderSOAP HeaderThe The HeaderHeader in a SOAP message is meant to in a SOAP message is meant to provide information about the message itselfprovide information about the message itselfThe The HeaderHeader may be used to provide routing may be used to provide routing information (in case the target for a request is information (in case the target for a request is different than the one being addressed)different than the one being addressed)The The HeaderHeader is also used to implement SOAP is also used to implement SOAP features (the wsfeatures (the ws--* protocols)* protocols)SOAP servers (nodes) must process headers SOAP servers (nodes) must process headers that are meant for them and often must refuse to that are meant for them and often must refuse to execute the service request if a header is not execute the service request if a header is not specified or understoodspecified or understood

Page 34: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP SOAP HeaderHeader AttributesAttributes

rolerole –– specifies which SOAP node must specifies which SOAP node must process this process this HeaderHeader

mustUnderstand mustUnderstand –– specifies whether specifies whether the recipient of this message must the recipient of this message must understand the meaning of this headerunderstand the meaning of this headerrelayrelay –– specifies whether a header block specifies whether a header block targeted at a SOAP receiver must be targeted at a SOAP receiver must be relayed if not processedrelayed if not processed

Page 35: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Header (Routing)SOAP Header (Routing)<SOAP<SOAP--ENV:Envelope ENV:Envelope

xmlns:SOAPxmlns:SOAP--ENV="http://schemas.xmlsoap.org/soap/envelope/" ENV="http://schemas.xmlsoap.org/soap/envelope/" ...>...>

<SOAP<SOAP--ENV:Header>ENV:Header><mm:path xmlns:mm="http://schemas.xmlsoap.org/rp/" <mm:path xmlns:mm="http://schemas.xmlsoap.org/rp/"

SOAPSOAP--ENV:actor="http://schemas.xmlsoap.org/soap/actor/next" ENV:actor="http://schemas.xmlsoap.org/soap/actor/next" SOAPSOAP--ENV:mustUnderstand="1">ENV:mustUnderstand="1">

<mm:action></mm:action><mm:action></mm:action><mm:to>http://services.xmethods.net:80/soap/servlet/rpcrouter</m<mm:to>http://services.xmethods.net:80/soap/servlet/rpcrouter</mm:to>m:to><mm:id>3cf74010<mm:id>3cf74010--e395e395--11d511d5--a2d9a2d9--00a0246e4ce3</mm:id>00a0246e4ce3</mm:id><mm:fwd><mm:fwd>

<mm:via>http://www.whitemesa.net/interop/std/multihop</mm:via><mm:via>http://www.whitemesa.net/interop/std/multihop</mm:via><mm:via>http://www.4s4c.com/services/log.ashx</mm:via><mm:via>http://www.4s4c.com/services/log.ashx</mm:via><mm:via>http://soapclient.com/SoapRouter</mm:via><mm:via>http://soapclient.com/SoapRouter</mm:via>

</mm:fwd></mm:fwd><mm:rev><mm:via/></mm:rev><mm:rev><mm:via/></mm:rev></mm:path></mm:path>

</SOAP</SOAP--ENV:Header>ENV:Header><SOAP<SOAP--ENV:Body>ENV:Body>

<mns:getTemp xmlns:mns="urn:xmethods<mns:getTemp xmlns:mns="urn:xmethods--Temperature">Temperature"><zipcode xsi:type="xsd:string">20876</zipcode><zipcode xsi:type="xsd:string">20876</zipcode>

</mns:getTemp></mns:getTemp></SOAP</SOAP--ENV:Body> ENV:Body> </SOAP</SOAP--ENV:Envelope>ENV:Envelope>

Page 36: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Header (Security)SOAP Header (Security)<SOAP<SOAP--ENV:EnvelopeENV:Envelope

xmlns:SOAPxmlns:SOAP--ENV="http://schemas.xmlsoap.org/soap/envelope/">ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP<SOAP--ENV:Header>ENV:Header>

<SOAP<SOAP--SEC:EncryptionSEC:Encryptionxmlns:SOAPxmlns:SOAP--SEC="http://schemas.xmlsoap.org/soap/security/">SEC="http://schemas.xmlsoap.org/soap/security/"><xenc:DecryptionInfo Id="decInfo1" xmlns:xenc="http://www.<xenc:DecryptionInfo Id="decInfo1" xmlns:xenc="http://www.w3.org/2000/10/xmlenc">w3.org/2000/10/xmlenc">

<xenc:Method Algorithm="http://www.w3.org/2000/10/xmlenc<xenc:Method Algorithm="http://www.w3.org/2000/10/xmlenc#des#des--cbccbc--pkcs5padding"/>pkcs5padding"/>

<xenc:ReferenceList><xenc:ReferenceList><xenc:Reference URI="#encData1"/><xenc:Reference URI="#encData1"/>

</xenc:ReferenceList></xenc:ReferenceList><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">">

<ds:KeyName>The Shared Secret Key</ds:KeyName><ds:KeyName>The Shared Secret Key</ds:KeyName></ds:KeyInfo></ds:KeyInfo>

</xenc:DecryptionInfo></xenc:DecryptionInfo></SOAP</SOAP--SEC:Encryption>SEC:Encryption>

</SOAP</SOAP--ENV:Header>ENV:Header>

<SOAP<SOAP--ENV:Body>ENV:Body><m:GetLastTradePrice xmlns:m="some<m:GetLastTradePrice xmlns:m="some--URI">URI">

<xenc:EncryptedData <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2000/10/xmlenc"xmlns:xenc="http://www.w3.org/2000/10/xmlenc"Id="encData1"Id="encData1"DecryptionInfoURI="#decInfo1" DecryptionInfoURI="#decInfo1" IV="x40tN1mAZSY=">IV="x40tN1mAZSY=">0rqGM/nMhGNHY0U6ZhbkuPDEpYaqD/nwqtt0iw361RLeVGvJgn37GeNk0rqGM/nMhGNHY0U6ZhbkuPDEpYaqD/nwqtt0iw361RLeVGvJgn37GeNkdaVY+JizNWsqR//TDeOG=daVY+JizNWsqR//TDeOG=

</xenc:EncryptedData></xenc:EncryptedData></m:GetLastTradePrice></m:GetLastTradePrice>

</SOAP</SOAP--ENV:Body>ENV:Body></SOAP</SOAP--ENV:Envelope>ENV:Envelope>

Page 37: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 38: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP BodySOAP Body

The one part of a SOAP message thatThe one part of a SOAP message that’’s s not optional is the Bodynot optional is the BodyThe Body block acts as a container for the The Body block acts as a container for the data being delivered by the SOAP data being delivered by the SOAP message (the payload)message (the payload)The Body construct can also be used to The Body construct can also be used to host exception information within a nested host exception information within a nested Fault elementFault element

Page 39: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP BodySOAP Body<?xml version="1.0"?> <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap--envelope">envelope">

<soap:Body> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"><m:GetPrice xmlns:m="http://www.w3schools.com/prices">

<m:Item>Apples</m:Item> <m:Item>Apples</m:Item> </m:GetPrice> </m:GetPrice>

</soap:Body></soap:Body>

</soap:Envelope> </soap:Envelope>

<?xml version="1.0"?> <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap--envelope">envelope">

<soap:Body> <soap:Body> <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices"><m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">

<m:Price>1.90</m:Price><m:Price>1.90</m:Price></m:GetPriceResponse></m:GetPriceResponse>

</soap:Body></soap:Body>

</soap:Envelope> </soap:Envelope>

Request

Response

Page 40: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 41: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Fault elementSOAP Fault elementAn error message from a SOAP message is carried An error message from a SOAP message is carried within the Fault elementwithin the Fault elementPlaced within the Body construct there can be only one Placed within the Body construct there can be only one Fault block Fault block The Fault block can have the following sub elementsThe Fault block can have the following sub elements

<Code> <Code> -- Mandatory Fault code : One of Mandatory Fault code : One of -- VersionMismatch, VersionMismatch, MustUnderstand, DataEncodingUnknown, Sender, ReceiverMustUnderstand, DataEncodingUnknown, Sender, Receiver<Reason> <Reason> -- Mandatory human readable error messageMandatory human readable error message<Node> <Node> -- The SOAP node that caused the errorThe SOAP node that caused the error<Detail> <Detail> -- application specific error informationapplication specific error information<Role> <Role> -- The role that the Soap node assumed during the The role that the Soap node assumed during the operationoperation

Page 42: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Fault SamplesSOAP Fault Samples<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap envelope<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap envelope"> "> <env:Body><env:Body>

<env:Fault><env:Fault><env:Code><env:Code>

<env:Value><env:Value>VersionMismatchVersionMismatch

</env:Value></env:Value></env:Code></env:Code><env:Reason><env:Reason>

<env:Text xml:lang="en"><env:Text xml:lang="en">versions do not matchversions do not match

</env:Text></env:Text></env:Reason></env:Reason>

</env:Fault></env:Fault></env:Body></env:Body>

</env:Envelope> </env:Envelope>

Page 43: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

SOAP Fault SamplesSOAP Fault Samples<?xml version='1.0' ?><?xml version='1.0' ?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap--envelope"envelope"

xmlns:rpc='http://www.w3.org/2003/05/soapxmlns:rpc='http://www.w3.org/2003/05/soap--rpc'>rpc'><env:Body><env:Body><env:Fault><env:Fault>

<env:Code><env:Code><env:Value>env:Sender</env:Value><env:Value>env:Sender</env:Value><env:Subcode><env:Subcode><env:Value>rpc:BadArguments</env:Value><env:Value>rpc:BadArguments</env:Value>

</env:Subcode></env:Subcode></env:Code></env:Code><env:Reason><env:Reason><env:Text xml:lang="en<env:Text xml:lang="en--US">Processing error</env:Text>US">Processing error</env:Text><env:Text xml:lang="cs">Chyba zpracov<env:Text xml:lang="cs">Chyba zpracováánníí</env:Text></env:Text>

</env:Reason></env:Reason><env:Detail><env:Detail><e:myFaultDetails <e:myFaultDetails

xmlns:e="http://travelcompany.example.org/faults">xmlns:e="http://travelcompany.example.org/faults"><e:message>Name does not match card number</e:message><e:message>Name does not match card number</e:message><e:errorcode>999</e:errorcode><e:errorcode>999</e:errorcode>

</e:myFaultDetails></e:myFaultDetails></env:Detail></env:Detail>

</env:Fault></env:Fault></env:Body></env:Body>

</env:Envelope></env:Envelope>

Page 44: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 45: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL WSDL –– Web Services Description Web Services Description LanguageLanguage

Web services must be described consistently so Web services must be described consistently so they can be discovered and interfaced with other they can be discovered and interfaced with other applicationsapplicationsWSDL is a specification for describing web WSDL is a specification for describing web servicesservicesA WSDL service description describes the point A WSDL service description describes the point of contact (Service EndPoint) of a web serviceof contact (Service EndPoint) of a web serviceA WSDL description tells us 3 thingsA WSDL description tells us 3 things

How to structure the payload when communicating How to structure the payload when communicating with a Servicewith a ServiceWhat protocol to use for communicationWhat protocol to use for communicationWhere to find the ServiceWhere to find the Service

Page 46: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL TerminologyWSDL TerminologyOperation Operation –– A single method in a Service is called an A single method in a Service is called an operation (method, function)operation (method, function)Message Message –– Input or Ouput Parameters to or from an Input or Ouput Parameters to or from an operation (arguments, return values)operation (arguments, return values)PortType PortType –– A collection of Operations is a PortType A collection of Operations is a PortType (service, object)(service, object)Binding Binding –– A construct that ties an operation to a A construct that ties an operation to a Transport ProtocolTransport ProtocolPort Port –– A construct that ties a Binding to a Location or an A construct that ties a Binding to a Location or an Address, creating a communication EndPointAddress, creating a communication EndPointService Service –– A collection of Ports or EndPointsA collection of Ports or EndPoints

Page 47: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 48: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL StructureWSDL Structure

Page 49: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <definitions>WSDL <definitions>At the Root of a WSDL document is the <definitions> elementAt the Root of a WSDL document is the <definitions> elementIt houses all the elements of the service description and bears It houses all the elements of the service description and bears the name of the name of the Servicethe ServiceIt is also the place where namespaces used within the WSDL are It is also the place where namespaces used within the WSDL are establishedestablished

<definitions<definitionsname="Employee"name="Employee"targetNamespace="http://www.xmltc.com/tls/employee/wsdl/"targetNamespace="http://www.xmltc.com/tls/employee/wsdl/"xmlns="http://schemas.xmlsoap.org/wsdl/"xmlns="http://schemas.xmlsoap.org/wsdl/"xmlns:act="http://www.xmltc.com/tls/employee/schema/accounting/xmlns:act="http://www.xmltc.com/tls/employee/schema/accounting/""xmlns:hr="http://www.xmltc.com/tls/employee/schema/hr/"xmlns:hr="http://www.xmltc.com/tls/employee/schema/hr/"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:tns="http://www.xmltc.com/tls/employee/wsdl/"xmlns:tns="http://www.xmltc.com/tls/employee/wsdl/"xmlns:xsd="http://www.w3.org/2001/XMLSchema">xmlns:xsd="http://www.w3.org/2001/XMLSchema">......

</definition> </definition>

Page 50: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <types>WSDL <types>The WSDL document will refer to various input The WSDL document will refer to various input and output parameters whose types are defined and output parameters whose types are defined within the <types> elementwithin the <types> elementThe actual schema construct can be included The actual schema construct can be included within the <types> element or an external xsd within the <types> element or an external xsd file can be referenced in this area or bothfile can be referenced in this area or bothThis area usually has substantial content but it is This area usually has substantial content but it is not mandatory. If your messages only use native not mandatory. If your messages only use native XSD schema types (eg xsd:string, xsd:integer) XSD schema types (eg xsd:string, xsd:integer) then they can be directly used within the then they can be directly used within the message element and the <types> section can message element and the <types> section can be left outbe left out

Page 51: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <types>WSDL <types>

<types><types><schema xmlns="http://www.w3.org/2001/XMLSchema" <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.xmltc.com/railco/transform/schemtargetNamespace="http://www.xmltc.com/railco/transform/schema/">a/"><complexType name="ReturnCodeType"><complexType name="ReturnCodeType"><sequence><sequence><element name="Code" type="xsd:integer"/><element name="Code" type="xsd:integer"/><element name="Message" type="xsd:string"/><element name="Message" type="xsd:string"/>

</sequence></sequence></complexType></complexType>

</schema></schema></types> </types>

<types><types><import namespace="http://www.xmltc.com/tls/schemas/" <import namespace="http://www.xmltc.com/tls/schemas/"

location="http://www.xmltc.com/tls/schemas/employee.xsd"/> location="http://www.xmltc.com/tls/schemas/employee.xsd"/> </types> </types>

Inline Schema

Imported XSD

Page 52: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <messages> & <parts>WSDL <messages> & <parts>A message is protocol independentA message is protocol independentThere is an input or request message, which is There is an input or request message, which is sent from the client to the service, and there is a sent from the client to the service, and there is a output or response message, which is sent back output or response message, which is sent back the opposite waythe opposite wayEach <message> element contains one or more Each <message> element contains one or more <part> elements.<part> elements.<part> element corresponds to the parameter or <part> element corresponds to the parameter or a return value in the RPC call.a return value in the RPC call.The part name order reflects the order of the The part name order reflects the order of the parameters in the RPC signature.parameters in the RPC signature.

Page 53: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <messages> & <parts>WSDL <messages> & <parts><message name="getEmployeeWeeklyHoursRequestMessage">

<part name="RequestParameter" element="act:EmployeeHoursRequestType"/>

</message>

<message name="getEmployeeWeeklyHoursResponseMessage">

<part name="ResponseParameter" element="act:EmployeeHoursResponseType"/>

</message>

<message name="getID"><part type="xsd:integer"/>

</message>

Page 54: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <portType> & <operation>WSDL <portType> & <operation>

Service operations are defined within the Service operations are defined within the portType area of the WSDL definitionportType area of the WSDL definitionportType constructs simply represent portType constructs simply represent collections of operationscollections of operationsIndividual operations are defined using the Individual operations are defined using the aptly named aptly named operationoperation element. element.

Page 55: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <portType> & <operation>WSDL <portType> & <operation>

<portType name="EmployeeInterface">

<operation name="GetWeeklyHoursLimit">

...

</operation>

<operation name="UpdateHistory">

...

</operation>

</portType>

Page 56: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <input> & <output>WSDL <input> & <output>Each operation construct contains input and/or output Each operation construct contains input and/or output child elements that represent the request and response child elements that represent the request and response messages the operation is capable of processingmessages the operation is capable of processingThe respective input and output elements are assigned The respective input and output elements are assigned messages defined in the message constructs (explained messages defined in the message constructs (explained in the previous section) via their message attributes. in the previous section) via their message attributes. The presence of input and output elements, and the The presence of input and output elements, and the sequence in which they are displayed generally establish sequence in which they are displayed generally establish one of several predefined message exchange patterns one of several predefined message exchange patterns (MEPs) for the operation(MEPs) for the operation

Page 57: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <input> & <output>WSDL <input> & <output><operation name="GetWeeklyHoursLimit">

<input message="tns:getWeeklyHoursRequestMessage"/>

<output message="tns:getWeeklyHoursResponseMessage"/>

</operation>

<operation name="UpdateHistory">

<input message="tns:updateHistoryRequestMessage"/>

<output message="tns:updateHistoryResponseMessage"/>

</operation>

<operation name="Submit">

<input message="tns:receiveSubmitMessage"/>

</operation>

Page 58: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <binding>WSDL <binding>

The binding element begins the concrete portion The binding element begins the concrete portion of the service definition, in order to assign a of the service definition, in order to assign a communications protocol that can be used to communications protocol that can be used to access and interact with the web serviceaccess and interact with the web serviceUpon first glance, the binding element appears Upon first glance, the binding element appears similar in structure to the portType element. As similar in structure to the portType element. As with portType, the binding construct contains with portType, the binding construct contains one or more operation elements. one or more operation elements.

Page 59: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <binding>WSDL <binding>The <binding> element has 2 attributesThe <binding> element has 2 attributes

name name –– defines the name of the bindingdefines the name of the bindingtype type –– points to the portType for the bindingpoints to the portType for the binding

The <operation> sub element represents each The <operation> sub element represents each operationoperationThe <binding> element is essentially The <binding> element is essentially dedicated to extensibility elements that will dedicated to extensibility elements that will provide concrete grammar for input, output provide concrete grammar for input, output and fault messages within each operation and fault messages within each operation specific to the Protocol that the portType is specific to the Protocol that the portType is being bound tobeing bound to

Page 60: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL SOAP <binding>WSDL SOAP <binding><binding type="glossaryTerms" name="b1">

<soap:binding style="document“

transport="http://schemas.xmlsoap.org/soap/http" />

<operation>

<soap:operation soapAction="http://example.com/getTerm"/>

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

</binding>

Page 61: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL HTTP <binding>WSDL HTTP <binding>EXAMPLE : GET, URL="http://example.com/computeAverage?n1=1&n2=2&n3=3

<binding name=“computeAverage" type=“computeAveragePortType">

<http:binding verb="GET"/>

<operation name=“computeAverage">

<http:operation location="computeAverage"/>

<input>

<http:urlEncoded/>

</input>

<output>

<mime:content type=“text/xml"/>

</output>

</operation>

</binding>

Page 62: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL SMTP <binding>WSDL SMTP <binding><binding name="StockQuoteSoap" type="tns:StockQuotePortType">

<soap:binding style="document" transport="http://example.com/smtp"/>

<operation name="SubscribeToQuotes">

<input message="tns:SubscribeToQuotes">

<soap:body parts="body" use="literal"/>

<soap:header message="tns:SubscribeToQuotes"

part="subscribeheader" use="literal"/>

</input>

</operation>

</binding>

Page 63: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <service> & <port>WSDL <service> & <port>

The <service> element simply provides a The <service> element simply provides a physical address at which the service can physical address at which the service can be accessedbe accessedIt hosts the port element that contains the It hosts the port element that contains the location informationlocation information

Page 64: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <service> & <port>WSDL <service> & <port>SOAP<service name="EmployeeService">

<port binding="tns:EmployeeBinding" name="EmployeePort">

<soap:address location="http://www.xmltc.com/tls/employee/"/>

</port>

</service>

SMTP

<service name="StockQuoteService">

<port name="StockQuotePort" binding="tns:StockQuoteSoap">

<soap:address location="mailto:[email protected]"/>

</port>

</service>

Page 65: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL <service> & <port>WSDL <service> & <port>HTTP<service name="service1">

<port name="port1" binding="tns:b1">

<http:address location="http://example.com/"/>

</port>

<port name="port2" binding="tns:b2">

<http:address location="http://example.com/"/>

</port>

<port name="port3" binding="tns:b3">

<http:address location="http://example.com/"/>

</port>

</service>

Page 66: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 67: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

UDDIUDDIThe Universal Description, Discovery and Integration The Universal Description, Discovery and Integration (UDDI) specifications define a registry service for Web (UDDI) specifications define a registry service for Web services and for other electronic and nonservices and for other electronic and non--electronic electronic servicesservicesA UDDI registry service is a Web service that manages A UDDI registry service is a Web service that manages information about service providers, service information about service providers, service implementations, and service metadataimplementations, and service metadataService providers can use UDDI to advertise the Service providers can use UDDI to advertise the services they offerservices they offerService consumers can use UDDI to discover services Service consumers can use UDDI to discover services that suit their requirements and to obtain the service that suit their requirements and to obtain the service metadata needed to consume those servicesmetadata needed to consume those services

Page 68: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

UDDIUDDIUDDI registries comprise 3 types of listings : White UDDI registries comprise 3 types of listings : White Pages, Yellow Pages, Green PagesPages, Yellow Pages, Green PagesWhite Pages contain Contact Info (like a phone White Pages contain Contact Info (like a phone directory)directory)Yellow Pages contain service listings by Business Yellow Pages contain service listings by Business Categories (like a yellow pages directory)Categories (like a yellow pages directory)Green Pages contain technical info about services Green Pages contain technical info about services offered by businesses includingoffered by businesses including

What type of service is offeredWhat type of service is offeredWhere the service is located (service, port)Where the service is located (service, port)What transport protocol to use (binding)What transport protocol to use (binding)How to interact with the service (portType, messages)How to interact with the service (portType, messages)

Page 69: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 70: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

UDDI UDDI –– Data StructuresData StructuresThe core information model of UDDI registries is made of The core information model of UDDI registries is made of several data structures:several data structures:

businessEntitybusinessEntity (info about the organization that published (info about the organization that published the service)the service)businessServicebusinessService (description of a service business function)(description of a service business function)bindingTemplatebindingTemplate (service(service’’s technical details)s technical details)tModeltModel (attributes or metadata about the service such as (attributes or metadata about the service such as taxonomies, transports, digital signatures)taxonomies, transports, digital signatures)publisherAssertionspublisherAssertions (relationship among entities in the (relationship among entities in the registry)registry)subscriptionsubscription (standing request to track changes to a list of (standing request to track changes to a list of entities)entities)

Each data structure within a given registry is assigned a Each data structure within a given registry is assigned a Universally Unique ID (or Universally Unique ID (or ““keykey””, also called UUID), also called UUID)UDDI allows users to specify different taxonomies for UDDI allows users to specify different taxonomies for providing semantic structure to the information about providing semantic structure to the information about Web services contained in a registryWeb services contained in a registry

Page 71: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

UDDI UDDI –– Data StructuresData Structures

Page 72: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 73: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

UDDI UDDI –– Querying APIQuerying APISOAP requests (and answers) for retrieving services or activitieSOAP requests (and answers) for retrieving services or activitiess

To be used as a first step during searches or when little info iTo be used as a first step during searches or when little info is requireds requiredKeys are returned identifying services or activities that can beKeys are returned identifying services or activities that can be used used for further discoveryfor further discovery

find_businessfind_businessFor searching an activity using several different criteria (nameFor searching an activity using several different criteria (name, category), category)Returns a businessList structureReturns a businessList structure

find_bindingfind_bindingFor searching a binding template associated to a serviceFor searching a binding template associated to a serviceReturns a bindingDetail structureReturns a bindingDetail structure

find_relatedBusinessfind_relatedBusinessUses the business key, returned by find_business, to find busineUses the business key, returned by find_business, to find business related to itss related to it

find_servicefind_serviceFor retrieving services published by an activityFor retrieving services published by an activityReturns a serviceList structureReturns a serviceList structure

find_tModelfind_tModelFor searching tModel structures by name or other criteriaFor searching tModel structures by name or other criteriaReturns a tModelList structureReturns a tModelList structure

Page 74: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

UDDI UDDI –– Querying APIQuerying APIThese are other SOAP requests (and answers) that use These are other SOAP requests (and answers) that use the keys obtained from previous calls for retrieving the keys obtained from previous calls for retrieving detailed records about services or activitiesdetailed records about services or activitiesSeveral keys can be used for each requestSeveral keys can be used for each request

get_bindingDetailget_bindingDetailUses a bindingKey to return a bindingDetail structureUses a bindingKey to return a bindingDetail structure

get_businessDetail, get_businessDetailExtget_businessDetail, get_businessDetailExtUses a businessKey to return a businessDetail structure (with mUses a businessKey to return a businessDetail structure (with more ore or less attributes)or less attributes)

get_serviceDetailget_serviceDetailUses a serviceKey to return a serviceDetail structureUses a serviceKey to return a serviceDetail structure

get_tModelDetailget_tModelDetailUses a tModelKey to return a tModelDetail structureUses a tModelKey to return a tModelDetail structure

Page 75: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

UDDI UDDI –– Publishing APIPublishing APIPublishing on a UDDI registry, unlike querying, requires Publishing on a UDDI registry, unlike querying, requires authorizationauthorizationUDDIUDDI is in charge of verifying authorizations since SOAP can is in charge of verifying authorizations since SOAP can notnotLoggingLogging is achieved through a get_authToken request that is achieved through a get_authToken request that return a authToken to be used for subsequent interactions, untilreturn a authToken to be used for subsequent interactions, untila discard_authToken is issued at the end of the interactiona discard_authToken is issued at the end of the interactionPublishingPublishing means saving and deleting the four main UDDI means saving and deleting the four main UDDI objects (services, activities, bindings, tModels)objects (services, activities, bindings, tModels)SaveSave operations require one or more objects of the relevant kind operations require one or more objects of the relevant kind (businessEntity, businessService, bindingTemplate, tModel)(businessEntity, businessService, bindingTemplate, tModel)DeleteDelete operations require one or more object key(s) operations require one or more object key(s) (businessKey, serviceKey, bindingKey, tModelKey)(businessKey, serviceKey, bindingKey, tModelKey)Last, for establishing a Last, for establishing a relation between different businessesrelation between different businesses(find_relatedBusinesses), they both have to explicitly declare i(find_relatedBusinesses), they both have to explicitly declare itt

Page 76: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Web ServicesWeb ServicesConceptsConcepts

SOAPSOAPSOAP Processing ModelSOAP Processing ModelProcessing of SOAP Processing of SOAP messagesmessagesSOAP FeaturesSOAP FeaturesSOAP HeaderSOAP HeaderSOAP BodySOAP BodySOAP FaultSOAP Fault

WSDLWSDLWSDL OverviewWSDL OverviewWSDL StructureWSDL Structure

UDDIUDDIUDDI OverviewUDDI OverviewUDDI Data StructuresUDDI Data StructuresUDDI APIUDDI API

WSDL & UDDIWSDL & UDDIMapping WSDL to UDDIMapping WSDL to UDDI

Page 77: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL & UDDIWSDL & UDDIUDDI provides a way of describing and UDDI provides a way of describing and discovering Web services and Web service discovering Web services and Web service providersprovidersWSDL, that describes the abstract interfaces, WSDL, that describes the abstract interfaces, protocol bindings and deployment details of protocol bindings and deployment details of network services, can be seen as a complement to network services, can be seen as a complement to the UDDI standardthe UDDI standardUnderstanding the relationship between WSDL Understanding the relationship between WSDL and UDDI and establishing a mapping between and UDDI and establishing a mapping between them allows tothem allows to

Enable Enable automatic registrationautomatic registration of WSDL definitions in of WSDL definitions in UDDIUDDIEnable precise and flexible UDDI Enable precise and flexible UDDI queriesqueries based on based on specific WSDL artifacts and metadataspecific WSDL artifacts and metadata

Page 78: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL & UDDIWSDL & UDDItModels are used to contain Technical Blueprints tModels are used to contain Technical Blueprints (eg : Specifications) or a Taxonomy(eg : Specifications) or a TaxonomyDesigners of a Spec register information about the Designers of a Spec register information about the Spec in a tModel, giving it a unique ID (tModelKey)Spec in a tModel, giving it a unique ID (tModelKey)Other parties can express the availability of Web Other parties can express the availability of Web services that are compliant with a specification by services that are compliant with a specification by including a reference to the tModelKey in their including a reference to the tModelKey in their bindingTemplatebindingTemplateIf one knows the tModelKey value, one can find If one knows the tModelKey value, one can find out whether a particular business or entity has out whether a particular business or entity has registered a compliant Web Serviceregistered a compliant Web Service

Page 79: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model
Page 80: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL WSDL –– UDDI mapping : UDDI mapping : portType portType -- tModeltModel

overviewURLoverviewURLLocation of WSDL docLocation of WSDL doctModelNametModelNameLocal name of Local name of portTypeportType

keyedReferencekeyedReference in in categoryBagcategoryBag

portTypeportType NamespaceNamespacetModeltModelportTypeportType

UDDIUDDIWSDLWSDL

Page 81: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL WSDL –– UDDI mapping : UDDI mapping : binding binding -- tModeltModel

keyedReferencekeyedReference in in categoryBagcategoryBagTransport from binding Transport from binding extension (if there is one)extension (if there is one)

keyedReferencekeyedReference in in categoryBagcategoryBagProtocol from binding extensionProtocol from binding extensionkeyedReferencekeyedReference in in categoryBagcategoryBagportTypeportType binding relates tobinding relates tooverviewURLoverviewURLLocation of WSDL docLocation of WSDL doctModelNametModelNameLocal name of bindingLocal name of bindingkeyedReferencekeyedReference in in categoryBagcategoryBagbinding Namespacebinding Namespace

tModeltModel (categorized as binding (categorized as binding and and wsdlSpecwsdlSpec))

bindingbindingUDDIUDDIWSDLWSDL

Page 82: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL WSDL –– UDDI mapping : UDDI mapping : service service -- businessServicebusinessService

namename of the of the businessServicebusinessService

Local name of ServiceLocal name of Service

keyedReferencekeyedReference in in categoryBagcategoryBag

Service NamespaceService Namespace

businessServicebusinessService(categorized as service)(categorized as service)

ServiceServiceUDDIUDDIWSDLWSDL

Page 83: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

WSDL WSDL –– UDDI mapping : UDDI mapping : port port -- bindingTemplatebindingTemplate

tModelInstanceInfotModelInstanceInfo with with tModelKeytModelKey of the of the tModeltModelcorresponding to the corresponding to the portTypeportType

portTypeportType implemented by portimplemented by port

tModelInstanceInfotModelInstanceInfo with with tModelKeytModelKey of the of the tModeltModelcorresponding to the bindingcorresponding to the binding

Binding implemented by portBinding implemented by port

InstanceParmsInstanceParms of the of the tModelInstanceInfotModelInstanceInfo related to related to the the tModeltModel for the bindingfor the binding

port Local Nameport Local Name

Captured in the Captured in the keyedReferencekeyedReferenceof the containing of the containing businessServicebusinessService

port Namespaceport NamespacebindingTemplatebindingTemplateportport

UDDIUDDIWSDLWSDL

Page 84: Web Services - Dhirubhai Ambani Institute of Information ...courses.daiict.ac.in/.../0/IT556_SOC/lecture_notes/Web_Services.pdf · Web Services Concepts SOAP SOAP Processing Model

Thank YouThank YouKumar MajethiaKumar Majethia

Probity Soft Pvt. Ltd.Probity Soft Pvt. Ltd.