Web Services Web Services Overview Overview Dr. Kanda Runapongsa - - PDF document

web services web services
SMART_READER_LITE
LIVE PREVIEW

Web Services Web Services Overview Overview Dr. Kanda Runapongsa - - PDF document

Java Web Services, Software Park Thailand, 2004 Web Services Web Services Overview Overview Dr. Kanda Runapongsa Dr. Kanda Runapongsa Department of Computer Engineering Department of Computer Engineering Khon Kaen University Khon Kaen


slide-1
SLIDE 1

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

1

1

Web Services Web Services

Overview Overview

  • Dr. Kanda Runapongsa
  • Dr. Kanda Runapongsa

Department of Computer Engineering Department of Computer Engineering Khon Kaen University Khon Kaen University

2

Outline Outline

  • What is Web Services?

What is Web Services?

  • Why Web Services?

Why Web Services?

  • Where is Web Services?

Where is Web Services?

  • Web Services Architecture and Standards

Web Services Architecture and Standards

  • Web Services Implementation and Tools

Web Services Implementation and Tools

slide-2
SLIDE 2

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

2

3

In Search of a Definition In Search of a Definition

  • Web Services mean different things to

Web Services mean different things to different people different people

  • Web Services == Web Application?

Web Services == Web Application?

  • Web Services

Web Services Computer to Computer Computer to Computer

  • Web Application

Web Application Computer to Human beings Computer to Human beings

  • Web Services == e

Web Services == e-

  • Commerce?

Commerce?

  • E

E-

  • Commerce needs to also consider security

Commerce needs to also consider security

4

Web Services Definition by W3C Web Services Definition by W3C

  • A Web service is a

A Web service is a software application software application identified by identified by a URI a URI

  • Support direct

Support direct interactions with other interactions with other software applications software applications

  • Using

Using XML based messages XML based messages via via Internet Internet-

  • based protocols

based protocols

slide-3
SLIDE 3

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

3

5

Distributed Computing Evolution Distributed Computing Evolution

6

Traditional RPC vs. Web Services Traditional RPC vs. Web Services

slide-4
SLIDE 4

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

4

7

Web Application vs. Web Services Web Application vs. Web Services

8

Characteristics of Web Services Characteristics of Web Services

  • XML based everywhere

XML based everywhere

  • Message

Message-

  • based

based

  • Programming language independent

Programming language independent

  • Could be dynamically located

Could be dynamically located

  • Could be dynamically assembled or aggregated

Could be dynamically assembled or aggregated

  • Accessed over the internet

Accessed over the internet

  • Loosely coupled

Loosely coupled

  • Based on industry standards

Based on industry standards

slide-5
SLIDE 5

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

5

9

Service Aggregation Service Aggregation

User Stock Service Portal Input: Symbol Output: Price, News, Trade SetTrade Input: Symbol Output: Price News feed 1 Input: Symbol Output: News links … News feed n Input: Symbol Output: News links Brokerage 1 Input: Symbol, Price, Qty Output: Analysis Brokerage n Input: Symbol, Price, Qty Output: Analysis ..

10

Outline Outline

  • What is Web Services?

What is Web Services?

  • Why Web Services?

Why Web Services?

  • Where is Web Services?

Where is Web Services?

  • Web Services Architecture and Standards

Web Services Architecture and Standards

  • Web Services Implementation and Tools

Web Services Implementation and Tools

slide-6
SLIDE 6

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

6

11

Why Web Services? Why Web Services?

  • Platform neutral

Platform neutral

  • Accessible in a standard way

Accessible in a standard way

  • Accessible in an interoperable way

Accessible in an interoperable way

  • Use simple and ubiquitous tools

Use simple and ubiquitous tools

  • Relatively cheap

Relatively cheap

  • Simplify enterprise integration

Simplify enterprise integration

12

Why Web Services? Why Web Services?

  • Interoperable

Interoperable – – Connect across heterogeneous Connect across heterogeneous networks using ubiquitous web networks using ubiquitous web-

  • based standards

based standards

  • Economical

Economical – – Recycle components, no installation Recycle components, no installation and tight integration of software and tight integration of software

  • Automatic

Automatic – – No human intervention required even for No human intervention required even for highly complex transactions highly complex transactions

  • Accessible

Accessible – – Legacy assets & internal apps are exposed Legacy assets & internal apps are exposed and accessible on the web and accessible on the web

  • Available

Available – – Services on any device, anywhere, anytime Services on any device, anywhere, anytime

  • Scalable

Scalable – – No limits on scope of applications and No limits on scope of applications and amount of heterogeneous applications amount of heterogeneous applications

slide-7
SLIDE 7

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

7

13

Web Services Usage Example Web Services Usage Example

  • Growing need for a standard lightweight

Growing need for a standard lightweight infrastructure for data exchange in e infrastructure for data exchange in e-

  • business

business applications applications

Distributor Supplier Manufacturing Factory Logistics Internet XML XML XML XML

14

Impact of Web Services on Software Impact of Web Services on Software

“Application Dis Application Dis

Integration

Integration” ”

slide-8
SLIDE 8

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

8

