© 2007 ibm corporation ® real-world considerations and uses of web service transactions in soa ian...

23
© 2007 IBM Corporation ® Real-world Considerations and Uses of Web Service Transactions in SOA Ian Robinson Chair OASIS WS-TX Technical Committee IBM Distinguished Engineer

Upload: christal-black

Post on 23-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

© 2007 IBM Corporation

®

Real-world Considerations and Uses of Web Service Transactions in SOA

Ian RobinsonChair OASIS WS-TX Technical CommitteeIBM Distinguished Engineer

Real-world uses of transactional Web Services

2

IBM Software Group

Web services composeable architecture

Management & Composition

Transports

Messaging

Description

Quality ofService

HTTP/HTTPS SMTP RMI / IIOP

XSD WSDL

SOAPXML WS-Addressing

WS-Policy

WSDM

JMS

SecurityWS-ReliableMessaging WS-Transaction

WS-BPEL

WS-AtomicTransaction WS-BusinessActivity

WS-Coordination

Real-world uses of transactional Web Services

3

IBM Software Group

Brief history of WS-Tx standard

WS-Tx = WS-Coordination +…

– WS-AtomicTransaction

• Atomic commit or rollback; 2PC

– WS-BusinessActivity

• Overall outcome atomic; business compensation

Version 1.0 specs published Aug 2005

– Input for OASIS WS-Tx Technical Committee

OASIS WS-Tx TC V1.1 standard published April 2007

Real-world uses of transactional Web Services

4

IBM Software Group

WS-Transaction: federating transactions across disparate systems

WS-Tx defines the following concepts:

– An XML CoordinationContext that identifies a transaction and which is passed implicitly in Web service messages without this context having to be declared as an explicit message parameter.

• in the SOAP header for a SOAP binding

– A generic Coordination message set

– Protocol-specific messages sets that define the AT and BA protocols

This XML context and XML messages are designed for simple transformation within different runtimes to map down to underlying transaction processing technologies.

– For example, the J2EE WebSphere platform transforms WS-AT (JTA-based impl) XA

Real-world uses of transactional Web Services

5

IBM Software Group

Coordination Context (I)

<wscoor:CoordinationContext> <wscoor:Identifier>

uuid:33ca57d4-eaab-4939-8177-77351e6e63c7 </wscoor:Identifier> <wscoor:Expires>60000</wscoor:Expires>   <wscoor:CoordinationType>

http://schemas.xmlsoap.org/ws/2004/10/wsat </wscoor:CoordinationType> <wscoor:RegistrationService>  <wsa:Address>http://wsatserver/wscoor/Registration</wsa:Address> <wsa:ReferenceParameters> <tm:txId>246</tm:txId>   </wsa:ReferenceParameters>  </wscoor:RegistrationService> …</wscoor:CoordinationContext>

Note: Applications don’t see or care about this

Real-world uses of transactional Web Services

6

IBM Software Group

Coordination Context (II)

Flows as a SOAP header on application requests<s:Envelope> <s:Header> <wsa:Action>http://tempuri.org/application/action</wsa:Action> <wsa:To>http://server/service/</wsa:To> <wscoor:CoordinationContext s:mustUnderstand=“true”> … </wscoor:CoordinationContext> </s:Header> <s:Body> <!-- Application body content --> </s:Body></s:Envelope>

Note: Applications don’t see or care about this

Real-world uses of transactional Web Services

7

IBM Software Group

WS-Transaction architecture

Requester runtime

Requesterapplication

WS-Coordination& (WS-AT, WS-BA)

Provider runtime

Target Web Service

Runtime enve.g. J2EE server

begin TX

CreateCoordinationContext

Web service request

wscoor:RegisterWS-Coordination

& (WS-AT, WS-BA)commit/close

Runtime enve.g. .NET server

Add contextExtract context

Real-world uses of transactional Web Services

8

IBM Software Group

When is WS-AT useful?

WS-AT enables the scope of ACID behaviour to be distributed between Web service components.

BUT…

– Resource locks are held throughout the transaction

– Services that share an ACID transaction are not loosely coupled

Primary uses:

– transactions between services within a single organization domain

– sometimes the only way to distribute an ACID transaction across different software stacks.

Real-world uses of transactional Web Services

9

