A development team at IBM alphaWorks labs has released 'Conversation Support for Web Services'. Conversation Support for Web Services is "a technology that proposes and implements a conversational model of e-business interaction by extending and building on the Web Services architecture. In the conversational model, the interoperability technology consists of two distinct parts: messaging and conversation support. Messaging is the plumbing needed to send and receive electronic communications with others. Conversation support governs the formatting of messages that are to be sent, the parsing of messages that have been received, and the sequencing constraints on the exchange of multiple, correlated messages. It is a separate subsystem that mediates between the messaging system and business processes. These pre-programmed interaction patterns are captured in a progamming element called Conversation Policies." A companion document "Conversation-Enabled Web Services for Agents and e-Business" written by the 'Conversation Support for Web Services Team' at IBM T.J.Watson Research Center, describes IBM's Conversation Policy XML (cpXML), an XML dialect for describing conversation policies, now under development. cpXML "permits CPs to be downloaded from third parties (such as standards bodies, providers of conversation-management systems, or specialized protocol-development shops). Once downloaded and fed into a firm's conversation-management system, bindings are added to specify the connections between the decision points of the CP and the firm's business logic."
From the website description:
Conversation Support for Web Services is a technology that proposes and implements a conversational model of e-business interaction by extending and building on the Web Services architecture.
In the conversational model, the interoperability technology consists of two distinct parts: messaging and conversation support. Messaging is the plumbing needed to send and receive electronic communications with others. Conversation support governs the formatting of messages that are to be sent, the parsing of messages that have been received, and the sequencing constraints on the exchange of multiple, correlated messages. It is a separate subsystem that mediates between the messaging system and business processes. These pre-programmed interaction patterns are captured in a progamming element called Conversation Policies.
Web Services technologies (WSDL, SOAP, etc.) are being used as the base for creation of the Conversation support framework, which executes "conversations" that require a more loosely coupled, peer-to-peer, dynamic, proactive model of interaction.
In this technology, the Java Connectivity Architecture (JCA) 1.0 has been extended to support the conversational model. Conversation Adapters (CA) thus built using the extended JCA specifications provide a standard run-time framework to execute one or more conversation policies. The CAs exchange messages in conversation using Web services via well known ports. Conversation Adapters can be deployed and run on any J2EE platform that implements the extended JCA contracts. Conversation Policies are defined using cpXML, an XML dialect, and are based on a finite state machine model.
Provided is a reference implementation of the JCA extensions and a BuySell sample Conversation Adapter (CA). The BuySell CA is based on two conversation policies: the BuySell CP and the Haggle CP. Using the CA, a Buyer inquires about the availability of a commodity with the Seller, and, if available, they go through a simple negotiation process to decide on the price of purchase. The interactions ends with a deal being either made or not. Rudimentary business logic is provided to support the CAs and can be changed to accommodate more complex (business) policies.
Source code for the CAs and the "dummy" business logic is included. A tutorial provides guidance through the implementation of the CAs.
All three artifacts are implemented as J2EE technologies: The BuySell CA is a J2EE Resource Adapter, the Conversation Support reference implementation is an EJB application, and so are the Buyer and Seller Business Logic modules. They are fully J2EE 1.3-compliant, but they have been tested with only the Websphere Technology for Developers. It should run "as-is" on any other J2EE 1.3-compliant application server but has not been so tested.
From the paper "Conversation-Enabled Web Services for Agents and e-Business," by James E. Hanson, Prabir Nandi, and Santhosh Kumaran. Presented at the 6th International Enterprise Distributed Object Computing (EDOC'02 - September 17-20, 2002, École Polytechnic, Switzerland). 10 pages (with 15 references). "In this paper we present a new paradigm for business process integration. Our approach is based on a conversation model that enables autonomous, distributed BPM (Business Process Management) modules to integrate and collaborate. Our conversation model supports the exchange of multiple correlated messages with arbitrary sequencing constraints and covers the formatting of messages that are to be sent as well as the parsing of the messages that have been received. The crux of our conversation model is the notion of a conversation policy, which is a machinereadable specification of a pattern of message exchange in a conversation. Our model supports nesting and composition of conversation policies to provide a dynamic, adaptable, incremental, open-ended, and extensible mechanism for business process integration. We discuss the current implementation of this conversation model and early experience in applying the model to solve customer problems. The implementation utilizes distributed object technology... We are currently working on two important aspects of a B2B integration architecture based on our conversational model: (1) Extension of the Java Connector Architecture (JCA) to support conversations; and (2) Definition of an XML-based language for scripting conversation policies... The JCA architecture provides a set of abstractions for connecting the J2EE platform to heterogeneous Enterprise Information Systems (EISs). The abstractions, defined as a set of contracts at the system and at the application level provide a collection of scalable, secure Business process integration through conversational interactions can only succeed on a wide scale if some common way of specifying CPs, is adopted as an industry standard. For this reason, we are currently developing Conversation Policy XML (cpXML), an XML dialect for describing CPs. It permits CPs to be downloaded from third parties (such as standards bodies, providers of conversation-management systems, or even specialized protocol-development shops). Once downloaded and installed in a firm's conversation-management system, bindings are added to specify the connections between the decision points of the CP and the firm's business logic. cpXML is narrowly scoped, restricting itself to describing the message interchanges; it does not cover the way in which a CP is bound to the business logic, or the means by which the CP connects to the messaging system. It takes a third-party perspective, describing the message exchanges in terms of 'roles' which are assumed at runtime by the businesses engaged in a conversation. It supports nesting of conversation policies, and time-based transitions such as timeouts on waiting for an incoming message. Designing protocols is a daunting task, especially in B2B interactions, where the participants and the business needs are constantly changing, where the goals of the different parties are often at odds, and where there is no central authority to enforce conformance to any one protocol. The narrow scoping of cpXML significantly lightens the task of developing useful interaction patterns into formal, executable conversation policies. And while a state-machine-based model can be limiting in certain contexts, this is more than made up for by the clarity, simplicity, and ease of implementation that a statemachine affords..." [cache]
Platform Requirements for Conversation Support for Web Services: (1) Operating Systems: Windows NT 4.0 Service Pack 6a or Windows 2000 Service Pack 2; (2) Other Software: [1] DB2 Personal Developer's Edition or DB2 Version 7 FP 5 -downloadable; [2] Websphere Technology for Developers - a downloadable preview version of Websphere Application Server 5.
Developers of the 'Conversation Support for Web Services Team' at IBM T.J.Watson Research Center, New York: Prabir Nandi (lead); James E Hanson (jehanson@us.ibm.com); Santhosh Kumaran (skb@us.ibm.com); Kalyani Deshpande (dkalyani@in.ibm.com).
Principal references:
- Conversation Support for Web Services. IBM alphaWorks website.
- Conversation Support for Web Services - Requirements
- Download Conversation Support for Web Services
- Conversation Support for agents, e-business, and component integration
- "Conversation-Enabled Web Services for Agents and e-Business." By James E. Hanson, Prabir Nandi, and David W. Levine (IBM T.J. Watson Research Center, Yorktown Heights NY 10598). Proceedings of the International Conference on Internet Computing (IC-02).
- "Conversation-enabled Web Services for Agents and e-business." Presentation given by James E. Hanson at IC 2002 - The 3rd International Conference on Internet Computing. Las Vegas, Nevada, USA, June 24-27, 2002. 19 slides.
- "Dynamic e-Business Using BPEL4WS, WS-Coordination, WS-Transaction, and Conversation Support for Web Services." By Santhosh Kumaran and Prabir Nandi (IBM T. J. Watson Research Center). Paper presented with the (downloadable) IBM alphaWorks application
- "Conversation-Enabled Web Services for Agents and e-Business." By James E. Hanson, Prabir Nandi, and David W. Levine (IBM T.J. Watson Research Center, Yorktown Heights NY 10598). Variant of IC2002 paper.