SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating...

41
Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06 Version Draft Page 1/1 SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description of change 1.0 24.04.2006 P. Contreras F. Murtagh Draft Initial Version 1.1 30.04.2006 P. Contreras F. Murtagh Draft Corrections 1.2 30.05.2006 P. Contreras Draft Corrections and new material 1.3 19.06.2006 P. Contreras Draft Corrections, additional material 1.4 05.07.2006 P. Contreras F. Murtagh Draft Corrections, additional material Table of Contents 1. INTRODUCTION TO SERVICE-ORIENTED ARCHITECTURE (SOA).................................................. 3 2. WEB SERVICE COMPOSITION AND PROCESSES WORKFLOW ...................................................... 4 2.1. WEB SERVICES BUSINESS PROCESS EXECUTION LANGUAGE (WS-BPEL) ............................. 5 2.2. WEB SERVICES CHOREOGRAPHY DESCRIPTION LANGUAGE (WS-CDL) ........................... 6 2.3. WS-BPEL AND WS-CDL ....................................................................................................... 6 2.4. LOOKING FOR THE RIGHT BPEL ENGINE WITHIN WS-TALK .................................................. 7 2.5. BPEL ENGINE SELECTION .................................................................................................... 10 3. ACTIVEBPEL ENGINE .............................................................................................................. 11 3.1. ACTIVEBPEL ENGINE, DEPLOYING A PROCESS.................................................................... 12 4. ACTIVEBPEL DESiGNER .......................................................................................................... 14 4.1. ACTIVEBPEL DESIGNER PALETTE ........................................................................................ 16 5. BUILDING BPEL DIAGRAMS WITH ACTIVEBPEL DESIGNER...................................................... 19 6. WS -TALK TEXT PROCESSING DESIGN..................................................................................... 21 7. UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION (UDDI) ......................................... 24 7.1. UDDI APIS........................................................................................................................... 24 7.2. UDDI IMPLEMENTATIONS...................................................................................................... 26 7.3. APACHE UDDI REGISTRY (JUDDI) ....................................................................................... 27 8. SIMPLE OBJECT ACCESS PROTOCOL (SOAP) ......................................................................... 30 9. CONCLUSION............................................................................................................................ 31 ACRONYMS ...................................................................................................................................... 32 BIBLIOGRAPHY ................................................................................................................................. 33 ANNEX A, Open Source BPEL implementation.......................................................................... 34 ANNEX B, WS-Talk Text Mining BPEL Example........................................................................ 35 ANNEX C, Istanbul Presentation.................................................................................................. 37

Transcript of SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating...

Page 1: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 1/1

SOA and WS-TALK Integrating Web Services in WS-TALK with

BPEL and UDDI Change log Version Date Author State Description of change

1.0 24.04.2006 P. Contreras F. Murtagh Draft Initial Version

1.1 30.04.2006 P. Contreras F. Murtagh Draft Corrections

1.2 30.05.2006 P. Contreras Draft Corrections and new material

1.3 19.06.2006 P. Contreras Draft Corrections, additional material

1.4 05.07.2006 P. Contreras F. Murtagh Draft Corrections, additional material

Table of Contents 1. INTRODUCTION TO SERVICE-ORIENTED ARCHITECTURE (SOA).................................................. 3 2. WEB SERVICE COMPOSITION AND PROCESSES WORKFLOW ...................................................... 4 2.1. WEB SERVICES BUSINESS PROCESS EXECUTION LANGUAGE (WS-BPEL) ............................. 5 2.2. WEB SERVICES CHOREOGRAPHY DESCRIPTION LANGUAGE (WS-CDL)........................... 6 2.3. WS-BPEL AND WS-CDL....................................................................................................... 6 2.4. LOOKING FOR THE RIGHT BPEL ENGINE WITHIN WS-TALK .................................................. 7 2.5. BPEL ENGINE SELECTION.................................................................................................... 10 3. ACTIVEBPEL ENGINE .............................................................................................................. 11 3.1. ACTIVEBPEL ENGINE, DEPLOYING A PROCESS.................................................................... 12 4. ACTIVEBPEL DESiGNER.......................................................................................................... 14 4.1. ACTIVEBPEL DESIGNER PALETTE ........................................................................................ 16 5. BUILDING BPEL DIAGRAMS WITH ACTIVEBPEL DESIGNER...................................................... 19 6. WS -TALK TEXT PROCESSING DESIGN..................................................................................... 21 7. UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION (UDDI) ......................................... 24 7.1. UDDI APIS........................................................................................................................... 24 7.2. UDDI IMPLEMENTATIONS...................................................................................................... 26 7.3. APACHE UDDI REGISTRY (JUDDI)....................................................................................... 27 8. SIMPLE OBJECT ACCESS PROTOCOL (SOAP) ......................................................................... 30 9. CONCLUSION............................................................................................................................ 31 ACRONYMS ...................................................................................................................................... 32 BIBLIOGRAPHY................................................................................................................................. 33 ANNEX A, Open Source BPEL implementation.......................................................................... 34 ANNEX B, WS-Talk Text Mining BPEL Example........................................................................ 35 ANNEX C, Istanbul Presentation.................................................................................................. 37

Page 2: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 2/2

List of Figures Figure 1, Orchestration and choreography in action. ................................................................... 7 Figure 2, ActiveBPEL engine screenshot. ................................................................................... 11 Figure 3, ActiveBPEL engine deployment file structure ............................................................. 12 Figure 4, ActiveBPEL engine screenshot .................................................................................... 13 Figure 5, ActiveBPEL designer screenshot................................................................................. 15 Figure 6, ActiveBPEL Designer Palette ....................................................................................... 18 Figure 7, Web reference ............................................................................................................... 19 Figure 8, WS-Talk deployed Web Services at RHUL ................................................................. 22 Figure 9, WS-Talk process with ActiveBPEL designer............................................................... 23 Figure 10, jUDDI APIs implementation. ....................................................................................... 27 Figure 11, Physical JUDDI database schema............................................................................. 28 Figure 12, Conceptual JUDDI database schema........................................................................ 29 Figure 13, SOAP structure............................................................................................................ 30

List of Tables Table 1, Open source engine comparison..................................................................................... 8 Table 2, UDDI proprietary API...................................................................................................... 24 Table 3, UDDI inquiry API............................................................................................................. 25 Table 4, UDDI publish API............................................................................................................ 25

Page 3: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 3/3

1. INTRODUCTION TO SERVICE-ORIENTED ARCHITECTURE (SOA) Service-Oriented Architecture [OASIS SOA] emphasizes designing services first, then building systems to implement (or consume) these services. On the one hand standard documents [WSDL] are used to represent service interfaces. These documents can be generated automatically by the system, therefore making them self-documented and limiting the risk of becoming outdated. On the other hand, a standard communication system is used [SOAP] for message exchange. Thanks to this technology and to the Extensible Markup Language [XML] integration of different systems (from one or more providers) can be possible at a small cost if compared with the traditional system-centric architecture. Additionally, interoperability is an important benefit of SOA, since services produced using these standards can be availed of by services implemented on different platforms, such as, .NET or J2EE just to name a few. SOA applications need some way to locate service providers in other systems. The simplest approach is to keep a database with URLs pointing to each service, but this method does not guarantee integrity when a service is re-located to a different host, requiring an update to every consumer of that service. To solve this kind of problem a series of new standards have emerged, the Universal Description, Discovery, and Integration Protocol [UDDI] being one of the most widely used. Regarding security, SOA introduces its own methodologies to approach this, namely WS-Security. But existing standards for web security are sufficient in most cases, which are usually based on encryption, authentication, and authorization. Additionally it can be said that service-oriented architecture separates service implementation from its interface, service consumers view a service as an endpoint that supports a particular request format, and furthermore these service consumers are not concerned with how the service is going to execute its request. Some of the SOA characteristics as described by [Bieber and Carpenter] are the following:

