Top Banner
1 Web Services Overview
72

Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

Oct 02, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

1

Web Services Overview

Page 2: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

2

Agenda ● Evolution of network computing● What is Web Services? ● Why Web Services?● Where is Web Services?● Web Services Architecture● Web Services Standards● Java™ APIs for Web Services● J2EE as platform of choice for Web Services● Web Services Tools● Roadmap and Summary

Page 3: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

3

Evolution of Network Computing

Page 4: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

Things - 1014

Computers 108

Embedded Computers

1011

Desktops

TransfersTransfers TransactionsTransactions ContentContent Telemetry Telemetry ControlControlClients

Functions

Organization

Protocols

Waves of Network Computing

IP v6IP v4 IP Layer

SwitchesSwitchesPackagesPackages

ThermostatsThermostats

ClothesClothesPhonesPhones

TVsTVsCarsCars

GamesGames

Page 5: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

Things - 1014

Computers 108

Embedded Computers

1011

Desktops

Client/Server

Web ApplicationsWeb Applications

Web Web ServicesServices

FractalFractal

PolyarchicalPolyarchical

N-tier

FTPTelnet

HTTPXRPC/XDR

SMTP

Clients

Functions

Organization

Protocols

SOAPSOAPRMI/IIOPRMI/IIOP

JiniJiniIdentityIdentity

UDDIUDDI

LDAPLDAP

JXTAJXTA

Waves of Network Computing

IP v6IP v4 IP Layer

PhonePhoness

TVsTVsCarsCars

GamesGames

SwitchesSwitchesPackagesPackages

ThermostatsThermostats

ClothesClothes

TransfersTransfers TransactionsTransactions ContentContent TelemetryTelemetry Control Control

Page 6: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

The New Software

Software-as-a-ServiceShrink Wrap

LocaterLocater

PaymentPayment

AuthenticationAuthentication

NewNewServiceService User’sUser’s

DeviceDevice

X10X1066

CalendarCalendar

DeveloperDeveloper

X10X1066

X1X1

Page 7: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

7

History of History of Distributed ComputingDistributed Computing

Page 8: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

Platform EvolutionCatchCatch

PhrasePhrase

The NetworkThe NetworkIs the Is the

ComputerComputer ObjectsObjectsLegacy to Legacy to the Webthe Web

The Computer The Computer Is theIs the

NetworkNetwork

Network of Network of Embedded Embedded

ThingsThingsNetworkNetworkof Thingsof Things

ScaleScale

When/PeakWhen/Peak

LeafLeafProtocol(s)Protocol(s)

Directory(s)Directory(s)

SessionSession

100s100s 1,000s1,000s 1,000,000s1,000,000s 10,000,000s10,000,000s 100,000,000s100,000,000s 100,000,000100,000,000ss

1984/19871984/1987 1990/19931990/1993 1996/19991996/1999 2001/20032001/2003 1998/20041998/2004 2004/20072004/2007

XX XX +HTTP+HTTP(+JVM)(+JVM)

+XML+XMLPortalPortal +RM+RM UnknownUnknown

NS, NS+NS, NS+ +CDS+CDS +LDAP(*)+LDAP(*) +UDDI+UDDI +Jini+Jini +?+?

RPC, XDRRPC, XDR +CORBA+CORBA +CORBA,+CORBA,RMRM

+SOAP,+SOAP,XMLXML +RM/Jini+RM/Jini +?+?

SchematicSchematic

Page 9: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

Communication Patterns

Client-Server 3-Tier

Web Application

Web Services

HybridP2P Fractal

Page 10: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

Communication Patterns: JavaTM 2

Business SystemsBusiness Systems

DB ServerDB ServerApp ServerApp Server

Web ServerWeb Server

BrowserBrowserClientClient

Web Application

J2EEJ2EE

J2SE/J2SE/J2MEJ2ME

Page 11: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

Communication Patterns: Sun ONE

Bus.Bus.Sys.Sys.DBDB

AppApp

WebWeb

BrowserBrowser

Context and IdentityContext and Identity(LDAP, Policy, Liberty)(LDAP, Policy, Liberty)

J2EEJ2EE

J2SE/J2SE/J2MEJ2ME

XMLXML(UDDI, (UDDI, SOAP)SOAP)

Web Service

Page 12: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

12

What is aWhat is aWeb Service?Web Service?

Page 13: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

13

Web Services Definition by W3C● A Web service is a software application ● identified by a URI, ● whose interfaces and binding are

capable of being defined, described and discovered by XML artifacts and

● supports direct interactions with other software applications

● using XML based messages ● via internet-based protocols

Page 14: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

14

Distributed Computing Evolution

Client-Server(C/S) silos

Web-based computing

