prepared for cis 6650.01 © 2007 w. lu/j. cole 1 "colombo: lightweight middleware for service-...

33
Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: "Colombo: Lightweight Lightweight middleware for middleware for service-oriented service-oriented computing" computing" by F. Curbera, M. J. Duftler, R. by F. Curbera, M. J. Duftler, R. Khalaf, W. A. Nagy, N. Mukhi, and Khalaf, W. A. Nagy, N. Mukhi, and S. Weerawarana S. Weerawarana IBM Systems Journal, Vol. 44, No. 4, 2005, Pages 799- IBM Systems Journal, Vol. 44, No. 4, 2005, Pages 799- 820 820 Critique by Jack Cole (Presenter) and Wei Lu (Discussant) Critique by Jack Cole (Presenter) and Wei Lu (Discussant) of : of :

Upload: piers-wilkinson

Post on 17-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1

"Colombo: Lightweight "Colombo: Lightweight middleware for service-middleware for service-oriented computing"oriented computing"by F. Curbera, M. J. Duftler, R. Khalaf, W. A. by F. Curbera, M. J. Duftler, R. Khalaf, W. A. Nagy, N. Mukhi, and S. Weerawarana Nagy, N. Mukhi, and S. Weerawarana IBM Systems Journal, Vol. 44, No. 4, 2005, Pages IBM Systems Journal, Vol. 44, No. 4, 2005, Pages 799-820799-820

Critique by Jack Cole (Presenter) and Wei Lu (Discussant) of :Critique by Jack Cole (Presenter) and Wei Lu (Discussant) of :

Page 2: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

2Prepared for CIS 6650.01 Winter 2007

What Is Colombo?What Is Colombo? A research project at IBM (Watson)A research project at IBM (Watson) Goal is to "deepen understanding of what type of Goal is to "deepen understanding of what type of

middleware architectures are most appropriate middleware architectures are most appropriate to support SOC environments".to support SOC environments".

To that end: design and implement a middleware To that end: design and implement a middleware platform for platform for developingdeveloping, , deployingdeploying, , and and executingexecuting SO applications that is: SO applications that is: lightweightlightweight optimized for SOAoptimized for SOA native for SOA – not glued onto legacy runtimesnative for SOA – not glued onto legacy runtimes

The paper describes the architecture, design The paper describes the architecture, design principles, and capabilities of Colombo. principles, and capabilities of Colombo.

Page 3: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

3Prepared for CIS 6650.01 Winter 2007

Colombo is…Colombo is…

A.A. A A Programming ModelProgramming Model for development for development of services and service compositionsof services and service compositions

B.B. A A Runtime EnvironmentRuntime Environment for Web for Web Services and Web Service compositions, Services and Web Service compositions, with rich Quality of Service (QoS) with rich Quality of Service (QoS) capabilitiescapabilities

Page 4: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

4Prepared for CIS 6650.01 Winter 2007

SOA Principles & Requirements SOA Principles & Requirements in Colomboin Colombo

1.1. Faithful realization of Faithful realization of the Web Services the Web Services protocol stackprotocol stack

efficient XML parserefficient XML parser SOAP processor for SOAP processor for

synchronous and synchronous and asynchronous asynchronous message exchangemessage exchange

Missing is support for Missing is support for discovery of servicesdiscovery of services ( All Figures are from the original paper )( All Figures are from the original paper )

Page 5: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

5Prepared for CIS 6650.01 Winter 2007

SOA Principles & Requirements SOA Principles & Requirements in Colomboin Colombo

2.2. Quality of Service requirements must be Quality of Service requirements must be part of the integration contract between part of the integration contract between providers and requestors.providers and requestors.

Colombo runtime provides a policy handler Colombo runtime provides a policy handler framework supporting "business enabling" framework supporting "business enabling" QoS specifications currently in the Web QoS specifications currently in the Web Services stack: Services stack:

atomic transactions atomic transactions reliable messagingreliable messaging securitysecurity

Page 6: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

6Prepared for CIS 6650.01 Winter 2007

SOA Principles & Requirements SOA Principles & Requirements in Colomboin Colombo

3.3. Web Services must be driven by Web Services must be driven by machine-readable service descriptions in machine-readable service descriptions in the form of meta-data.the form of meta-data.

WSDL and WS-Policy descriptions are used WSDL and WS-Policy descriptions are used throughoutthroughout

Page 7: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

7Prepared for CIS 6650.01 Winter 2007

SOA Principles & Requirements SOA Principles & Requirements in Colomboin Colombo

4.4. Must provide native support for service Must provide native support for service creation and compositioncreation and composition