− Services are discoverable and dynamically bound. A service consumer that needs a service discovers what service to use based on a set of criteria at runtime, asking a registry for a service that fulfils its needs. This can be done by using the UDDI standard.

− Services are self-contained and modular. Modularity principles should be followed

when designing SOA services, meaning that services can be easily aggregated. Bertrand Meyer [Meyer] outlines five criteria to determine whether a service is sufficiently modular or not: Decomposability, composability, understandability, continuity, and protection.

− Services stress interoperability. This is the system ability to use different

platforms and languages to communicate with each other. − Services are loosely coupled. This refers to the number of dependencies between

Page 4: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 4/4

modules. There are two types of coupling: loose and tight. Loosely coupled modules have a few well-known dependencies. Tightly coupled modules have many unknown dependencies. SOA promotes loose coupling between service consumers and service providers, and the idea of a few well-known dependencies between consumers and providers.

− Services have a network-addressable interface. For a service to be invoked

across the network it needs to support a network interface. − Services are location transparent. Consumers of a service do not know the

location of a service until they locate it in the registry (possible an UDDI registry), The lookup and binding to a service dynamically at runtime allows the service to be moved from location to location without the client’s knowledge.

− Services are composable. This refers to the service modular structure, which

enables different services to be composed into a bigger application. Service can be composed mainly in three structures: application composition, service federations, and service orchestration. In the WS-Talk context, service orchestration is our special interest and we will explain in more detail this concept later on in this document.

− SAO supports self-healing. This refers to a system that can recover from errors

without human assistance during execution. One of the measures of self-healing is the system reliability during disturbances.

2. WEB SERVICE COMPOSITION AND PROCESSES WORKFLOW With the introduction of Web Services, terms such as “Web Services composition” and “Web Services flow” were used to describe the composition of Web Services in a process flow. More recently, the terms orchestration and choreography have been used to describe this. Orchestration describes how Web Services can interact with each other at the message level, including the business logic and execution order of the interactions. These interactions may span applications and/or organizations, and result in a long-lived, transactional, multi-step process model. Choreography tracks the sequence of messages that may involve multiple parties and multiple sources, including customers, suppliers, and partners. Choreography is typically associated with the public message exchanges that occur between multiple Web Services, rather than a specific business process that is executed by a single party. There is an important distinction between Web Services orchestration and choreography. Orchestration refers to an executable business process that may interact with both internal and external Web Services. For orchestration, the process is always controlled from the perspective of one of the business parties. Choreography is more collaborative in nature, in which each party involved in the process describes the part they play in the interaction. The term Web Services orchestration is used here to describe the creation of business processes, either executable or collaborative, that utilize Web Services. There are a number of important technical requirements that must be addressed when designing business processes involving multiple Web Services running over a long duration.

Page 5: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 5/5 Knowledge of these requirements will help in positioning the various standards that have been introduced in service-oriented architecture. The ability to invoke services in an asynchronous manner is vital to achieving the reliability, scalability, and adaptability required by today’s computing environments. With asynchronous support, a business process can invoke Web Services concurrently rather than sequentially in order to enhance performance. For example, a purchasing system may want to interact with multiple suppliers SOA Web Services at the same time, looking to find the supplier that can offer the lowest price or earliest shipment date. Asynchronous support can be achieved through SOA Web Services through various correlation techniques. Orchestrated Web Services that are long-running must also manage exceptions and transactional integrity. In the following section we look into more detail regarding how orchestration and choreography can be used in the WS-Talk context.

2.1. WEB SERVICES BUSINESS PROCESS EXECUTION LANGUAGE (WS-BPEL)

Web Services Business Process Execution Language [WS-BPEL] is a proposal standard by OASIS (http://www.oasis-open.org/) that enables enterprises to orchestrate and execute web services and business processes. BPEL is an XML-based language, which supports the web services technology stack (SOAP, WSDL, UDDI). BPEL represents a convergence of two previous languages, WSFL (Web Services Flow Language) and XLANG, designed by IBM and Microsoft respectively. A BPEL process consists of steps. Each step is called an activity. And an activity could be primitive or a structured one. Where a primitive activity represents basic constructs and it is used for common tasks such as those presented by [Jurik]:

− Invoking other web services, using <invoke>. − Waiting for the service consumer to invoke the business process through sending a

message, using <receive>. − Generating a response for synchronous operation, using <reply>. − Data variables manipulation, using <assign>. − Fault and exceptions, using <throw>. − Waiting, using <wait>. − Process termination, using <terminate>.

Combining these primitive activities, BPEL supports several structured activities, where some of the most important are the following:

− Sequence <sequence>, which defines a set of activities that will be invoked in an ordered sequence − Flow <flow>, which defines a set of activities that will be invoked in parallel − Case-switch <switch>, for implementing branches − While <while>, which defines loops − Paths <pick>, which allows the selection of an alternative path.

Page 6: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 6/6 Additionally, a BPEL process can be synchronous or asynchronous. A synchronous process blocks the service consumer until the process finishes and returns a result. An asynchronous process does not block the service consumer.

2.2. WEB SERVICES CHOREOGRAPHY DESCRIPTION LANGUAGE (WS-CDL)

The Web services Choreography Description Language [WS-CDL] is an XML-based language that describes peer-to-peer cross-enterprise collaboration of Web Services. This is a working draft being developed by the World Wide Web Consortium [W3C]. Regarding implementation, currently Eclipse offers the possibility of using this proposed standard through WS-CDL Eclipse is an environment for producing, viewing and simulating W3C WS-CDL documents. For more information about this tool please refer to the following address: http://sourceforge.net/projects/wscdl-eclipse/

2.3. WS-BPEL AND WS-CDL There are plenty of arguments regarding how these technologies (WS-BPEL versus WS-CDL) are situated together, how they compete with or overlap each other. But space for the two of them can be found as presented in Figure 1, which shows the relationship between WS-BPEL and WS-CDL as described for W3C. Within the WS-Talk context an argument can be put forward regarding which protocol is better situated for the project’s needs. But due to, on one hand, the better position of WS-BPEL with big companies which are actively participating in its use and definition, and, on the other hand, the number of WS-BPEL engine implementations available commercially and with the open source community, It is our belief that BPEL is better positioned to compose SOA like Web Services in WS-Talk.

Page 7: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 7/7

Figure 1, Orchestration and choreography in action.

In the following section we deal with the problem of finding the right BPEL engine for WS-Talk.

2.4. LOOKING FOR THE RIGHT BPEL ENGINE WITHIN WS-TALK Currently there is a long list of open source projects that implement in one way or another service composer engine systems. In Annex A we present a list of engines and tools alike. From that list we have narrowed the selection to a list of eight engines, which are presented in Table 1. In general we are looking for solutions that fulfill the following characteristics:

− Message exchange − Error handling − Loop control − Sequence generation

In particular we are looking for a solution that will adapt well, taking natural language instructions using WS-Talk text processing features as input and executing them, where instructions are written by domain experts, and stored as processes templates.

Page 8: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHUL_BPEL.doc Date 13/7/06

Version Draft Page 8/8

Open Source Engine Comparison

No Engine Name C1 C2 C3 C4 C5 C6 C7 Selection

1 ActiveBPEL High Very Stable (2.0) Medium Medium Very Good Yes Yes, TomCat √

2 Agila BPEL Low Beta Medium Easy Poor Yes Yes, TomCat

3 Freeflu Medium Beta (0.9) Medium Medium Poor Yes Yes TomCat

4 jBPM High Very Stable (3.0.5) — — Very Good — Yes, TomCat √

5 OpenSymphony OSWorkFlow High Very Stable (2.8) Medium Medium Good Yes Yes,

TomCat √

6 OpenWFE High Stable (1.6.1) Easy Easy Good Yes Yes, TomCat √

7 PXE Low Stable (1.0) Medium to Difficult Medium Poor — Yes,

TomCat 8 XFlow Low Stable (1.2.1) — Difficult Poor Yes Yes, JBoss

Table 1, Open source engine comparison

Page 9: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 9/9 Criteria This section introduces the criteria used in Table 1. C1: Activity. Is the project community active? Scale: Low, Medium, And High. Where high is preferable. C2: Stable release. Does the project have a stable software release? Scale: Beta (not stable), Stable, Very stable. Where Very stable is preferable. C3. Learning curve. Is the engine easy to learn and use? Scale: Easy, Medium, and Difficult. Where Easy is preferable. C4. Coding. Is it coding made simple? Scale: Easy, Medium, and Difficult. Where Easy is preferable. C5. Documentation. Is the engine well documented? Scale: Poorly Documented, well Documented, very well Documented. Where Very well documented is preferable. C6. Web Services. Does the engine support Web Services standards “right out of the box”? Scale: Yes. No. Where Yes is preferable. C7. Servlet Container. Does the engine support Servlet container such a Tomcat for deployment? Scale: Yes, No. Where yes is preferable

Page 10: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 10/10 2.5. BPEL ENGINE SELECTION Below is a short review of the selected engines is given. a) ActiveBPEL, http://www.activebpel.org ActiveBPEL is an implementation of the BPEL standard that includes as key benefits the following:

