Dynamism in Web Services Workflows
Abstract:
The objective of this article
is to report on the seminar topic "Dynamic Web Services Workflow based
System". In traditional [33] workflow based systems the various
participants that take part in a specific business process are pre-determined,
but the new proposals in the area of Web Services workflows propose the dynamic
lookup of the participants. This will lead to a Dynamic Workflow based Web
Services system. This article introduces and elaborates on these aspects in
detail.
|
Seminar Presented by / on |
Suresh Chande / 19 May 2003 |
|
Course |
58303108 - Modeling Workflow |
|
Handled by |
Juha Puustjärvi PhD |
|
Article Submitted by |
Suresh Chande |
|
Email Contact |
|
|
PDF Format |
|
|
Presentation |
Workflows are
semi-automised processes whose execution is carried out in an engine ensure
proper execution of a specific business process. The traditional definition of a
Business Process and Workflow are as defined here below:
Business Process: "A set of one or more linked procedures or
activities which collectively realize a business objective or policy goal,
normally within the context of an organization structure defining functional
roles and relationships"[33]
Workflows: "The automation of a Business Process in whole
or a part, during which documents, information or tasks are passed from one
participant to another for action, according to a set of procedural rules
"[33]
To a great extent in
the current and the traditional Workflow systems the various participants that
take part in a specific business process are pre-determined, but the new
proposals in the area of Web Services workflows propose the dynamic lookup of
the participants. This will introduce dynamism into Workflow system. We will
investigate this aspect in the article.
We will begin with an
introduction to Workflows and provide a need for them in the Web Services arena
after briefly introducing the Web Services. We will then continue to discuss
the available workflow technologies and make brief comparisons between them. We
will continue to look into what it means in bringing dynamism into Workflows.
We will look into DAML-S and understand how it enables dynamism in Workflows
and finally conclude with a look into the future directions of dynamic
workflows.
Workflow technologies have been applied to business process automation for several years now and close to a decade since WfMC[33] has started to develop a standardized approach to provide a solution to semi-automise business processes. The Business Process as defined previously consists a several smaller activities or procedures that need to be processed together to achieve a business goal. The smaller activities or procedures could involve processing carried out by software components, human users, and interaction with physical entities from the external world to the software world. These together when processed will achieve a specific business objective.
In order to automise the processes involved within an organization, it is required to be able define the steps that could be interpreted by computer in order to automise parts of the processes. Process Definition establishes this. The Process Definition encapsulates each individual steps involved in completing or achieving a specific objective. The steps in this case are termed as Activities. The several activities are linked together to represent the order of processing of these activities that is carried out in a process. The Figure 1 below provides a pictorial representation of a Business Process Definition.

Figure 1: Business Process Definition
The Process Definition is pictorially represented as Acyclic directed graph. A node in the graph depicts each of the activity, while the edges of graph represent the Transition from one activity to another. The transition is guarded by a Transition condition that is to be evaluated and once it is being satisfied the phase of execution of a particular process step is transitioned to the next activity.
The Process is normally represented by an acyclic graph; if there
are requirements for cyclic graph it is dealt with very carefully so as to have
clear exit condition
A Process can also contain sub processes,
which are the same as processes but are utilized as part of another process.
For example: A purchase order process consisting of sub-processes such as:
Inventory Check, Payment Control and Goods dispatch sub-processes. The
sub-processes can be processes by different mechanism:

Figure 2:
Business Process and Sub Processes