Web Services/Peer-to-Peer

Servers

Clients

Clients

Servers

Internet PDA CellPhone

Server

LaptopKiosk

Workstation

Page 15: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

15

Traditional C/S vs. Web Services

● Within enterprise ● Tied to a set of

programming languages● Procedural● Usually bound to a

particular transport● Tightly-coupled● Efficient processing

(space/time)

● Between enterprises● Program language

independent● Message-driven● Easily bound to different

transports● Loosely-coupled● Relatively not efficient

processing

Traditional C/S Web Service

Page 16: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

16

Web Application vs. Web Services

● User-to-program interaction

● Static integration of components

● Monolithic service

● Program-to-program interaction

● Possibility of dynamic integration of components (in the future)

● Possibility of service aggregation (in the future)

Web Application Web Service

Page 17: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

17

Characteristics of Web Services● XML based everywhere● Message-based● Programming language independent● Could be dynamically located● Could be dynamically assembled or

aggregated● Accessed over the internet● Loosely coupled● Based on industry standards

Page 18: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

18

Web ServicesThe Service Grid

Servicediscovery Service

delivery

ServiceRegistry

Service invocation

Service registration

Page 19: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

19

Service Assembly

MacroService Micro

Service

MicroService

MicroService

BusinessProcess

Management

Page 20: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

20

Service Aggregation

Stock ServicePortal

Input: SymbolOutput: Price, News, Trade

News feed 1Input: SymbolOutput: News links

Brokerage 1Input: Symbol, Price, Qty

User

NasdaqInput: SymbolOutput: Price

News feed nInput: SymbolOutput: News links

Brokerage nInput: Symbol, Price, Qty

Page 21: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

21

Why Web Services?Why Web Services?

Page 22: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

22

Why Web Services?Web Services:● Are platform neutral ● Are accessible in a

standard way ● Are accessible in an

interoperable way● Use simple and

ubiquitous plumbing● Are relatively cheap● Simplify enterprise

integration

Page 23: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

23

Why Web Services?● Interoperable – Connect across heterogeneous

networks using ubiquitous web-based standards● Economical – Recycle components, no

installation and tight integration of software● Automatic – No human intervention required

even for highly complex transactions● Accessible – Legacy assets & internal apps are

exposed and accessible on the web● Available – Services on any device, anywhere,

anytime● Scalable – No limits on scope of applications and

amount of heterogeneous applications

Page 24: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

24

Supplier

Logistics

Distributor

ManufacturingFacilityInternet

XML

XML

XML

XML

“Growing need for a standard lightweight infrastructure for data exchange in e-business applications.”

Web Services Usage Example

Page 25: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

25

Web Services

SystemService

AppService

SystemService

AppService

SystemService

AppService

A Computer

System Software

Application

MonolithicSoftware

The Network

Impact of Web Services on Software:“Application Dis-Integration”

Page 26: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

26

Net worth

News

Stock ticker

“Portfolio” can be an application, a portal channel, or a web service itself

A web service is accessed programmatically by applications or otherweb services

Web Services

Portfolio

Bank Balance

Stock Position

Insurance Cash Value

Biz News

World News

Macro web services – Virtual Systems

Page 27: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

27

Grammar

Bank balance

Publishing

Media“Word processing” can be an application, a capability, or a web service itself

A web service is accessed programmatically by applications or otherweb services

Web Services

Word Processing

Spell Check

Dictionary

Thesaurus

c:\...

Micro web services – Virtual Apps

http://...

Page 28: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

28

Three Laws of Computing

● Moore's Law– Computing power doubles every 18 months

● Gilder's Law– Network bandwidth capacity doubles every 12

months● Metcalfe's Law (Net Effect)– Value of network increases exponentially as

number of participants increases

Page 29: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

29

Impact on Integration:Trigger the Network Effect

Web ServicesCustom

Integration

Metcalfe’s Law: The value of the network is proportional to the square of the number of

Page 30: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

30

Myth: Web Services is a New Concept● Web services is distributed computing all

over again – only now it is based on the web

Concept Basic Web ServicesInterface Description CORBA IDL, Java interface WSDLRPC support ORBs, Idl2java compilers, rmic SOAP, compilers for WSDLService Registry CORBA naming service, JNDI UDDIMessaging support CORBA Event/Notification service, JMS ?Transaction support CORBA Transaction service, JTS ?Secuity support CORBA Security service, Java security ?

Distributed Computing ala CORBA / Java

Page 31: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

31

Other Popular Myths Surrounding Web Services ● Web services require only SOAP, WSDL,

UDDI: We need more high-level semantics● Web services are based on the RPC

paradigm: Document-driven model would be more popular communication model