15

Macro Web Services Macro Web Services – – Virtual Virtual Systems Systems

  • A web service is accessed programmatically by

A web service is accessed programmatically by applications or other web services applications or other web services

Portfolio Net worth News Bank Balance Stock Position Biz News World News

16

Micro Web Services Micro Web Services – – Virtual Apps Virtual Apps

  • A web service is accessed programmatically by

A web service is accessed programmatically by applications or other web services applications or other web services

Word Processing Grammar Publishing Spell Check Dictionary C: \... http://...

slide-9
SLIDE 9

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

9

17

Three Laws of Computing Three Laws of Computing

  • Moore

Moore’ ’s Law s Law

  • Computing power doubles every 18 months

Computing power doubles every 18 months

  • Gilder

Gilder’ ’s Law s Law

  • Network bandwidth capacity doubles every 12

Network bandwidth capacity doubles every 12 months months

  • Metcalfe

Metcalfe’ ’s Law (Net Effect) s Law (Net Effect)

  • Value of network increases exponentially as

Value of network increases exponentially as number of participants increases number of participants increases

18

Impact on Integration Trigger the Impact on Integration Trigger the Network Effect Network Effect

  • Metcalfe

Metcalfe’ ’s Law: Value of network s Law: Value of network increases exponentially as number of increases exponentially as number of participants increases participants increases

Custom integration Web Services

slide-10
SLIDE 10

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

10

19

Myths about Web Services Myths about Web Services

  • Web Services are something

Web Services are something completely new: Not True! completely new: Not True!

  • You have to write Web Services from

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

  • J2EE Platform does not support web

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

20

Myth: Web Services is a New Myth: Web Services is a New Concept Concept

  • Web services is distributed computing all

Web services is distributed computing all

  • ver again
  • ver again –

– only now it is based on the

  • nly now it is based on the

web web

? ? CORBA Transaction service, CORBA Transaction service, JTS JTS Transaction support Transaction support ? ? CORBA Event/ Notification CORBA Event/ Notification service, JMS service, JMS Messaging support Messaging support UDDI UDDI CORBA naming service, CORBA naming service, JDNI JDNI Service Registry Service Registry SOAP, compilers for WSDL SOAP, compilers for WSDL ORBS, ldl2java compilers, ORBS, ldl2java compilers, rmic rmic RPC Support RPC Support WSDL WSDL CORBA IDL, Java Interface CORBA IDL, Java Interface Interface Description Interface Description Basic Web Services Basic Web Services Distributed Computing Distributed Computing (CORBA/ Java) (CORBA/ Java) Concept Concept

slide-11
SLIDE 11

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

11

21

Other Popular Myths Surrounding Other Popular Myths Surrounding Web Services Web Services

  • Web services require only SOAP, WDL,

Web services require only SOAP, WDL, UDDI UDDI

  • We need more high

We need more high-

  • level semantics

level semantics

  • Web services are based on the RPC

Web services are based on the RPC paradigm paradigm

  • Document

Document-

  • driven model would be more popular

driven model would be more popular communication model communication model

  • Web services must be based on HTTP

Web services must be based on HTTP

  • Other transports such as SMTP can also be used

Other transports such as SMTP can also be used

22

Outline Outline

  • What is Web Services?

What is Web Services?

  • Why Web Services?

Why Web Services?

  • Where is Web Services?

Where is Web Services?

  • Web Services Architecture and Standards

Web Services Architecture and Standards

  • Web Services Implementation and Tools

Web Services Implementation and Tools

slide-12
SLIDE 12

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

12

23

State of Web Services State of Web Services

  • Technology/ Standards are still evolving

Technology/ Standards are still evolving

  • SOAP, WSDL, UDDI are not enough

SOAP, WSDL, UDDI are not enough

  • Business web services is the next big thing, but

Business web services is the next big thing, but more works are needed in more works are needed in

  • Quality of Service, management

Quality of Service, management

  • Security, transaction, state and user context

Security, transaction, state and user context

  • Work flow, Identify management

Work flow, Identify management

  • Provisioning, Accounting

Provisioning, Accounting

  • Will be adopted in phases

Will be adopted in phases

24

Web Services Adoption Phases Web Services Adoption Phases

  • 1

1st

st phase (current state)

phase (current state)

  • Concerted deployment internally within an organization

Concerted deployment internally within an organization mainly for interoperability mainly for interoperability

  • SOAP over HTTP

SOAP over HTTP

  • 2

2nd

nd phase (1 to 2 years)

phase (1 to 2 years)

  • Selective and non

Selective and non-

  • aggregate deployment with trusted

aggregate deployment with trusted

  • utside business partners
  • utside business partners
  • Private registry deployment

Private registry deployment

  • 3

3rd

rd phase (at least 3 to 4 years away)

phase (at least 3 to 4 years away)

  • Wider, more dynamic and aggregate deployment with

Wider, more dynamic and aggregate deployment with

  • utside business partners
  • utside business partners
  • Public registry deployment

Public registry deployment

slide-13
SLIDE 13

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

13

25

Web Services Adoption Phases Web Services Adoption Phases

  • 1