− Completeness. The ActiveBPEL engine comprehensively implements the WS -BPEL4 1.1 spec including the full complement of BPEL activities, event handling, exception handling, and scope/compensation management.

− Industrial Strength. The engine includes high-end features like deployment

packaging, process persistence, event notifications and console APIs.

− Growth Track. As a distributor of commercial products based on the ActiveBPEL engine, AEI is committed to the ongoing development of ActiveBPEL technologies. The ActiveBPEL open source project will continually benefit from the contributions of both AEI and the ActiveBPEL community at large.

b) JBPM, http://www.jboss.com/products/jbpm JBoss jBPM is a powerful workflow and BPM engine that enables the creation of business processes that coordinate between people, applications and services. Some of the key advantages of JBPM are:

− Open Source − Flexible and scalable process engine − Pluggable architecture − Easy programming model

c) Open symphony, http://www.opensymphony.com/osworkflow/ Open Symphony can be considered a “low level” workflow implementation, whose strength is based on the fact that no GUI is mandated. Instead it is suggested that XML is created by “hand”, where it is up to the developer to specify what sort of integration is needed. d) Open WFE, http://www.openwfe.org OpenWFE not only features a workflow engine, but also a Business Process Management Suite. Some of the strengths of this engine include:

− Access to Droflo (http://lcmserv1.epfl.ch/droflo/), which implement web-based flow designer. − An APRE component, which implements automated agents into the work flows.

Page 11: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 11/11 3. ACTIVEBPEL ENGINE ActiveBPEL Designer and Engine offers an excellent tool for designing BPEL processes and deploying them. Since these products are distributed with substantial documentation and examples, here only general aspects of these tools are presented. Figure 2 shows ActiveBPEL engine administrative console main windows. There the following tasks can be carried out:

− Start and stop the engine. − Update engine configuration. − Tune engine performance by setting a WSDL cache size. See Configuration in the

Engine topic. − Suspend or terminate a running process. See Process Status. − Analyze execution steps and diagnose problems by viewing active processes. See

Process ID and Process Details. − Enable logging and then download a copy of the execution log for a running or

completed process. See Process Status.

Figure 2, ActiveBPEL engine screenshot.

Page 12: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 12/12

3.1. ACTIVEBPEL ENGINE, DEPLOYING A PROCESS Deploying a BPEL process involves creating a deployment archive file (a JAR with an extension of ".bpr") and copying that to a Servlet container. Creating this archive requires a particular directory structure, creating one or two configuration files, and then creating an archive from that directory. The following directories need to be created.

− bpel − META-INF − wsdl − partners (optional)

The WSDL catalog (wsdlCatalog.xml) file, partner definition (.pdef) files, and process deployment descriptor (.pdd) files are described in ActiveBPEL Engine File Formats. For example say we have one BPEL file called new_process.bpel and two WSDL files service1.wsdl and service2.wsdl. The directory structure would look something like the one presented in Figure 3

Figure 3, ActiveBPEL engine deployment file structure

One of the advantages of using ActiveBPEL designer is that deployment to ActiveBPEL engine can be done automatically from the menu with the option file – new – deployment descriptor.

Page 13: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 13/13 Figure 4 shows a screenshot of a WS-Talk text mining deployed process that follows the instructions above presented.

Figure 4, ActiveBPEL engine screenshot

Page 14: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 14/14

4. ACTIVEBPEL DESiGNER ActiveBPEL designer is a complete tool to design and visually compose BPEL processes. It offers the following features [ActiveBPEL Designer].

a. Simultaneously displayed diagrammatic and hierarchical view of process. Create a process diagrammatically on the canvas. Use the synchronized Outline view to see a hierarchical element structure of the process. Source

b. Process editor canvas. Drag and drop icons onto a canvas to create a process.

ActiveBPEL creates valid BPEL code and generates a task list for missing and invalid activity properties.

c. Web references. Add WSDL files to the Web References view for automatic

discovery and organization of all pertinent information stored in existing WSDL. Comprehensive searching is available to locate namespaces, messages, and other elements. Drag and drop operations to the Process Editor canvas for automated activity creation.

d. Management of sample data. Add sample data files for all WSDL messages for a

convenient repository of test data across all processes using the messages. Add multiple files for various test scenarios. During simulation, test various execution paths using different data.

e. Automatic task generation (static analysis). ActiveBPEL generates a problem list

for all incomplete or invalid BPEL constructs so that you can fix problems without hunting for them. This feature works on imported BPEL files as well as native ones.

f. Create partner link types. Add partner link types to an existing or new WSDL file by

using the partner link type wizard. Partner link types are WSDL extensions required for BPEL processes.

g. Swimlanes. Visual display of each partner’s role in the process to show a service is

being invoked, received from or replied to. Export information to share with partners.

h. Automatic Variable Assignment. Create Copy Operations automatically for new or existing Assign activities. Drag the Copy FROM variable to the Copy TO variable. Icons and colours indicate at a glance how a variable is used.

i. Expression and query builders. ActiveBPEL gives you visual expression editing

controls for building a wide range of scripts. In addition, you can readily extend ActiveBPEL's expression editor to include your own expression language and custom functions. Built-in BPEL functions are automatically added to expressions as appropriate.

j. Activity properties. Required and optional activity attributes are grouped for easy

selection in the Properties view. Pertinent selections are in drop-down lists. Add comments, if desired. Add correlation properties, compensation, and fault handling.

Page 15: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 15/15

k. Create BPELets to re-use a selection of activities in other processes. Select one or more activities on the Process Editor canvas and save them to the Custom Palette for later use. Significantly shorten design time by reusing modular elements.

l. Simulation and debugging. Simulate process execution using sample data. Set

breakpoints, step through or run the process. Remotely debug a process running on the server and suspend a process on an uncaught fault to perform exception management.

m. Process deployment. Deployment wizards guide you to provide endpoint references

for services used in your process. A process deployment descriptor provides error-free techniques for binding your services. Processes are automatically deployed to the appropriate server location within a package that contains all required files.

Figure 5 shows ActiveBPEL Designer, and how processes are integrated using the BPEL standard.

Figure 5, ActiveBPEL designer screenshot.

Page 16: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 16/16

4.1. ACTIVEBPEL DESIGNER PALETTE ActiveBPEL designer palette offers the following options for designing and composing processes. Activities − Receive: Accepts message data from a service partner. Optionally begins a process by

creating an instance of the process. Required properties are: − Partner Link − Port Type − Operation − Variable (only in executable processes, not in abstracts)

− Invoke: It directs a Web service to perform an operation. It specifies the partner link,

port type, and operation to be invoked. Required properties are: − Partner Link − Port Type − Operation − Input Variable

− Reply: It matches a receiver activity. It has the same partner link, port type, and

operation as it matching receiver. Use Reply to send a synchronous response to a receiver. Required properties are:

− Partner Link − Port Type − Operation − Variable

− Assign: It manipulates process variables and partner link Endpoint references by

creating Copy From/To Operations for them. Also it updates the content of variables in several way:

− Copy data from one variable to another − Construct new data using XPath expression and functions − Construct new data using WS-BPEL extension functions

Required properties are: − Partner Link − Port Type − Operation

− Throw: It ignals a fault. Specifies a standard or custom fault

− Terminate: It stops an executable process immediately. All the currently running

activities must be terminated as soon as possible. − Wait: It stops process execution for a specified amount of time or until a deadline is

reached

Page 17: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 17/17 − Empty: An activity that does nothing when it executes. Useful for situations where you

need an activity but do not want anything to really happen, for example, suppressing a fault by having the empty be the child of the catch. − Compensate: Executes the compensation handler on a named scope or executes the

default compensation if no scope is named − Break: Breaks out of a loop in a while or For Each activity. Processing continues

normally with the next activity. − Continue: Continues with the next iteration in a loop (while or For Each). A convenience

activity that simplifies processing without the need of specifying all the conditions that may be required to continue normal processing when a certain condition is met. − Suspend: Suspends the process. Useful in a catch or catch All event to catch unexpected

errors. Container − Sequence: Executes activities in an ordered list

− Flow: Executes all activities in parallel

− While: Executes an activity repeatedly until a certain success condition has been met

− Pick: Executes a selected activity based on an incoming message or a time-out event.

Includes the Create Instance property to start a process. − Switch: Executes a selected activity based on branch conditions

− Scope: Provides a context for set of activities, with correlation, compensation, fault

handling, event handling and local variables − For Each: Iterates over a list of document elements

Other options include the following:

− Case − Otherwise − Catch − Catch All − On Alarm − On Message

Figure 6 shows ActiveBPEL palette screenshot, from where the above objects can be handled within ActiveBPEL designer board.

Page 18: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 18/18

Figure 6, ActiveBPEL Designer Palette

Page 19: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 19/19

5. BUILDING BPEL DIAGRAMS WITH ACTIVEBPEL DESIGNER This section deals with the basic concept (but not all) necessary to build and compose web services workflow with ActiveBPEL designer. This includes web references, partner, partner link, and partner link type, activities, and links. Web References A Web Reference is a Web Services Description Language (WSDL) file that has to be added to ActiveBPEL. WSDL files are displayed by name in the Web References view. By adding WSDL files and schemas to the Web References view, there is a convenient registry of namespaces, messages, type definitions, sample data, and other elements to use across BPEL processes. The wizard help is used to automatically include the WSDL elements needed. Also, Web References has an extensive search capability. To display WSDL files, click the Web References tab. The following illustration (Figure 7) shows the default view of Web References in ActiveBPEL.

Figure 7, Web reference

Web references can be viewed, added, and removed from the “web reference” panel. Partner Link Types, Partner Links, and Partners A BPEL process describes a flow of interactions between the process and services. Each interaction describes what role the process and services play at that step in the flow and what data can be manipulated by the parties in those roles. BPEL defines several constructs such as partner, partner link, and partner link type to identify roles and relationships used in interactions. A detailed discussion about partner link types, partner links, and partners is carried out in chapter 7 of ActiveBPEL user guide page, 169.

Page 20: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 20/20 Activities An activity is a step in a BPEL process. It can describe an interaction with a web service, or it can perform internal process functions. The process must contain at least one activity. Activities supported by ActiveBPEL designer are: Receive, Invoke, Reply, Assign, Throw, Terminate, Wait, Empty, Compensate, Break, Continue, and Suspend as shown in the design palette (Figure 6, ActiveBPEL Designer Palette) in this document. Links A link is a structure that connects two activities and controls the order of execution of the two activities. A link can include a condition when executing an activity. The condition is an XPath (or other language) expression. Multiple links between basic activities and between structured activities can be added. Also links to a basic activity contained by a structured activity can be added. A complete discussion regarding links is to be found in the ActiveBPEL user manual (that is distributed with ActiveBPEL) chapter 11, page 283. Others Additionally to the concepts presented above, it is worthwhile to have an understanding about the following concepts that ActiveBPEL designer manages, all of which are discussed in the ActiveBPEL user manual.

− Compensation − Correlation − Event handling − Fault Handling − Simulation and Debugging

Page 21: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 21/21

6. WS -TALK TEXT PROCESSING DESIGN Within WS-Talk there are different text mining methods, and these methods can be used for different purposes. Depending on those purposes the workflows or composition of services also change. In order to develop an example within the text mining features available in WS-Talk we have taken the classes and methods shown below. From that set we have chosen to deploy the services presented in Figure 8, WS-Talk deployed Web Services at RHUL) to be deployed using Apache Axis and Apache Tomcat and composed with ActiveBPEL. An important observation is that the text search example follows a different workflow to the one used for document annotations, even though the classes used for this two processes are the same.