Figure 3:
Business Process and Activities
Activity is a single step of execution
within a business process definition and is usually denoted by the node in a
graph. Activities can be of two types namely: Atomic Activity, which cannot be
broken down further into smaller tasks. The Nodes 1, 3, 4 and 5 in the Figure 3 can be considered atomic activities. The Complex
Activity can contain few other Activities as depicted by the node 2 in Figure 3, which basically contains 4, 5 and 6 or then
containing a sub-Process as depicted in the Figure 2.
Transition is the flow of
execution or control and data from one Activity to another. Transition is usually guarded by a condition
and this is typically a logical condition which when satisfied will advance the
process execution from one activity to another.
Activity Execution: When we consider the
execution of the activities in a process, the execution can be carried out four
different styles, namely: sequential, parallel, conditionally and iteratively.
Transition condition is evaluated on
various states of the process:
·
Once an
Activity has completed its execution.
·
Once all the
joining activities have finished and reached this part of the graph.
·
Once a set
number of joining activities have completed their execution.
The Process Definition, Activities and the
transition currently discussed defines the flow of execution and the data
within a Workflow based system. There are several other runtime key
functionalities within a process execution, such as:
·
Exception
Handling
·
Transactions
Handling
·
Compensation
Handling
·
Property
·
Fault Triggers
·
Service
Lookups
·
Multiple
Service Interactions
We will discuss each of them in the
following text
Exception Handling: The execution of a Process requires handling any possible failures to carry out the execution of the process. This is handled by the Exceptions in the workflow. They are responsible to handle the possible error or fault conditions that may occur during the execution of the complete process. The handling of the Exception condition could themselves be the execution of further activities to overcome the exception that has occurred. These exceptions are usually handled by:
· Retrying the similar activities that failed to execute
· Perform a clean up operation to revert the state of the process execution so as to undo the affects of the Activities processed so far in the complete process execution
· Notify the corresponding recipient of the failure to continue the process execution
Transactions handling: The
execution of a set of activities within a process execution is considered to a
single consistent unit of execution and any success or failure is applied to
this complete set of activity execution. The completion of the execution of all
the activities together is reflected to the external world only once all the
activities are executed successfully, incase of failure of any single activity
is considered to fail the complete transaction and hence the effects of the
already executed activities is undone to put the state of the process back to
the state it was in prior to the execution of the transaction.
Compensation Handling: This contains execution of a set of activities, which will perform part
of task which will try to rollback the system as best possible to the original
state prior to the start of the Transactions.
Property: This functionality allows alter and refer
the values of a property within context of execution of a specific Business
process instance. The property represents the state parameters of the execution
of a specific process.
Fault Triggers: Allows raising a fault condition during the execution of the Business Process
. The faults are
handled by the Fault handlers within a process execution, similar to Exception
handling.
Multiple Service Interactions: The atomic activities within a process
are considered to invoke a specific service of that particular business
organization. This feature enables the definition of the interconnection between the different
Services (operations within as well).
Service Lookup: This is an advanced feature not available
in any traditional workflow based systems. They are being defined under the Web
Services Workflows, which will be discussed in later sections. This feature facilitates dynamic lookup into a public
and business specific registry to identify the next activity within the
execution of the Business Process.
In this we had
A
very brief introductions of Workflows, Process definition and the runtime
functionalities of a workflow based systems. We will in the next section
discuss in brief about Web Services and the basic elements that consists of a
Web Services solution. We need to understand this in order to understand
dynamism in Web Services workflows.
Web Services have been applied
in wider solutions today than a year ago, but they are still not available and
deployed widely in commercial solutions. In this section we will briefly discuss
about the basic of Web Services. To start with let us look at the definition of
Web Services; Web Services
are the means of exposing an organization's services to its end-user consumers
or partners over the Web utilizing open Web-based standards, which are agnostic
to development platform used, vendor tools and the underlying implementation
specifics. The
Core Web Services standards are being specified by the W3C [34]. The definition of Web Services as specified by W3C is: “A Web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML-based messages conveyed by Internet protocols. [34]
”
The basic elements of Web
Services are a Messaging Framework and a Service Description Framework. The
Message Framework provides a mechanism for two peer computing systems to
exchange messages in-order to communicate and exchange the requests and
optionally the responses to perform their own required set system objectives.
The Message Framework in specified by the SOAP protocol (previously known as
Simple Object Access Protocol). The Service Description Framework specifies the
services interfaces and the set of messages that can be exchanged with a
specific service interface. The service description is specified by WSDL (Web
Services Description Language). XML [2] and XML schema [3] form the core of these framework, where XML is
utilised for Data encapsulation and structuring, while the XML Schema is
utilised for data setting, formatting and validation purposes. We will continue
to discuss SOAP and WSDL in the following sections.
SOAP defines a simple and lightweight mechanism for exchanging structured and typed information between peers over the web in a decentralized, distributed environment using XML
SOAP message consists of mainly
there different parts: Envelope, Header and Body. Envelope is top-level root element of a SOAP
Message, which contains the Header and Body element. Header is a collection of zero or more SOAP header blocks each
of which might be targeted at any SOAP receiver within the SOAP message path.
Header contains information about processing the SOAP message and specifically
about the information contained in the Body. The Body is a collection of zero
or more element information items targeted at an ultimate SOAP receiver
in the SOAP message path. The SOAP message path contains zero or more inter-mediaries nodes and
a single ultimate recipient of the SOAP message. The Figure 4 depicts the SOAP message structure. The nodes to
express a fault that is occurred in processing the SOAP message utilize the
SOAP Fault in the SOAP message.

Figure 4: SOAP Message Structure
SOAP
specification supports two styles of handling the SOAP messages received at the
Nodes, namely RPC and Document style:
This enables the SOAP engine to directly invoke the underlying software system, without any major efforts from the developer in translating the message to underlying system specifics
This enables the SOAP engine to deliver the Message to the corresponding Message Handler. The developer takes the responsibility to handle the messages accordingly within such handlers.
The closer the system is to the Message structure the better the overall performance. If it needs further transformation or translation it will affect the overall system performance
The Figure 5 and Figure
6 show an example of SOAP request and a response
Message expressed in a RPC styled message. The mandatory parts of the SOAP
message are shown in colour red. The headers are optional and are expressed in
blue colour. The Body contains the message part meant for the final and
ultimate recipient of this SOAP message. The RPC\style of the message is
represented by the element, which is in green colour.

Figure 5: SOAP Request Message Figure 6: SOAP Response Message
The SOAP message processing is as depicted in the Figure 7. The basic steps involved in handling a SOAP message
is as described below:

Figure 7:
Message processing Model
WSDL defines an XML based grammar to define
web services as a collection of the communication end points capable of
exchanging messages (procedural or document oriented), which follow a specified
message structures in order to satisfy the functioning of a software system
over a networked environment.
The description is modeled into
abstract and concrete parts. The
abstract part contains end points and messages and the concrete part binds
these endpoints and messages to a concrete network deployment and data format
bindings
WSDL provides a means of specifying Data types used Messages
Endpoints of a Web Services
Endpoints are defined by a set of
Input messages Output messages Fault
messages.
These end points are then bound to a messaging
framework such as SOAP. The messaging framework is finally bound to a concrete
instance of the service by specifying the addressing and the transport
protocols. (for example: HTTP based URIs).
Definitions contains the complete web service definition. The Documentation element is an optional sub-element used for the documentation purposes, which is human readable. The Types contains the data type definitions ( based on the XML Schema datatypes[19]). The Messages is the abstract definition of the data being transmitted between two Web Service nodes. The PortType helps specify a set of abstract Operations, where the Operation refers to Input, Output and Faults messages that can be exchanged with a specific Web Service endpoint. This is very similar to Interfaces when considering Object Oriented Programming. The Binding element as the name suggest specifies a concrete protocol and data format specifications for the operations and messages defined by a particular portType. This is where the abstract service definition is bound to a concrete Messaging framework. In the case of typical Web Services as defined by the industry it is bound to SOAP messaging framework. The binding can also be done to alternative web protocols such as HTTP, SIP, etc. The Service element is utilized to aggregate a set of related ports to specific addressable locations. The Port is used to specify a concrete implementation specific address for a binding
. For example an URL.

Figure 8:
WSDL Document Structure
Here is an overall WSDL
skeleton document shown in the Figure 9.

Figure 9: WSDL Skeleton Document
The Web Services consists of several key players
such as Web Services Provider, Broker and finally a Consumer. The complete
process that is involved in Web Services is developing, deploying, publishing,
Discovering and consuming. These process steps are carried out by each of the
players specifically responsible for a particular activity. The Service
provider develops and deploys the Web Service in a particular web enabled infrastructure
(portal), after which he publishes the information about the Web Service with a
Web Services broker or a registry (UDDI), which is locally or globally hosted.
The Web Services consumer uses the services of a WS Broker or a registry, if
the consumer does not already have the information about a particular WS the
user would like to utilise, to search for a relevant WS. Once the particular WS
is found the WS consumer invokes the specific WS end points to access the
required service functionality. Inspecting the WS description, as specified by
the WSDL, identifies the Services functionality
Document. This complete process is depicted in the
Figure 10

Figure 10:
Web Services Process
Let us now consider an example of a travel agency
who wants to provide a Web Service, which utilises the existing legacy,
services which are not exposed to the web world. The organization decides a set
of services (language, weather, comparison, ticketing, etc) that need to be
included to enable a particular service functionality (personalized tourism).
The Web Service is defined based on the service
requirements identified by the organization deciding to provide the services.
The developer implements the Web service utilising the existing services, which
are either internal services developed using legacy technologies or existing
Web Service itself, by looking up a public registry. Once such a service is
implemented, the developer can expose the Web Service to the external world by
deploying this into a portal. Then later by publishing the service definitions
into a UDDI registry this service can be discovered by external partners. This
Web Service can be utilised by its partners or also within the same
organization to develop a web application with UI on top of the existing WS to
provide appealing services to the human user directly. The Figure 11 shows the above described scenario.

Figure 11: Web Services Model
The basic Web Service standards
provide only the means of exchanging messages and description only the simple
interfaces or end points with which the corresponding messages are required to
be exchanged. They miss out very many important aspects to provide a complete
software solution. The Web Services rely on the fact that the Web Services
descriptions are interpreted by human beings, analysed and then included into
their business logic to consume the Web Services. This does not seem to add any
greater value from the Web Services consumer point of view and as well as to
utilise software system to simplify the consumption of such Web services.
The software systems can
simplify WS consumption process and even automise in some cases if the Web
Service can provide greater details about the runtime processing information on
how to utilise the Web Service endpoints. The Web Services can be utilised within
a workflow-based system
The current standards have
several limitations and do not completely specify in a system interpretable
form. Few of these limitations are:
The basic Web Service standards miss out several key details required for the Web Services
Consumers to utilise a Web
Service in non-ambiguous manner. The information regarding these in
standardized manner will enable several tools and applications to simplify the
consumption of a Web Services. Few of the missing elements from the Web Service
standards are:
·
Order of end
point execution of a specific WSI
·
Message
Correlation between the Service interfaces / endpoints
·
Inter-relation
between services interfaces
·
Status of the
asynchronous request
·
Transaction
handling
·
Error Handling
·
Composition of
service interactions
·
Exceptions
& Compensations
·
Simplified
interfaces (Composite Services)
Conversation State\ Context management
Not all of these issues are to be addressed for service consumptions; some are addressed today with the help of
Developer Guides, Message Level
Conventions, but they still make it laborious process in developing systems
utilizing existing WSI’s
The industry has identified that the best way
to approach these limitation as discussed in the previous section is by develop
workflow technologies for Web Services. The industry has several terms listed
for this, such as Web Services Choreography, Orchestration, Conversation, and
Flow Languages.
As we can see from the Figure 12 that the WS Workflow is being proposed as higher
level abstraction on top of the current Web Services standards. This
specification will utilize the WSDL and SOAP as the underlying WS core
standards. There are several proposals
currently brought forward by industry players, consortiums and standardizations
forums. The outstanding ones being the WSCI [30] from the W3C and the BPEL4WS [24] from OASIS standardization efforts. The BPML [27] is also another technically potential standard being
proposed by the BPMI [10].
As we can see from the Figure that the proposals build
on top of the existing WS standards they enable smooth development and backward
compatible. The Workflow technologies
applied to Web Services provides several benefits in filling the gaps and
limitations demonstrated by the basic Web Service standards.
Web Service Workflow provides several benefits, such
as:
·
Enables the
exposure of a process oriented model to Web Service Interfaces
·
Provide a
simplified interface to a set of interfaces; Facilitate simplified packaging of
a set of interfaces.
·
WS with
choreography defined can be better managed when compared to current WSIs,
specifically when there exists inter-dependent set of WSIs (Payment, Profile,
Delivery & Presence).
·
Provides a
clear usage model for a set of WSIs.
·
Allows
creation of composite services
·
Enables
specify design patterns depicting the best practices of using a set of WSI's
·
Allows
Provisioning of an execution environment which can guarantee execution of the
complex/composite service invocation with compensations etc (for e.g. Delivery
& Payment)
·
Provides a good environment for Long Running Middleware infrastructure.
Where there can be pre-defined set of operations that need to be performed over
a period of time (even Scheduled). This will simplify the client interactions
with the WSIs, but in turn needs to interact with the process to manage and
monitor the status of such execution.
·
The most
important factor is also that it helps define a coarse grained interfaces to
the existing granular interfaces (RPC / Document style), reducing the
interactions between the WSC and Choreography provider.
·
Helps monitor
that status of the request and even manage the lifecycle of the process