Colombo defines primitives for creating and Colombo defines primitives for creating and deploying Web Services in a language-deploying Web Services in a language-independent mannerindependent manner

"first-class support for service composition""first-class support for service composition"

Page 8: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

8Prepared for CIS 6650.01 Winter 2007

The Colombo Programming The Colombo Programming ModelModel

The Programming Model provides The Programming Model provides mechanisms to:mechanisms to:

Access and use other servicesAccess and use other services Encode "business" and compositional logicEncode "business" and compositional logic Encapsulate the composition as a new Encapsulate the composition as a new

serviceservice State and honour the QoS characteristics State and honour the QoS characteristics

when interacting with serviceswhen interacting with services

Page 9: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

9Prepared for CIS 6650.01 Winter 2007

Services & ServiceletsServices & Servicelets

"Service: A stateless message processor "Service: A stateless message processor supporting exactly one interface and with supporting exactly one interface and with associated interaction-specific information, associated interaction-specific information, said to be 'context' "said to be 'context' "

The unit of development and deployment The unit of development and deployment is Colombo is a is Colombo is a "servicelet""servicelet"

A servicelet provides one A servicelet provides one or moreor more services services

Page 10: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

10Prepared for CIS 6650.01 Winter 2007

ServiceletsServicelets

Servicelets:Servicelets: May use May use otherother services to implement the services to implement the

business (service) logicbusiness (service) logic All services in a servicelet share a contextAll services in a servicelet share a context Interactions between servicelets and other Interactions between servicelets and other

services represent "conversations"services represent "conversations" servicelet may be in 1 conversation at a timeservicelet may be in 1 conversation at a time

Interactions with the Colombo runtime are Interactions with the Colombo runtime are also modeled as service interactionsalso modeled as service interactions

Page 11: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

11Prepared for CIS 6650.01 Winter 2007

ServiceletsServiceletsServicelets:Servicelets: May be programmed in any languageMay be programmed in any language Invoke another service using a "stub"Invoke another service using a "stub" Are invoked via an "adapter"Are invoked via an "adapter" Are driven by messagesAre driven by messages

As messages As messages arrive, they are arrive, they are delivered to the delivered to the servicelet servicelet along along with the with the servicelet servicelet contextcontext

Page 12: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

12Prepared for CIS 6650.01 Winter 2007

ServiceletsServicelets

Servicelets have clients, partners, policies, adapters, stubs, contexts, logic.

Page 13: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

13Prepared for CIS 6650.01 Winter 2007

Service DevelopmentService Development

Development begins with a WSDL file.Development begins with a WSDL file. From WSDL, Colombo tools generate: From WSDL, Colombo tools generate:

mappings from XML schema data types to mappings from XML schema data types to Java typesJava types

skeleton Java code skeleton Java code for the service that must be implementedfor the service that must be implemented for the reading and writing of messagesfor the reading and writing of messages

QoS policies from the binding sectionsQoS policies from the binding sections

Page 14: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

14Prepared for CIS 6650.01 Winter 2007

Development ModelsDevelopment Models

Service may be implemented in JavaService may be implemented in Java Java methods invoked for each messageJava methods invoked for each message Return value of method is response to Return value of method is response to

operationoperation Service may be implemented in BPELService may be implemented in BPEL

BPEL Process already embodies prominent BPEL Process already embodies prominent characteristics of serviceletcharacteristics of servicelet

BPEL PartnerLinks are ConversationsBPEL PartnerLinks are Conversations

Page 15: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

15Prepared for CIS 6650.01 Winter 2007

Colombo RuntimeColombo Runtime

There are 3 important parts:There are 3 important parts: SOAP-based message processing engineSOAP-based message processing engine Servicelet ManagersServicelet Managers QoS (Policy) FrameworkQoS (Policy) Framework

Page 16: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

16Prepared for CIS 6650.01 Winter 2007

Message EngineMessage Engine

The backbone of the Colombo RuntimeThe backbone of the Colombo Runtime Messages are divided into incoming and Messages are divided into incoming and

outgoing execution pathsoutgoing execution paths

Page 17: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

17Prepared for CIS 6650.01 Winter 2007

Message EngineMessage Engine

Many of the difficulties in developing the Many of the difficulties in developing the Runtime centred on meeting WS-Runtime centred on meeting WS-Addressing specificationAddressing specification

Large impact on message routing methodsLarge impact on message routing methods Information about recipient, action, Information about recipient, action,

purpose of message is passed around purpose of message is passed around conversations in SOAP headersconversations in SOAP headers

Page 18: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

18Prepared for CIS 6650.01 Winter 2007

Servicelet ManagersServicelet Managers

