Upload
vucong
View
215
Download
0
Embed Size (px)
Citation preview
Adomas Svirskas
Introduction into Web Services
Agenda
• Background and the need for WS• SOAP – the first Internet-ready RPC• Basic Web Services• Advanced Web Services• Case Studies• The ebXML framework• How do I use/develop Web Services?
Adomas Svirskas
Introduction into Web Services
Background and the need for WS
• There is almost always a need for processes (objects, modules, components) to communicate
• Inter-process communication alternatives:– Shared memory– Shared databases– Transport-level network protocols (Pipes, Sockets)– Remote procedure calls (RPC)– Distributed objects and components– Asynchronous message passing
Adomas Svirskas
Introduction into Web Services
Remote Procedure Call
From http://users.uma.maine.edu/faculty/rsm/slides/slides.htm
Adomas Svirskas
Introduction into Web Services
Distributed Objects
From http://www.byte.com
DCOM (COM+) – Microsoft Standard
Windows-dependent
CORBA – Object Management Group (OMG) Standard
OMG – vendor-neutral consortiumhttp://www.omg.org
OS and programming language neutral
Adomas Svirskas
Introduction into Web Services
J2EE Distributed Components
From http://www.tusc.com.au/tutorial/html/chap2.html
General J2EE Architecture
Component communications
Adomas Svirskas
Introduction into Web Services
Why do we need more?
• Interoperability issues– DCOM can‘t natively talk to CORBA– CORBA can‘t natively talk to J2EE– Expensive bridging solutions required– CORBA applications from different vendors
can‘t talk between themselves– J2EE components are not portable between
different servers
Adomas Svirskas
Introduction into Web Services
Why do we need more?
• The Internet changed it all– Number of systems involved in interactions is
vast compared to that within the corporate boundaries
• Discovery issues• Scalability issues• Security issues
– Interoperability no longer depends on decisions of the CTO of a company
Adomas Svirskas
Introduction into Web Services
Why do we need more?
• All mentioned technologies failed to ensure integration and interoperability in the Internet environment
• They were designed for the Intranets• The Internet dictated its own rules, mostly
bottom-up standards and protocols, based on their widespread success
Adomas Svirskas
Introduction into Web Services
What is needed?
• An RPC-like solution which would– Be OS and vendor agnostic– Use the standard Internet protocols (HTTP,
SMTP), i.e. firewall-friendly communication– Have simple API from different programming
languages– Use simple data representation
Adomas Svirskas
Introduction into Web Services
Web Services pioneer - XML-RPC (1998)
From: http://www-106.ibm.com/developerworks/library/ws-xpc1/
http://www.xmlrpc.com/
Adomas Svirskas
Introduction into Web Services
XML-RPC Protocol
• Uses XML and HTTP• Very simple to use• Allows disparate systems
to communicate
Adomas Svirskas
Introduction into Web Services
Merits of XML and HTTP
• XML– Extensible Markup Language– Platform agnostic– Existing parsers for many languages
• HTTP– Ubiquitous– Widely supported and firewall-friendly
Adomas Svirskas
Introduction into Web Services
Simple Object Access Protocol
• SOAP uses the same principles as XML-RPC and builds on its success
• SOAP tries to pick up where XML-RPC left off by implementing user defined data types, the ability to specify the recipient, message specific processing control, and other features.
• SOAP was supported by IBM and Microsoft from its inception in 1999
• Currently SOAP 1.2 is under W3C control: http://www.w3.org/TR/soap/
Adomas Svirskas
Introduction into Web Services
Simple Object Access Protocol
• The SOAP specification consists of roughly these areas:– A content-neutral packaging scheme– Extensibility for additional functionality – Rules for encoding common application data structures, – Types in an XML format– Bindings to HTTP transport.
• SOAP's primary strength comes from its simple and extensible packaging scheme
Adomas Svirskas
Introduction into Web Services
SOAP Envelope
From http://www.techmetrix.com/trendmarkers/publi.php?C=EW2I
From http://developer.apple.com/documentation/WebObjects/Web_Services/Introduction/chapter_2_section_5.html
Adomas Svirskas
Introduction into Web Services
SOAP-based Communication
From http://www.techmetrix.com/trendmarkers/publi.php?C=EW2I
Adomas Svirskas
Introduction into Web Services
Simple Object Access Protocol
• SOAP is way more powerful and complex than XML-RPC• Implementations by:
– IBM/Apache– Sun Microsystems– Microsoft– And others...
• More useful links:– http://www-106.ibm.com/developerworks/webservices/library/ws-ref1.html– http://weblog.masukomi.org/writings/xml-rpc_vs_soap.htm– http://ws.apache.org/soap/– http://www.xml.com/pub/a/2000/07/12/soap/mssoaptutorial.html
Adomas Svirskas
Introduction into Web Services
SOAP in Action – Deployment View
Reverse Proxy
Firewall
SMSProcessor
CN FR/NLCancer
The Internet
OracleDBServerLinux
SOAPServer
CN FR/NLCancer
BT Router
Production / Intranet
DMZ
Aspiro SMSSwitch
Kiala SMS Infrastructure
A. SvirskasSeptember 17, 2002
Firewall
Outbound Proxy
Adomas Svirskas
Introduction into Web Services
So what else do we need?
• Wbe can do RPC over the Internet! Great!• But... we need standard ways for:
– Describing SOAP service capabilities– Publishing the services– Discovering the services– Interacting with the services
• Otherwise we would search for a needle in a haystack
Adomas Svirskas
Introduction into Web Services
Service Oriented Architecture
From http://www.jot.fm/issues/issue_2002_07/column5
Adomas Svirskas
Introduction into Web Services
Web Services Description Language
• WSDL stands for Web Services Description Language
• WSDL is written in XML • WSDL is an XML document • WSDL is used to describe Web services • WSDL is also used to locate Web services• WSDL Spec: http://www.w3.org/TR/wsdl
Adomas Svirskas
Introduction into Web Services
WSDL Example
Real world example: http://soap.amazon.com/schemas3/AmazonWebServices.wsdl
Adomas Svirskas
Introduction into Web Services
WSDL Structure• WSDL Ports
– The <portType> element is the most important WSDL element. – It defines a web service, the operations that can be performed, and the messages
that are involved.– The <portType> element can be compared to a function library (or a module, or a
class) in a traditional programming language.• WSDL Messages
– The <message> element defines the data elements of an operation.– Each messages can consist of one or more parts. The parts can be compared to the
parameters of a function call in a traditional programming language. • WSDL Types
– The <types> element defines the data type that are used by the web service.– For maximum platform neutrality, WSDL uses XML Schema syntax to define data
types.• WSDL Bindings
– The <binding> element defines the message format and protocol details for each port.
Adomas Svirskas
Introduction into Web Services
Universal Description, Discovery and Integration
• UDDI stands for Universal Description, Discovery and Integration
• UDDI is a directory for storing information about web services
• UDDI is a directory of web service interfaces described by WSDL
• UDDI communicates via SOAP • UDDI Spec: http://www.oasis-open.org/committees/uddi-spec/
Adomas Svirskas
Introduction into Web Services
Types of Web Services
From: http://www.computerworld.com/developmenttopics/development/story/0,10801,79698,00.html
Adomas Svirskas
Introduction into Web Services
Asynchronous Web Services• In some situations, responses to Web service requests are not provided immediately, but
rather sometime after the initial request transactions complete• Different types of underlying middleware might be used to accomplish this task: HTTP,
SMTP, JMS
From: http://www-106.ibm.com/developerworks/library/ws-asynch2/index.html
Adomas Svirskas
Introduction into Web Services
Asynchronous Web Services
From: http://www.computerworld.com/developmenttopics/development/story/0,10801,79698,00.html
Adomas Svirskas
Introduction into Web Services
Web Services Examples
• Google.com - http://www.google.com/apis/
• Amazon.com -http://associates.amazon.com/exec/panama/associates/join/developer/faq.html
• eBay.com - http://www.internetnews.com/dev-news/article.php/3312341
• Many more - http://www.salcentral.com/salnet/webservicewhat.asp
Adomas Svirskas
Introduction into Web Services
How do I write my own WS?
• Download a toolkit:– IBM - http://www.alphaworks.ibm.com/tech/ettk– Sun - http://java.sun.com/webservices/downloads/webservicespack.html
– Many more implementations• Read a tutorial
– http://www.theserverside.com/articles/article.tss?l=Systinet-web-services-part-1– http://www.systinet.com/download/TutorialOne.pdf
• Implement a service and test it• Enjoy the new experience
Adomas Svirskas
Introduction into Web Services
Do we need more?
• So we can develop, publish, discover, invoke Web Services
• But... this is an application integration• While the business world needs business
process integration• Thus we need composable, orchestrated,
transactable, secure Web Services
Adomas Svirskas
Introduction into Web Services
Advanced Web Services Architecture
From http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/
Adomas Svirskas
Introduction into Web Services
Advanced Web Services Architecture
From http://www-306.ibm.com/software/solutions/webservices/pdf/SecureReliableTransactedWSAction.pdf
Vendors such asIBM, BEA, Microsoftteamed up together withOASIS and W3Cto provide business-grade Web Services framework
Adomas Svirskas
Introduction into Web Services
E-business Integration Patterns
• The document exchange pattern• The exposed applications pattern• The exposed business services pattern• The managed public processes pattern• The managed public and private processes
pattern
Adomas Svirskas
Introduction into Web Services
Exposed Business Services Pattern
• A layer between the backend enterprise system and partner tier
• This layer exposes an e-business oriented interface
• Business service interface to be agreed by partners
• Web Services technology is an example
Adomas Svirskas
Introduction into Web Services
Managed Public Process Pattern
• Private and Public processes are separated more strictly
• Public processes are identified, analysed and formally described
• Integration occurs at Business Process level• RosettaNet is an example• Trading Partner Agreements TPA
Adomas Svirskas
Introduction into Web Services
ebXML Framework
• A framework of specifications for E-business integration based on state-of-the-art software architecture concepts and on experience in development of E-business systems
• E-business interactions between organizations are modelled, standardised and published via E-business registries
• The use of XML-based, declarative specification languages provides configurability and interoperability
• Architectural separation of business and information technology aspects of e-business systems
Adomas Svirskas
Introduction into Web Services
ebXML and Integration Patterns
• ebXML is intended to support managed public processes pattern:– Various middleware types are supported– Focus on E-business application rather
application integration– Declarative definition of public business
processes– Support of partner agreements
Adomas Svirskas
Introduction into Web Services
ebXML Business Operational ViewThe BOV Addresses:
•The semantics of business data in transactions and associated datainterchanges
•The architecture for business transactions, including:
•Operational conventions
•Agreements and arrangements
•Mutual obligations and requirements
Adomas Svirskas
Introduction into Web Services
ebXML Functional Services View
The FSV Addresses:
•Functional capabilities
•Business Service Interfaces
•Protocols and Messaging Services
Adomas Svirskas
Introduction into Web Services
ebXML Framework cont‘d
• Business Process Specification Schema (BPSS) is an XML-based specification language that formally defines "public" business processes. It focuses on the collaboration of trading partners, and the business transaction activities they perform in the context of those collaborations.
Adomas Svirskas
Introduction into Web Services
ebXML Framework cont‘d
• Core Components: Those provide the business information that is encoded in business documents that are exchanged between business partners.
• Registry/Repository: This is useful for more than merely conducting business searches. Some business scenarios depend heavily on registries to support setting up business relationships.
Adomas Svirskas
Introduction into Web Services
ebXML Framework cont‘d
• Collaboration Protocol Profiles (CPP) and Agreements (CPA): These are XML documents that encode a party's e-business capabilities or two parties' e-business agreements, respectively.
• Transport, Routing and Packaging: The ebXML messaging services provide an elegant general-purpose messaging mechanism. The ebXML messaging service is layered over SOAP (Simple Object Access Protocol) and can transport arbitrary types of business content.
Adomas Svirskas
Introduction into Web Services
A Bottom-up Approach
• The ebXML framework represents a top-down approach to the e-business architectures
• Web Services community takes a bottom-up approach based on:– Proven lower layers (HTTP, SOAP etc.)– A number of WS-* specifications emerging
from all possible directions
Adomas Svirskas
Introduction into Web Services
Web Services for e-business
• The essence is to support long-lasting B2B collaborations, including (not limited to):– Modeling of binary/multipart collaborations– Validating correctness of the collaborations at
design time– Simulating the interactions between the peers– Generating bindings to some executable
mechanisms
Adomas Svirskas
Introduction into Web Services
Choreography
• Describes the allowable message flow between pairs of service end-points and composite behavior based on allowable message flows
• Describes peer to peer interactions of services from a neutral perspective
Adomas Svirskas
Introduction into Web Services
WS-CDL
• Web Services Choreography Definition Language - http://www.w3.org/TR/ws-cdl-10– A successor to Web Service Choreography Interface -
WSCI (http://www.w3.org/TR/wsci/)
• More on WS-CDL: http://www.pi4tech.com/faq/Guide2WS-CDL-ForWeb.htm
• Tools: http://www.pi4tech.com/ and http://www.pi4soa.org/
Adomas Svirskas
Introduction into Web Services
Conclusions
• Web Services emerged as a synthesis of RPC expertise and the Internet opportunities
• Web Services matured over past few years into a business-grade solution
• Web Services field continues to expand and reaches into e-business domain
• Questions, comments:• Adomas Svirskas [email protected]