Figure 12: Web Services Workflows
There are several industry
proposals for Workflows and specifically for Web Services Workflows. In the next
section we will try to compare them from the functionality point of view.
The traditional workflow
systems, which are non-web Services enabled, are:
The workflow proposal currently including
Web Services are as listed below:
We will compare the WSCL, WSCI, BPEL4WS, XLANG, BPML and DAMLS
Proposal in
the following sections, as they are proposals that might be suitable to
compare, as they are relevant when compared to the Web Services Workflows.
|
Functionality |
WSCL[31] |
XLANG[28] |
WSCI[30] |
BPML[27] |
WSFL[32] |
BPEL4WS[24] |
DAMLS[25] |
|
Top Level Composition High Level composition of the complete description. |
<conversation> |
<behavior> |
<interface> |
<package> |
<definitions> |
<process> This is separate document from the basic WSDLs |
Process |
|
Process A construct is available to represent a Business process as a whole |
No <conversation interactions> defines all the interactions in a
conversation |
No <body> defines all the actions involved in a service |
Yes <process> |
Yes <Process> |
(Not directly) Included into Definitions + flow model + global model |
Yes <process> |
Yes Process |
|
Activity |
|
|
|
|
|
|
|
|
Atomic Activity |
Yes <Interaction> |
Yes <action> |
Yes |
Yes |
Yes <Activity> |
Yes <invoke> More than one element is considered as atomic.. |
Yes |
|
Basic Functionality |
WSCL |
XLANG |
WSCI |
BPML |
WSFL |
BPEL4WS |
DAMLS[1] |
|
Composite Activity |
No |
Yes |
Yes |
Yes |
Not Directly <flowmodel> / <globalmodel> |
Yes |
|
|
TRANSITIONS |
|
|
|
|
|
|
|
|
Sequential This functionality allows sequential execution of each of the steps
involved within a process. |
Yes <Transition> defines the next interaction from the source interaction |
Yes <sequence> |
Yes <call> / <sequence> |
Yes <call> / <sequence> |
<In-directly> Through the condition attribute in <controlLink> &
<dataLink> |
<Sequence> |
Sequence |
|
Conditional This functionality allows a conditional execution of a set of steps involved within a process |
Yes A condition guards the <Transition> |
Yes Switch / Pick (Message Event Handler) |
Yes <choice> (triggering events->messsage / timeout/ fault)/
<switch> |
Yes <choice> / <switch> |
<In-directly> Through the condition attribute in <controlLink> &
<dataLink> |
<Switch>, <pick>, |
Switch, pick, if-then-else, condition, |
|
Parallel This functionality allows parallel
execution of process or sub process within a process |
No |
No |
Yes <spawn>/<join> |
Yes <spawn>/<join> |
Yes Through Life Operations <export> & Join |
<flow> |
Split, split+join |
|
Basic Functionality |
WSCL |
XLANG |
WSCI |
BPML |
WSFL |
BPEL4WS |
DAMLS[2] |
|
Loop This functionality allows
iterative execution of each of the steps involved within a process |
No |
Yes <while> |
Yes <forEach> / <while>/ <until> |
Yes <forEach> / <while>/ <until> |
In a restricted fashion of only one activity. Later version will provide
more features. |
<While> |
Repeat-While, repeat-until, |
|
Runtime Execution Functionality |
|
|
|
|
|
|
|
|
Context This functionality provides an execution context related each unique
conversation between the client and the Business process |
No |
Yes <context> Contains -correlation sets+port references |
Yes <context> |
Yes <context> |
<Limited Support> Through the FlowSource & FlowSink |
<scope> |
No directr construct for this , but can maintain properties for a
context. |
|
Transactions This functionality provides the transactional support within a
Business Process |
No |
Yes <transaction> |
Yes <transaction> |
Yes <transaction> |
N0 |
REF- WS-Transaction |
No |
|
Basic Functionality |
WSCL |
XLANG |
WSCI |
BPML |
WSFL |
BPEL4WS |
DAMLS |
|
Exception Handling This functionality allows handling of error conditions during the
execution of the Business Process Steps |
No |
Yes <exception> |
Yes <exception> onMessage, onTimeout, onFault |
Yes <exception> onMessage, onTimeout, onFault |
No |
<throw> |
Yes |
|
Fault Triggers This functionality allows to raise a fault condition during the
execution of the Business Process |
No |
No |
Yes <fault> |
Yes <fault> |
No The lifecycle operations have a means to report fault conditions
using <fault> |
<FaultHandlers> |
NO |
|
Compensation Behaviour This functionality enables compensate the affects of transaction
once it has as successfully executed. |
No |
Yes <compensation> |
Yes <compensation> /<compensate> |
Yes <compensation>/<compensate> |
No |
<compensationHandler> |
Only --> Indirectly |
|
Basic Functionality |
WSCL |
XLANG |
WSCI |
BPML |
WSFL |
BPEL4WS |
DAMLS |
|
Properties This functionality allows to maintain properties within context of
execution of a Business Process |
No |
Yes <PropertyDef> |
|
<property> |
No Partial functionality by FlowSource \ FlowSink |
Not defined as properties but we have Data Containers to hold data for
the process manipulation. <containers> <property> |
Yes |
|
Correlation This functionality allows correlation between the messages
exchanged within the execution of a business process |
No |
Yes <correlation> |
Yes <correlation> /<correlate> |
No |
No |
<correlations> <coorelation> |
NO, Can be enabled indirectly |
|
Life Cyle Operations This functionality allows monitor and manage the execution of the
Business Process |
No |
No |
No |
Yes XPath Functions |
Yes <Operation> under <flowmodel> |
<wait>, <terminate>, <receive> IN FUTURE-> suspend,resume,Query, |
Yes Monitor, control |
|
Basic Functionality |
WSCL |
XLANG |
WSCI |
BPML |
WSFL |
BPEL4WS |
DAMLS |
|
Dynamic Functionality |
|
|
|
|
|
|
|
|
Mapping of Data sets This functionality enables mapping of the message construct
exchanged between the services operations. |
No |
No |
No |
No |
Yes <map> |
|
NO |
|
Multiple Service Interactions This functionality enables the definition of the interconnection between the different Services (operations within as well ) |
No But can be achieved Indirectly (statically defined) |
No <Contract> provides static definition of the interconnection between services |
Yes <connector> |
Yes (via WSCI) <connect> |
Yes <plugLink> |
Service link <serviceLinkType> <partners> |
Yes |
|
Service Lookup This functionality dynamically
lookup to identify the next activity within the execution of the
Business Process |
No |
No |
Yes <locate> / <locator> |
Yes (Via WSCI) <locator> |
Yes Both static & dynamic using <locator> |
|
No But can be done indirectly using the external systems. |
|
Property Settings This functionality allows alter the
values of the property in context of the execution of the Business process |
No |
No |
Yes Selector - XPATH |
Yes <Assign> |
No |
Yes <assign>, <copy> |
Not directly.. |
In order to summarise about the Web Services workflow technologies and proposals we have today, they provide a means to specify a process which provides the directives of execution of specific steps in the workflows and correspondingly provide an execution environment over which the process steps can be executed in an automised manner. All of the current proposals take into considerations that the process is predetermined with the number of steps and inclusion of business partners.
There is no one standard that can be used for providing such a workflow-based solution in Web Services today. We will see such standards very soon as a result of research efforts at W3C, OASIS and BPMI standards body.
Web Services began with an hype to provide dynamism in service composition, deployment and
ultimately the service consumption. This was not realized quickly and hence WS had a backlash from the industry initially and these technologies have continued to take up a pragmatic approach to realize Web Services and to highlight the benefits of Web Services.
The initial Goal of Web
Services was to define “A Piece of software which will automatically discover, access, integrate
and invoke new services from unknown companies dynamically without the need for
human intervention”. The basic assumption of such a goal is that the Web Services are widely
deployed in multiple domains and are published so as to be discoverable by its
clients. It basically requires several
key technologies to be in place and maturity in the technology and the
corresponding infrastructure, which will help visualize such as Web Services
goal.
The dynamism in Workflows still requires several things to be in place such as the business directives of a specific business process should be possible to be specified by technologies such as Workflows using BPEL, WSCI. The runtime behavior of such choreographies or workflows should be able to be specified, controlled and managed by business organization. Once these basic technologies are in place then there will be requirements to introduce dynamism into such workflow based technologies. The Dynamism in workflow technologies means that the business process has the ability to dynamically search for services (business partners) over a registry or discovery engine. Interpret the services and selectively choose specific services as being a part of the composition to turn into a dynamic Web Services Compositions.
In order to make such dynamism possible, the Web Services and the workflow technologies should still address several aspects such as:
·
Ability to
specify the required constraints to achieve the business directives in order to
fulfill the objectives of a specific business
·
Ability to
Locate the right Web Services to be part of the composition or workflows
·
Ability to
inference the Services interfaces and automatically consume it
·
Should be able
to match the located services to the constraint for consuming such clients in a
unique manner without any ambiguity.
·
Provide the
service definition in an unambiguous and machine inter-pretable manner
·
Ability to
interupt the decision of such dynamic services composition
·
Provide a
means to semi-automatically verify the dynamic composition of the workflow, in
the cases of indecisive matches to the requirements (Fuzzy)
·
Ability to utilize
a common or inferencable vocabulary to specify the service interfaces and the
execution of such services.
The Figure
13 describes an example as a use case for dynamism in
Web Services composition. Let us consider the very same example as depicted in
the Figure 11, now in the case of dynamism the (developer & the
end human user) user is able to utilise smarter Web Services. Dynamism means
that the service developer will be able to specify specific conditions to
select a particular alternative business partner based on the user’s choice
dynamically. For example: Supposing the end user has specified that she would
like to travel from point A to Point B with a specific budget and requirements.
The Service composition can choose from a set of travel agents (considering that
they have WSI’s and have published them over the Service registry which is
discoverable) such as Kiltroy, Kodin-Matka Toimisto or then India tourism,
which best matches the end user’s budget and specified requirements. In this
case there is a clear need to dynamically find a right service and
correspondingly infer the available interfaces and invoke them.