● Web services must be based on HTTP: Other transports such as SMTP can be also used

Page 32: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

32

Where is &Where is &Where is Web Services Where is Web Services

going?going?

Page 33: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

33

Myths about Web Services

● Web Services cure cancer: Not for a very very long time!

● Web Services are something completely new: Not True!

● You have to write Web Services from scratch: Not True!

● J2EE Platform does not support web services: Not True!

Page 34: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

34

State of Web Services● Technology/Standards are still evolving– SOAP, WSDL, UDDI are not enough

● Business web services is the next big thing, but more works are needed in– Quality of Service, management– Security, transaction, state and user context– Work flow, Identity management,– Provisioning, Accounting

● Will be adopted in phases

Page 35: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

35

Web Services Adoption Phases● 1st phase (current state)

– Concerted deployment internally within an organization mainly for interoperability

– SOAP over HTTP/S● 2nd phase (1 to 2 years)

– Selective and non-aggregate deployment with trusted outside business partners

– Private registry deployment● 3rd phase (at least 3 to 4 years away)

– Wider, more dynamic and aggregate deployment with outside business partners

– Public registry deployment

Page 36: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

36

Web Services Adoption Phases

● 1st Phase – Simple Web Services (Now)● Consumer-focused, stateless, SOAP over

HTTP/S● 2nd Phase – EAI Web Services (Begun)

● Deployed within organization boundaries to enable internal integration

● 3rd Phase – Business Web Services (2007?)● Deployed on extranets to enable business

transactions with trading partners, suppliers, and customers, ebXML & UBL

Page 37: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

37

Business Web Services● J2EETM

● Service implementation platform standard● ebXML and UBL

● Business web services standards● More than 16 vendors and several open

source projects support ebXML● ex) Australian gas industry uses ebXML

NOW!● Liberty Project

● Identity system standard

Page 38: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

38

Business Web Services (B2B) Architectural Components (ebXML)

● B2B collaboration● Secure and reliable message

delivery● Non-repudiation● Partner profile● Repository for business data objects

Page 39: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

39

B2B Collaboration

Simple Web Services (WUS) vs. B2B Collaboration (ebXML)

Simple interaction Consumer oriented Short-living process No business

collaboration No partner profile Not secure, not

reliable Does not support

non-repudiation No repository

support No legal binding

Complex interaction Business oriented Long-running process Supports business

collaboration Supports partner

profile Secure and reliable

and non-repudiation

Supports non-repudiation

Registry and repository

Supports legal binding

Simple Web Services

Page 40: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

40

B2B Collaboration

EAI vs. B2B Collaboration (ebXML)

Within a business organization

Centralized control

Implicit contract Small number of

business processes and participants

Between business organizations

Distributed control

Explicit contract Potentially large

number of business processes and participants

EAI

Page 41: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

41

Trends Towards Service Orientation● Evolution of EAI to web service standards● XML RPC => Asynchronous XML Messaging● Towards de-centralization● Componentized services– Composable and composite services– Data encapsulated within component– Data ownership follows component ownership

● Brokered web services● Flexible relationships => Adaptive businesses

Page 42: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

42

Simple Web Services Architectural Components (WUS)

● Service Description● Service Registration (Publication)

and Discovery● Service Invocation

Page 43: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

43

Core Web Services Core Web Services StandardsStandards

Page 44: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

44

(Simplified) Web Service Architecture

Registry

1. Service RegistersPUBLISH

3. Client calls Service

BIND

2. Client Request Service Location

FIND

WebService

ServiceClient

Page 45: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

45

SOAP SOAP (Simple Object(Simple Object

Access Protocol)Access Protocol)

Page 46: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

46

SOAP

● Simple Object Access Protocol● Wire protocol similar to – IIOP for CORBA– JRMP for RMI

● XML is used for data encoding– “text” based protocol vs. “binary” protocol

● Supports XML-based RPC

Page 47: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

47

What SOAP is Not

● Not a component model – So it will not replace objects and

components, i.e. EJB, JavaBeans● Not a programming language– So it will not replace Java

● Not a solution for all– So it will not replace other distributed

computing technologies such as RMI

Page 48: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

48

What does SOAP Define?

● Message Envelope● Encoding Rules● RPC Convention● Binding with underlying protocols

Page 49: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

49

SOAP Message FormatSOAP Envelope

SOAP Header

SOAP Message

Primary MIME part(text/xml)

Attachment

Attachment

SOAP Body

Header Entry

Header Entry

Body Entry

Body Entry

Attachment

Page 50: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

50

SOAP Message Envelope● Encoding information● Header– Optional– Could contain context knowledge

● Security● Transaction

● Body– RPC methods and parameters– Contains application data

Page 51: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

