Web ServicesWeb ServicesComponents of the Components of the “Transactional Web”“Transactional Web”
James Snell
OverviewOverview
What is the “Transactional Web”What is the “Transactional Web” The Web Services StackThe Web Services Stack
Web Service Description Language Web Service Description Language (WSDL)(WSDL)
Universal Description, Discovery and Universal Description, Discovery and Integration (UDDI)Integration (UDDI)
Web Services and the Semantic WebWeb Services and the Semantic Web Discussion/Q&ADiscussion/Q&A
What is the “Transactional What is the “Transactional Web”Web”
Today: “The eye-ball Web” - the Today: “The eye-ball Web” - the architecture of the Web is geared architecture of the Web is geared towards delivering information towards delivering information visually.visually.
Tomorrow: “The transactional Web” – Tomorrow: “The transactional Web” – the architecture of the Web geared the architecture of the Web geared towards intelligently exchanging towards intelligently exchanging information between applications.information between applications.
What is the “Transactional What is the “Transactional Web”Web”
““Web Services” (plural) is a blanket Web Services” (plural) is a blanket term representing all of the term representing all of the technologies that enable the technologies that enable the “transactional web” to exist.“transactional web” to exist.
““Web Service” (singular) is a term Web Service” (singular) is a term referring to a collection of application referring to a collection of application operations accessible over a network operations accessible over a network using Web Services technologies.using Web Services technologies.
WSAHWSAH(Web Services Acronym Hell)(Web Services Acronym Hell)
XML
SOAP
WSDL
UDDIWSFL
DISCO
PKIXKMS
SAML
ebXML
XML-RPC
XMLP
XML-DIGSIG
XML-ENCSOAP-
SEC
X-KISS
CPP-CPA
WSEL
SOAP-RP
DIME
XLANG
DISCO
JABBER
(Tylenol with Codeine - which is what you’ll need after reading about all of
these)
P3P
DSML
DAML-S
XSD
TWC
The Web Services StackThe Web Services StackWire
ProtocolsDescription Discovery
TCP/IP
HTTP/SMTP/BEEP
XML
SOAP/XMLP
SOAP Blocks
XML
WSDL
WSDL Extensions
Process
Agreements
Inspection
Registry (UDDI)
The Web Services Stack helps us understand how each of the various pieces fit into the “Big Picture”
The Web Services StackThe Web Services Stack
Wire ProtocolsWire Protocols Primary Role: provide a standard, Primary Role: provide a standard,
flexible communications channelflexible communications channel Secondary Role: provide a standard, Secondary Role: provide a standard,
flexible wire-level data representationflexible wire-level data representation
Advantage: interoperability at the lowest Advantage: interoperability at the lowest level level
The Web Services StackThe Web Services Stack
DescriptionDescription Primary Role: provide a standard, Primary Role: provide a standard,
flexible way to describe what and how a flexible way to describe what and how a Web service does what it does.Web service does what it does.
Advantage: interoperabilityAdvantage: interoperability
The Web Services StackThe Web Services Stack
DiscoveryDiscovery Primary Role: provide a standard, Primary Role: provide a standard,
flexible way to discover where a Web flexible way to discover where a Web service is located and where to find service is located and where to find more information about what the Web more information about what the Web service does (the service does (the descriptiondescription))
Advantage: interoperability, dynamic Advantage: interoperability, dynamic integrationintegration
WSDL - OverviewWSDL - Overview
WSDL is a simple XML grammar for WSDL is a simple XML grammar for describing how to communicate with a describing how to communicate with a Web serviceWeb service It defines the messages (both abstract and It defines the messages (both abstract and
concrete) that are sent to and from a serviceconcrete) that are sent to and from a service It defines logical collections of messages (“port It defines logical collections of messages (“port
type”, “interface”)type”, “interface”) It defines how a given “port type” is bound to It defines how a given “port type” is bound to
particular wire protocolsparticular wire protocols It defines where the service is locatedIt defines where the service is located
WSDL - OverviewWSDL - Overview<definitions>
<types> <!-- XML Schema --> </types>
<message name=“getQuote_In” />
<message name=“getQuote_Out” />
<portType name=“StockQuoteServiceInterface”>
<operation name=“getQuote”>
<input message=“getQuote_In” />
<output message=“getQuote_Out” />
</operation>
</portType>
<binding name=“StockQuoteServiceBinding” type=“StockQuoteServiceInterface”>
<soap:binding transport=“http://schemas.xmlsoap.org/soap/http” />
…
</binding>
<service name=“StockQuoteService”>
<port name=“StockQuoteServicePort” binding=“StockQuoteServiceBinding”>
<soap:address location=“http://www.acme.com/services/stockquote” />
</port>
</service>
</definitions>
Definition of data types
Definition of messages
Definition of port type
Definition of the bindings
Definition of the service
WSDL OverviewWSDL Overview
WSDL is extensible.WSDL is extensible. WSDL was created by IBM and MicrosoftWSDL was created by IBM and Microsoft
The intent was to create something that The intent was to create something that worked, not something that was completeworked, not something that was complete
Creating a formal Web Services “data Creating a formal Web Services “data model” was model” was notnot a priority a priority
WSDL is RDF-compatible (WSDL is RDF-compatible (notnot RDF- RDF-compliant)compliant)
UDDI OverviewUDDI Overview
UDDI is:UDDI is: A Web Services API for publishing and A Web Services API for publishing and
discovering the existence of Web discovering the existence of Web servicesservices
A registry for managing information A registry for managing information about Web servicesabout Web services
A coalition of organizations working A coalition of organizations working together to manage UDDI registries and together to manage UDDI registries and to further develop the Web Services API to further develop the Web Services API for accessing those registries.for accessing those registries.
UDDI OverviewUDDI Overview
UDDI is built around a “Yellow-pages” UDDI is built around a “Yellow-pages” like data model:like data model:
Business Entity
Business Services
Service Bindings
Categories
Identities
TModels
UDDI OverviewUDDI Overview
TModel = “Technology Model”TModel = “Technology Model”
TModel TModel Instance
Abstract metadata definition relating to some aspect of the UDDI registration
Implementation specific metadata conforming to a given TModel.
TModel = Abstract Class
UDDI OverviewUDDI Overview
TModelsTModels Categories & IdentifiersCategories & Identifiers
Categorization and Identification taxonomies are TModelsCategorization and Identification taxonomies are TModels Categories and Identifiers are TModel InstancesCategories and Identifiers are TModel Instances Keyed ReferencedKeyed Referenced
Name + Value + TModelName + Value + TModel Examples: NAICS, UNSPSC, D&B #Examples: NAICS, UNSPSC, D&B #
WSDL Port TypesWSDL Port Types WSDL Port Types are TModelsWSDL Port Types are TModels WSDL Services that are bound to a Port Type are TModel WSDL Services that are bound to a Port Type are TModel
InstancesInstances WSFL Business ProcessesWSFL Business Processes
WSFL Flow Models are TModelsWSFL Flow Models are TModels WSFL Global Models are TModel instancesWSFL Global Models are TModel instances
TModels represent the extent of UDDI’s semantic description capabilities.
UDDI OverviewUDDI Overview
UDDI has only limited extensibility UDDI has only limited extensibility through TModelsthrough TModels
UDDI was created by IBM, Microsoft UDDI was created by IBM, Microsoft and Ariba (many companies have and Ariba (many companies have joined the effort)joined the effort)
The intent was to put something The intent was to put something together that worked.together that worked.
UDDI OverviewUDDI Overview
UDDI Version 1.0 – September 2000 UDDI Version 1.0 – September 2000 (in production)(in production)
UDDI Version 2.0 – June 2001UDDI Version 2.0 – June 2001 UDDI Version 3.0 - In developmentUDDI Version 3.0 - In development
UDDI will be presented to a UDDI will be presented to a standards body after Version 3.0standards body after Version 3.0
Web Services and the Web Services and the Semantic WebSemantic Web
Complimentary GoalsComplimentary Goals Semantic WebSemantic Web
It’s about making links between information It’s about making links between information more intelligent.more intelligent.
Transactional Web (Web Services)Transactional Web (Web Services) It’s about improving the way information is It’s about improving the way information is
exchangedexchanged
Web Services and the Web Services and the Semantic WebSemantic Web
Different Points of ViewDifferent Points of View Semantic WebSemantic Web
Derives the puzzle-pieces from the big Derives the puzzle-pieces from the big picturepicture
Transactional WebTransactional Web Derives the big picture from the puzzle-Derives the big picture from the puzzle-
piecespieces
Web Services and the Web Services and the Semantic WebSemantic Web
Meeting in the middleMeeting in the middle Semantic WebSemantic Web
Provides a formal data-model for Web Provides a formal data-model for Web ServicesServices
Transactional WebTransactional Web Provides a technology foundation for the Provides a technology foundation for the
Semantic WebSemantic Web
Discussion / Q&ADiscussion / Q&A
??