— Connect connectMysql queryMysql insertMysql returnFirstIdWord returnIdWord returnFirstWordid disconnectMysql

— GenAnnotations increasesIdDocument annotations

— Interpreter interpreterQuery interpreterFile

— SearchMatches KeyWords genKeyWordsFile

— Matching locator voting similarity dissimilarity noDuplicated

— Porter getStemming

— TextProcessing stopWordsElimination analyzeTxt analyzeDoc phraseClean stopwordsEliminatedWord eliminatedWord determinesFrequency

Page 22: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 22/22

Figure 8, WS-Talk deployed Web Services at RHUL

From the set of web services presented in Figure 8, we have selected the “TextProcessing” and “Matching” services to be composed. This is in order to retrieve relevant documents related to a specific term. The process carried out is as follows. String phrase = TextProcessing.phraseClean (String language, String phrase) HashMap idLink = Matching.locator (String phrase) HashMap voting = Matching.voting(HashMap idLink)

Page 23: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 23/23 Where String language and String phrase have to be specified beforehand by the user. Once the process has been composed the result is similar to the one presented in Figure 9, which is ready to be exported and deployed in the ActiveBPEL engine. Once the process has been deployed the result is similar to the one presented in Figure 4, ActiveBPEL engine screenshot.

Figure 9, WS-Talk process with ActiveBPEL designer