1st

st phase

phase – – Simple Web Services (Now) Simple Web Services (Now)

  • Consumer

Consumer-

  • focused, stateless, SOAP over HTTP/ S

focused, stateless, SOAP over HTTP/ S

  • 2

2nd

nd phase

phase – – EAI Web Services (Begun) EAI Web Services (Begun)

  • Deployed within organization boundaries to enable

Deployed within organization boundaries to enable internal integration internal integration

  • 3

3rd

rd phase

phase – – Business Web Services (2004?) Business Web Services (2004?)

  • Deployed extranets to enable business transactions

Deployed extranets to enable business transactions with trading partners, suppliers, and customers, with trading partners, suppliers, and customers, ebXML & UBL ebXML & UBL

26

Business Web Services Business Web Services

  • J2EE

J2EE

  • Service implementation platform standard

Service implementation platform standard

  • ebXML and UBL

ebXML and UBL

  • Business web services standards

Business web services standards

  • More than 16 vendors and several open source

More than 16 vendors and several open source projects support ebXML projects support ebXML

  • Australian gas industry uses ebXML Now

Australian gas industry uses ebXML Now

  • Liberty Project

Liberty Project

  • Identify system standard

Identify system standard

slide-14
SLIDE 14

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

14

27

Business Web Services (B2 ) Business Web Services (B2 ) Architectural Components Architectural Components (ebXML) (ebXML)

  • B2B collaboration

B2B collaboration

  • Secure and reliable message delivery

Secure and reliable message delivery

  • Non

Non-

  • repudiation

repudiation

  • Partner profile

Partner profile

  • Repository for business data objects

Repository for business data objects

28

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

  • Simple Web Services

Simple Web Services

  • Simple interaction

Simple interaction

  • Consumer oriented

Consumer oriented

  • Short

Short-

  • living process

living process

  • No business collaboration

No business collaboration

  • No partner profile

No partner profile

  • Not secure, not reliable

Not secure, not reliable

  • Does not support non

Does not support non-

  • repudiation

repudiation

  • B2B Collaboration

B2B Collaboration

  • Complex interaction

Complex interaction

  • Business oriented

Business oriented

  • Long

Long-

  • running process

running process

  • Supports business

Supports business collaboration collaboration

  • Supports partner profile

Supports partner profile

  • Secure and reliable

Secure and reliable

  • Supports non

Supports non-

  • repudiation

repudiation

slide-15
SLIDE 15

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

15

29

EAI vs. B2B Collaboration (ebXML) EAI vs. B2B Collaboration (ebXML)

  • EAI

EAI

  • Within a business

Within a business

  • rganization
  • rganization
  • Centralized control

Centralized control

  • Implicit contract

Implicit contract

  • Small number of

Small number of business process business process and participants and participants

  • B2B Collaboration

B2B Collaboration

  • Between business

Between business

  • rganizations
  • rganizations
  • Distributed control

Distributed control

  • Explicit contract

Explicit contract

  • Potentially large

Potentially large number of business number of business processes and processes and participants participants

30

Trends Towards Service Orientation Trends Towards Service Orientation

  • Evolution of EAI to web service standards

Evolution of EAI to web service standards

  • XML RPC

XML RPC Asynchronous XML Messaging Asynchronous XML Messaging

  • Towards de

Towards de-

  • centralization

centralization

  • Componentized services

Componentized services

  • Composable and composite services

Composable and composite services

  • Data encapsulated within components

Data encapsulated within components

  • Data ownership follows component ownership

Data ownership follows component ownership

  • Brokered web services

Brokered web services

  • Flexible relationships

Flexible relationships Adaptive business Adaptive business

slide-16
SLIDE 16

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

16

31

Outline Outline

  • What is Web Services?

What is Web Services?

  • Why Web Services?

Why Web Services?

  • Where is Web Services?

Where is Web Services?

  • Web Services Architecture and

Web Services Architecture and Standards Standards

  • Web Services Implementation and Tools

Web Services Implementation and Tools

32

(Simplified) Web Service (Simplified) Web Service Architecture Architecture

Registry Service Client

  • 2. Client request

Service Location FI ND

  • 3. Client calls Service

BI ND

1. Service Registers

PUBLISH Web Service Provider

slide-17
SLIDE 17

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

17

33

Operation Models for Web Services Operation Models for Web Services

  • Web Service Provider

Web Service Provider

  • Creates the Web service typically as SOAP

Creates the Web service typically as SOAP-

  • based service interfaces

based service interfaces

  • Deploys the service and make them available

Deploys the service and make them available for invocation over a network for invocation over a network

  • Describes the Web service as a WSDL

Describes the Web service as a WSDL-

  • based

based service description service description

  • Registers the WSDL

Registers the WSDL-

  • based service description

based service description with a service broker, which is typically a with a service broker, which is typically a UDDI registry UDDI registry

34

Operation Models for Web Services Operation Models for Web Services

  • Registry

Registry

  • Stores the service description as binding

Stores the service description as binding templates and URLs to WSDLs located templates and URLs to WSDLs located in the service provider environment in the service provider environment

  • List various service types, descriptions,