Figure 13: Dynamic Web Service Composition
The Current Web Services Composition standards do not provide a means of dynamism in a mature and complete manner as yet. Several other aspects need to be addressed before such dynamic service composition and consumption can occur. Agent based systems tried to address this earlier but have shown little success so far. There are developments fortunately into this direction but are a long way ahead to realize them. The Semantic Web and the DAML-S are looking into represent information about the resources in a machine interpretable and inferencable manner. These are the first steps into the direction which will enable dynamism occur in software based systems. The realization of such standards and technology are 5-10 years away. This is an excellent research opportunities to proceed this further
The
"Semantic Web" is a metadata-based infrastructure for reasoning on
the Web. Metadata is a
set of statements, where
Statements can
be modeled (mathematically) with resources (an element, URI or a literal) and
properties (relation between two resources). Statements are
"triplets" of two resources bound by a property. Statements are generally modeled using RDF
[]. The set of statements describing a specific domain of knowledge can be
considered as Ontologies in other terms Ontology "Defines the terms and
relationships used to describe and represent an area of knowledge".

Figure
14: Semantic
Web - An example
The Figure
14 gives an example of the Semantic Web. It helps us to
define the Metadata about the resources over the web in an interpretable and
inferencable manner utilising standardised and referable vocabulary. This will
allow us to develop software systems, which can with in built knowledge be able
to dynamically decide to handle the resources in specific determined manner.
The example depicted in the Figure 14 provides metadata about a presentations that it was
presented by Suresh Chande, whose details can be fetched at the URL http://cs.helsinki.fi/persons/sureshchande
and that this presentation was a session whose details can be got from the URL:
http://cs.helsinki.fi/2003/workflows/may/session.
The presentation was held for the duration of 120 Minutes. This metadata is
specified by statements using tuples, which utilises the vocabularies to
describe the resources referenced by URLs.
Semantic Web visions a web of
resources will be developed utilising these statements and that they can be easily
interpreted by the user agents and accordingly provide better accessibility to
end user of the Semantic Web. The DAML-S has gone forward to apply these
concepts specifically to Services and in particular to Web Services and this
will introduce the dynamism in Services discovery, composition and invocation.
The next section will introduce the DAMLS
Services
hosted over the Semantic Web should enable users to automatically locate,
select, employ, compose and monitor them automatically. This requires that the
user agents be capable to interpret the descriptions exposed by such services
in order to automise the various interactions employed with such services.
DAML-S provides a framework using which these services can be described and
published. The framework provides the ontological structuring mechanisms. DAMLS
consists of three parts, namely:

Figure 15: Basic elements DAMLS
The Figure
15 provides overview of the different parts of the
DAML-S. A Resource utilising DAMLS to describe itself provides the description
of the services using three main parts a Profile, which defines what the
service does, this description is basically utilised for the purpose of
advertising and discovering the right services required by a client. The
Profile basically provides concise description for the
purpose of a registry/discovery. Once a Service has been selected Services
Model is utilized to carry out further interpretation and the profile if no
longer necessary. The Profile describes the Services as a function of three
different elements of Information:
·
Provider Information
·
Functional Description
·
Service Features
Secondly the resources contain
a Model, which actually defines how the service operates and functions. The
Model contains mainly of two parts, namely:
Process Ontology: This describes the services in terms of the Input, Output, Pre-conditions and Effects, Sub processes (planning, composition and service interoperation) and
Process being Atomic, Simple or Composite in nature
Process Control Ontology: Enables the monitoring of the Service Execution, such as: Mapping rules of Data from input state properties to output state properties and Execution state of the Atomic and Composite processes
.
Finally the Service grounding
provides information on how to access such a service. The Service Grounding
specifies on exactly how a specific services is accessed in the terms of:
·
Message
Formats
·
Serialization
·
Transport and
·
Addressing
The grounding maps the abstract
description of the service (Profile & model) to the concrete Services
Instance, which includes inputs and outputs of the atomic processes. Grounding
depicts how the input, output messages of the atomic processes are concretely
bound to a specific transmittable message formats. WSDL1.1 is utilized as
concrete groundings to the abstract messages defined in the Service Model. The
DAML+Oil class typing mechanism benefits the developer to choose instead of the
XML Schema. The DAML-s Can be grounded to work with WSDL and SOAP over Http as
well.
The main scope of DAML-S is to address the needs of Simple Web Services and Complex ones, which could be composition of several simpler services (Choreography)
. DAMLS aims at the automization of the following core
activities:
·
Service
Discovery
·
Service Invocation
·
Web Service
Composition
·
Web Services
execution monitoring
Service Discovery: DAMLS
provides a definitive
service description structures, this description is published on the service's
website or in a middle party hosted registries. The descriptions are based on
specific ontological representations, which will enable Search features of a
registry based on requested constraints and provide declarative advertisements
of service properties and capabilities, used for automative service discovery
Service Invocation: DAML-S provides a means to publish
declarative APIs of services. These APIs are interpretable by a software agent
as the description is based on standard and interpretable vocabulary the
software agent can understand. This will result for an Agent to interpret and
automatically handle:
·
Input that
should be delivered to a service
·
The
corresponding Output that will be generated
·
How to invoke
such an interface automatically
Service Composition: The objectives of this in DAML-S is to
enabled a means of selectively choosing the Web Services, form them into a
composition and orderly invoke these services to achieve the goals of the
business or system objectives. DAML-s enables this by providing through its
language constructs to:
·
Selectively
choose a web service
·
Compose such
choices
Invoke the composition: This is
Enabled by declarative specifications
providing Pre-requisites of using a service and the Consequence of using a
service
Execution Monitoring: Execution of Services over the Web will eventually require to be monitored for its status and changing states affect the clients accordingly. This sort of requirements exists in both the cases if a service is a simple one or is made-up of a composition of simpler or other compositions. The various requirements of their monitoring are to identify the Current Status, Affect the status, Cancel the execution of such execution and Update the properties of such execution (This part of the DAML-s has not been specified and we can expect these efforts to be continued under the Web Ontology efforts in the W3C's activity (Speculation))
DAMLS and Semantic Web provide
sufficient information on top of the existing Web Services to dynamically utilise
a service provided by a resource by an intelligent service client able to
understand a specific vocabulary using which the resources are described. These activities under the W3C and DARPA
leads the Web Services towards the Semantic Web Services directions, which are
smarter and intelligent then Web Services are today.
We discussed in this article
about the basics of Workflow technologies and how they can be applied to Web
Services after having a brief introduction to Web Services and identifying the
need for workflow technologies in Web Services area. We briefly made a
functional comparison of the Web Services based workflow technologies to
understand the current standards and how they relate to each other. We later
discussed about the need for dynamism in Workflow technologies and then tried
to understand the requirements to enable dynamism in Web Services workflow
technologies.
We looked into specifically
Semantic Web and DAML-S and how they provide a means to enable dynamism in
Workflows.
We identified based on the
direction of the DAML-S developments that once they are fully mature and
specified that DAML-S
promises that the users and User agents will be capable to automatically
discover, invoke, compose, and monitor the web resources offering services,
under certain specified constraints.
Currently DAML-S is closest approach to
enable dynamism into web services workflows. This area of Workflows is an
excellent opportunity for research activities. Software Agents have tried to
achieve this earlier but displayed a very little success in a limited and
closed environments. Semantic Web has taken a bold step into this direction,
which the industry will very soon try to follow. There no standards available
today that is mature in this area. We will
see at least 2-3 year before there is a mature and widely deployed basic Web
Services Workflow \ Choreography Orchestration technology. The nature of
dynamism is still ahead of this and currently it seems so that a further 5-10
years are required to see dynamism in Web Services Workflows
1.
"WSCI Analysis from the BPSS developer
point of view", by Jean jacques Dubray,
http://www.ebpml.org/wsci.htm
2.
"eXtensible Markup Language (XML)",
http://www.w3.org/XML/
"XML Schema Part 0 Primer,1 Structures and Part 2 Data types",
4.
http://www.w3.org/XML/Schema
5.
"Web Services Description Langauge
(WSDL)", Working Draft 9th
July 2002, http://www.w3.org/TR/wsdl12/
6.
"Business process Standards for Web
Services", By David O' Riordan, 10
April 2002, Web Services Architect, http://www.webservicesarchitect.com/content/articles/BPSFWSBDO.pdf
7.
"Workflow - An Introduction", Roben
Allen , Open Image Systems Inc, Unitedt Kingdom, Chair , WfMC External
Relations Committee, http://www.wfmc.org/standards/docs/Workflow_An_Introduction.pdf
8.
"The
Workflow Reference Model", David HollingsWorth, 19 Jan 1995, http://www.wfmc.org/standards/docs/tc003v11.pdf
9.
Depency-Spheres
- A Global Transactions Context for Distributed Objects and Messages, Submitted
to the OMG's EDOC Conference, http://www.research.ibm.com/AEM/documents/dspheres_edoc2001.pdf
10. BPMI.org, presss release about BPML 1.0 http://www.bpmi.org/PR.esp?id=196
11. XML Pipeline a W3C Technical Note 28
February 2002, Submitted by Sun Microsystems,
http://www.w3.org/TR/xml-pipeline/
12. "Java Process Component a JSR at
java.sun.com", JCP-159, http://www.jcp.org/jsr/detail/159.jsp
13. "Enterprise Distributed Object
Computing", A Good EDOC - Presentation by Data Access Technologies - http://www.enterprise-component.com/docs/DatEdocPres.ppt
14. "MDA for Enterprise Collaboration & Integration- Enterprise
Collaboration Architecture",
By Cory Casanave http://www.omg.org/interop/presentations/2002/cory.pdf
15. "Web Services Enterprise
Collaboration (WSEC) A Request for Proposal", By OMG, 6th June 2002, http://cgi.omg.org/docs/mars/02-06-06.pdf
16. "Enterprise Distributed Object
Computing", http://www.omg.org, http://www.enterprise-component.com/products/edoc_rfp.htm
17. "The Joint UML for EDOC
Submission" a Good overview of the UML4EDOC http://www.enterprise-component.com/docs/Full%20EDOC%20Presentation%20v0.2.ppt
18. "Implementing Business Processes
with the Web Services Architecture", A Tutorial presentation by James
Snell (Emerging Technologies, IBM), 4th September EDOC-2001 Conference, Comment:
A Good description of the using WSFL for
defining a Business process http://edoc.doc.ic.ac.uk/pdf/james_snell.pdf
19. "Business Transaction Protocol, Primer-
An oasis Committee supporting Document - BTP 1.0 ", 3 June 2002, By
OASIS, http://www.oasis-open.org/committees/business-transactions/documents/primer/BTP_Primer_v1.0.20020605.pdf
http://www.oasis-open.org/committees/business-transactions/
20. "Business Transaction Protocol
(BTP) 1.0", 3 June 2002, By OASIS, http://www.oasis-open.org/committees/business-transactions/documents/specification/2002-06-03.BTP_cttee_spec_1.0.pdf
21. "WS-Coordination", 9 August,
Proposed by Microsoft, BEA and IBM, http://dev2dev.bea.com/techtrack/ws-coordination.jsp
22. "WS-Transaction", 9 August,
Proposed by Microsoft, BEA and IBM, http://dev2dev.bea.com/techtrack/ws-transaction.jsp
23. "Business Process Execution Language
for Web Services v1.1",5 May 2003, Proposed by Microsoft, BEA, Seibel
Systems, SAP, and IBM, http://dev2dev.bea.com/techtrack/BPEL4WS.jsp
24. "BPEL, WS-Coordination, WS
Transaction" Press and news releases http://news.com.com/2100-1001-949049.html?tag=cd_mh http://www.webservices.org/index.php/article/articleview/580/1/1/ http://www.nwfusion.com/news/2002/0808web.html http://www.microsoft.com/presspass/press/2002/aug02/08-09BEAPR.asp
25. DAML-S : Web Services Descriptions for the
Semantic Web http://www.daml.org/services/daml-s/2001/10/daml-s.pdf, and http://www.daml.org/services/daml-s/0.9/daml-s.pdf
26. DAML-S : Web Services Descriptions for the
Semantic Web http://www.daml.org/services/ISWC2002-DAMLS.pdf co-authored by Ora
Lassila
27. "Business process Modeling
Language (BPML)" , By BPMI.org, http://www.bpmi.org/
28. "Web Services for Business Process
Design- XLANG " , By Microsoft, http://www.gotdotnet.com/team/xml_wsspecs/xlang-c/default.htm
29. "Business Process Specification
Schema (BPSS)", by ebXML, http://www.ebxml.org/specs/ebBPSS.pdf
30. "Web Services Choreography Interfaces
(WSCI) 1.0", proposed Specification by BEA Systems, Intalio, SAP and
Sun Microsystems, June2002. http://wwws.sun.com/software/xml/developers/wsci/ and also submitted as a W3C note 8 August
2002, http://www.w3.org/TR/wsci/
31. "Web Services Conversation
Language (WSCL) 1.0", A W3C Note - submitted by Hewlett Packard, 14
March 2002, http://www.w3.org/TR/wscl10/
32. "Web Services Flow Language 1.0
(WSFL)", By Prof. Dr. Frank Laymann, May2001, IBM Software Group, http://www-3.ibm.com/software/solutions/webservices/pdf/WSFL.pdf.
33. "Workflow Management Coalition
(WfMC) ", http://wfmc.org/
34. World
Wide Web Consortium, http://w3.org
35. A Presentation by Ivan Herman at the W3C
Finland Seminar http://www.w3.org/2003/Talks/0506-Helsinki-IH/Overview.html