The process explained above is shown in detail in a Flash presentation available on our web site at http://thames.cs.rhul.ac.uk/~wstalk/

Page 24: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 24/24 7. UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION (UDDI) The Universal Description, Discovery, and Integration [UDDI] protocol is a central element of the group of related standards that comprise the Web Services stack. It is defined by OASIS as a standard method for publishing and discovering the network-based software components of a service-oriented architecture. An UDDI registry can be used by a public, or a private, network. It offers a standard-based mechanism to classify, catalog, and manage web services, so they can be discovered and consumed by other applications or services. UDDI information can be classified as follow:

− A white page search returns basic information such as address, contact, and identifier about a company and its services. − A yellow pages search retrieves information according to industrial categorizations

and taxonomies, such as NAICS, ISO 3166, and UNSPSC classification systems. − A green pages search retrieves technical information about web services, as well

as information describing how to execute these services.

7.1. UDDI APIS The UDDI APIs consists of operations for creating, reading, updating, and deleting the information stored in a UDDI repository. A caller can use these operations to register and/or modify any number of businesses or services. Table 2 shows standard proprietary methods, Table 3 shows inquiry methods, and Table 4 shows methods related to the publication of services, business, and tModel.

UDDI API (proprietary) Description

get_registryInfo Used to get an abbreviated list of all businessEntity and tModel data for a publisher

find_publisher Used to find information about one or more publisher get_publisherDetail Used to get detailed information about one publisher save_publisher Adds or updates information about one publisher delete_publisher Delete a publisher

Table 2, UDDI proprietary API

UDDI Inquiry API Description find_business Used to located information about one or more business

find_service Used to located specific services within registered business entities

find_binding Used to located bindings within or across one or more registered businessServices

Page 25: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 25/25 find_tModel Used to lo locate one o more tModel information structures

find_relatedBusinesses Used to located information about businessEntity registrations that are related to a specific business entity within registered business structures

get_businessDetail Used to get the businessEntity information for one or more business or organisations

get_businessDetailExt Used to get extended businessEntity information

get_serviceDetail Used to get full details for a given set of registered businessServices

get_bindingDetail Used to get bindingTemplate information suitable for making service requests

get_tModelDetail Used to get full details for a given set of registered tModel data

Table 3, UDDI inquiry API.

UDDI Publish API Description get_authToken Used to get an authentication token

get_registeredInfo Used to get an abbreviated list of all businessEntity and tModel data for a given publisher

discard_authToken Used to inform a node that the passed authentication token is to be discarded

save_business Used to add or update information about a complete businessEntity structure

save_service Used to add or update one or more businessService elements save_binding Used to add or update a complete bindingTemplate element save_tModel Used to add or update one or more registered tModel elements delete_business Used to remove one or more business registrations delete_service Used to remove one or more businessService elements

delete_binding Causes one or more instances of bindingTemplate data to be deleted

delete_tModel Used to logically delete one or more tModel structures

add_publisherAssertions Causes one or more publisherAssertions (the relationship that one businessEntity has with another businessEntity) to be added to an individual publisher’s collection of assertions

set_publisherAssertions Used to replace all of the assertions associated with a publisher

get_publisherAssertions Used to obtain the full set of publisher assertions associated with a publisher

delete_publisherAssertions Causes one o more publisherAssertion elements to be removed from a publisher’s collection of assertions

get_assertionStatusReport Reports the status of current and putstanding publisher assertions that involve any of the business registrations managed by a publisher

Table 4, UDDI publish API.

Page 26: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 26/26 7.2. UDDI IMPLEMENTATIONS UDDI protocol implementations are offered from multiple companies and consortia, available as commercial products and open source. These products are developed to cover different needs that range from UDDI APIs to UDDI Registry Server, with Java and .NET platform implementations. The following section presents a brief list of UDDI components and products available at the moment. Commercial solutions Acumen Technology, http://acumentechnologies.com BEA, WebLogic Server UDDI Registry Fujitsu, http://www.fujitsu.com/global/services/software/interstage/ IBM, http://www-306.ibm.com/software/solutions/webservices/uddi/ Infravio, http://www.infravio.com/products/ IONA, http://www.iona.com/products/artix/welcome.htm Microsoft, http://www.microsoft.com/windowsserver2003/technologies/idm/uddi/default.mspx Novell, http://developer.novell.com/uddi/ Oracle, http://www.oracle.com/technology/tech/webservices/htdocs/uddi/index.html SAP, http://www.sap.com/solutions/netweaver/index.epx Select Business Solutions, http://www.selectbs.com/products/select-uddiserver.htm SOA Software, http://www.soa.com/index.php/section/products/registry_manager/ Systinet, http://www.systinet.com/products/sr/overview Open Source solutions Apache.org, JUDDI, http://ws.apache.org/juddi/ UDDI4J.org, http://uddi4j.sourceforge.net/ SOAP—LITE, http://sourceforge.net/projects/soaplite/ or http://soaplite.com/ PHPUDDI, http://phpuddi.sourceforge.net/

Page 27: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 27/27 7.3. APACHE UDDI REGISTRY (JUDDI) jUDDI is an open source Java implementation that complies with version 2.0 of the UDDI specification. jUDDI can be used with existing authentication technologies, and with different DBMSs, such as MySQL, BD2, and Sybase, just to name a few. It implements all the APIs named in 5.1 through SOAP calls using Apache Axis. This can be seen in Figure 10, jUDDI APIs implementation.. One of the problems with jUUDI is the lack of documentation available. Figures 5 and 6 show the physical and conceptual data model used by jUDDI. These data models are crucial at the moment of populating the database to be exploited later on.

Figure 10, jUDDI APIs implementation.

Page 28: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06 Version Draft Page 28/28

ADDRESS : 1

BUSINESS_KEY

CONTACT_ID

ADDRESS_ID

USE_TYPE

SORT_CODE

TM ODEL_KEY

varchar(41)

in teger(11)

in teger(11)

varchar(255)

varchar(10)

varchar(41)

<pk,fk1,fk2>

<pk,fk2>

<pk>

<fk3>

ADDRESS_LINE

BUSINESS_KEY

CONTACT_ID

ADDRESS_ID

ADDRESS_LINE_ID

LINE

KEY_NAM E

KEY_VALUE

varchar(41)

in teger(11)

in teger(11)

in teger(11)

varchar(80)

varchar(255)

varchar(255)

<pk,fk1,fk2,fk3>

<pk,fk1,fk3>

<pk,fk1>

<pk>

AUTH_TOKEN