IBM Software Group

When is WS-AT useful?

Atomictransaction

RDBMS RDBMS

Web service WSa Web service WSb

App Server 1 App Server 2

TransactionManager

TransactionManager

2PC

2PC2PC

Real-world uses of transactional Web Services

10

IBM Software Group

Engaging transactions

Real-world uses of transactional Web Services

11

IBM Software Group

When is WS-BA useful?

WS-BA provides a different form of atomicity from WS-AT. Participant are still brought to an atomic outcome but:

– there is no isolation of resources

– application-level compensation is required instead of resource manager rollback

Also appropriate for longer-running and more loosely-coupled interactions.

– but don’t equate compensation with “looser coupling”.

A non-process-oriented approach c.f. WS-BPEL

Primary uses:

– business transactions that span organizational boundaries

– distributed processes that use non-transactional resources

Real-world uses of transactional Web Services

12

IBM Software Group

When is WS-BA useful?

Business Tasks execute within the scope of a Business Activity

Updates are exposed before Business Activity completes

Completed participants receive common outcome

Web service WSa Web service WSb

Business Activity

Runtime 1 Runtime 2

Business Task

Business Task

BA participant BA participant

Compensate Compensate

Real-world uses of transactional Web Services

13

IBM Software Group

What about the “NFRs”?

The TX specs define interoperable Web service transaction protocols. They don’t define “non-functional requirements” such as:

Proxies and firewalls

High availability and failover of TX endpoints

Transaction-based workload management affinity

These are outside the scope of the specification. But any enterprise-level SOA runtime needs to accommodate these.

Where are these considerations factored and do they affect interoperability?

Real-world uses of transactional Web Services

14

IBM Software Group

WS-Addressing EndpointReferences

The TX endpoints exchanged are WS-Addressing EndpointReferences:

– A “++” XML pointer.

– Contains an address URI for the endpoint service

– Contains a set of opaque “ReferenceParameter” tokens that augment the address with anything required by the target service or its runtime environment.

<wsa:EndpointReference> <wsa:Address>http://wsgw.fabrikam.com/_IBMSYSAPP/wsat/services/Participant</wsa:Address> <wsa:ReferenceParameters> <someNS:txID>111-222-333</someNS:txID> <was:HAclusterId>475639400084265978327593</was:HAclusterId> </wsa:ReferenceParameters></wsa:EndpointReference>

Real-world uses of transactional Web Services

15

IBM Software Group

WS-TX and intermediary nodes

Server A Server BIntermediary node for server B

Application Requests

WS-TX Protocol Requests

DMZ in firewall for Server B

Intermediary node for server A

HTTP reverse proxy for server A

sA.myserv.com sB.yourserv.comgw.myserv.com

gw.yourserv.com

<wsa:To> <wsa:Address>http://gw.yourserv.com/_IBMSYSAPP/wsat/services/Participant</wsa:Address></wsa:To><someNS:txID wsa:IsReferenceParameter='true'>111-222-333</someNS:txID><was:HAclusterId wsa:IsReferenceParameter='true'>475639400084265978327593</was:HAclusterId><wsa:From> <wsa:Address>http://gw.myserv.com/_IBMSYSAPP/wsat/services/Coordinator</wsa:Address> …</wsa:From>

Participantservice

Coordinatorservice

Real-world uses of transactional Web Services

16

IBM Software Group

High availability failover of protocol endpoints

Edge of networkHTTP Proxy

AppServer Node

AppServer Node

EPRs from each server contain a virtual host address mapped by the proxy.

RefParams in the EPR are used by WLM plug-in to “follow” HA failover.

WebService Environment

WS-TxCoordinator

WLMWS-Txplugin

Server Cluster

HA failover of EPR based on RefParams

wsat:Commit

WS-Tx Participantservice

WS-Tx Participantservice

EPR’

wsat:Commit

wsat:Commit

wsba:Close

wsba:Close

wsba:Close

s1.fabrikam.com

s2.fabrikam.com

wsgw.fabrikam.com

Real-world uses of transactional Web Services

17

IBM Software Group

High availability failover of protocol endpoints

Edge of networkHTTP Proxy

AppServer Node

AppServer Node

WebService Environment

WS-TxCoordinator

Server Cluster

HA failover of EPR based on RefParams

