410 likes | 495 Views
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services. DIAL-IN. Why is Web Services Integration a Safe Bet?. Eric Newcomer CTO July 10, 2002. Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services. DIAL-IN. Welcome!.
E N D
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Why is Web Services Integration a Safe Bet? Eric Newcomer CTO July 10, 2002
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Corporate Sponsors Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Thanks to Our Sponsors Platinum Sponsors: Gold Sponsors: Silver Sponsors: Media Sponsors
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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”
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN SOAP Parts Unit of communication Envelope Attributes or qualities of the communication Header Block Block … Body Message itself: Procedure call parameters or document Block Block …
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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)
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN SOAP Example – HTTP binding POST /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>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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").
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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)
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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.
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN • : 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.
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
MSCAPI Certificate Store Active Directory or PDC Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Security Example Native authorization info (e.g. EJBContext) MS Passport session token iS2 Adapter (Web Server plug-in) Web Server Web Application Win32 Security API Obtain trusted credentials for security assertions (if required) Obtain authentication and authorization information IONA Security Service (iS2) iS2 MS CAPI Adapter iS2 MS Passport Adapter MS Passport Verifier Enterprise Passport Adapter establishes user’s identity via MS Passport Services and utilizes local authorization information!
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Correlating transaction context
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN BTP “two-pipe” model
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>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Google URI based service http://www.google.com/search ?q=Skate+boots&btnG=Google+Search
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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> • <restrictxsi:type="xsd:string" /> • <safeSearch xsi:type="xsd:boolean">false</safeSearch> • <lrxsi: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>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Business Process Model Model to XML Conversion Registry CPP CPA Interface Interface Payload CRM, ERP, Or Custom Application CRM, ERP, Or Custom Application Transport Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN ebXML Architecture
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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>20001209-133003-28572@example.com</eb:MessageId> <eb:Timestamp>2001-02-15T11:12:12</eb:Timestamp> </eb:MessageData> <eb:DuplicateElimination/> </eb:MessageHeader> </SOAP:Header>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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>
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN XML/Web services solution Service Description LocalData Model UDDI or ebXML repository SOAP server IntegratedApplication Or domain LocalTransforms SOAP/ebXML messages Service Description LocalData Model SOAP server IntegratedApplication Or domain SOAP client LocalTransforms XML mapping
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Orbix E2A™ Solution • 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
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Orbix E2A™ Web Services Platform
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Web Services Integration Now! • Visit XMLBus.com and download Orbix E2A™ XMLBus Edition. • Sign up for IONA training on Web services • Download IONA’s Web services white paper at XMLBus.com • Check out Orbix E2A™, the first e-Business Platform for Web Services Integration.
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN Questions?
Toll-free 1-888-390-4711 International: 1-484-630-0913 Passcode: Web Services DIAL-IN All Webcasts from theBig Integration Gain—Little Integration Painseries are available for viewing ationa.raindance.com Don’t forget IONA World October 27 - 30th, San Diego, CA Thank you for joining us!