Академический Документы
Профессиональный Документы
Культура Документы
service provider
application object (service provider)
SOAP-based middleware
SOAP messages exchanged on top of, HTTP, SMTP, or other transport converts procedure calls to/from XML messages sent through HTTP or other protocols.
SOAP-based middleware
service requestor
application object (client) stub
service provider
application object (service provider) skeleton
SOAP-based middleware
SOAP messages
SOAP-based middleware
service requestor
application object (client) stub
service provider
application object (service provider) skeleton
SOAP-based middleware
SOAP messages
SOAP-based middleware
SOAP-based middleware
service descriptions
UDDI registry
SOAP body
body block
(a) Document-style interaction SOAP envelope SOAP body method name orderGoods input parameter 1 product item input parameter 2 quantity SOAP envelope SOAP body method return return value order id
<?xml version='1.0' ?> <env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope" > <env:Header> <t:transactionID xmlns:t="http://intermediary.example.com/procurement" env:role="http://www.w3.org/2002/06/soap-envelope/role/next" env:mustUnderstand="true" > 57539 </t:transactionID> </env:Header>
envelope header
blocks
<env:Body> <m:orderGoods env:encodingStyle="http://www.w3.org/2002/06/soap-encoding" xmlns:m="http://example.com/procurement"> <m:productItem> <name>ACME Softener</name> </m:productItem> <m:quantity> 35 </m:quantity> </m:orderGoods> </env:Body> </env:Envelope>
body
HTTP Post SOAP envelope SOAP header transactional context SOAP body
service requestor
SOAP engine HTTP engine
service provider
HTTP engine SOAP engine
HTTP Post SOAP envelope SOAP header transactional context SOAP body return parameter
service requestor
client implementation
invokes the service as a local call
service provider
service implementation
invokes the local procedure of the service implementation
client stub
invoke SOAP engine to prepare SOAP message
server stub
the router parses the message, identifies the appropriate stub, and delivers the parsed message
SOAP engine
packages SOAP into HTTP and passes it to an HTTP client that sends it to the provider
SOAP router
passes the content of the HTTP message to the router
HTTP engine
HTTP server
concrete part
bindings services and ports
<?xml version="1.0"?> <definitions name="Procurement" targetNamespace="http://example.com/procurement/definitions" xmlns:tns="http://example.com/procurement/definitions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" > <message name="OrderMsg"> <part name="productName" type="xs:string"/> <part name="quantity" type="xs:integer"/> </message>
<binding name="ProcurementSoapBinding" type="tns:procurementPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="orderGoods"> <soap:operation soapAction="http://example.com/orderGoods"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="ProcurementService"> <port name="ProcurementPort" binding="tns:ProcurementSoapBinding"> <soap:address location="http://example.com/procurement"/> </port> </service> </definitions>
2
WSDL compiler (client side) WSDL compiler (server side)
1
WSDL generator
service requestor
application object (client)
stub
service provider
application object (service provider)
skeleton
SOAP-based middleware
SOAP messages
SOAP-based middleware
businessEntity name contacts description identifiers categories businessService service key name description categories
tModel tModel tModel key key key name name name description description description overviewDoc overviewDoc overviewDoc identifiers identifiers identifiers categories categories categories
tModel tModel key key name name description description overviewDoc overviewDoc identifiers identifiers categories categories
<tModel tModelKey=uddi:uddi.org:v3_publication> <name>uddi-org:publication_v3</name> <description>UDDI Publication API V3.0</description> <overviewDoc> <overviewURL useType=wsdlInterface> http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Publication_SoapBinding </overviewURL> </overviewDoc> <overviewDoc> <overviewURL useType=text> http://uddi.org/pubs/uddi_v3.htm#PubV3 </overviewURL> </overviewDoc> <categoryBag> <keyedReference keyName=uddi-org:types:wsdl keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types/> <keyedReference keyName=uddi-org:types:soap keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types/> <keyedReference keyName=uddi-org:types:xml keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types/> <keyedReference keyName=uddi-org:types:specification keyValue="specification" tModelKey="uddi:uddi.org:categorization:types/> </categoryBag>
classification information (specifies that this tModel is about XML, WSDL, and SOAP specs)
</tModel>
service requestor
service provider
SOAP/HTTP
SOAP/HTTPS
Inquiry API
Publishers API
Inquiry API
Publishers API
Web service interface Subscription, Replication, and Custody transfer APIs (SOAP/HTTPS)
service descriptions
UDDI registry A
service descriptions
UDDI registry B
service requestor
service provider
SOAP/HTTPS
Publishers API tModel businessEntity
service descriptions
UDDI registry
businessService bindingTemplate
<?xml version="1.0"?> <find_tModel generic="1.0" xmlns="urn:uddi-org:api"> <categoryBag> <keyedReference tModelKey="UUID:C25893AF-1977-3528-36B5-4192C2AB9E2C" keyName="uddi-org:types" keyValue="wsdlSpec"/> <keyedReference tModelKey="UUID:A15019C5-AE14-236C-331C-650857AE0221" keyName="book pricing" keyValue="36611349"/> </categoryBag>
service provider
WSDL generator
WSDL compiler
UDDI publisher
Inquiry API
Publishers API
UDDI registry