51

SOAP Encoding• Rules of expressing application-defined

data types in XML• Based on W3C XML Schema• Simple values

– Built-in types from XML Schema, Part 2 (simple types, enumerations, arrays of bytes)

• Compound values– Structs, arrays, complex types

Page 52: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

52

WSDLWSDL

Page 53: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

53

What is WSDL?• XML language for describing web services• Web service is described as

– A set of communication endpoints (ports) • Endpoint is made of two parts

– Abstract definitions of operations and messages – Concrete binding to networking protocol (and

corresponding endpoint address) and message format

• Why this separation?– Enhance reusability (as we will see in UDDI

reference to WSDL document)

Page 54: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

54

Why WSDL?

• Enables automation of communication details between communicating partners– Machines can read WSDL– Machines can invoke a service defined in

WSDL• Discoverable through registry • Arbitration

– 3rd party can verify if communication conforms to WSDL

Page 55: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

55

WSDL Document Example● Simple service providing stock quotes● A single operation called

GetLastTradePrice● Deployed using SOAP 1.1 over HTTP● Request takes a ticker symbol of type

string● Response returns price as a float

Page 56: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

56

UDDIUDDI

Page 57: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

57

Service Architecture

UDDI defines a way to publish and find information about Web services.

UDDI Registry

1. Service RegistersPUBLISH

3. Client calls ServiceBIND

2. Client Request Service Location

FIND

WebService

ServiceClient

Page 58: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

58

UDDI (Universal Description, Discovery and Integration)● “White pages”

– address, contact, and known identifiers● “Yellow pages”

– industrial categorizations● Industry: NAICS (Industry codes - US Govt.)● Product/Services: UN/SPSC (ECMA)● Location: Geographical taxonomy

● “Green pages”– technical information about services

Page 59: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

59

Web Services Framework for J2EE

Page 60: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

60

J2EE Platform& Web Services

B2BApplications

B2CApplications

WebS ervices

WirelessApplications

Application ServerEnterpriseInformation

S ystems

Exis tingApplications

Page 61: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

61

Why J2EE for Web Services?

● Web services is just one of many service delivery channels of J2EE– No architectural change is needed– Existing J2EE components can be easily

exposed as Web services● Many benefits of J2EE are

preserved for Web services– Portability, Scalability, Reliability– No single-vendor lock-in

Page 62: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

62

Where Are We Now?● Java APIs for Web Services are

being developed very rapidly● Tools are available now for

exposing existing J2EE components as Web services

● J2EE community has defined overall framework for Web Services (J2EE 1.4, JSR 109)

Page 63: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

63

Design Goals J2EE Web Services Framework ● Portability of Web services component – Over different vendor platform– Over different operational environment

● Leveraging existing J2EE programming models for service implementation

● Easy to program and deploy– High-level Java APIs– Use existing deployment model

Page 64: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

64

J2EE Web Services Framework

● J2EE 1.4 and Java EE 5– Umbrella framework for Web services– JSR 109, JAX-RPC, JAXR, EJB 2.1, Servlet

2.4, ● JAX-RPC (JAX-WS)– Defines client programming model – Defines Servlet-based Web services endpoint

model

Page 65: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

65

J2EE Web Services Framework

● EJB 2.1– Defines Stateless Session Bean-based Web

services endpoint model● Servlet 2.4– Will be aligned with JAX-RPC

● JSR 109– Defines standard Web services packaging and

deployment model

Page 66: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

66

Web Services ArchitectureWeb Services Architectureover J2EEover J2EE

Page 67: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

67

What Is a Web Service?● A set of endpoints (ports) operating on

messages● Ports are operating within a container

– Container provides runtime environment– Contract for runtime environment are specified in

JAX-RPC, EJB 2.1, JSR 109● Service is described in WSDL document

and published to a registry– WSDL specifies a contract between service

provider and client

Page 68: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

68

Web Service Component and Container● Container vs. Component model

– Web services components get executed within a container

– Components are portable (under J2EE 1.4)● Web service components

– Web-tier (Servlet-based endpoint)– EJB-tier (Stateless session bean-based endpoint)

Page 69: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

69

Web Service Components

Source: Web Services for J2EE (JSR 109), V1.0

Web services components

Page 70: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

70

Summary

Page 71: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

71

Summary● Web services provides a new paradigm for

program to program communication● Comprehensive set of Java APIs for Web

Services are now available!● J2EE is the platform of choice for Web

services

Page 72: Web Services Overview - wme.lzu.edu.cnwme.lzu.edu.cn/course/soa/slides/WebServicesOverview.pdf · Things - 1014 Computers 108 Embedded Computers 1011 Desktops Client/Server Web Applications

72

Passion!