List various service types, descriptions, and locations of the services that help and locations of the services that help the service requesters find and subscribe the service requesters find and subscribe to the required services to the required services

slide-18
SLIDE 18

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

18

35

Operation Models for Web Services Operation Models for Web Services

  • Service Clients

Service Clients

  • Locates the required services by querying the UDDI registry

Locates the required services by querying the UDDI registry

  • Obtains the binding information and the URLs to identify

Obtains the binding information and the URLs to identify the service provider the service provider

  • Invokes the service provider

Invokes the service provider

  • Retrieves the WSDL Service description for those registered

Retrieves the WSDL Service description for those registered services services

  • Communicate with the service provider

Communicate with the service provider

  • Exchange data or messages by invoking the available services

Exchange data or messages by invoking the available services in the service container in the service container

36

Web Services Interaction Diagram Web Services Interaction Diagram

Request WSDL location UDDI Registry 1 Download WSDL WSDL Send SOAP messages With XML documents Web Services 2 3

slide-19
SLIDE 19

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

19

37

Simple Object Access Protocol Simple Object Access Protocol (SOAP) (SOAP)

  • Wire protocol similar to

Wire protocol similar to

  • IIOP for CORA

IIOP for CORA

  • JRMP for RMI

JRMP for RMI

  • XML is used for data encoding

XML is used for data encoding

“Text Text” ” based protocol vs. based protocol vs. “ “binary binary” ” protocol protocol

  • Supports XML

Supports XML-

  • based RPC

based RPC

38

What SOAP is Not What SOAP is Not

  • Not a component model

Not a component model

  • So, it will not replace objects and

So, it will not replace objects and components, i.e., EJB, JavaBeans components, i.e., EJB, JavaBeans

  • Not a programming language

Not a programming language

  • So it will not replace java

So it will not replace java

  • Not a solution for all

Not a solution for all

  • So it will not replace other distributed

So it will not replace other distributed computing technologies such as RMI computing technologies such as RMI

slide-20
SLIDE 20

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

20

39

What does SOAP Define? What does SOAP Define?

  • Message Envelope

Message Envelope

  • Encoding Rules

Encoding Rules

  • RPC Convention

RPC Convention

  • Binding with underlying protocols

Binding with underlying protocols

40

SOAP Message Format SOAP Message Format

SOAP Message … Primary MIME part (text/xml) Attachment Attachment Attachment SOAP Envelope SOAP Header SOAP Body Header Entry Header Entry … Body Entry Body Entry …

slide-21
SLIDE 21

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

21

41

SOAP Message Envelope SOAP Message Envelope

  • Encoding information

Encoding information

  • Header

Header

  • Optional

Optional

  • Could contain context knowledge

Could contain context knowledge

  • Security

Security

  • Transaction

Transaction

  • Body

Body

  • RPC methods and parameters

RPC methods and parameters

  • Contains application data

Contains application data

42

SOAP Encoding SOAP Encoding

  • Rules of expressing application

Rules of expressing application-

  • defined

defined data types in XML data types in XML

  • Based on W3C XML schema

Based on W3C XML schema

  • Simple values

Simple values

  • Built

Built-

  • in types from XML Schema, Part 2

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

  • Compound values

Compound values

  • Structs, arrays, complex types

Structs, arrays, complex types

slide-22
SLIDE 22

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

22

43

What is WSDL? What is WSDL?

  • XML language for describing web services

XML language for describing web services

  • Web service is described as

Web service is described as

  • A set of communication endpoints (ports)

A set of communication endpoints (ports)

  • Endpoint is made of two parts

Endpoint is made of two parts

  • Abstract definitions of operations and messages

Abstract definitions of operations and messages

  • Concrete binding to networking protocol (and

Concrete binding to networking protocol (and corresponding endpoint address) and message corresponding endpoint address) and message format format

  • Why this separation?

Why this separation?

  • Enhance reusability (as we will see in UDDI

Enhance reusability (as we will see in UDDI reference to WSDL document) reference to WSDL document)

44

Why WSDL? Why WSDL?

  • Enables automation of communication

Enables automation of communication details between communicating partners details between communicating partners

  • Machines can read WSDL

Machines can read WSDL

  • Machines can invoke a service defined in

Machines can invoke a service defined in WSDL WSDL

  • Discoverable through registry

Discoverable through registry

  • Arbitration

Arbitration

  • 3

3rd

rd party can verify if communication

party can verify if communication conforms to WSDL conforms to WSDL

slide-23
SLIDE 23

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

23

45

WSDL Document Example WSDL Document Example

  • Simple service providing stock quotes

Simple service providing stock quotes

  • A single operation called

A single operation called GetLastTradePrice GetLastTradePrice

  • Deployed using

Deployed using SOAP 1.1 SOAP 1.1 over

  • ver HTTP

HTTP

  • Request takes a ticket symbol of type

Request takes a ticket symbol of type string string

  • Response returns price as a

Response returns price as a float float

46

Service Architecture Service Architecture

Service Client

  • 2. Client request

Service Location FI ND

  • 3. Client calls Service

BI ND