AUTH_TOKEN

PUBLISHER_ID

PUBLISHER_NAM E

CREATED

LAST_USED

NUM BER_OF_USES

TOKEN_STATE

varchar(51)

varchar(20)

varchar(255)

tim estam p(19)

tim estam p(19)

in teger(11)

in teger(11)

<pk>

<fk>

BINDING_CATEGORY

BINDING_KEY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

varchar(41)

in teger(11)

varchar(41)

varchar(255)

varchar(255)

<pk,fk>

<pk>

BINDING_DESCR

BINDING_KEY

BINDING_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

varchar(5)

varchar(255)

<pk,fk>

<pk>

BINDING_TEMP LATE

SERVICE_KEY

BINDING_KEY

ACCESS_POINT_TYPE

ACCESS_POINT_URL

HOSTING_REDIRECTOR

LAST_UPDATE

var char(41)

var char(41)

var char(20)

var char(255)

var char(255)

tim estam p(19)

<fk>

<pk>

BUSINESS_CATEGORY

BUSINESS_KEY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

varchar(41)

in teger(11)

varchar(41)

varchar(255)

varchar(255)

<pk,fk>

<pk>

BUSINESS_DESCR

BUSINESS_KEY

BUSINESS_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

varchar(5)

varchar(255)

<pk,fk>

<pk>

BUSINES S_ENTITY

BUSINESS_KEY

AUTHORIZED_NAM E

PUBLISHER_ID

OPERATOR

LAST_UPDATE

varchar(41)

varchar(255)

varchar(20)

varchar(255)

tim estam p(19)

<pk>

<fk>

BUSINESS_IDENTIFIER

BUSINESS_KEY

IDENTIFIER_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

varchar(41)

in teger(11)

varchar(41)

varchar(255)

varchar(255)

<pk,fk>

<pk>

BUSINESS_NAM E

BUSINESS_KEY

BUSINESS_NAM E_ID

LANG_CODE

NAM E

varchar(41)

in teger(11)

varchar(5)

varchar(255)

<pk,fk>

<pk>

BUSINESS_SERVICE

BUSINESS_KEY

SERVICE_KEY

LAST_UPDATE

varchar(41)

varchar(41)

tim estam p(19)

<fk>

<pk>

CONTACT

BUSINESS_KEY

CONTACT_ID

USE_TYPE

PERSON_NAM E

varchar(41)

in teger(11)

varchar(255)

varchar(255)

<pk,fk>

<pk>

CONTACT_DESCR

BUSINESS_KEY

CONTACT_ID

CONTACT_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

in teger(11)

varchar(5)

varchar(255)

<pk,fk1,fk2>

<pk,fk2>

<pk>

DISCOVERY_URL

BUSINESS_KEY

DISCOVERY_URL_ID

USE_TYPE

URL

varchar(41)

in teger(11)

varchar(255)

varchar(255)

<pk,fk>

<pk>

EM AIL

BUSINESS_KEY

CONTACT_ID

EM AIL_IDUSE_TYPE

EM AIL_ADDRESS

varchar(41)

in teger(11)

in teger(11)varchar(255)

varchar(255)

<pk,fk1,fk2>

<pk,fk2>

<pk>

INSTANCE_DETAILS_DESCR

BINDING_KEY

TM ODEL_INSTANCE_INFO_ID

INSTANCE_DETAILS_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

in teger(11)

varchar(5)

varchar(255)

<pk,fk1,fk2>

<pk,fk2>

<pk>

INSTANCE_DETAILS_DOC_DESCR

BINDING_KEY

TM ODEL_INSTANCE_INFO_ID

INSTANCE_DETAILS_DOC_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

in teger(11)

varchar(5)

varchar(255)

<pk,fk1,fk2>

<pk,fk2>

<pk>

PHONE

BUSINESS_KEY

CONTACT_ID

PHONE_ID

USE_TYPE

PHONE_NUM BER

varchar(41)

in teger(11)

in teger(11)

varchar(255)

varchar(50)

<pk,fk1,fk2>

<pk,fk2>

<pk>

PUBLISHER

PUBLISHER_ID

PUBLISHER_NAM E

EM AIL_ADDRESS

IS_ADM IN

IS_ENABLED

varchar(20)

varchar(255)

varchar(255)

varchar(5)

varchar(5)

<pk>

PUBLISHER_ASSERTION

FROM _KEY

TO_KEY

TM ODEL_KEY

KEY_NAM E

KEY_VALUE

FROM _CHECK

TO_CHECK

varchar(41)

varchar(41)

varchar(41)

varchar(255)

varchar(255)

varchar(5)

varchar(5)

<fk>

SERVICE_CATEGORY

SERVICE_KEY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

varchar(41)

in teger(11)

varchar(41)

varchar(255)

varchar(255)

<pk,fk>

<pk>

SERVICE_DESCR

SERVICE_KEY

SERVICE_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

varchar(5)

varchar(255)

<pk,fk>

<pk>

SERVICE_NAM E

SERVICE_KEY

SERVICE_NAM E_ID

LANG_CODE

NAM E

varchar(41)

in teger(11)

varchar(5)

varchar(255)

<pk,fk>

<pk>

TM ODEL

TM ODEL_KEY

AUTHORIZED_NAM E

PUBLISHER_ID

OPERATOR

NAM E

OVERVIEW_URL

DELETED

LAST_UPDATE

varchar(41)

varchar(255)

varchar(20)

varchar(255)

varchar(255)

varchar(255)

varchar(5)

tim estam p(19)

<pk>

<fk>

TM ODEL_CATEGORY

TM ODEL_KEY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

varchar(41)

in teger(11)

varchar(255)

varchar(255)

varchar(255)

<pk,fk>

<pk>

TM ODEL_DESCR

TM ODEL_KEY

TM ODEL_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

varchar(5)

varchar(255)

<pk,fk>

<pk>

TM ODEL_DOC_DESCR

TM ODEL_KEY

TM ODEL_DOC_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

varchar(5)

varchar(255)

<pk,fk>

<pk>

TM ODEL_IDENTIFIER

TM ODEL_KEY

IDENTIFIER_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

varchar(41)

in teger(11)

varchar(255)

varchar(255)

varchar(255)

<pk,fk>

<pk>

TM ODEL_INSTANCE_INFO

BINDING_KEY

TM ODEL_INSTANCE_INFO_ID

TM ODEL_KEY

OVERVIEW_URL

INSTANCE_PARM S

varchar(41)

in teger(11)

varchar(41)

varchar(255)

varchar(255)

<pk,fk1>

<pk>

<fk2>

TM ODEL_INSTANCE_INFO_DESCR

BINDING_KEY

TM ODEL_INSTANCE_INFO_ID

TM ODEL_INSTANCE_INFO_DESCR_ID

LANG_CODE

DESCR

varchar(41)

in teger(11)

in teger(11)

varchar(5)

varchar(255)

<pk,fk1,fk2>

<pk,fk2>

<pk>

ADDRESS : 2

BUSINESS_KEY

CONTACT_ID

ADDRESS_ID

USE_TYPE

SORT_CODE

TM ODEL_KEY

varchar(41)

in teger(11)

in teger(11)

varchar(255)

varchar(10)

varchar(41)

<pk,fk1,fk2>

<pk,fk2>

<pk>

<fk3>

