prepared for cis 6650.01 © 2007 w. lu/j. cole 1 "colombo: lightweight middleware for service-...
TRANSCRIPT
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 :
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.
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
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 )
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
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
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"
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
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
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
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
12Prepared for CIS 6650.01 Winter 2007
ServiceletsServicelets
Servicelets have clients, partners, policies, adapters, stubs, contexts, logic.
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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