1. Service Registers

PUBLISH Web Service Provider UDDI Registry

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

slide-24
SLIDE 24

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

24

47

UDDI (Universal Description, UDDI (Universal Description, Discovery and Integration) Discovery and Integration)

  • White pages

White pages

  • Address, contact, and known identifiers

Address, contact, and known identifiers

  • Yellow pages

Yellow pages

  • Industrial categorizations

Industrial categorizations

  • Industry: NAICS (Industry codes

Industry: NAICS (Industry codes – – US Govt.) US Govt.)

  • Product/ Services: UN/ SPSC (ECMA)

Product/ Services: UN/ SPSC (ECMA)

  • Location: Geographical taxonomy

Location: Geographical taxonomy

  • Green pages

Green pages

  • Technical information about services

Technical information about services

48

Web Services Protocols Web Services Protocols

  • XML

XML http:/ / www.w3.org http:/ / www.w3.org

  • Web services messages are formatted using XML

Web services messages are formatted using XML

  • SOAP

SOAP http:/ / www.w3.org/ 2000/ xp/ Group http:/ / www.w3.org/ 2000/ xp/ Group

  • Simple Object Access Protocol

Simple Object Access Protocol

  • Defines the standard format for XML messages

Defines the standard format for XML messages

  • Functionally similar to RPC, CORBA, RMI

Functionally similar to RPC, CORBA, RMI

slide-25
SLIDE 25

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

25

49

Web Services Protocols Web Services Protocols

  • WSDL

WSDL http:/ / www.w3.org/ 2002/ ws/ desc http:/ / www.w3.org/ 2002/ ws/ desc

  • Web Services Description Language

Web Services Description Language

  • Describes a web services as a collection of ports and

Describes a web services as a collection of ports and

  • perations
  • perations
  • XML interface document similar to CORBA IDL or

XML interface document similar to CORBA IDL or RMI/ EJB remote interface RMI/ EJB remote interface

  • UDDI

UDDI http:/ / www.uddi.org http:/ / www.uddi.org

  • Universal Description, Discovery and Integration

Universal Description, Discovery and Integration

  • Provides a searchable registry of web services

Provides a searchable registry of web services

  • Similar, but broader in scope compared with CORBA or

Similar, but broader in scope compared with CORBA or JNDI registry JNDI registry

50

Other Web Services Standards Other Web Services Standards

  • ebXML

ebXML

  • A global electronic market place where enterprises of

A global electronic market place where enterprises of any size, anywhere can: any size, anywhere can:

  • Find each other electronically

Find each other electronically

  • Conduct business through exchange of XML based

Conduct business through exchange of XML based business messages business messages

  • Business Language

Business Language

  • UBL (Universal Business Language)

UBL (Universal Business Language)

  • Business collaboration and choreography

Business collaboration and choreography

  • ebXML BPSS, ebXML CPP/ CPA, BPML, WSFL

ebXML BPSS, ebXML CPP/ CPA, BPML, WSFL

slide-26
SLIDE 26

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

26

51

Other Web Services Standards Other Web Services Standards

  • Component Model

Component Model

  • WSIA (Web Services for Interactive Application)

WSIA (Web Services for Interactive Application)

  • Portal

Portal

  • WSRP (Web Services for Remote Portals)

WSRP (Web Services for Remote Portals)

  • Security

Security

  • XML Signature, XML Encryption, XKMS, XACML,

XML Signature, XML Encryption, XKMS, XACML, SAML, Liberty, WS SAML, Liberty, WS-

  • Security

Security

  • Transaction

Transaction

  • BTP, WS

BTP, WS-

  • Transaction

Transaction

52

Outline Outline

  • What is Web Services?

What is Web Services?

  • Why Web Services?

Why Web Services?

  • Where is Web Services?

Where is Web Services?

  • Web Services Architecture and Standards

Web Services Architecture and Standards

  • Web Services Implementation and

Web Services Implementation and Tools Tools

slide-27
SLIDE 27

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

27

53

Implementing Web Services Implementing Web Services

  • Web Services

Web Services e nable e nablenew kinds of applications, new kinds of applications, but they but they do not c

  • nstitute

do not c

  • nstitutethese applications, nor

these applications, nor do they build these applications do they build these applications

  • It is still necessary to use a programming

It is still necessary to use a programming language to design the client and server pieces language to design the client and server pieces

  • f the communication
  • f the communication
  • Java, C/ C++, C# , ASP, VB, PHP, etc.

Java, C/ C++, C# , ASP, VB, PHP, etc.

  • Web services merely serve as the glue between

Web services merely serve as the glue between the client and server applications the client and server applications

Client App SOAP or XML-RPC Server App

W eb Service

54

Web Services Vendors Web Services Vendors

  • Microsoft

Microsoft .NET .NET

  • Microsoft

Microsoft’ ’s new computing platform for building, s new computing platform for building, deploying, and running Web Services deploying, and running Web Services

  • IBM WebSphere Studio

IBM WebSphere Studio

  • Provide artifacts such as server

Provide artifacts such as server-

  • side and client

side and client-

  • side