Figure 11, Physical JUDDI database schema

Page 29: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06 Version Draft Page 29/29

ADDRESS : 1

ADDRESS_ID

USE_TYPE

SORT_CODE

<pi> I

VA255

VA10

<M >

ADDRESS_LINE

ADDRESS_LINE_ID

LINE

KEY_NAM E

KEY_VALUE

<pi> I

VA80

VA255

VA255

<M >

<M >

AUTH_TOKEN

AUTH_TOKEN

PUBLISHER_NAM E

CREATED

LAST_USED

NUM BER_OF_USES

TOKEN_STATE

<pi> VA51

VA255

TS

TS

I

I

<M >

<M >

<M >

<M >

<M >

<M >

BINDING_CATEGORY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

<pi> I

VA41

VA255

VA255

<M >

<M >

BINDING_DESCR

BINDING_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

BINDING_TEM PLATE

BINDING_KEY

ACCESS_POINT_TYPE

ACCESS_POINT_URL

HOSTING_REDIRECTOR

LAST_UPDATE

<pi> VA41

VA20

VA255

VA255

TS

<M >

<M >

BUSINESS_CATEGORY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

<pi> I

VA41

VA255

VA255

<M >

<M >

BUSINESS_DESCR

BUSINESS_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

BUSINESS_ENTITY

BUSINESS_KEY

AUTHORIZED_NAM E

OPERATOR

LAST_UPDATE

<pi> VA41

VA255

VA255

TS

<M >

<M >

<M >

<M >

BUSINESS_IDENTIFIER

IDENTIFIER_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

<pi> I

VA41

VA255

VA255

<M >

<M >

BUSINESS_NAM E

BUSINESS_NAM E_ID

LANG_CODE

NAM E

<pi> I

VA5

VA255

<M >

<M >

BUSINESS_SERVICE

SERVICE_KEY

LAST_UPDATE

<pi> VA41

TS

<M >

<M >

CONTACT

CONTACT_ID

USE_TYPE

PERSON_NAM E

<pi> I

VA255

VA255

<M >

<M >

CONTACT_DESCR

CONTACT_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

DISCOVERY_URL

DISCOVERY_URL_ID

USE_TYPE

URL

<pi> I

VA255

VA255

<M >

<M >

<M >

EM AIL

EM AIL_ID

USE_TYPE

EM AIL_ADDRESS

<pi> I

VA255

VA255

<M >

<M >

INSTANCE_DETAILS_DESCR

INSTANCE_DETAILS_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

INSTANCE_DETAILS_DOC_DESCR

INSTANCE_DETAILS_DOC_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

PHONE

PHONE_ID

USE_TYPE

PHONE_NUM BER

<pi> I

VA255

VA50

<M >

<M >

PUBLISHER

PUBLISHER_ID

PUBLISHER_NAM E

EM AIL_ADDRESS

IS_ADM IN

IS_ENABLED

<pi> VA20

VA255

VA255

VA5

VA5

<M >

<M >

PUBLISHER_ASSERTION

FROM _KEY

TO_KEY

KEY_NAM E

KEY_VALUE

FROM _CHECK

TO_CHECK

VA41

VA41

VA255

VA255

VA5

VA5

<M >

<M >

<M >

<M >

<M >

<M >

SERVICE_CATEGORY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

<pi> I

VA41

VA255

VA255

<M >

<M >

SERVICE_DESCR

SERVICE_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

SERVICE_NAM E

SERVICE_NAM E_ID

LANG_CODE

NAM E

<pi> I

VA5

VA255

<M >

<M >

TM ODEL

TM ODEL_KEY

AUTHORIZED_NAM E

OPERATOR

NAM E

OVERVIEW_URL

DELETED

LAST_UPDATE

<pi> VA41

VA255

VA255

VA255

VA255

VA5

TS

<M >

<M >

<M >

<M >

<M >

TM ODEL_CATEGORY

CATEGORY_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

<pi> I

VA255

VA255

VA255

<M >

<M >

TM ODEL_DESCR

TM ODEL_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

TM ODEL_DOC_DESCR

TM ODEL_DOC_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

TM ODEL_IDENTIFIER

IDENTIFIER_ID

TM ODEL_KEY_REF

KEY_NAM E

KEY_VALUE

<pi> I

VA255

VA255

VA255

<M >

<M >

TM ODEL_INSTANCE_INFO

TM ODEL_INSTANCE_INFO_ID

OVERVIEW_URL

INSTANCE_PARM S

<pi> I

VA255

VA255

<M >

TM ODEL_INSTANCE_INFO_DESCR

TM ODEL_INSTANCE_INFO_DESCR_ID

LANG_CODE

DESCR

<pi> I

VA5

VA255

<M >

<M >

ADDRESS : 2

ADDRESS_ID

USE_TYPE

SORT_CODE

<pi> I

VA255

VA10

<M >

Figure 12, Conceptual JUDDI database schema

Page 30: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 30/30

8. SIMPLE OBJECT ACCESS PROTOCOL (SOAP) SOAP is an XML-based communication protocol and encoding format for inter-application communication. It was originally conceived by Microsoft but currently the W3C XML protocol working group is in charge of the specification. SOAP usually exchanges messages over HTTP: the client POSTs a SOAP request, and receives either an HTTP success code and a SOAP success response or an HTTP error code. A SOAP message consists of an envelope containing an optional header and a required body, as shown in Figure 7. The header contains blocks of information relevant to how the message is to be processed. This includes routing and delivery settings, authentication or authorization assertions, and transaction contexts. The body contains the actual message to be delivered and processed. Anything that can be expressed in XML syntax can go in the body of a message.

Header block

Header block

SOAP envelope

SOAP header

SOAP body

Message body

Figure 13, SOAP structure.

WS-Talk uses Apache Axis for SOAP message exchange.

Page 31: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 31/31