Each servicelet type (Java, BPEL, etc.) Each servicelet type (Java, BPEL, etc.) requires a Servicelet Managerrequires a Servicelet Manager hooks the servicelet runtime into the Colombo hooks the servicelet runtime into the Colombo

machinerymachinery Serves to isolate the programming model from Serves to isolate the programming model from

the transport detailsthe transport details For examples, the Manager implements:For examples, the Manager implements:

Interfaces to SOAP handlersInterfaces to SOAP handlers Serialization/deserialization of data typesSerialization/deserialization of data types

Page 19: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

19Prepared for CIS 6650.01 Winter 2007

QoS FrameworkQoS Framework

Uses WS-Policy languageUses WS-Policy language Collects, interprets and Collects, interprets and

enforces policiesenforces policies There are system-wide, There are system-wide,

servicelet-wide, and servicelet-wide, and service-wide policiesservice-wide policies

They come from services, They come from services, partner services, and the partner services, and the Colombo frameworkColombo framework

Policy merging can be quite Policy merging can be quite complexcomplex

Page 20: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

20Prepared for CIS 6650.01 Winter 2007

QoS EnforcementQoS Enforcement

Enforced at the conversation levelEnforced at the conversation level Enforcement Information is carried in Enforcement Information is carried in

message headersmessage headers Enforcement is implemented by a linear Enforcement is implemented by a linear

chain of policy handlerschain of policy handlers Ordering this chain correctly is an ongoing Ordering this chain correctly is an ongoing

problemproblem

Page 21: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

21Prepared for CIS 6650.01 Winter 2007

Future DirectionFuture Direction

Testing and measurement of the platform Testing and measurement of the platform to determine if goals have been met.to determine if goals have been met. To date, this has not appeared.To date, this has not appeared.

Add discovery capabilitiesAdd discovery capabilities Add WS-BusinessActivity specification for Add WS-BusinessActivity specification for

business interactionsbusiness interactions Extend developer supportExtend developer support

Page 22: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

22Prepared for CIS 6650.01 Winter 2007

Summary: Summary: Authors' ResultsAuthors' Results

Native WS platform. (No legacy integration.)Native WS platform. (No legacy integration.) High performance, small footprint.High performance, small footprint. Simplified application development.Simplified application development. Simplified deployment model.Simplified deployment model. Supports "full" Web Services stack.Supports "full" Web Services stack.

including customizable QoS capabilities.including customizable QoS capabilities. Enables service composition.Enables service composition. Defines a multi-language development platform Defines a multi-language development platform

(Java and BPEL and more possible)(Java and BPEL and more possible)

Page 23: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

CritiqueCritique

Colombo overviewColombo overview Presentation of the paperPresentation of the paper Theoretical aspectTheoretical aspect In respect to J2EEIn respect to J2EE In respect to ebXMLIn respect to ebXML ConclusionConclusion

23Prepared for CIS 6650.01 Winter 2007

Page 24: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

Colombo OverviewColombo Overview

An attempt for a native Web Service PlatformAn attempt for a native Web Service Platform Optimized, lightweightOptimized, lightweight

Provides a native application frameworkProvides a native application framework Attempt to implement the full Web Service Attempt to implement the full Web Service

protocol stackprotocol stack Still under developmentStill under development Claims to provide service composition i.e. Claims to provide service composition i.e.

semantic web servicessemantic web services Provides business oriented functionalitiesProvides business oriented functionalities

24Prepared for CIS 6650.01 Winter 2007

Page 25: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

Colombo FrameworkColombo Framework

Quality of Service (QOS) capabilitiesQuality of Service (QOS) capabilities WS-Policy and WS-Addressing, more to WS-Policy and WS-Addressing, more to

comecome ServiceletsServicelets Adapters and StubsAdapters and Stubs

25Prepared for CIS 6650.01 Winter 2007

Page 26: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

Presentation of the paperPresentation of the paper The paper is very technical on conceptual The paper is very technical on conceptual

designdesign But no details on how solutions are But no details on how solutions are

approachedapproached No discussion of actual implementationNo discussion of actual implementation No concrete examples of the platformNo concrete examples of the platform No benchmark to backup any claim, such as No benchmark to backup any claim, such as

“lightweight” and “optimized”“lightweight” and “optimized” Fail to address the semantics in service Fail to address the semantics in service

compositioncomposition

26Prepared for CIS 6650.01 Winter 2007

Page 27: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

Theoretical AspectTheoretical Aspect

No noticeable break-throughNo noticeable break-through The use of stubs has been introduced in RPCThe use of stubs has been introduced in RPC Fail to address semantic challenges such as Fail to address semantic challenges such as

best service selection, composition ordering, best service selection, composition ordering, etc.etc.