side deployment descriptions deployment descriptions

  • Sun

Sun ONE ONE

  • Integrate

Integrateable ableplatform as opposed to .NET being platform as opposed to .NET being integrated and proprietary integrated and proprietary

  • MindElectric

MindElectric Glue Glue

  • A free SOAP framework designed to speed time to

A free SOAP framework designed to speed time to market for developing web service components market for developing web service components

  • Instantly publish any Java object as a web service

Instantly publish any Java object as a web service

  • Apache Group

Apache Group Axis, SOAP Axis, SOAP

  • Open source SOAP implementations

Open source SOAP implementations

slide-28
SLIDE 28

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

28

55

.NET Platform .NET Platform

  • .

.NET is Microsoft

NET is Microsoft’ ’s new computing platform for s new computing platform for building, deploying, and running Web Services building, deploying, and running Web Services

  • The framework consists of three main components

The framework consists of three main components

  • The Common Language Runtime (CLR)

The Common Language Runtime (CLR) – – provides a code provides a code execution and code management environment that operates execution and code management environment that operates

  • n bytecodes conforming to the Internal Language format
  • n bytecodes conforming to the Internal Language format

(IL) (IL)

  • .NET framework class library

.NET framework class library – – hierarchical, object hierarchical, object-

  • riented, collection of classes
  • riented, collection of classes
  • ASP .NET

ASP .NET – – componentized version of ASP componentized version of ASP

  • All of this is integrated into Visual Studio .NET,

All of this is integrated into Visual Studio .NET, providing a familiar GUI environment providing a familiar GUI environment

56

.NET Web Services .NET Web Services

  • .NET is Microsoft

.NET is Microsoft’ ’s attempt to create a RAD s attempt to create a RAD framework for distributed Web Services framework for distributed Web Services

  • developers can write .NET components in C++, C# , Visual

developers can write .NET components in C++, C# , Visual Basic, Jscript, J# , or ASP Basic, Jscript, J# , or ASP

  • tools can generate code in C# or Visual Basic

tools can generate code in C# or Visual Basic

  • class libraries abstract the details of the underlying

class libraries abstract the details of the underlying specifications and protocols (SOAP, XML, WSDL, UDDI) specifications and protocols (SOAP, XML, WSDL, UDDI)

  • CLR managed services allow developers to focus on

CLR managed services allow developers to focus on developing service logic rather than lower level services developing service logic rather than lower level services (exception handling, security, garbage collecting, etc.) (exception handling, security, garbage collecting, etc.)

slide-29
SLIDE 29

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

29

57

Java and Web Services Java and Web Services

  • Web Services are built on industry specifications with

Web Services are built on industry specifications with the following goals: the following goals:

  • language and vendor independent

language and vendor independent

  • facilitate collaboration between applications as well as

facilitate collaboration between applications as well as information exchange information exchange

  • The Java platform is also built on industry

The Java platform is also built on industry specifications and has similar goals: specifications and has similar goals:

  • platform independency (

platform independency (“ “Write Once Run Anywhere Write Once Run Anywhere” ”? ? ) )

  • vendor neutrality

vendor neutrality

  • extensibility, integration, and simplified connectivity

extensibility, integration, and simplified connectivity

  • As a vendor

As a vendor-

  • neutral, platform

neutral, platform-

  • independent language,

independent language, Java is perfect for implementing web service Java is perfect for implementing web service applications applications

58

.NET or J2EE? .NET or J2EE?

  • .

.NET

NET

✁ ✁

Allows the use of multiple Allows the use of multiple programming languages programming languages

✁ ✁

Delivers a lot of easy to assemble Delivers a lot of easy to assemble “ “out

  • ut-
  • of
  • f-
  • the

the-

  • box

box” ” functionality functionality

✁ ✁

Provides a familiar GUI Provides a familiar GUI environment environment

✁ ✁

Provides a familiar GUI Provides a familiar GUI environment environment

✁ ✁

Restricted to MS Windows Restricted to MS Windows platform for the foreseeable future platform for the foreseeable future

✁ ✁

Developers are limited in terms of Developers are limited in terms of system design and data exchange system design and data exchange models models

  • J2EE

J2EE

✁ ✁

Cross Cross-

  • platform and cross

platform and cross-

  • vendor

vendor

✁ ✁

Provides a wealth of choices for Provides a wealth of choices for IDE IDE’ ’s, application servers, XML s, application servers, XML parsers, SOAP engines, messaging parsers, SOAP engines, messaging platforms, etc. platforms, etc.

✁ ✁

Allows developer flexibility in Allows developer flexibility in terms of design and data exchange terms of design and data exchange models models

✁ ✁

Development of Web Services is Development of Web Services is

  • ften complex
  • ften complex
✁ ✁

Development is restricted to Java Development is restricted to Java language or CORBA language or CORBA

✁ ✁

Flexibility can be overwhelming Flexibility can be overwhelming

slide-30
SLIDE 30

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

30

59

Java APIs for Web Services Java APIs for Web Services

  • SOAP Messaging

SOAP Messaging

  • JAXM (JSR 67), SAAJ, JAX

