introduction into web services (ws)

56
Adomas Svirskas Introduction into Web Services Introduction into Web Services (WS) Adomas Svirskas

Upload: meir

Post on 10-Jan-2016

41 views

Category:

Documents


2 download

DESCRIPTION

Introduction into Web Services (WS). Adomas Svirskas. 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?. Background and the need for WS. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Introduction into Web Services (WS)

Adomas Svirskas

Page 2: Introduction into Web Services (WS)

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?

Page 3: Introduction into Web Services (WS)

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

Page 4: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Remote Procedure Call

From http://users.uma.maine.edu/faculty/rsm/slides/slides.htm

Page 5: Introduction into Web Services (WS)

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

Page 6: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

J2EE Distributed Components

From http://www.tusc.com.au/tutorial/html/chap2.html

General J2EE Architecture

Component communications

Page 7: Introduction into Web Services (WS)

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

Page 8: Introduction into Web Services (WS)

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

Page 9: Introduction into Web Services (WS)

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

Page 10: Introduction into Web Services (WS)

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

Page 11: Introduction into Web Services (WS)

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/

Page 12: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

XML-RPC Protocol

• Uses XML and HTTP• Very simple to use• Allows disparate systems to communicate

Page 13: Introduction into Web Services (WS)

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

Page 14: Introduction into Web Services (WS)

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/

Page 15: Introduction into Web Services (WS)

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

Page 16: Introduction into Web Services (WS)

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

Page 17: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

SOAP-based Communication

From http://www.techmetrix.com/trendmarkers/publi.php?C=EW2I

Page 18: Introduction into Web Services (WS)

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

Page 19: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

SOAP in Action – Logical ViewKiala Partners Kiala Proxy Servers

ReverseProxy

OutboundProxy

Aspiro ASNSwitch

SOAP/HTTP

Aspiro ASNSwitch

SOAP/HTTP

Kiala DMZ

ASNResponseReceiver

Apache SOAP ServerTomcat Server

SOAP/HTTP

RMI Registry

SOAP/HTTP

Kiala Intranet

Kiala SMS Services

The Internet

A. SvirskasSeptember 17, 2002

Kiala SMSTransport

ApacheSOAP

KialaBusiness

Application

Kiala SMSTransport

ApacheSOAP

KialaBusiness

ApplicationSOAP/HTTP

RMIReceiver

RMI

Listener

Listener

RMIReceiver

SMS ServiceManager

Page 20: Introduction into Web Services (WS)

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

Page 21: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

SOAP in Action – Java/MS

A. SvirskasDecember 2000

Page 22: Introduction into Web Services (WS)

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

Page 23: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Service Oriented Architecture

From http://www.jot.fm/issues/issue_2002_07/column5

Page 24: Introduction into Web Services (WS)

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

Page 25: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

WSDL Example

Real world example: http://soap.amazon.com/schemas3/AmazonWebServices.wsdl

Page 26: Introduction into Web Services (WS)

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.

Page 27: Introduction into Web Services (WS)

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/

Page 28: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Web Services in Operation

Page 29: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Types of Web Services

From: http://www.computerworld.com/developmenttopics/development/story/0,10801,79698,00.html

Page 30: Introduction into Web Services (WS)

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

Page 31: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Asynchronous Web Services

From: http://www.computerworld.com/developmenttopics/development/story/0,10801,79698,00.html

Page 32: Introduction into Web Services (WS)

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

Page 33: Introduction into Web Services (WS)

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

Page 34: Introduction into Web Services (WS)

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

Page 35: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Advanced Web Services Architecture

From http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/

Page 36: Introduction into Web Services (WS)

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

Page 37: Introduction into Web Services (WS)

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

Page 38: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Exposed Business Services Pattern

Page 39: Introduction into Web Services (WS)

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

Page 40: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

Managed Public Process Pattern

Page 41: Introduction into Web Services (WS)

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

Page 42: Introduction into Web Services (WS)

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

Page 43: Introduction into Web Services (WS)

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

Page 44: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

ebXML Modelling Methodology

Page 45: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

ebXML Business Operational ViewThe BOV Addresses:

•The semantics of business data in transactions and associated data interchanges

•The architecture for business

transactions, including: •Operational conventions

•Agreements and arrangements

•Mutual obligations and requirements

Page 46: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

ebXML Functional Services View

The FSV Addresses:

•Functional capabilities

•Business Service Interfaces

•Protocols and Messaging Services

Page 47: Introduction into Web Services (WS)

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.

Page 48: Introduction into Web Services (WS)

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.

Page 49: Introduction into Web Services (WS)

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.

Page 50: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

ebXML Business Scenario

Page 51: Introduction into Web Services (WS)

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

Page 52: Introduction into Web Services (WS)

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

Page 53: Introduction into Web Services (WS)

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

Page 54: Introduction into Web Services (WS)

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/

Page 55: Introduction into Web Services (WS)

Adomas Svirskas

Introduction into Web Services

WS-CDL

Page 56: Introduction into Web Services (WS)

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]