Just adding another abstraction layerJust adding another abstraction layer Only emphasize policies and QoSOnly emphasize policies and QoS If no semantic, same composition can be If no semantic, same composition can be

hard-coded with existing web serviceshard-coded with existing web services

27Prepared for CIS 6650.01 Winter 2007

Page 28: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

In respect to J2EEIn respect to J2EE

Colombo is in direct competition with other Colombo is in direct competition with other Web services technologies, such as J2EE Web services technologies, such as J2EE and MS .NETand MS .NET

J2EE, for example, is light-years ahead of J2EE, for example, is light-years ahead of ColomboColombo

J2EE is a well-established platform with J2EE is a well-established platform with actual existing implementation in widespread actual existing implementation in widespread useuse

J2EE is native on J2EE application server, J2EE is native on J2EE application server, providing optimized and integrated solutions.providing optimized and integrated solutions.

28Prepared for CIS 6650.01 Winter 2007

Page 29: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

J2EEJ2EE

J2EE has a much more complete J2EE has a much more complete implementation of the Web Services stack, implementation of the Web Services stack, including all that of Colombo, and moreincluding all that of Colombo, and more WS-PolicyWS-Policy WS-AddressingWS-Addressing WS-SecurityWS-Security WS-AtomicTransactionWS-AtomicTransaction WS-CoordinationWS-Coordination WS-Resource FrameworkWS-Resource Framework

29Prepared for CIS 6650.01 Winter 2007

Page 30: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

J2EE (cont.)J2EE (cont.) J2EE also implements QoSJ2EE also implements QoS Better business support (WS-* services)Better business support (WS-* services) Enterprise JavaBeans (EJB) provides Enterprise JavaBeans (EJB) provides

programming model for writing and deploying programming model for writing and deploying business logic into an application serverbusiness logic into an application server

EJB can be stateful or stateless, or message-EJB can be stateful or stateless, or message-drivendriven

Service composition with EJB is as easy as Service composition with EJB is as easy as connecting different components within IDEconnecting different components within IDE

EJB is still loosely-coupled with well-defined EJB is still loosely-coupled with well-defined interfaces, and uses SOAPinterfaces, and uses SOAP

30Prepared for CIS 6650.01 Winter 2007

Page 31: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

J2EE (cont.)J2EE (cont.)

J2EE has Deployment Descriptors (DD)J2EE has Deployment Descriptors (DD) DD is an XML file that capture contextual DD is an XML file that capture contextual

information about components and applicationsinformation about components and applications DD helps resolve many service composition DD helps resolve many service composition

issues, such as resolving references, setting issues, such as resolving references, setting policies, and linking to other componentspolicies, and linking to other components

Java Server Pages (JSP) also allows the HTML Java Server Pages (JSP) also allows the HTML and page design to be separated from the and page design to be separated from the business logic while still providing integrationbusiness logic while still providing integration

JSP, EJB and DD together form a robust service JSP, EJB and DD together form a robust service composition engine for J2EEcomposition engine for J2EE

31Prepared for CIS 6650.01 Winter 2007

Page 32: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

In respect to ebXMLIn respect to ebXML

Built-on Web services technology, a new Built-on Web services technology, a new architecture for conducting business onlinearchitecture for conducting business online

J2EE fully supports ebXMLJ2EE fully supports ebXML Colombo is based on old Web service Colombo is based on old Web service

technology, and is not even using UDDItechnology, and is not even using UDDI Duplicated technologies (WS-* v.s. ebXML Duplicated technologies (WS-* v.s. ebXML

standards)standards) ebXML provides better business support ebXML provides better business support

and has been in widespread useand has been in widespread use

32Prepared for CIS 6650.01 Winter 2007

Page 33: Prepared for CIS 6650.01 © 2007 W. Lu/J. Cole 1 "Colombo: Lightweight middleware for service- oriented computing" by F. Curbera, M. J. Duftler, R. Khalaf,

ConclusionConclusion

Colombo still requires much developmentColombo still requires much development At current rate, Colombo can not compare with At current rate, Colombo can not compare with

products such as J2EE and MS .NETproducts such as J2EE and MS .NET Based on old technology, and fails to address new Based on old technology, and fails to address new

technologies such as ebXMLtechnologies such as ebXML Although Colombo attempts to be business-Although Colombo attempts to be business-

oriented, ebXML does it better and has been in oriented, ebXML does it better and has been in widespread usewidespread use

IBM should not expect Colombo to competeIBM should not expect Colombo to compete Authors do not give evidence or arguments for Authors do not give evidence or arguments for

Colombo's viability or success in reaching goalsColombo's viability or success in reaching goals

33Prepared for CIS 6650.01 Winter 2007