JAXM (JSR 67), SAAJ, JAX-

  • RPC (JSR 101),

RPC (JSR 101), JMS JMS

  • WSDL

WSDL

  • Java API for WSDL (JSR 110)

Java API for WSDL (JSR 110)

  • JAX

JAX-

  • RPC (JSR 101)

RPC (JSR 101)

  • UDDI

UDDI

  • JAXR (JSR 67)

JAXR (JSR 67)

60

Java APIs for ebXML Java APIs for ebXML

  • ebXML Message Service (TR&P)

ebXML Message Service (TR&P)

  • JAXM (JSR 67) with ebXML Message Service

JAXM (JSR 67) with ebXML Message Service profile profile

  • ebXML Registry/ Repository

ebXML Registry/ Repository

  • JAXR (JSR 93)

JAXR (JSR 93)

  • CPP/ CPA

CPP/ CPA

  • Java API for ebXML CPP/ CPA (JSR 157)

Java API for ebXML CPP/ CPA (JSR 157)

slide-31
SLIDE 31

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

31

61

J2EE Web Services Framework J2EE Web Services Framework

  • J2EE 1.4 (JSR 151)

J2EE 1.4 (JSR 151)

  • Web services for J2EE (JSR 109)

Web services for J2EE (JSR 109)

  • JAX

JAX-

  • RPC (JSR 101)

RPC (JSR 101)

  • Sends SOAP method calls to remote parties over the Internet

Sends SOAP method calls to remote parties over the Internet and receives the results and receives the results

  • JAXR

JAXR

  • Provides a standard way to access business registries and

Provides a standard way to access business registries and share information share information

  • SAAJ

SAAJ

  • EJB 2.1

EJB 2.1

62

Java APIs for XML Document Java APIs for XML Document Management Management

  • JAXP (Java API for XML processing, JSR 05)

JAXP (Java API for XML processing, JSR 05)

  • Assembly language for XML document processing

Assembly language for XML document processing

  • JAXB (Java API for XML data

JAXB (Java API for XML data-

  • binding, JSR 31)

binding, JSR 31)

  • Higher level language for XML document

Higher level language for XML document processing processing

  • Streaming API for XML (JSR 173)

Streaming API for XML (JSR 173)

  • Pull

Pull-

  • parsing API based on iterator

parsing API based on iterator

  • Gives paring control to programmers

Gives paring control to programmers

slide-32
SLIDE 32

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

32

63

Java APIs for XML Security Java APIs for XML Security

  • XML Digital Signature (JSR 105)

XML Digital Signature (JSR 105)

  • XML Encryption (JSR 106)

XML Encryption (JSR 106)

  • XML Trust Service (JSR 104)

XML Trust Service (JSR 104)

  • Secure Assertion Markup Language

Secure Assertion Markup Language (SAML, JSR 155) (SAML, JSR 155)

  • WS

WS-

  • Security (JSR 183)

Security (JSR 183)

64

More Java APIs for Web Services More Java APIs for Web Services

  • XML Transactioning API for Java

XML Transactioning API for Java (JSR 156) (JSR 156)

  • Java API for OASIS BTP

Java API for OASIS BTP

  • Web Services for J2ME (JSR 172)

Web Services for J2ME (JSR 172)

  • SOAP messaging for J2ME devices

SOAP messaging for J2ME devices

  • Web Services Metadata for J2EE (JSR

Web Services Metadata for J2EE (JSR 181) 181)

  • Metadata based Web Services

Metadata based Web Services

slide-33
SLIDE 33

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

33

65

Why J2EE for Web Services Why J2EE for Web Services

  • Web service is just one of many service

Web service is just one of many service delivery channels of J2EE delivery channels of J2EE

  • No architecture change is needed

No architecture change is needed

  • Existing J2EE components can be easily exposed as

Existing J2EE components can be easily exposed as Web services Web services

  • Many benefits of J2EE are preserved for

Many benefits of J2EE are preserved for Web services Web services

  • Portability, Scalability, Reliability

Portability, Scalability, Reliability

  • No single

No single-

  • vendor lock in

vendor lock in

66

Where Are We Now? Where Are We Now?

  • Java APIs for Web Services are being

Java APIs for Web Services are being developed very rapidly developed very rapidly

  • Tools are available now for exposing

Tools are available now for exposing existing J2EE components as Web existing J2EE components as Web services services

  • J2EE community has defined overall

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

slide-34
SLIDE 34

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

34

67

Design Goals J2EE Web Services Design Goals J2EE Web Services Framework Framework

  • Portability of Web services component

Portability of Web services component

  • Over different vendor platforms

Over different vendor platforms

  • Over different operational environments

Over different operational environments

  • Leveraging existing J2EE programming

Leveraging existing J2EE programming models for service implementation models for service implementation

  • Easy to program and deploy

Easy to program and deploy

  • High

High-

  • level Java APIs

level Java APIs

  • Use existing deployment model

Use existing deployment model

68

J2EE Web Services Framework J2EE Web Services Framework

  • J2EE 1.4

J2EE 1.4

  • Umbrella framework for Web Services

Umbrella framework for Web Services

  • JSR 109, JAX