9. CONCLUSION This document presents the service-oriented architecture, and its relationships with web service standards such as WSDL, SOAP, and UDDI. Additionally we deal with the problem of how services produced by these standards can be composed. On the services composition part, two standards are introduced (WS-BPEL and WS-CDL). One is chosen (BPEL). Thereafter, different BPEL implementations are presented, and one proposed to be used in the WS-Talk context (ActiveBPEL engine). Additionally a brief review is given regarding ActiveBPEL designer. The ActiveBPEL section is complemented with a set of Java files and an Ant script ready to deploy WS-Talk text mining web services. Additionally a Flash presentation is available (http://thames.cs.rhul.ac.uk/~wstalk/) in order to help creating customised BPEL workflows. We finish showing different implementations of UDDI protocol, and jUDDI implementation. Also the SOAP standard is briefly presented.

Page 32: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 32/32 ACRONYMS BPEL – Business Process Execution Language BPML – Business Process Markup Language BPSS – Business Process Schema Specification DBMS – Data Base Management System DAML – DARPA Agent Markup Language GUI – Graphical User Interface HTTP – Hypertext Transfer Protocol IBM – International Business Machines Corp ID – identifier IP – Internet Protocol jUDDI – Apache Java UDDI repository OASIS – Organization for the Advancement of Structured Information Standards OGSA – Open Grid Services Architecture OWL – Ontology Web Language SOAP – Simple Object Access Protocol TLS – Transport Layer Security UDDI – Universal Description, Discovery, and Integration W3C – World Wide Web Consortium WSCI – Web Service Choreography Interface WSDL – Web Services Definition Language WS-CDL – Web Services Choreography Description Language WSFL – Web Services Flow Language WS-Talk – Web Services Communicating in the Language of Their User Community W3C – World Wide Consortium XML – Extensible Markup Language XLANG – Web Services for Business Process Design

Page 33: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 33/33 BIBLIOGRAPHY [ActiveBPEL Designer]. ActiveBPEL Designer User’s Guide. Version 2. Revised January 2006, pp. 34, 35. [ActiveBPEL Engine]. http://www.activebpel.org [Axis]. Apache Axis. http://ws.apache.org/axis/ [Bieber and Carpenter]. Bieber, G., and Carpenter, J. Introduction to Service-Oriented Programming. http://www.openwing.org/download/specs/ServiceOrientedIntroduction.pdf. [Eclipse]. http://www.eclipse.org/ [IBM SOA]. http://www-306.ibm.com/software/info/openenvironment/soa/ [Jurik]. Juric, M. Enterprise Java Community: BPEL and Java. April 2005 http://www.theserverside.com/articles/article.tss?l=BPELJava [JUDDI]. Apache Java implementation of the Universal Description, Discovery, and Integration standard. http://ws.apache.org/juddi/ [Meyer]. Meyer, B. Object Oriented Software Construction. Prentice Hall. 1997, pp. 39-48. [SOAP]. Simple Object Access Protocol. http://www.w3.org/TR/soap/ [OASIS SOA]. Organization for the Advancement of Structured Information Standards. Service-Oriented Architecture. http://www.oasis-open.org/committees/tc_cat.php?cat=soa [UDDI]. The Universal Description, Discovery, and Integration protocol, http://www.uddi.org/ [WSDL]. Web Service Definition Language. http://www.w3.org/TR/wsdl [WS-BPEL]. Web Services Business Process Execution Language. http://www.oasis-open.org/apps/org/workgroup/wsbpel/ [WS-CDL]. Web Services Choreography Language. http://www.w3.org/TR/2004/WD-ws-cdl-10-20041217/ [XML]. Extensible Markup Language. http://www.w3.org/XML/ [W3C]. World Wide Consortium, http://www.w3.org

Page 34: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 34/34

ANNEX A, Open Source BPEL implementation ActiveBPEL, http://www.activebpel.org/ Observation: Uses a DBMS for storing information Agila BPEL, http://wiki.apache.org/agila/ Bossa, http://www.bigbross.com/bossa/ con:cern, http://con-cern.org/ Dalma, https://dalma.dev.java.net/ Enhydra Shrak, http://shark.objectweb.org/ Freeflu, http://freefluo.sourceforge.net/ Observation: Works in co-ordination with Taverna project, which is part of MyGrid Project. jBPM, http://www.jboss.com/products/jbpm JFolder, http://www.jfolder.com/ ObjectWeb Bonita, http://bonita.objectweb.org/ OpenSymphony OSWorkFlow, http://www.opensymphony.com/osworkflow/ OpenWFE, http://www.openwfe.org/ Oracle BPEL Process Manager, http://www.oracle.com/technology/products/ias/bpel/index.html Observation: Check license, it is free but designed to support Oracle technology. PXE, http://www.fivesight.com/pxe.shtml Observation: Requires Java 1.5 JDK. Swish, http://www.roxwood.com/swish.jsp Taverna, http://taverna.sourceforge.net/ Werkflow, http://werkflow.codehaus.org/ WfWOpen, http://wfmopen.sourceforge.net/ XFlow, http://xflow.sourceforge.net/

Page 35: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 35/35

ANNEX B, WS-Talk Text Mining BPEL Example <?xml version="1.0" encoding="UTF-8"?> <process name="wstalk" suppressJoinFailure="yes" targetNamespace="http://localhost" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:localhost="http://localhost" xmlns:ns1="http://localhost" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <partnerLinks> <partnerLink myRole="TextProcessing" name="TextProcessing" partnerLinkType="localhost:TextProcessing"/> <partnerLink myRole="Matching" name="Matching" partnerLinkType="localhost:Matching" partnerRole="Matching"/> </partnerLinks> <variables> <variable messageType="localhost:phraseCleanRequest" name="phraseCleanRequest"/> <variable messageType="localhost:phraseCleanResponse" name="phraseCleanResponse"/> <variable messageType="localhost:locatorRequest" name="locatorRequest"/> <variable messageType="localhost:locatorResponse" name="locatorResponse"/> <variable messageType="localhost:votingRequest" name="votingRequest"/> <variable messageType="localhost:votingResponse" name="votingResponse"/> </variables> <flow> <links> <link name="L1"/> <link name="L3"/> <link name="L2"/> <link name="L5"/> <link name="L7"/> <link name="L4"/> <link name="L6"/> <link name="L9"/> <link name="L8"/> </links> <receive createInstance="yes" name="PhraseCleanReceive" operation="phraseClean" partnerLink="TextProcessing" portType="localhost:TextProcessing" variable="phraseCleanRequest"> <source linkName="L1"/> </receive> <reply name="PhraseCleanReply" operation="phraseClean" partnerLink="TextProcessing" portType="localhost:TextProcessing" variable="phraseCleanResponse"> <target linkName="L2"/> <source linkName="L3"/> </reply> <assign name="PhraseAssign"> <target linkName="L1"/> <source linkName="L2"/> <copy> <from part="phrase" variable="phraseCleanRequest"/> <to part="phraseCleanReturn" variable="phraseCleanResponse"/>

Page 36: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 36/36 </copy> </assign> <receive name="LocatorReceive" operation="locator" partnerLink="Matching" portType="localhost:Matching" variable="locatorRequest"> <target linkName="L4"/> <source linkName="L5"/> </receive> <reply name="LocatorReply" operation="locator" partnerLink="Matching" portType="localhost:Matching" variable="locatorResponse"> <target linkName="L6"/> <source linkName="L7"/> </reply> <assign name="PhraseCleanAssign"> <target linkName="L3"/> <source linkName="L4"/> <copy> <from part="phraseCleanReturn" variable="phraseCleanResponse"/> <to part="phrase" variable="locatorRequest"/> </copy> </assign> <assign name="LocatorAssign"> <target linkName="L5"/> <source linkName="L6"/> <copy> <from part="phrase" variable="locatorRequest"/> <to part="locatorReturn" variable="locatorResponse"/> </copy> </assign> <terminate> <target linkName="L9"/> </terminate> <invoke inputVariable="votingRequest" operation="voting" outputVariable="votingResponse" partnerLink="Matching" portType="localhost:Matching"> <target linkName="L8"/> <source linkName="L9"/> </invoke> <assign name="LocatorReplayAssign"> <target linkName="L7"/> <source linkName="L8"/> <copy> <from part="locatorReturn" variable="locatorResponse"/> <to part="idLink" variable="votingRequest"/> </copy> </assign> </flow> </process>

Page 37: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 37/37

ANNEX C, Istanbul Presentation

Page 38: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 38/38

Page 39: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 39/39

Page 40: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 40/40

Page 41: SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL … · SOA and WS-TALK Integrating Web Services in WS-TALK with BPEL and UDDI Change log Version Date Author State Description

Royal Holloway, University of London Document RHULdeliverableApril2006.doc Date 13/7/06

Version Draft Page 41/41