Date post: | 19-Dec-2015 |
Category: |
Documents |
View: | 214 times |
Download: | 2 times |
© C
opyright ION
A T
echnologies 2002
Why is Web Services Integration a Safe Bet?
Eric NewcomerCTO
July 10, 2002
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Welcome!
“Big Integration Gain - Little Integration Pain”
• More Truth About Web Services
• 12 sessions covering a range of business and technical topics
• Led by IONA’s experts
• Broad sponsorship of the series
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Corporate Sponsors
Media Sponsors
Thanks to Our Sponsors
Platinum Sponsors: Gold Sponsors: Silver Sponsors:
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Agenda
• Web services are defined to be extensible:– SOAP headers– WSDL parts
• Qualities of service can be added to basic Web services– Features and protocol mapping
• ebXML example:– adding ebXML metadata using SOAP headers
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Introduction
• Start with a simple Web service– Search for information– Get a stock quote
• Later add complexity– Order books– Purchase stock at a given price
• Extend messages for security, transactions, reliability, process flow
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
What is SOAP?
• SOAP is a simple, lightweight XML protocol for exchanging structured and typed information on the Web
• Overall design goal: KISS– Can be implemented in a weekend– Stick to absolutely minimum of functionality
• Make it Modular and Extensible– No application semantics and no transport semantics– Think “XML datagram”
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
SOAP Parts
Envelope
Header
Body
BlockBlock…
BlockBlock…
Unit of communication
Attributes or qualities of the communication
Message itself:Procedure call parameters or
document
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
SOAP messages contain
• A mandatory extensible envelope to describe– The features and services in a message– The target address for the features and services– Whether they are optional or mandatory
• An optional set of encoding rules for data that • An optional convention for RPC invocation
– How to model request/response interactions
• An optional binding to HTTP• Message exchange patterns (MEP)
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
SOAP extensibility
• SOAP "features" include:– Reliability– Security– Correlation– Routing
• Features also include message exchange patterns (MEPs) :– One-way messages– Request/response– Peer-to-peer conversations
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
SOAP Example -- simple
<SOAP:Envelope xmlns:SOAP="http://www.w3.org/2002/06/soap-envelope/" <SOAP:Body> <m:Deposit xmlns:m=“www.xmlbus.com/bankingService"> <m:amount>200</m:amount> </m:Deposit> </SOAP:Body></SOAP:Envelope>
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
SOAP Example -- with header
<SOAP:Envelope xmlns:SOAP="http://www.w3.org/2002/06/soap-envelope/" SOAP:encodingStyle="http://www.w3.org/2002/06/soap-encoding /"> <SOAP:Header> <s:security xmlns:s=“secure-URI" SOAP:mustUnderstand="1"> Signature </s:security> </SOAP:Header> <SOAP:Body> <m:Deposit xmlns:m=“www.xmlbus.com/bankingService"> <m:amount>200</m:amount> </m:Deposit> </SOAP:Body></SOAP:Envelope>
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
SOAP Example – HTTP bindingPOST /Accounts/Eric HTTP/1.1Host: www.webservicebank.comContent-Length: nnnnContent-Type: application/soap+xml; charset="utf-8"<SOAP:Envelope xmlns:SOAP="http://www.w3.org/2002/06/soap-envelope/" SOAP:encodingStyle="http://www.w3.org/2002/06/soap-encoding /"> <SOAP:Header> <s:security xmlns:s=“secure-URI" SOAP:mustUnderstand="1"> Signature </s:security> </SOAP:Header> <SOAP:Body> <m:Deposit xmlns:m=“www.xmlbus.com/bankingService"> <m:amount>200</m:amount> </m:Deposit> </SOAP:Body></SOAP:Envelope>
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Intermediary roles
• "http://www.w3.org/2002/06/soap-envelope/role/none" (hereafter simply "none")
• "http://www.w3.org/2002/06/soap-envelope/role/next" (hereafter simply "next"), and
• "http://www.w3.org/2002/06/soap-envelope/role/ultimateReceiver" (hereafter simply "ultimateReceiver").
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Qualities of service through transport layering• SOAP messages can inherit properties of
underlying transports
• Reliability via queues and persistence mechanisms
• Binary data via attachments:– SOAP with Attachments (ebXML)– WS-Attachments (Microsoft GXA)
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
HTTP-R – IBM proposal
• HTTP-R persists status information about SOAP messages:– Using unique Ids to track messages– Includes information about the current state
of the message– Information retrieved in the event of failure
for guaranteed delivery etc.
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
BEEP –session oriented protocol proposal from IETF• BEEP messages are grouped into three styles of
exchanges when a client sends a request:– MSG/RPY - server returns a reply after performing a
task (this is called a positive reply)– MSG/ERR - server does not perform any task and
replies with an error message (this is called a negative reply)
– MSG/ANS - server performs a task during the course of which it returns zero or more answer messages
• MSG/RPY and MSG/ERR are called one-to-one exchanges while MSG/ANS supports one-to-many exchanges.
:
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
SOAP mapping to BEEP
• After establishing a channel:– <start number='1
serverName='stockquoteserver.example.com'> <profile uri='http://iana.org/beep/soap' /> </start>
– MSG 1 1 . 0 364 Content-Type: application/xml
• Then send SOAP message as “usual”• Multipart messages are supported
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Security and transactions• Use extensible SOAP headers and intermediaries• XMKS
– SOAP headers for public/private key and XML digital signature security
• S2ML– SOAP headers for authentication and authorization
tokens– XML formats for security context
• Business Transaction Protocol– SOAP messages for propagating results
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Security Example
Web
Ser
ver
Web Application
iS2 Adapter (Web Server
plug-in)
IONA Security Service (iS2)
iS2 MS Passport Adapter
iS2 MS CAPI Adapter
Win32 Security API
MSCAPI Certificate
Store
MS Passport session token
Native authorization info (e.g. EJBContext)
Enterprise Passport Adapter establishes user’s identity via MS Passport Services and utilizes local authorization information!
Obtain trusted credentials for
security assertions (if
required)
Obtain authentication
and authorization information
MS Passport Verifier
Active Directory or
PDC
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Security header example
<soap-env:Header> <s2ml:NameAssertion xmlns:s2ml="http://ns.s2ml.org/S2ML" /> < s2ml:Entitlement xmlns:s2ml="http://ns.s2ml.org/S2ML" /> <s2ml:Entitlement xmlns:s2ml="http://ns.s2ml.org/S2ML" /></soap-env:Header>
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Correlating transaction context
WebServices
SOAP SOAPApplicationApplication
ServiceRequest
Response
XML Messages
[application context]
UDDI/WSDL
ServiceRequestor
ServiceProvider
Coordinator ParticipantCoordination Coordination
SecuritySecurity
Quality of Service
SOAP
Context Service[execution context]
Coordination Messages SOAP
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
BTP “two-pipe” model
initiating application
element
BTP Superior
service application
element
BTP Inferior
BTP messages
Application messages
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
BTP example <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle=""> <soap:Header> <btp:messages xmlns:btp="urn:oasis:names:tc:BTP:1.0:core"> <btp:context superior-type="atom"> <btp:superior-address> <btp:binding>soap-http-1</btp:binding> <btp:binding-address>http://client.example.com/soaphandler</btp:binding-address> <btp:additional-information>btpengine</btp:additional-information> </btp:superior-address> <btp:superior-identifier>http://example.com/1001</btp:superior-identifier> <btp:qualifiers> <btpq:transaction-timelimit xmlns:btpq=”urn:oasis:names:tc:BTP:1.0:qualifiers”><btpq:timelimit>1800</btpq:timelimit></btpq:transaction-timelimit>
</btp:qualifiers> </btp:context> </btp:messages> </soap:Header> <soap:Body> <ns1:orderGoods xmlns:ns1="http://example.com/2001/Services/xyzgoods"> <custID>ABC8329045</custID> <itemID>224352</itemID> <quantity>5</quantity> </ns1:orderGoods> </soap:Body></soap:Envelope>
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Google URI based service
http://www.google.com/search?q=Skate+boots&btnG=Google+Search
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Google Web service– <?xml version="1.0" encoding="UTF-8" ?> – - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
– - <SOAP-ENV:Body>– - <ns1:doGoogleSearch xmlns:ns1="urn:GoogleSearch"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">– <key xsi:type="xsd:string">00000000000000000000000000000000</key> – <q xsi:type="xsd:string">Skate+boots</q> – <start xsi:type="xsd:int">0</start> – <maxResults xsi:type="xsd:int">10</maxResults> – <filter xsi:type="xsd:boolean">true</filter> – <restrict xsi:type="xsd:string" /> – <safeSearch xsi:type="xsd:boolean">false</safeSearch> – <lr xsi:type="xsd:string" /> – <ie xsi:type="xsd:string">latin1</ie> – <oe xsi:type="xsd:string">latin1</oe> – </ns1:doGoogleSearch>– </SOAP-ENV:Body>– </SOAP-ENV:Envelope>
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Electronic Business XML (ebXML)
• Initiative established by UN/CEFACT and OASIS – replacement for EDI
• Top-down approach (start with business process)
• Specifications for business process modeling, messaging, registry, trading partner agreements, core components
• Much overlap with SOAP, WSDL, UDDI (all same pieces)
• RosettaNet aligned with ebXML transport
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
ebXML ArchitectureBusiness Process
Model
Model to XMLConversion
Registry
CPP
CPA
CRM, ERP, Or Custom Application
Interface
CRM, ERP, Or Custom Application
InterfacePayload
Transport
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
ebXML messaging header<SOAP:Header> <eb:MessageHeader SOAP:mustUnderstand="1" eb:version="2.0"> <eb:From> <eb:PartyId>urn:duns:123456789</eb:PartyId> <eb:Role>http://rosettanet.org/roles/Buyer</eb:Role> </eb:From> <eb:To> <eb:PartyId>urn:duns:912345678</eb:PartyId> <eb:Role>http://rosettanet.org/roles/Seller</eb:Role> </eb:To> <eb:CPAId>20001209-133003-28572</eb:CPAId> <eb:ConversationId>20001209-133003-28572</eb:ConversationId> <eb:Service>urn:services:SupplierOrderProcessing</eb:Service> <eb:Action>NewOrder</eb:Action> <eb:MessageData> <eb:MessageId>[email protected]</eb:MessageId> <eb:Timestamp>2001-02-15T11:12:12</eb:Timestamp> </eb:MessageData> <eb:DuplicateElimination/> </eb:MessageHeader></SOAP:Header>
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Process flow language
• Defines interactions or choreographies of messages
• Typically extends WSDL• Typically between trading partners• Web Services Flow Language (WSFL)
– IBM proposal– Includes macro and micro flows– Schema specified independent of WSDL
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Process flow – cont.
• XLANG from Microsoft– Based on BizTalk server– Extends WSDL (same schema file)
• Both WSFL and XLANG place WSDL services into relationship
• ebXML defines similar spec – Business Process Specification Schema
• WSCI, BPMI, etc.• Flows can be exposed as Web services
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Process flow added to WSDL
<xlang:behavior> <xlang:body> <xlang:sequence> <xlang:action operation="AskLastTradePrice" port="pGetRequest" activation="true"/> <xlang:action operation="SendLastTradePrice" port="pSendResponse"/> </xlang:sequence> </xlang:body> </xlang:behavior>
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
XML & Web services for Integration• All endpoints “XML-enabled”
– XML Schemas and WSDL describe all services– XML processors at endpoints or within integrator
• Transport XML using multiple protocols– http, smtp etc. for Internet– http, IIOP, JMS, etc. for Intranet
• Transport messages from source to destination with appropriate Quality of Service
• Add optional headers, WSDL extensions as required
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
XML/Web services solution
SOAP server IntegratedApplicationOr domain
LocalTransforms
LocalData Model
ServiceDescription
UDDI or ebXML repository
SOAP server IntegratedApplicationOr domain
LocalTransforms
LocalData Model
ServiceDescription
SOAP client
XML mapping
SOAP/ebXML messages
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
What’s driving Web Services standards-making• The grand theme is that the business
world is trying to leverage the Internet for commercial purposes– Phase One was all about leveraging existing
technologies to build new businesses on the Web
– Phase Two is about building new technologies to support existing business
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Current inflection point
• Some danger of divergence
• However qualities of service are mostly extensions
• XML makes it easier to convert from one proposal to another
• Proprietary or vendor-specific solutions available now
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
• Integration broker platform• Connects existing applications and
services• Automates business process flows
across extended enterprise using Web services and other XML standards
• Application server platform for developing, deploying and managing business application logic
• Hosted in J2EE, CORBA or mainframe environments using Web services standards at the core
37
Orbix E2A™ Solution
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Orbix E2A™ Web Services Platform
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Web Services Integration Now!• Visit XMLBus.comXMLBus.com and download Orbix E2A™
XMLBus Edition.• Sign up for IONA training on Web services• Download IONA’s Web services white paper at
XMLBus.comXMLBus.com• Check out Orbix E2A™, the first e-Business
Platform for Web Services Integration.
DI A
L-IN Toll-free 1-888-390-4711
International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
Questions?D
I AL-
IN Toll-free 1-888-390-4711International: 1-484-630-0913Passcode: Web Services
© C
opyrigh
t ION
A T
echn
ologie
s 200
2
All Webcasts from the Big Integration Gain—Little Integration Pain
series are available for viewing at iona.raindance.com
Don’t forget Don’t forget IONA WorldIONA World
October 27 - 30th, San Diego, CAOctober 27 - 30th, San Diego, CAD
I AL-
IN Toll-free 1-888-390-4711International: 1-484-630-0913Passcode: Web Services
Thank you for joining us!