JSR 109, JAX-

  • RPC, JAXR, EJB 2.1, Servlet

RPC, JAXR, EJB 2.1, Servlet 2.4 2.4

  • JAX

JAX-

  • RPC

RPC

  • Defines client programming model

Defines client programming model

  • Defines Servlet

Defines Servlet-

  • based Web services endpoint

based Web services endpoint model model

slide-35
SLIDE 35

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

35

69

J2EE Web Services Framework J2EE Web Services Framework

  • EJB 2.1

EJB 2.1

  • Defines Stateless Session Bean

Defines Stateless Session Bean-

  • based Web

based Web services endpoint model services endpoint model

  • Servlet 2.4

Servlet 2.4

  • Will be aligned with JAX

Will be aligned with JAX-

  • RPC

RPC

  • JSR 109

JSR 109

  • Defines standard Web services packaging and

Defines standard Web services packaging and deployment model deployment model

70

Web Services in J2EE Environment Web Services in J2EE Environment

  • A set of endpoints (ports) operating on

A set of endpoints (ports) operating on messages messages

  • Ports are operating within a container

Ports are operating within a container

  • Container provides runtime environment

Container provides runtime environment

  • Contract for runtime environment are specified in

Contract for runtime environment are specified in JAX JAX-

  • RPC, EJB 2.1, JSR 109

RPC, EJB 2.1, JSR 109

  • Service is described in WSDL documents and

Service is described in WSDL documents and published to a registry published to a registry

  • WSDL specifies a contract between service provider

WSDL specifies a contract between service provider and client and client

slide-36
SLIDE 36

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

36

71

Web Service Component and Web Service Component and Container Container

  • Container vs. Component model

Container vs. Component model

  • Web services components get executed within

Web services components get executed within a container a container

  • Components are portable (under J2EE 1.4)

Components are portable (under J2EE 1.4)

  • Web service components

Web service components

  • Web

Web-

  • tier (Servlet

tier (Servlet-

  • based endpoint)

based endpoint)

  • EJB

EJB-

  • tier (Stateless session bean

tier (Stateless session bean-

  • based

based endpoint) endpoint)

72

Web Services Tools for Java Platform Web Services Tools for Java Platform

  • Web Services Tools (Available Now!)

Web Services Tools (Available Now!)

  • Tools that come with reference implementations of Java

Tools that come with reference implementations of Java APIs for Web Services (JAX APIs for Web Services (JAX-

  • RPC, JAX

RPC, JAX-

  • R)

R)

  • Systinet, Cape Clear, Apache SOAP

Systinet, Cape Clear, Apache SOAP

  • IDE

IDE’ ’s (Now) s (Now)

  • Sun ONE Studio with SOAP

Sun ONE Studio with SOAP-

  • RPC module from Sun

RPC module from Sun

  • JBuilder from Borland

JBuilder from Borland

  • JDeveloper from Oracle

JDeveloper from Oracle

  • WebGain from WebGain

WebGain from WebGain

slide-37
SLIDE 37

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

37

73

Java Web Services Developer Pack Java Web Services Developer Pack (Java WSDP) (Java WSDP)

  • Provide a convenient all

Provide a convenient all-

  • in

in-

  • one package
  • ne package
  • Geared fro developers

Geared fro developers

  • Contains

Contains

  • JAXP, JAXM, SAAJ, JAX

JAXP, JAXM, SAAJ, JAX-

  • RPC, JAXR

RPC, JAXR

  • Tomcat

Tomcat

  • JSP Tag Library (JSTL)

JSP Tag Library (JSTL)

  • JSSE (Java Secure Socket Extension)

JSSE (Java Secure Socket Extension)

  • Ant build tool

Ant build tool

  • Web application deployment tool

Web application deployment tool

  • Java WSDP Registry Server (UDDI server)

Java WSDP Registry Server (UDDI server)

  • Extensive tutorial

Extensive tutorial

74

Summary Summary

  • Web Services Overview

Web Services Overview

  • Definition

Definition

  • loosely coupled, coarse

loosely coupled, coarse-

  • grained, asynchronous

grained, asynchronous

  • modular, self

modular, self-

  • contained, self

contained, self-

  • describing

describing

  • published, located, invoked across the web

published, located, invoked across the web

  • Types

Types

  • B2B facilitator

B2B facilitator

  • componentized e

componentized e-

  • service

service

slide-38
SLIDE 38

Java Web Services, Software Park Thailand, 2004

  • Dr. Kanda Runapongsa, Khon Kaen University

38

75

Summary Summary

  • Web Services Industry

Web Services Industry

  • Microsoft

Microsoft’ ’s .NET s .NET – – device integration device integration

  • IBM

IBM’ ’s Dynamic e s Dynamic e-

  • business

business – – flexibility flexibility

  • Sun

Sun’ ’s ONE s ONE – – extensible, integreatable extensible, integreatable

  • Apache SOAP and Axis

Apache SOAP and Axis – – open source SOAP

  • pen source SOAP
  • Web Services provides a new paradigm for program

Web Services provides a new paradigm for program to program communication to program communication