Title: Web Services
1Web Services
- Larry Kerschberg,Co-Director
- E-Center for E-Business
- George Mason University
2Outline
- Web Services Definition
- Web Services versus Web Sites
- Web Services Protocols and Standards
- Conclusions
3Web Services
- Web services are Internet-based applications that
fulfill a specific task or set of tasks, which
can be combined with other Web services to
maintain workflow or perform business
transactions. - Airline, hotel and rental car reservation
process, - Loan approval process
- Users access Web services online offline via
PCs, cell phones, Personal Digital Assistants. - Programs can also access Web services directly.
4Web Services (continued)
- Web services communicate with each other
- Share information about their functions roles
in an applications workflow, - Publish the inputs they require outputs they
generate, - The result is just-in-time integration of
business applications. - Each self-contained business service becomes an
application that will easily integrate with other
services (from the same or different companies)
to create a complete business process.
5Web Sites and Web Services
Web Site
HTTP
Web Access User Interface
Internet
HTTP
Computer Program
Internet
SOAP
SOAP
HTTP Hypertext Transfer Protocol SOAP Simple
Object Access Protocol
6Travel Web Service Portal
Travel Portal
Web Site
HTTP
Web Access User Interface
Internet
HTTP
SOAP
SOAP
SOAP
SOAP
7Web Services, XML and Metadata
Delivery of Service Approval Or Denial
Delivery of Service Credit Verification
Online Loan Applicant
Credit Reporting Service
XML Server
XML Server
Delivery of Service Loan approval procurement
Meta Data
Universal Business Registry
Delivery of Service Loan insurance approval
XML Documents
XML Server
XML Server
Web Services Meta Repository (WSMR)
Financial Institutions
8Web Service Standards
- Simple Object Access Protocol (SOAP)
- http//www.w3.org/TR/SOAP/
- Web Services Description Language (WSDL)
- http//msdn.microsoft.com/xml/general/wsdl.asp
- Universal Description, Discovery and Integration
(UDDI) - http//www.uddi.org
9Simple Object Access Protocol (SOAP)
- SOAP is an XML-based messaging framework
- Designed to exchange data over the Internet
- Can send request, reply messages or entire
documents. - Neutral with respect to Operating System.
- SOAP and XML provide a means for two or more
portals, marketplaces or trading partners to
agree on common data exchange services for
exposing services to the Web for creating
distributed the virtual enterprise.
10Discovering SOAP Services
- Enterprise A uses URL provided by Enterprise B to
get list of published services. - Enterprise A downloads the XML schemas (using
WSDL) describing services message formats. - Enterprise A formats and sends XML message via
SOAP to Enterprise B - Enterprise B responds via SOAP, which A
interprets using XML Schema.
11SOAP Message Format
- SOAP supports two basic XML message formats
- Self-describing EAI (Enterprise Application
Integration) and EDI (Electronic Data
Interchange). - Remote procedure call (RPC) style interactions
that model object method invocation and parameter
passing.
12SOAP Message Format
- Envelope
- Marks the start and end of a SOAP message.
- Header (optional)
- Used to include RPC style interaction.
- Can contain no header or several headers.
- Body
- Contains the actual message or document being
sent. - SOAP message elements are defined using schemas
and qualified using namespaces.
13SOAP Envelope
- SOAP Envelope defines a framework for describing
message contents and how to process it. - Rules for encoding the data transfer
- Agree by downloading the same XML schema.
- http//schemas.xmlsoap.org/soap/envelope/
- http//schemas.xmlsoap.org/soap/encoding/
14SOAP Header
- Each header must be defined within an associated
XML schema, - Allow features such as security, transactions,
and quality of service attributes to be
specified. - Must be understood by both parties,
- Allows consumers and publishers to negotiate
agreement on support of a given header or a set
of headers.
15SOAP Body
- Contains application-defined XML data being
exchanged in message. - Either a single, self-describing structure, or
- Remote Procedure Call (RPC) interface with method
name and typed parameters. - Next slide shows an example of a stock quote
request and response.
16SOAP Example
- Request
- ltSOAP-ENV Envelopegt
-
- ltSOAP-ENV Bodygt
- ltmGetLastTradePrice xmlnsm-Some-URIgt
- ltsymbolgtMSFTlt/symbolgt
- lt/m GetLastTradePricegt
- lt/SOAP-ENVBodygt
- lt/SOAP-ENV Envelopegt
- Response
- ltSOAP-ENV Envelopegt
-
- ltSOAP-ENV Bodygt
- ltmGetLastTradePriceResponse xmlnsm-Some-URIgt
- ltPricegt63.00lt/Pricegt
- lt/m GetLastTradePriceResponsegt
- lt/SOAP-ENVBodygt
- lt/SOAP-ENV Envelopegt
17Web Services Description Language (WSDL)
- WSDL is a form of XML Schema to define the XML
message, operation and protocol mapping of a web
service accessed using SOAP or another XML
protocol. - WSDL defines Web services as end points that
operate on XML messages. - Both the messages and the operations on the
messages are defined abstractly and then mapped
to multiple physical implementations. - Current mappings include SOAP 1.1, HTTP GET/POST
and MIME.
18WSDL Specification
- Proxy Code
- A definition of message types and operations in
the abstract, - Binding Information
- A definition that maps the abstract definitions
onto concrete transports and network end points. - Service Definition
- A definition that maps bindings to ports and
includes extensibility, e.g., attributes or
properties for quality of service agreements.
Definition List
- Proxy code
- Message type
- Abstract interface (port type)
- Binding information
- Transport
- Port
- Service definition
- Binding/port
- Extensibility
19IONAs XML Bus Web Services
- Dynamic WSDL Test Facility (several web services)
- http//www.xmlbus.com9010/WSDLClient/WSDLDynamicT
estClient.html - WSDL Service Description
- http//www.xmlbus.com9010/xmlbus/container/Conver
ter/ConverterService/ConverterPort
20Convert Inches to Millimeters
- XML Query
- ltSOAP-ENVEnvelope xmlnsSOAP-ENV"http//schemas.
xmlsoap.org/soap/envelope/" - xmlnsxsd"http//www.w3.org/2001/XMLSchema"
- xmlnsxsi"http//www.w3.org/2001/XMLSchema-in
stance"gt - ltSOAP-ENVBody SOAP-ENVencodingStyle"http//
schemas.xmlsoap.org/soap/encoding/"gt - ltm1inchToMM xmlnsm1"urntarget-converte
r-service"gt - ltparam0 xsitype"xsdfloat"gt1.0lt/para
m0gt - lt/m1inchToMMgt
- lt/SOAP-ENVBodygt
- lt/SOAP-ENVEnvelopegt
- XML Response
- ltSOAP-ENVEnvelope xmlnsSOAP-ENV"http//schemas.
xmlsoap.org/soap/envelope/" - xmlnsxsd"http//www.w3.org/2001/XMLSchema"
- xmlnsxsi"http//www.w3.org/2001/XMLSchema-in
stance"gt - ltSOAP-ENVBody SOAP-ENVencodingStyle"http//
schemas.xmlsoap.org/soap/encoding/"gt - ltm1inchToMMResponse xmlnsm1"urntarget-
converter-service"gt - ltreturn xsitype"xsdfloat"gt25.4lt/ret
urngt - lt/m1inchToMMResponsegt
- lt/SOAP-ENVBodygt
21UDDI and the Protocol Stack
22UDDI - Universal Description, Discovery and
Integration
- Goal is to enable the interoperability of web
services - Standards-based specifications for service
description and discovery - Shared operation of a business registry on the
web - Partnership among industry and business leaders
23How UDDI v1 Works
1.
SW companies, standards bodies, and programmers
populate the registry with descriptions of
different types of services
UDDI Business Registry
Segrvice Type Reistrations
24White Pages Yellow Pages
- Business Name
- Text Description
- list of multi-language text strings
- Contact info
- names, phone numbers, fax numbers, web sites
- Known Identifiers
- list of identifiers that a business may be known
by - DUNS, Thomas, other
- Business categories
- 3 standard taxonomies in V1
- Industry NAICS (Industry codes - US Govt.)
- Product/Services UN/SPSC (ECMA)
- Location Geographical taxonomy
25Green Pages
- Businesses describe how other businesses will do
e-commerce - Nested model
- Business processes
- Service descriptions
- Binding information
- Programming/platform/implementation agnostic
- Services can also be categorized
26Service Type Registration
- Pointer to the namespace where service type is
described - What programmers use to understand how to use the
service - Identifier for who published the service
- Identifier for the service type registration
- called a tModelKey
- Used as a signature by web sites that implement
those services
27Business Registration
- XML document
- Created by end-user company
- Can have multiple service listings
- Can have multiple taxonomy listings
businessEntity
businessKey name URL description contacts business
Services identifierBag categoryBag
businessService
businessService
serviceKey tModelKey Name Description BindingTempl
ates
Key Name Description BindingTemplates
From www.uddi.org
28Example of a Registration
From www.uddi.org
29UDDI and SOAP
UDDI RegistryNode
User
UDDISOAP Request
HTTPServer
SOAPProcessor
UDDISOAP Response
UDDIRegistry Service
B2B Directory
Create, View, Update, and Deleteregistrations
Implementation-neutral
From www.uddi.org
30Registry APIs (SOAP Messages)
- Inquiry API
- Find things
- find_business
- find_service
- find_binding
- find_tModel
- Get Details about things
- get_businessDetail
- get_serviceDetail
- get_bindingDetail
- get_tModelDetail
- Publishers API
- Save things
- save_business
- save_service
- save_binding
- save_tModel
- Delete things
- delete_business
- delete_service
- delete_binding
- delete_tModel
- security
- get_authToken
- discard_authToken
From www.uddi.org
31UDDI Information Model
32Web Service Discovery and Interaction
33E-Business Standards
- Electronic Business XML (ebXML)
- http//www.ebxml.org/
- Local Web Site
- RosettaNet
- http//www.rosettanet.org/
- Local Partner Interface Processes
34Electronic Business XML (ebXML)
- International initiative established by the
United nations and OASIS to promote global
standards to exchange business data. - Wants to promote a global e-business marketplace,
regardless of geographic or political boundaries. - ebXML has several models and mappings
- Business Process and Information Model,
- Model maps to XML documents,
- Defines requirements for applications that
process the documents and exchange them among
trading partners.
35ebXML (continued)
- The ebXML architecture defines
- Business processes and their associated messages
and content, - A registry and discovery mechanism for publishing
business process sequences and related message
exchanges, - Company profiles,
- Trading partner agreements,
- A uniform message transport layer which is mapped
to SOAP with multipart MIME attachments.