global and open web services -...
TRANSCRIPT
From XML, SOAP and WSDL to Business Modeling...
Alberto Rodrigues da SilvaProf. DEI/IST
Lisbon, Portugal
Global and Open Web Services
Copyright © 2001, Alberto Silva
DOCTORADO EN TECNOLOGÍAS DE LAS COMUNICACIONESCOMERCIO ELECTRÓNICOUniversidad Carlos III de Madrid, 25/May/2001
ServiceConsumer
1
ServiceProvider - 1
ServiceConsumer
2Service
Consumer3
ServiceConsumer
N
ServiceProvider - 2
ServiceProvider - K
2Copyright © 2001, [email protected]
Overview
? Introduction and Context? Current Models of B2B (Marketplaces, EDI, …)? Global and Open Web Services
– The Big Picture– SOAP– WSDL– A case study: HP’s e-Speak
? Next Huge Challenges
3Copyright © 2001, [email protected]
– E-business is a complex combination between
? Business processes? Enterprise applications and technologies? Organizational structures and human resources
in order to build new businesses with high performance.
e-Business generic definition
Preliminary notions...
Introduction and Context
4Copyright © 2001, [email protected]
e-Commerce…is the activity of buying and selling based on some digital infrastructure
e-Business…aggregates the e-commerce, but also includes all the front and back-officeapplications that are the real engine of the new businesses
E.g.: Amazon.com…Provides a Web interface (well-known to the end-consumer) with consult, order, payment and other functionalities.
howeverIt also includes a complex number of other components and applications to support the business: personalization interfaces to clients, providers, banks, ...
e-Com
merce
e-Business
Preliminary notions...
Introduction and Context
5Copyright © 2001, [email protected]
A new way to design and to to build the business processes of some
company supported by information, computation and communication
technologies in order to improve the connections and relationships between
the company and its
? Customers
? Suppliers
? Partners
? Collaborators
? Company board
e-Business…
Supported by the technology:
– Direct
– Active (anytime)
– Omnipresent (anywhere)
– Interactive
Preliminary notions...
Introduction and Context
6Copyright © 2001, [email protected]
Enterprise Architecture to Support e-Business
Enterprise Resource Planning
Customer Relationship Management
Knowledge Management
EAI(Integration)
Fina
nces
/ A
ccou
ntin
g /
Au
dito
r
Ad
min
istr
ativ
e C
on
tro
lH
um
man
Res
ou
rces
/ S
alar
ies
Logi
stic
s
Pro
duct
ion
Dis
trib
utio
n
Mak
etin
g
Sel
l
Cus
tom
er
Ser
vice
s
Supply Chain Management
Selling Chain Management
Col
labo
rato
rs
Boa
rd, S
tocj
hold
ers
Partners, Suppliers, Brokers
Customers, Resellers
Introduction and Context
7Copyright © 2001, [email protected]
Current Models of B2B
? Fax/Phone-based– without any integration with enterprise ISs– human based intensive
? EDI-based– End-to-end (between ISs)– Hard to implement (technical); very expensive (economic)– Based on proprietary networks, old-fashion technologies (not
Internet and XML based!!)
? Web-based with human/direct intervention– Such as the majority of the current “proprietary” marketplaces– Usually there is not automatic integration between the different ISs
8Copyright © 2001, [email protected]
? B2B Procurement– Automatic mechanism to sell/buy products/services between
different partners? Usually, we are talking about no-strategic procurement (such
as, products no directly involved in the production chain)
? E-Commerce frameworks where– Suppliers put and manage their products (based on a
“catalog” way)– Customers look for suppliers that sell the desired product.
? Well-known as “Marketplaces”
An Example: Marketplaces
The (current) Web-based Model
9Copyright © 2001, [email protected]
? Business Communities between companies (B2B) electronically supported– Where suppliers (sellers) and customers (buyers) met together– Big companies, small companies, banks, …
? Horizontals vs. Verticals? Examples of Horizontal Marketplaces, in Portugal
– BizDirect (Sonae, ...)– TradeCom (PT, ...)– ForumB2B (EDP, …) Big Portuguese Clients...
An Example: Marketplaces
The (current) Web-based Model
10Copyright © 2001, [email protected]
“TradeCom” (PT Prime com BES, CGD, PT Multimedia, CommerceOne/SAP)
An Example: Marketplaces
The (current) Web-based Model
11Copyright © 2001, [email protected]
Empresa-1(buyer)
MarketPlace(e.g., TradeCom)
Empresa-j(seller)
Empresa-i(seller)
Empresa-2(buyer)
Empresa-k(seller)
Based on the technology of:CommerceOne/SAP
(1) B2B in the context of the same Marketplace Models
The (current) Web-based Model
12Copyright © 2001, [email protected]
Empresa-1(buyer)
MarketPlace-N
Empresa-j(seller)
Empresa-i(seller)
Empresa-2(buyer)
Empresa-k(seller)
Based on the technology of :
CommerceOne/SAP
(2)B2B in the context of Federation of Homogeneous Marketplaces
Empresa-x(buyer)
MarketPlace-M
Empresa-c(seller)
Empresa-y(buyer)
Empresa-d(seller)
Based on the technology of :CommerceOne/SAP
Models
The (not so far) Web-based Model
13Copyright © 2001, [email protected]
Empresa-1(buyer)
MarketPlace-N
Empresa-j(seller)
Empresa-i(seller)
Empresa-2(buyer)
Empresa-k(seller)
Based on the technology of :
CommerceOne/SAP
(3)B2B in the context of Federation of Heterogeneous Marketplaces
Empresa-x(buyer)
MarketPlace-M
Empresa-c(seller)
Empresa-y(buyer)
Empresa-d(seller)
Based on the technology of :Arriba
Models
The (not so far) Web-based Model
14Copyright © 2001, [email protected]
Global Services InteroperabilityThe Big Picture
We're currently moving from an environment where applications are deployed on individual machines and Web servers, to a world where applications are composed of pieces (called services)Services are spread across many different machines, and where the services interact seamlessly and transparently to produce an overall effect.
I discussed that idea in my PhD thesis, in 1998, using the term of “software agent”…
ServiceConsumer
1
ServiceProvider - 1
ServiceConsumer
2Service
Consumer3
ServiceConsumer
N
ServiceProvider - 2
ServiceProvider - K
15Copyright © 2001, [email protected]
Global Services InteroperabilityThe Big Picture
Monolithic, Centralized, Proprietary Systems
Open Systems (2-tier C/S)
Global and Open Data
(Web-based systems, 3 and 4-tiers; one-off services)
Global and Open Services
(Dynamic n-tier systems; Service Composition)ServiceConsumer
1
ServiceProvider - 1
ServiceConsumer
2 ServiceConsumer
3
ServiceConsumer
N
ServiceProvider - 2
ServiceProvider - K
Computational Paradigms of ISs…
(70s)
(80s)
(90s)
(00s)
16Copyright © 2001, [email protected]
"We're going to do for programs what the Web did for data." Rajiv Gupta, developer of Hewlett-Packard's e-speak, (July, 1998)
"It's exciting the progress that's taking place around XML just even in the last six months. We've got here a standard that Microsoft is very much behind, but not just Microsoft. We've gotIBM and many others joining in in things like the SOAP definition that explain how XML can essentially be used as a program-to-program protocol, how programs can exchange arbitrary data with each other."
Bill Gates (June, 2000)
Global Services InteroperabilityThe Big Picture
ServiceConsumer
1
ServiceProvider - 1
ServiceConsumer
2 ServiceConsumer
3
ServiceConsumer
N
ServiceProvider - 2
ServiceProvider - K
17Copyright © 2001, [email protected]
? Although distributed computing has been around for as long as there have been computer networks, it's only recently that applications that draw upon many interconnected machines as one vast computing medium are beginning to be deployed on a large scale.
? What's making this possible are new protocols for distributed computing built upon HTTP, and which are designed for programs interacting with programs, rather than for people surfing with browsers.
Global Services InteroperabilityThe Medium-Size Picture
18Copyright © 2001, [email protected]
Data exchangeSomething better than scraping text from web pages (XML based).
Program invocationSome way to do remote method invocation, that is, for programs to call programs running on other machines and to reply to such invocationswithout firewall restrictions. SOAP (Simple Object Access Protocol)
Self-description (also called Introspection)A machine-readable way for Web services to describe how they are supposed to be called. E.g. WSDL (Web Services Description Language)
DiscoveryA way for Web services to automatically learn about other services. E.g. UDDI (Universal Description, Discovery and Integration)
Global Services InteroperabilityThe Medium-Size Picture
Protocols for...
19Copyright © 2001, [email protected]
? SOAP 1.1, W3C Note 08 May 2000, http://www.w3.org/TR/SOAP/
? SOAP provides a simple and lightweight mechanism for exchanging structured and typed information between peers in a decentralized, distributed environment using XML
? SOAP does not itself define any application semantics such as a programming model or implementation specific semantics
? SOAP is a RPC protocol that works over HTTP (or SMTP or ...) in order to overcome security/firewall restrictions that were found in classical RPC systems (e.g., RMI, DCOM, CORBA)
SOAP – Simple Object Access Protocol
What is SOAP?
ServiceConsumer
Service Provider
SOAP(HTTP)
20Copyright © 2001, [email protected]
SOAP consists of three parts:
? The SOAP envelope – defines an overall framework for expressing what is in a
message; who should deal with it, and whether it is optional or mandatory.
? The SOAP encoding rules – defines a serialization mechanism that can be used to
exchange instances of application-defined datatypes.
? The SOAP RPC representation – defines a convention that can be used to represent remote
procedure calls and responses.
SOAP – Simple Object Access Protocol
What is SOAP?
21Copyright © 2001, [email protected]
A minimal Soap request
POST /server_name/object_to_invoke HTTP/1.1Host: 216.34.106.248Content-Type: text/xmlContent-Length: 152SOAPMethodName: urn:application_name:object_name#method_name
<Envelope><Body><m:method_name xmlns:m='urn:application_name:object_name'><data_field_1>Some Data</data_field_1>
</m:method_name></Body>
</Envelope>
SOAP – Simple Object Access Protocol
Example (1)…
22Copyright © 2001, [email protected]
A minimal Soap response
200 OKContent-Type: text/xmlContent-Length: 162
<Envelope><Body>
<m:method_nameResponse xmlns:m='urn:application_name:object_name'><result_data_1>Some Result Data</result_data_1></m:method_nameResponse>
</Body></Envelope>
SOAP – Simple Object Access Protocol
Example (1)…
23Copyright © 2001, [email protected]
? SOAP Message Embedded in HTTP Request
POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: “Some-URI"
<SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI"><symbol>DIS</symbol>
</m:GetLastTradePrice></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP – Simple Object Access Protocol
Example (2)…
24Copyright © 2001, [email protected]
? SOAP Message Embedded in HTTP Response
HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: nnnn
<SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/><SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI"><Price>34.5</Price>
</m:GetLastTradePriceResponse></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP – Simple Object Access Protocol
Example (2)…
25Copyright © 2001, [email protected]
? All SOAP messages are encoded using XML
? A SOAP application SHOULD include the proper SOAP namespace on all elements and attributes defined by SOAP in messages that it generates.
? A SOAP application MUST be able to process SOAP namespaces in messages that it receives.
? SOAP defines two namespaces – The SOAP envelope has the namespace identifier
"http://schemas.xmlsoap.org/soap/envelope/" – The SOAP serialization has the namespace identifier
"http://schemas.xmlsoap.org/soap/encoding/"
SOAP – Simple Object Access Protocol
Relation to XML
26Copyright © 2001, [email protected]
Simple Types
Type value Type Examplexsd:int 32-bit signed integer -12xsd:boolean a boolean value (1 or 0) 1xsd:string string of characters hello worldxsd:float or xsd:double signed floating point number-12.214xsd:timeInstant date/time2001-03-27T00:00:01-08:00SOAP-ENC:base64 base64-encoded binary eW9bidQgdGhpcyE=
Compound TypesArraysStructs
SOAP – Simple Object Access Protocol
Relation to XML
27Copyright © 2001, [email protected]
Data exchangeSomething better than scraping text from web pages (XML based).
Program invocationSome way to do remote method invocation, that is, for programs to call programs running on other machines and to reply to such invocationswithout firewall restrictions. SOAP (Simple Object Access Protocol)
Self-description (also called Introspection)A machine-readable way for Web services to describe how they are supposed to be called. E.g. WSDL (Web Services Description Language)
DiscoveryA way for Web services to automatically learn about other services. E.g. UDDI (Universal Description, Discovery and Integration)
Global Services InteroperabilityThe Medium-Size Picture
Protocols for...
28Copyright © 2001, [email protected]
WSDL – Web Services Description Language
? WSDL 1.1, W3C Note 15 March 2001, http://www.w3.org/TR/wsdl
? WSDL is an XML format for describing web services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information.
? The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services).
? WSDL is extensible to allow description of services and their messages regardless of what message formats or network protocols are used to communicate, however, it is commonly used with SOAP, HTTP, MIME.
What is WSDL?
29Copyright © 2001, [email protected]
WSDL – Web Services Description Language
? A WSDL document uses the following elements in the definition of web services:
? Types– a container for data type definitions using some type system.
? Message– an abstract, typed definition of the data being communicated.
? Operation– an abstract description of an action supported by the service.
? Port Type–an abstract set of operations supported by one or more endpoints.
? Binding– a concrete protocol and data format specification for a particular port type.
? Port– a single endpoint defined as a combination of a binding and a network address.
? Service– a collection of related endpoints.
What is WSDL?
30Copyright © 2001, [email protected]
WSDL – Web Services Description Language
? The example shows WSDL definition of a simple service providing stock quotes.
? The service supports a single operation called GetLastTradePrice, which is deployed using the SOAP 1.1 protocol over HTTP.
? The request takes a ticker symbol of type string, and returns the price as a float
An Example
31Copyright © 2001, [email protected]
WSDL – Web Services Description Language<?xml version="1.0"?> <definitions name="StockQuote“
targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types> <schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest">
<complexType> <all><element name="tickerSymbol" type="string"/> </all>
</complexType> </element> <element name="TradePrice">
<complexType> <all> <element name="price" type="float"/> </all>
</complexType> </element> </schema>
</types>
An Example
32Copyright © 2001, [email protected]
WSDL – Web Services Description Language
<message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/>
</message>
<message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/>
</message>
<portType name="StockQuotePortType"> <operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </
operation> </portType>
An Example (cont.)
33Copyright © 2001, [email protected]
WSDL – Web Services Description Language
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice">
<soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output>
</operation> </binding>
<service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/>
</port>
</service> </definitions>
An Example (cont.)
34Copyright © 2001, [email protected]
Global Services Frameworks and Initiatives
? Companies are introducing new Web service frameworks that exploit the new infrastructure.
– Hewlett-Packard's e-speak (http://www.e-speak.hp.com/)
– Microsoft's .NET (http://www.microsoft.com/net/)
– Sun's J2EE (http://java.sun.com/j2ee/)
? Initiatives & Consortiums Concerning about Web Services– UUDI (http://www.uddi.org/)
– ebXML (http://www.ebxml.org/)
– XML/EDI (http://www.xmledi-group.org/)
35Copyright © 2001, [email protected]
e-Speak Framework
? HP’s E-Speak enables dynamic business interactions – through the ad hoc discovery and interaction of web services over
the internet. It provides companies with a standards-based infrastructure for web services
? E-Speak currently supports and extends many key standards– such as SOAP, J2EE, SPKI and XML
? E-Speak is written completely in Java – and allows any EJB bean to be an web service
? E-Speak is able to offer interoperability between .Net and J2EE environments
? E-Speak will continue to drive, leverage and extend emerging web service standards such as UDDI.
what is e-Speak?
36Copyright © 2001, [email protected]
e-Speak Framework
? The Service Framework Specification (SFS) defines standard business and technical conventions that allow web services to dynamically interact with each other
– Discovery– Negotiation– Composition– Measurement– Monitoring
? are based on a common interaction model and enables disparate business processes (whether RosettaNet or ebXML) to be represented as a standard SFS conversation on the internet
service framework specification
37Copyright © 2001, [email protected]
e-Speak Framework? Delivers a single, consistent way to define and deploy web services
? Gets description information (attributes) from any web service application regardless of its programming language or platform.
? Maintains a registry of e-Speak-enabled web services that allows them to be automatically discovered by users and by other web services.
? Negotiates between multiple available web services to make appropriate matches between buyers and sellers.
? Offers continuous mediation of services between buyers and sellers so that web services can make real-time adjustments in response to changes in user needs or in the service environment.
? Controls what services are available to whom and the degree to which they can be used, including allowing secure, dynamic firewall traversal when required for a specified task.
service engine
38Copyright © 2001, [email protected]
e-Speak Framework
39Copyright © 2001, [email protected]
e-Speak Framework
40Copyright © 2001, [email protected]
e-Speak Framework
41Copyright © 2001, [email protected]
e-Speak Framework
42Copyright © 2001, [email protected]
e-Speak Framework
43Copyright © 2001, [email protected]
e-Speak Framework
44Copyright © 2001, [email protected]
e-Speak Framework
45Copyright © 2001, [email protected]
Next Huge Challenges
For PhD candidates ;-)
? Implementing “real” global services– e.g., a marketplace of “open and global services”…– Maybe the important thing would be the economical issues…– There would be many possible applications in B2B domains…
? Business modeling and discover the “better” business models and strategies in this brave e-economy
? Mapping business modeling “automatically” into “open and global” services Service
Consumer1
ServiceProvider - 1
ServiceConsumer
2Service
Consumer3
ServiceConsumer
N
ServiceProvider - 2
ServiceProvider - K