wsat:Commit

WS-Tx Participantservice

WS-Tx Participantservice

wsat:Commit

wsat:Commit

wsba:Close

wsba:Close

wsba:Close

<wsa:EndpointReference> <wsa:Address>http://wsgw.fabrikam.com/_IBMSYSAPP/wsat/services/Participant</wsa:Address> <wsa:ReferenceParameters> <someNS:txID>111-222-333</someNS:txID> <was:HAclusterId>475639400084265978327593</was:HAclusterId> </wsa:ReferenceParameters></wsa:EndpointReference>

EPR’WLM

WS-Txplugin

wsgw.fabrikam.com

Real-world uses of transactional Web Services

18

IBM Software Group

Transaction-based affinity routing

Edge of networkHTTP Proxy

AppServer Node

Web serviceprovider

AppServer Node

Web serviceprovider

WLM transaction affinity constraints.

All requests to WLM-able EPRs within the same WS-Tx context targeted to the same server.

WebService Environment

Global Tran

WLMWS-Txplugin

Server Cluster

Affinity based on CoordinationContext

App msgs

App msgs

WS-TxCoordinator

begin

Requester

commit

Real-world uses of transactional Web Services

19

IBM Software Group

Transaction-based affinity routing

Edge of networkHTTP Proxy

AppServer Node

Web serviceprovider

AppServer Node

Web serviceprovider

WebService Environment

Global Tran

Server Cluster

Affinity based on CoordinationContext

App msgs

App msgs

WS-TxCoordinator

begin

Requester

commit

<soap:Header> <wscoor:CoordinationContext> <wscoor:Identifier>

uuid:33ca57d4-eaab-4939-8177-77351e6e63c7 </wscoor:Identifier>  <wscoor:CoordinationType>

http://docs.oasis-open.org/ws-tx/wsat/2006/06 </wscoor:CoordinationType> … </wscoor:CoordinationContext> …</soap:Header>

WLMWS-Txplugin

Real-world uses of transactional Web Services

20

IBM Software Group

Order Management Application: HA WS-AT deploymentD

B2

Dat

abas

e

WAS Node A

WAS Node B

Sh

ared

Fil

e S

yste

m

OrderService

TM(WS-AT)

XAJDBC

OrderService

TM(WS-AT)XA

JDBC

DB

2 D

atab

ase

WAS Node X

WAS Node Y

Sh

ared

Fil

e S

yste

m

InventoryService

TM(WS-AT)

XAJDBC

InventoryService

TM(WS-AT) XA

JDBC

Cell 1, Cluster 1 Cell 2, Cluster 2

WL

MW

LM

WL

MW

LM

WS-AT protocol messages

App M

essages

App Messages

HA

F

ailo

verWS-AT protocol messages H

A

Fai

love

rDistributed transaction

WAS v6.1 on AIX

Real-world uses of transactional Web Services

21

IBM Software Group

Online Banking: Proxied/WLM’d WS-BA deployment

WAS v6.1 on zOS

PaymentService

Sysplex

CreditAdapter

DepositAdapter

HT

TP

Pro

xyW

LM

Sys

ple

x D

istr

ibu

tor

CIC

S T

ran

sact

ion

Gat

eway

PaymentService

CreditAdapter

DepositAdapter

HT

TP

Pro

xy

CRED

CICS

DPST

TM(WS-BA)

OnlineBanking

WAS

(AIX/Linux/Win)

TM(WS-BA)

TM(WS-BA)

App

WS-BA

WS-BA

WS-BA

App

App

App

WS-BAW

LM

App

WS-BAA

pp

Messag

esA

pp

Messag

es

Distributed transaction

WAS v6.1 on zOS

Real-world uses of transactional Web Services

22

IBM Software Group

Summary

WS-Transaction defines a generic framework for Web service coordination protocols, as well as two concrete protocols for atomic and compensating transactions.

Usage of transactions needs to be considered carefully. But using them is very simple.

The “non-functional requirements” that are typically necessary for enterprise deployments can be provided in a transparent and interoperable fashion.

Applications that use WS-AT and WS-BA and exploit these enterprise qualities of service have been successfully deployed and demonstrate the viability of these advanced technologies in the real world.

Real-world uses of transactional Web Services

23

IBM Software Group