Table Of ContentA Service Creation Environment Based on End to End
Composition of Web Services
Vikas Agarwal, Koustuv Dasgupta, Neeran Karnik, Arun Kumar
Ashish Kundu, Sumit Mittal and Biplav Srivastava
favikas,kdasgupta,kneeran,kkarun,kashish,sumittal,sbiplavg@in.ibm.com
IBMIndiaResearchLaboratory
Block1,IITcampus,HauzKhas
NewDelhi110016,India
ABSTRACT Keywords
The demand for quickly delivering new applications is Semantic Web,Planning, Web Services Composition
increasinglybecomingabusinessimperativetoday. Applica-
tiondevelopmentisoftendoneinanadhocmanner,without
1. INTRODUCTION
standard frameworks or libraries, thus resulting in poor
reuse of software assets. Web services have received much The demand for quickly delivering new applications is
interest in industry due to their potential in facilitating increasingly becoming a business imperative today. For
seamless business-to-businessorenterpriseapplicationinte- example, given the intense competition in the telecom
gration. Awebservicescompositiontoolcanhelpautomate sector, mobile telephony service providers need to con-
the process, from creating business process functionality, tinually develop compelling applications to attract and
to developing executable work(cid:13)ows, to deploying them retain end-users, with quick time-to-market. Often, if a
on an execution environment. However, we (cid:12)nd that competitor introduces a new service, the service provider
the main approaches taken thus far to standardize and must o(cid:11)er a similar or better service within days/weeks,
compose web services are piecemeal and insu(cid:14)cient. The to avoid losing customers. Also, a service provider can
business world has adopted a (distributed) programming attract enterprise customers by o(cid:11)ering custom-developed
approach in which web service instances are described value-added services that leverage its telecom and IT in-
using WSDL, composed into (cid:13)ows with a language like frastructure. Enterprise customers typically o(cid:11)er signi(cid:12)-
BPEL and invoked with the SOAP protocol. Academia cantly higher margins than consumers, and are thus more
has propounded the AI approach of formally representing attractive. Service providers therefore need tools and
web service capabilities in ontologies, and reasoning about standards-based runtime platforms to quickly develop and
theircompositionusinggoal-orientedinferencingtechniques deploy interesting applications for their clients. This would
from planning. We present the (cid:12)rst integrated work in assist in their transition towards \on demand", responsive
composing web services end to end from speci(cid:12)cation to businesses.
deployment by synergistically combining the strengths of Muchofthisservice/applicationdevelopmentiscurrently
the above approaches. We describe a prototype service done in an ad hoc manner, without standard frameworks
creation environment along with a use-case scenario, and or libraries, thus resulting in poor reuse of software assets.
demonstrate how it can signi(cid:12)cantly speed up the time-to- When a new service is needed, the desired capability is
market for new services. informally speci(cid:12)ed. An application developer must then
createthiscapabilityusingcomponentservicesavailablein-
CategoriesandSubjectDescriptors house or from known vendors. This process is essentially
manual. For example, if a mobile service provider wishes
H.3.5 [Information Systems]: Information Storage and to o(cid:11)er a taxi-request service to its users, the developer
Retrieval|Web-based services; I.2.8 [Arti(cid:12)cial Intelli- must pick a third-party taxi service (with an advertised
gence]: Problem Solving, Control Methods, and Search| networkinterface)apartfromin-houseserviceslikelocation-
Planexecution,formation,andgeneration;D.2.m[Software tracking, accounting, etc. and design a work(cid:13)ow that
Engineering]: Miscellaneous delivers the required functionality. The dynamic nature
of the environment impacts the development process as
GeneralTerms well. Forexample, newtaxi services maybecome available,
o(cid:11)ering better and/or cheaper services; physical changes in
Design, Languages
the network or environment may necessitate a redesign of
Copyright is held by the International World Wide Web Conference the (cid:13)ow, etc.
Committee(IW3C2). Distributionofthesepapersislimitedtoclassroom
Web services have received much interest in industry
use,andpersonalusebyothers.
due to their potential in facilitating seamless business-
WWW2005,May10-14,2005,Chiba,Japan.
ACM1-59593-046-9/05/0005. to-business or enterprise application integration [22, 27].
Web services o(cid:11)er standardized interface description, dis- describe our approach (Sec. 3) followed by details on its
covery and messaging mechanisms. Also, the programming main aspects { logical composition (Sec. 4) and physical
tools and runtime environments for web services have now composition (Sec. 5). Section 6 illustrates our solution for
matured. A component-oriented software development the use-case scenario. In Sec. 7, we provide a summary of
approach where each software is wrapped as a web ser- related work. Finally we conclude with some directions for
vice would o(cid:11)er substantial bene(cid:12)ts in the mobile service future work.
provider’s scenario. Mobile user applications often rely on
several,relativelysimplebuildingblocks{userpro(cid:12)lelook- 2. AMOTIVATINGEXAMPLE
ups, address books, location-tracking services, accounting
Service providers, like telcos, are increasingly targeting
and billing services, etc. Many of these building blocks
businesses as customers because of the higher margins
are already in place, but they are not easy to reuse and
and longer-term relationships. Suppose a telco wants
integrate into new applications because they are not built
to enable an enterprise customer to use its telecom and
using standardized frameworks or component models. This
IT infrastructure by creating and deploying services that
leads to high development costs, and substantial time-to-
automatethecustomer’sbusinessprocesses. Asanexample
marketfornewservices. Thiscouldbealleviatedbybuilding
the telco is attempting to automate a typical Helpline (or
applications using the service-oriented architecture (SOA)
call center)for a washing machine manufacturer.
paradigm, usingwebservicesastheunderlyingabstraction.
Acustomercallsintoreportaproblemwithherwashing
We (cid:12)nd that two di(cid:11)erent approaches have been taken
machine. This problem needs to be assigned to an agent
to standardize and compose web services. The business
for resolution. If the problem is such that it could be
world hasadopteda distributedsystemsapproachinwhich
solvedoverthe phone,adesk-basedagentatthecall center
webserviceinstancesaredescribedusingWSDL,composed
into (cid:13)ows with a language like BPEL1, and invoked with will be assigned. Otherwise, we need to (cid:12)nd an agent in
the (cid:12)eld who can visit the customer and (cid:12)x the washing
the SOAP protocol. Academia has propounded the AI
machine. The service provider would like to create a set of
approachofformallyrepresentingwebservicecapabilitiesin
webservicesthatautomatepartsofthisprocesstowhatever
ontologies,andreasoningabouttheirfunctionalcomposition
extent possible, and keep aggregating these components to
using goal-oriented inferencing techniques from planning
createhigher-levelcompositeservices. Oncesuchasoftware
[16]. These approaches by themselves are piecemeal, and
infrastructure is developed, the telco could o(cid:11)er it as a
insu(cid:14)cient. Theformerhasfocusedontheexecutionaspects
servicetovarious enterprisecustomers(appliancemanufac-
of composite web services, without much consideration for
turers, software vendors, etc), with minor customization.
requirements capture and the development process. The
Figure1summarizesthework(cid:13)owinthisHelplinescenario.
latter approach has stressed on the feasibility of service
composition based on semantic descriptions of service ca-
User Input
pabilities, butits outputcannotbe directlyhandedo(cid:11) toa
Problem
runtime environmentfor deployment. Reporting
In this paper, we demonstrate how web services compo-
Problem Ticket
sition can be leveraged for business process integration, by
Problem
synergistically combining the strengths of both the above Classification
approaches. The main contributions are: Expertise Level,
Expert Location
Expert
(cid:15) To the best of our knowledge, we present the (cid:12)rst Lookup
Problem Ticket,
end to end web services composition methodology List of Field Agents
that, givena formally speci(cid:12)ed requirementfor a new LAocgaetnito nS−elbeacstoedr PDreosbkl eAmg eTnitcket,
service, stitches together semantically-annotated web Problem Ticket,
Field Agent
service components in a BPEL (cid:13)ow that delivers the
requiredfunction. Message Call Set Up
Delivery
(cid:15) Weproposeaprincipledtwo-stagewebservicescompo- On Site Help Desk
Problem Ticket, Problem Ticket,
sition approach leveraging the di(cid:11)erentiation between Problem Resolution Status Problem Resolution Status
webservicetypesandinstances. Thishelpsinhandling
di(cid:11)erentgoals,di(cid:11)erentdata,di(cid:11)erentratesofchange Figure 1: Helpline Service.
of dataateachstage, anddi(cid:11)erentmeanstooptimize
them. Itallows us to achievescalability. Hereisasamplingofthecomponentservicesthatmaybe
available in the service provider’s infrastructure: Location
(cid:15) We describe an end to end working prototype: (a) tracking, SMS, Call Setup, Agent Expertise data, Problem
Ontology matching, composition at type level with Classi(cid:12)cation,AgentSelection. Someoftheseprovidetelco-
service matchmaking (b) Composition at physical speci(cid:12)c functions such as delivering SMS text messages,
level with instance selection (c) Deployment onto a location tracking of mobile phones, etc. Others are speci(cid:12)c
decentralized work(cid:13)ow orchestration infrastructure. to the application domain, e.g. problem classi(cid:12)cation.
A developer needs to create a set of higher-level services
Therestof thispaperisorganizedasfollows. Inthenext
using these components. Consider for example a location-
section, we describe a business process integration scenario
based agent selector service (Fig. 2). Given a customer’s
andmotivatetheroleofwebservicescomposition. Wethen
location and a list of agents out in the (cid:12)eld, this service
1http://www.ibm.com/developerworks/webservices/library/ needstoselect one of the agents, basedonproximitytothe
ws-bpel/ customer’sresidence. Thisselectedagentwillthenbeasked
PLriosbtl eomf TFiicekledt ,Agents ALogceantti oSne−lebcatoserd PFrioebllde mA gTeinctket, SSppeeSScceeiiffrriivvcciiaacctteeiioonn
SSeerrvviiccee CCrreeaattiioonn
Problem Ticket (Customer Location) EEnnvviirroonnmmeenntt DDoommaaiinn
List of Agent Locations, LLooggiiccaall OOnnttoollooggyy
List of Agent Mobile Nos List of Agent IDs
Location Distance Optimal AgentNearest Agent CCoommppoosseerr
Expert DB Tracker Calculator Selector
AAbbssttrraacctt
List of Agent IDs List of Agent Locations WWoorrkkffllooww ((PPllaann))
PPhhyyssiiccaall SSeerrvviiccee
Figure 2: Location-based Agent Selector Service. CCoommppoosseerr RReeggiissttrryy
DDeeppllooyyaabbllee
to visit the customer and (cid:12)x her washing machine. The
WWoorrkkffllooww
bottomhalfofFig.2showshowthiscanbedonebycreating
a (cid:13)ow linking together several component services, feeding EExxeeccuuttiioonn EEnnvviirroonnmmeenntt
them the right inputs, etc. Doing this manually takes
time (and the developer has to know which components
exist, and how to connect them up). Instead, we provide Figure 3: System Overview.
atoolthatdiscoverstherelevantservicesfromamongstthe
available ones, and creates the control (cid:13)ow between them.
composition process rightfrom speci(cid:12)cation of the business
Theavailableservicesaresemanticallyannotated,providing
process, through creation of desired functionality using
meta-informationabouttheirfunctionalityinthecontextof
planning techniques, through generation of a deployable
a domain model. The developer only needs to (formally)
work(cid:13)ow by selection and binding of appropriate service
specify the requirements of the service to be created. The
instances, to (cid:12)nally deploying and running the composite
tool can then generate a (cid:13)ow, and with some developer
service. This integrated solution achieves the best of
inputs,deploythe(cid:13)owontoaruntimeinfrastructure. This
both worlds and provides scalability to the composition
shouldleadtoquickerservicecreation,andthusfastertime-
process. We have built a service creation environment that
to-market for new services.
realizes this approach in terms of the following phases of
Further,thenewlycreatedLocation-basedAgentSelector
composition:
(LAS) service itself becomes available as a component. It
cannowbereusedincreatingother(cid:13)ows,suchastheonein 1. Logical Composition: This phase provides func-
Fig.1. Eachnewservicethusenrichestheinfrastructureand tional composition of service types to create new
makesthedeveloper’s taskeasier infuture. Wewill use the functionality thatis currentlynot available.
LAS service as a running example to explain the phases in
the composition process. Our service creation environment 2. Physical Composition: This phase enables the
however includes a domain model and ontology for the selectionofcomponentserviceinstancesbasedonnon-
entire Helpline Automation scenario, and we demonstrate functional (e.g. quality of service) requirements, that
theautomatedcompositionofthecomplete(cid:13)owofFig.1in wouldthenbeboundtogetherfordeployingthenewly
Sec. 6. created composite service.
This basic approach to automating the process of service
3. SYSTEMOVERVIEW
creation is illustrated in Fig. 3. A Service Registry con-
Our service creation methodology, based on web service tains information about services available in-house as well
composition techniques,consists of the following steps: as with participating 3rd-party providers. The capabilities
of each available service type are described formally, using
1. Service Representation: Representing the available domain-speci(cid:12)c terminology that is de(cid:12)ned in a Domain
services andtheir capabilities. Ontology. When a new service needs to be created, the
developerprovidesaServiceSpeci(cid:12)cationtotheLogical
2. Requirements Speci(cid:12)cation: Specifying the desired
Composer module. Driven by the speci(cid:12)ed requirements,
functionality of a new service.
the Logical Composer usesgenerative planning-based auto-
mated reasoning techniques to create a composition of the
3. Composition: Constructingacompositionofavailable
available service types. Its goal is to explore qualitatively
services thatprovides the desired functionality.
di(cid:11)erent choices and produce an abstract work(cid:13)ow, i.e.
4. Composite Service Representation: Representing the a plan (assuming a feasible plan exists) that meets the
new composite service and its capabilities so that speci(cid:12)ed requirements.
it can be programmatically deployed, discovered and Inordertoturntheplanintoaconcretework(cid:13)owthatcan
invoked. bedeployedandexecuted,speci(cid:12)cinstancesmustbechosen
for the component services in the plan. The Physical
In previous work a similar process has been applied at Composer uses scheduling and compilation techniques in
di(cid:11)erent levels of abstraction, none of which individually selecting the best web service instances to produce an
yields a practical solution. Our system takes an end to executable work(cid:13)ow. The focus is now on quantitatively
endviewthatsynergisticallycombinestheAIapproachand exploring the available web service instances for work(cid:13)ow
the distributed programming approach currently adopted execution. It queries the registry for deployed web service
by academia and the industry respectively. It drives the instances, to accomplish thistask.
The work(cid:13)ow generated by the service creation environ- stage, the composition process typically involves reasoning
ment must thenbe deployedonto a runtime infrastructure, procedures. To enable those, services need to be described
and executed in an e(cid:14)cient and scalable manner. This in a high-level and abstract manner [12]. Therefore at this
is especially important in environments like that of a stage it su(cid:14)ces to describe the capabilities of the types
mobile service provider, where the number of end-users of web services, using semantic annotations. The second
is likely to be very high. The state of the art is to level of description becomes important in the physical
execute the work(cid:13)ow using a work(cid:13)ow engine such as compositionstagewhereindividualrunningservicesneedto
WebSphereProcessChoreographer2,withdata(cid:13)owingback beidenti(cid:12)edfordeployingthework(cid:13)ow. Oncethelanguage
and forth from this engine to the component web services. is known, the basic terms used in the language have to be
Our Execution Environment instead orchestrates the drawn from a formal domain model. This is required to
work(cid:13)ow in a decentralized fashion, with partitions of the allow machine based interpretation while at the same time
(cid:13)ow executing concurrently, in network-proximity with the preventingambiguities andinteroperability problems.
component services they invoke. These (cid:13)ow partitions are The DARPA Agent Markup Language (DAML, now
generatedautomaticallybyaDecentralizertool,usingstatic called OWL)4 is the result of an ongoing e(cid:11)ort to de(cid:12)ne
analysis of the input BPEL (cid:13)ow. The communication a language that allows creation of domain models or con-
amongst these partitions is designed to minimize network cept ontologies. We use it to create the domain model
usage, while retaining the original (cid:13)ow semantics. This, in using which services are described. The OWL-S markup
conjunction with the added concurrency, results in better language [19] (previously known as DAML-S) is also being
scalability and performance. For more details on our de(cid:12)ned as a part of the same e(cid:11)ort, for facilitating the
ExecutionEnvironmentpleasereferto[5,18]. Inthispaper, creation of web service ontologies. It speci(cid:12)es an upper
wewillfocusontheLogicalandPhysicalcompositionstages. ontology of services that de(cid:12)nes the structure of a service
description. Itde(cid:12)nesthataservicepresentsaServicePro(cid:12)le
4. LOGICALCOMPOSITION (i.e. what the service does), is describedBy a ServiceModel
(i.e. how it works) and supports a ServiceGrounding (i.e.
Figure 4 depicts our system for implementing the four how to access it).
stepsofcompositionduringLogicalComposition. Available Currently, OWL-S is designed to describe a single web
service types and their capabilities are represented in a service instance [19]. This is easily observed since the
ServiceCapabilitiesRegistry. AnOntologycapturesthedo- ServiceModel and ServiceGrounding aspects are speci(cid:12)c to
mainmodel. WeuseIBM’sSNOBASE3 asthemanagement an instance of a web service. However, we believe that the
systemforourontologyandtheservicecapabilitiesregistry. type of a web service needs to be described independent
Speci(cid:12)cation of the desired service is suppliedto a Logical of individual web service instances. This helps in working
Composer module that (cid:12)rst gets it veri(cid:12)ed for syntactic with large collections of web services { categorizing them,
correctness using a Validator module. The Matchmaker supportingmultipleviews, etc.[12]. Inourpresentsolution
moduleallowsqueryingtheserviceregistryforavailableser- prototype, we use the ServicePro(cid:12)le model of OWL-S to
vices. Based upon the validated speci(cid:12)cation, Planner4J representwebservicetypede(cid:12)nitions. Thetaskofproviding
retrievesthesetofcandidateservicesusingthematchmaker. descriptions for speci(cid:12)c web service instances is deferred to
The Filter module helps in pruning the set of candidate the physical composition phase.
servicesbeforePlanner4Jusesplanningtechniquestocreate We have also developed a proposal to separate the
thecomposite service. Wenextdiscusstheissues thatarise representation of webservice typede(cid:12)nitionsfrom instance
in each stepof logical composition. de(cid:12)nitionsbyenhancingtheOWL-Supperontologytohave
a ServiceType class hierarchy in addition to the Service
Service Domain SNOBASE hierarchy, as described in detail in [11]. Similar approach
Information
Specs Service of separating type de(cid:12)nitions from instance de(cid:12)nitions has
Validator Capabilities beenusedsuccessfullyindatamodelsfordistributedsystems
Ontology Registry management [17, 1]. In future, we plan to incorporate the
Logical
Validated proposal and thereby use the same modeling language for
Composer Specs
Available representing boththe service typesandinstances.
Domain Service
Information Types
Abstract Planner4J Filter Matchmaker 4.2 Requirements Specification
Workflow
In order to create a new service, the developer should
Candidate Candidate
Component Component describetherequiredfunctionalityaswellasnon-functional
Services Services
constraintssuchasthroughput,responsetime,costetc. We
Figure 4: Logical Composition. againuseOWL-SforrepresentingtherequirementsinIOPE
terms,becausetheresultofthecompositionisalsoaservice.
The developer is presented with a graphical user interface
4.1 Representation ofService Types using which she can specify these requirements. The tool
maps these to OWL-Sfor internalprocessing.
Toenableautomaticdiscoveryandcompositionofdesired
Inkeepingwithourphilosophyofqualitativelycomposing
functionality, we need a language to describe the available
theplanbeforefocusingonthequantitativeoptimizationis-
webservices. Thiscantakeplaceattwolevels{webservice
sues,thetoolprocessestherequirementsincrementally. The
typesandwebserviceinstances. Atthelogical composition
preconditions and e(cid:11)ects are logical terms and sentences,
2http://www.software.ibm.com/wsdd/zones/was/wpc.html
3http://www.alphaworks.ibm.com/tech/snobase 4http://www.daml.org
theinitialstate(e.g. whetherAgentneedstobedesk-
basedorinthe(cid:12)eld)buttheycanbefoundatruntime
using sensing actions. Plans of contingent planning
problems have branches corresponding to di(cid:11)erent
outcomesthatsensingactionsmay(cid:12)nd. However,the
user may not be interested in all branches { which
are exponential in the number of unknown terms {
but only in speci(cid:12)c branches. For the rest (usually
unimportantorunlikelycases),theusermaymanually
insert a default branch. We have implemented such a
contingentplanner inthe Planner4J framework [25].
(cid:15) Filtering is needed to remove irrelevant web services.
Sincethenumberofwebserviceinstancesinaregistry
could be very large, the number of web service types
can also be large. Given a goal speci(cid:12)cation, the
Filter(cid:12)ndsservices of potentialrelevanceto thegoal
without actually searching for the solution. Relevant
services are those that can either contribute to the
goals (at least one e(cid:11)ect uni(cid:12)es with a goal) or to
the preconditions of anyservice whichcanpotentially
Figure 5: Logical Plan for the LAS service. contributeto the goal.
(cid:15) Our Matchmaker [7] matches the preconditions of
and are used during planning in logical composition5. The a web service with the e(cid:11)ects of another up front.
inputs and outputs are expressions involving general data Another approach may be to perform matchmaking
types (e.g. integers, strings, algebraic expressions) which as needed during planning [23]. This can support
areusedduringinstanceselectionand(cid:13)owconcretizationin more expressive matching (e.g. involving expressions
thephysicalcompositionphase. Itispossibletoincorporate of initially unknown terms) but at the cost of slower
numeric inputs and outputs during planning as well { this performance duetofrequentreference totheontology
approachtoplanningiscalledmetricplanning[6]. Exploring uni(cid:12)er.
thefeasibility of metricplanningforendtoendwebservice
composition would bean interesting area for futurework. (cid:15) We provide incomplete plans on request. If no com-
For the LAS composite service, the precondition (or pletesequenceofactionsispossiblefromtheavailable
the initial state of the composition problem) asserts that servicesforagivenrequirement,planningcanstillhelp
CustomerLocation is known and the e(cid:11)ect (or the goal the user scope down the composition requestor point
state)isto(cid:12)ndtheagent(AgentID)nearesttothecustomer to missing capabilities in the ontology. The planner
location. sorts the search space of non-solutions based on a
heuristic distance to goal. The plan with the lowest
4.3 Composition through Planning
such distance gives us a candidate plan for further
AI Planning deals with (cid:12)nding a course of actions that development. This is especially valuable when the
can take an agent from the initial state to a goal state, ontology developmenthas not stabilized.
given a set of actions (legal state transformation functions)
in the domain. Formally, a planning problem [30] P is a Withthesefeaturesplanningisscalable,e(cid:14)cientanduser
3-tuple (cid:30) I;G;A (cid:31) where I is the complete description friendly. We illustrate with some empirical results. On
of the initial state, G is the partial description of the goal a contingent problem having a 7-step plan, with the (cid:12)lter
state, and A is the set of executable (primitive) actions. enabled,theplannercanreturnasolutionin4secondswhen
An action sequence S (a plan) is a solution to P if S can 100,000irrelevantservicetypes/actionsarepresent,whereas
be executed from I and the resulting state of the world ittakesanhourwithoutthe(cid:12)lter. Iftheuserchoosesspeci(cid:12)c
containsG. Aplanner(cid:12)ndsplansbyevaluatingactionsand branches,theplannercanleverageitforbetterperformance
searching in the space of possible world states or the space { in an experiment where 3 branches were speci(cid:12)ed on a
of partial plans. Logical composition of webservicescan be contingent problem with 100 sensing actions (2100 possible
cast as a planning problem by using the description of web branches),theplannertakes90%lesstimebyleveragingthis
services as actions, andforming initial andgoal states from information rather thanexploring the whole search space.
the speci(cid:12)cation of the service to be built along with the In Fig. 5, the planner was invoked for the LAS service.
domain model [16]. Recall that the initial state asserts that CustomerLocation
For our service creation tool, planning for web services isknownandthegoalisto(cid:12)ndtheagent(AgentID)nearest
has some uniquecharacteristics (refer to Fig. 4): tothecustomerlocation. Theoutputofthetool isa4-step
plan that can accomplish the goal. The created service is
(cid:15) Thenatureofplanningislimitedcontingencyplanning. addedto the service capabilities registry bythe user.
The value of all logical terms may not be known in
4.4 TheAbstractWorkflow
5Services can be matched using arbitrary sentences as
de(cid:12)ned with OWL-S 1.1 but for planning, we use a state Thegeneratedplanisasequenceoftimesteps,whereeach
representationconsistentwiththeSTRIPSassumptions[30]. timestepmayhaveconcurrentactions. Sinceplanscanhave
brancheswhicharecontingentonspeci(cid:12)cconditions(called entities, and a Data Dictionary tool for de(cid:12)ning the
branch context) being met, actions are labeled with their language for the matching process. Matching is performed
context. The default context for an unconditional action is betweenserviceinstancesandrequirementsspeci(cid:12)edbythe
true, always valid. consumer. In our case, the requirements come from the
The plan is translated to the work(cid:13)ow representation of abstractwork(cid:13)owandadditionalmatchingcriteriaspeci(cid:12)ed
BPEL, a language for expressing interactions and message bythe developer performing the service composition.
exchangesbetweenpartnerentities. Itcanbeautomatically The engine is deployed as a Web service that receives
interpreted and executed by a work(cid:13)ow engine. A BPEL queriesandadvertisementsfromthetwopartiesinvolvedin
speci(cid:12)cation can be abstract or executable depending on matchmaking. Each partyessentially submits a description
whetherbindinginformationhasbeenexcludedorincluded. of itself andthedemandsfromtheotherparty. TheAdver-
We render the generated plan as an abstract BPEL tisementissubmittedbytheprovidertoWSMEandislong
work(cid:13)ow since web service instance information is not lived, remaining in WSME until it is explicitly withdrawn
knownatthisstageofthecompositionprocess. Theactions by the provider or until the application server is stopped.
intheplanaremappedtocorrespondinginvokeactivitiesin The advertisement contains the following information: (1)
BPELandorganizedintobranchesbyinsertingappropriate MyType - this speci(cid:12)es the advertisement record-type. (2)
switch andcase activities. YourType - this speci(cid:12)es the record-type expected to be
submitted by the consumer query. (3) Properties - a
5. PHYSICALCOMPOSITION list of the properties de(cid:12)ned as MyType. Some of those
properties may be de(cid:12)ned as dynamic properties by the
provider evaluated at runtime. (4) Rules (optional) - what
WSME
Abstract the provider requiresfrom the consumer.
Matching
Workflow Instance Instances Mlaantgcuhamgaek/riunlge s AQuerysubmissionissentfromtheconsumertoWSME
Selector Matchmaker
and is transient, terminating after initiating the match-
Physical Available making process and bringing it to its conclusion. The
Service
Composer Selected Instances Data querycontainsthefollowinginformation: (1)MyType-this
Instances
Dictionary speci(cid:12)esthequeryrecord-type. (2)YourType-thisspeci(cid:12)es
Deployable BPEL Service the provider’s advertisement record-type that the query is
Instances
Workflow Generator Registry lookingfor. (3)Properties-alistofthepropertiesde(cid:12)nedas
WSDLs for the MyType. (4) Rules - what the consumer requires from the
selected Instances
provider. Thedescriptionsanddemandscanbedynamically
Figure 6: Physical Composition. created, deleted andmodi(cid:12)edin the form of properties and
rules respectively, using a Data Dictionary tool.
TheWSMErulesallowbothsidestoselecttheotherparty
In this phase, the abstract work(cid:13)ow for the composite
they wish to deal with by specifying their eligibility. A
service is fed to the Physical Composer, which binds each
rule is a WSME script that is evaluated at matchmaking
service in the work(cid:13)ow to a concrete service instance. The
time, resulting in a Boolean value. A rule can refer to the
process of matching each service type to a corresponding
propertiesofthetwopartieswhoseadvertisementandquery
instance,andthenorchestratingbetweenthesetofinstances
areinvolvedinthematchmakingprocess. Exampleofapos-
in the resulting work(cid:13)ow is a non-trivial matchmaking
sibleconsumerruleisthefollowing: return(my:MaxCost(cid:20)
problem. The problem has been addressed extensively for
your:cost). A problem arises if a rule refers to a property
web services and involves a number of issues related to
thatwasnotsupplied. Toavoidsuchasituation,theWSME
data (cid:13)ow orchestration, data type and invocation protocol
Typesystemde(cid:12)nesthemandatorylistofpropertiesthata
matching,QoSmatchingandSLAcomposition. Whilesome
submissionmustprovide;thedatadictionarycontainsthose
of these issues can be resolved in an automated manner,
de(cid:12)nitions.
others might require manual intervention from a developer
We illustrate the Data Dictionary de(cid:12)nitions used for
supervisingthecompositionprocess. Wenextdescribeeach
composing the Helpline Service discussed in Fig. 8. Each
of the steps involved in the Physical Composition stage,
service instance needs to advertise itself to the WSME
illustrated inFig. 6.
service instance registry using the advertisement de(cid:12)nition.
5.1 Representation of Service Instances and Each advertisement record contains basic information like
Requirements the service name, service type, method name and WSDL
information,alongwithQoS-speci(cid:12)cmetricslike(expected)
AsinLogicalComposition,werequirearepresentationfor
responsetime,throughputandcostofinvokingtheparticu-
serviceinstancesandcompositionrequirementstofacilitate
lar instance. Each query record speci(cid:12)es the method name
Composition. Ithasbeenestablishedthatdirectoryservices,
andservicetypethatneedstobeboundtoaninstancealong
such as UDDI, are important but insu(cid:14)cient for this
with additional rules that are speci(cid:12)ed by the developer
purpose[9]andneedtobecomplementedwithmatchmaking
supervising the composition process.
facilities like symmetry of information exchange between
services and their consumers, the ability of each party
5.2 MatchmakingandInstanceSelection
to describe requirements from the other party, a rich
languagetodescribeservices’andconsumerdemands,anda We employ a two-step approach where, in the (cid:12)rst step,
methodology to choose e(cid:14)ciently among competing service weusetheWSMEMatchmakertoselectoneormorecan-
instances. didate instances that match the requirement speci(cid:12)cations.
Tothisend,weusetheWebServicesMatchmakingEngine Sinceaspeci(cid:12)cservicetypecanbematchedwithmorethan
(WSME) [9] { an engine capable of matching complex one instance, we next adopt a heuristic-based approach to
Data Dictionary Tool
<invoke name= "invoke−GetAgentMobileNumbers"
partnerLink="link2"
Service Provider Service Consumer portType="GetAgentMobileNumbers"
operation="GetAgentMobileNumbers"
inputVariable="variable1"
Service Name SSttrriinngg Service Type String outputVariable="variable2" / >
Service Type String Method Name String
<invoke name= "invoke−LocationTracker"
Method Name String Max Cost Float
partnerLink="link3"
Max Response Time Float
portType="LocationTracker"
Cost Float Min Throughput Float
operation="LocationTracker"
Throughput Float
inputVariable="variable2"
Response Time Float
outputVariable="variable3" / >
Query Rules
WebService_URL String <invoke name= "invoke−DistanceCalculator"
WSDL String partnerLink="link4"
portType="DistanceCalculator"
Definition of advertisement Definition of query operation="DistanceCalculator"
submission record type submission record type inputVariable="variable3"
outputVariable="variable4" / >
<invoke name= "invoke−OptimalAgentSelector"
partnerLink="link5"
Figure 7: Advertisement and Query Formats for portType="OptimalAgentSelector"
Helpline Service. operation="OptimalAgentSelector"
inputVariable="variable4"
outputVariable="variable5" / >
select one among the con(cid:13)icting instances, to complete the
matchmaking process.
Figure 8: BPEL code for the LAS service.
The WSME matchmaking process is a two-way or sym-
metricprocess-itbringstogethermatchingadvertisements
and queries by applying the rules of each party to the
description of the other, thus allowing both parties to details for each component service are obtained using the
‘select’ each other. A matching advertisement is called an WSDL description for the corresponding instance, present
o(cid:11)er. If more than one o(cid:11)er is available, they are collected in the WSME service instance registry.
together. Zero, one or more matching o(cid:11)ers are sent to the ThoughBPELandWSDLareXML-based standards,we
consumer. For further details on the matchmakingprocess, do not manipulate XML directly. We use an Eclipse Mod-
the interestedreader is referred to [9]. eling Framework (EMF) model of BPEL (WSDL) that is
Next, we deal with those service types that have more automaticallycreatedfromaBPEL(WSDL)schema6. The
than one matching o(cid:11)ers (instances) from WSME. While modelprovidesin-memoryrepresentationof constructsand
there are many ways to perform the instance selection, support for persistence to (cid:12)les (serialization) and loading
we chose to employ a greedy heuristic approach to solve from(cid:12)les(de-serialization). BPELandWSDLmanipulation
the problem. In particular, the Instance Selector (cid:12)nds becomesigni(cid:12)cantlysimpli(cid:12)edwiththecorrespondingEMF
instance binding assignments that optimize certain quality models.
of service metrics. For the current prototype, we focus
on commonly used QoS metrics like cost, response time Note that the BPEL generated might not be readily
and throughput. We assume that values of these metrics deployableonawork(cid:13)owengine. Thisisduetothefactthat
(as advertised in WSME) are statistically guaranteed. If a the code for messaging between component services needs
service typehas multiple matching instances, we choose an to handle issues like (input/output) type matching and
instance based on the optimization criteria speci(cid:12)ed bythe transformation, mismatch in invocation protocols that are
developer supervising the composition process. used(synchronousvsasynchronous),orderingofparameters
etc. While the BPEL work(cid:13)ow acts as the template for the
5.3 BPEL GenerationforCompositeService composite service, it needs to be examined and possibly
modi(cid:12)ed by the developer to ensure that the data (cid:13)ow
Now that each service type in the abstract (cid:13)ow is bound
between component services is handled properly. In the
toaninstance,theBPELgeneratorproducesa(concrete)
currentprototype,thisisdonebyallowing thedeveloperto
BPEL work(cid:13)ow that can be deployed onto a runtime
edit the BPEL work(cid:13)ow before it is actually deployed. We
infrastructure, to realize the composite service.
alsomaketheobservationthatthehandlingofsomeofthese
We(cid:12)rstgeneratetheWSDLdescriptionforthecomposite
matching problems could bedelegated to the matchmaking
service. Itprovidesthenameandinterfaceofthecomposite
engine (WSME), and we plan to investigate this approach
service and describes the port types for stitching together
in the future.
the component services. Once the WSDL has been gener-
Figure 8 illustrates part of the BPEL code generated by
ated, partner link types are de(cid:12)ned, linking the component
the Physical Composer for the LAS service. Itis composed
services. Thenextstepis the generation of the BPEL (cid:13)ow.
ofthefourcomponentservicesdescribedinSec. 2. Further,
Components are invoked in the manner described by the
oncephysicalcompositionisdone,theWSDLdescriptionof
abstract work(cid:13)ow. The composite service accepts inputs
thisnewserviceisaddedtotheWSMEinstanceregistry,and
from the user thatisfed tothe (cid:12)rstcomponentservice and
can belater usedin thecomposition of some other service.
sends an output from the last component service back to
the user. We introduce variables that capture the output
of one service and provide it as input to the next. Speci(cid:12)c 6http://www.eclipse.org/emf
(a) (b)
Figure 9: (a) Specifying input in the Composition Tool. (b) Logical Plan for Helpline Service.
6. COMPOSINGTHEHELPLINESERVICE consisting of promising results and many challenges [28,
Wenowdiscusshowourservicecreationtoolcanbeused 27]. To put it in perspective of this paper, we organize
for composing the Helpline service described in Sec. 2. Re- this section around design approaches for end to end
callthattheHelplineserviceconsistsofmultiplecomponents composition, logical composition andphysical composition.
services like the LAS service, Message Delivery and Call
Setupservices. Bywayofrunningexample,weshowedhow
7.1 EndtoEndService Composition
anexecutablework(cid:13)owiscreatedforthe LASserviceusing
the tool. The user can add the composite service to the In AI planning, the potential advantage of resource
service registry so thatit is available for reuse. abstraction whereby causal reasoning is decoupled from
For developing the Helpline service, the user may choose resourcereasoningiswell-established[26]. Ourworkcanbe
to use the tool to explore basic services available, buildap- seenasapplyingthesameideatowebservicescomposition.
propriate composite services, and (cid:12)nally build the Helpline Speci(cid:12)cally, we di(cid:11)erentiate web services at the twin levels
service. Alternatively, the user could ask the tool to build of web service types and instances. Our phased approach
theHelplineserviceattheoutsetusingtheavailableservices, is easier for the user to work with and limits the impact of
and let the tool search through the set of possible plans. frequentdeploymentandruntimechangesonthegoal-driven
We expect the user to prefer the former approach, when composition.
the scenario is large and the user wants to control the A planning-based phased approach has been used in
composition. [2] where an end-to-end system is described to construct
We have approximately 100 terms in the ontology and work(cid:13)ows for manipulation of scienti(cid:12)c data, which are
25 service types. Assume that the previously created executed on Grids. The domain involves composition at
composite LAS service has been added to the registry. three levels { application domain level where appropriate
Now the tool is invoked for the overall Helpline service applicationsare(cid:12)rstselected,thenanabstractplanisbuilt
with a precondition of ProblemHTMLForm, and the e(cid:11)ect with a planner, and (cid:12)nally it is detailed based on grid
of ProblemResolutionStatus as shown in Fig. 9(a). The execution details. Two main di(cid:11)erences with our work are
Logical Composer produces the plan shown in Fig. 9(b). that(a)theydonotuseontologies whiletheyrecognizethe
Note that the LAS service is reused. The plan containing need, and (b) the plan/work(cid:13)ow representation is simpler
LAS service is selected over alternative plans without it, duringlogicalcomposition{sequential,whilewecanhandle
becausetheplan’sheuristiccostisless7. Finally,thePhysi- branches as well. As our output is in BPEL which also
calComposertakestheabstractwork(cid:13)owandgeneratesthe has support for loops, exceptions and other behavioral
appropriate BPEL (similar to Fig. 9). constructs, the physicalstage can be evenmore expressive.
In [29], executable BPELs are automatically composed
from goal speci(cid:12)cation by casting the planning problem as
7. DISCUSSIONANDRELATED WORK a model checking problem on the message speci(cid:12)cation of
partners. Theapproachispromisingbutpresentlyrestricted
The literature on web service composition is extensive,
to logical goals and small number of partner services. In
7Designing heuristic functions so that user intent is contrast to our top-down approach, Mandell and McIlraith
respected is an active area of research in Hierarchical Task [13] extend a BPEL engine to support runtime service
Network planning[8]. selection using a semantic discovery server.
7.2 Logical Composition component services. In [14], the authors consider the
Theliteratureoncomposingservicesbasedonannotations problem of service composition as a problem of software
(semantically organized in ontologies or otherwise) has synthesis where algorithms for matching and composition
taken two paths. One direction is disambiguating similar are based on Structural Synthesis of Programs (SSP) [15].
annotations using domain meta-data, rules, etc. The The SSP language is used as an internal representation
other direction is on methods to combine services whose languageforautomatedservicecomposition,whileDAML-S
annotations matchbased on some notion of similarity. is used as an external language for describing Web service
In [20], matching of web services from a directory is properties.
formalized based on various inexactness measures. In
[12], the authors have identi(cid:12)ed the information that a
Semantic Web Service must expose in order to ful(cid:12)ll the
objective of automated discovery, composition, invocation 8. CONCLUSION
and interoperation.
Wehavedescribedatwo-stepmethodologyforendtoend
SWORD [21] was one of the initial attempts to use
compositionofwebservicesbysemanticallyannotatingweb
planning to compose web services. It does not model
service components, as well as a prototype that demon-
service capabilities in an ontology but uses rule chaining
strates this methodology in a domain-speci(cid:12)c scenario.
to composes web services.
Service developers can maintain a registry of web services
Sirin et al. [24] use contextual information to (cid:12)nd
that goes beyond the traditional UDDI by incorporating
matchingservicesateachstepofservicecomposition. They
semantic descriptions of the components. When a new
further(cid:12)lterthesetofmatchingservicesbyusingontological
servicerequirementarises,itcanbeexpressedinthecontext
reasoningonthesemanticdescriptionoftheservicesaswell
ofadomainontology. Ourservicecreationenvironmentcan
as by using user input. They attempt to overcome lack
then be used to generate potential work(cid:13)ows for achieving
of support for service types in OWL-S by creating a class
thedesiredfunctionalityreusingexistingwebservices. This
hierarchy of Service Pro(cid:12)les. A new sub-class is created for
automation of the discovery process results in signi(cid:12)cant
each value of an IOPEparameter.
reduction inthe time-to-market for the newservice.
There are three problems with their approach. First, a
There are two key innovations in our solution. First, we
large set of values for an attribute of a service would result
decouple web service composition into logical and physical
in generation of that many classes. Second, to represent
composition stages thataddresscomplementaryintegration
a functionality with multiple attributes a huge number of
issues. The(cid:12)rststagefocusesonthefeasibilityoffunctional
services,oneeachforasetofpossiblevaluesofallattributes,
composition while the latter deals with e(cid:14)cient execution
would have to be represented as derived classes. Third,
of the resulting composition. Second, we use scalable
new classes need to be added to the ontology every time
and optimizing techniques in each stage that can adapt to
a new type of service is introduced. A cleaner approach
changes in the service creation environment.
thatseparatesrepresentation of theservicede(cid:12)nitionsfrom
In the future, we plan to integrate the service creation
service instances has already beendescribed in Sec. 4.
Web Services Modeling Ontology8 (WSMO) is a recent tool with a larger service development and execution in-
frastructure. In order to do so, we wish to enable more
e(cid:11)ort for modeling semantic web services in a markup
interactions with the developer to stitch together message
language(WSML)andalsode(cid:12)ningawebserviceexecution
(cid:13)owsbetweenthecomponentservicesand,ifrequired,re(cid:12)ne
environment (WSMX) for it. Our logical composition
theabstract/BPELwork(cid:13)owforthecompositeservice. Fur-
approachisnotspeci(cid:12)ctoanyparticularmodelinglanguage
ther,inthe currentsolution, iftheservice composition fails
and can adapt to newer languages.
foranyreason,thecompositionprocesssimplyfailsandthe
7.3 PhysicalComposition developerhasto(cid:12)gureoutthereasonsforfailure. E(cid:11)ortsare
ongoingtoenableaproceduretoclassifycompositionfailure
Several standardization proposals aimed at providing at di(cid:11)erent stages underdi(cid:11)erentconditions, and thengive
infrastructure support to Web service composition have re- a feedback of possible causes and suggests remedies to
centlyemergedincludingSOAP,WSDL,UDDI,andBPEL. overcomethefailure. Thiswouldserveasadecision-support
There has also beena lot of interest inthe area of dynamic tool that can be used along side a service composition
Web service and QoS-based work(cid:13)ow management. Pre- tool. We also plan to transition to OWL 1.1 (currently
vious e(cid:11)orts in this area like eFlow [4] have investigated in Beta stage) that provides support for rules. This would
dynamicserviceselectionbasedonuserrequirements. Zeng enable us to express richer pre-conditions and e(cid:11)ects while
et al. [31] propose that the choice of component services representing service capabilities. For physical composition,
in the plan be made at run time for optimality. Instead we will continue investigating di(cid:11)erent instance selection
of making local choices at each step of the composition, heuristicsforQoSmatching,notonlyattheserviceinstance
the focus is on optimization at a composite level based on level but also at the level of the composite service. Finally,
a generic QoS model (based on price, duration, reliability we want to explore a feedback{based approach where the
etc.) andestablishedlinearprogrammingtechniques. Other service creation tool interacts with the service execution
proposals such as METEOR [3] and CrossFlow [10] have infrastructure, to adapt and optimize based on changes in
consideredQoSmodelsforwork(cid:13)owsalong fourdimensions the execution environment.
namely time, cost, reliabilty and (cid:12)delity. Finally, there has
been aconsiderable e(cid:11)ort inthe Webservice communityin
9. ACKNOWLEDGMENTS
identifyingthechallengesinwork(cid:13)oworchestrationbetween
TheauthorswouldliketothankAnupamMediratta,Sug-
8http://wsmo.org ata Ghosal, Yigal Ho(cid:11)ner, Christian Facciorusso, Richard
Goodwin andRama Akkirajufor theircontributions tothe [15] M. Matskin and E. Tyugu. Strategies of Structural
developmentof the ideas presented inthis paper. Synthesisof Programs andits Extensions. Computing
and Informatics, 20:1{25, 2001.
10. REFERENCES [16] S. McIlraith, T. C. Son, andH. Zeng. SemanticWeb
[1] V. Agarwal, N. Karnik,and A.Kumar. An Services. IEEE Intelligent Systems, Special Issue on
Information Model for Metering and Accounting.In the Semantic Web.,16(2):46{53, March/April 2001.
Proceedings of the IEEE/IFIP Network Operations [17] Common Information Model (CIM) Metrics Model,
and Management Symposium, April 2004. Version 2.7. DistributedManagement Task Force,
[2] J. Blytheet al. The Role of Planning in Grid http://www.dmtf.org/standards/documents/CIM/
Computing. Proc. of IntlConference onAIPlanning DSP0141.pdf, June 2003.
andScheduling, 2003. [18] M. G. Nanda andN. Karnik.Synchronization
[3] J. Cardoso. Quality of Service and Semantic Analysis for Decentralizing Composite WebServices.
Composition of Work(cid:13)ows. PhDthesis, Universityof In Proceedings of the ACM Symposium on Applied
Georgia, 2002. Computing, March 2003.
[4] F. Casati, S.Ilnicki, L. J. Jin, V. Krishnamoorthy, [19] OWLServices Coalition. OWL-S:SemanticMarkup
andM. C. Shan.eFlow: APlatform for Developing for WebServices. http://www.daml.org/services/
andManaging Composite e-Services. . Technical owl-s/1.0/owl-s.html, Nov.2003.
Report HPL-2000-36, HPLaboratories, 2000. [20] M. Paolucci, T. Kawmura, T. Payne,and K.Sycara.
[5] G. B. Cha(cid:13)e, S. Chandra, V.Mann, and M. G. Semantic Matching of Web Services Capabilities. In
Nanda. Decentralized Orchestration of Composite First Int. Semantic Web Conf.,2002.
WebServices. In Proceedings of the 13th International [21] S. PonnekantiandA.Fox. SWORD:ADeveloper
World Wide Web Conference, 2004. Toolkit for WebService Composition. InProc. of the
[6] M. B. Doand S.Kambhampati. Sapa: AScalable 11th International World Wide Web Conference, 2002.
Multi-objective Heuristic Metric Temporal Planner. [22] S. Staab et al. Webservices: Been there, donethat?
Journal of AI Research, 20:155{194, 2003. IEEE Intelligent Systems, pages 72{85, Jan-Feb 2003.
[7] P. Doshi, R. Goodwin, R.Akkiraju, and S.Roeder. [23] E. Sirin andB. Parsia. Planning for SemanticWeb
Parameterized Semantic Matchmaking for Work(cid:13)ow Services. In Semantic Web Services Workshop at 3rd
Composition. Technical Report RC23133. Available at International Semantic Web Conference, 2004.
http://dali.ai.uic.edu/pdoshi/research/RC23133.html, [24] E. Sirin, B. Parsia, andJ. Hendler.
March 2004. Composition-driven Filtering andSelection of
[8] K. Erol, J. Hendler, andD. S.Nau. HTNplanning: Semantic WebServices. In AAAI Spring Symposium
Complexity andexpressivity.In Proceedings of the on Semantic Web Services, March 2004.
Twelfth National Conference on Arti(cid:12)cial Intelligence, [25] B. Srivastava. ASoftware Framework for Building
Seattle, Washington, USA,1994. Planners. In Proc. Knowledge Based Computer
[9] C. Facciorusso, S. Field, R. Hauser, Y.Ho(cid:11)ner, Systems (KBCS 2004), 2004.
R. Humbel,R.Pawlitzek, W.Rjaibi, andC. Siminitz. [26] B. Srivastava, S. Kambhampati,and M. B. Do.
AWebServices Matchmaking Engine for Web Planning the project management way: E(cid:14)cient
Services. In Proceedings of 4th Intl. Conf. on planning bye(cid:11)ective integration of causal and
e-Commerce and Web Technologies, September2003. resource reasoning in RealPlan. Artif. Intell.,
[10] J. Klingemann. Controlled (cid:13)exibilityinwork(cid:13)ow 131(1-2):73{134, 2001.
management. In Proc. of the 12th International [27] B. Srivastava andJ. Koehler. Web Service
Conference on Advanced Information Systems Composition - CurrentSolutions and OpenProblems.
(CAiSE), June 2000. ICAPS 2003 Workshop on Planning for Web Services,
[11] A. Kumar,B. Srivastava,and S.Mittal. Information 2003.
modeling for endto endcomposition of web services. [28] X.Suand J. Rao. A Surveyof AutomatedWeb
In IBM Research Report RI05001. Available from Service Composition Methods. InProceedings of First
http://domino.watson.ibm.com/library/CyberDig.nsf/Home., International Workshop on Semantic Web Services
2005. and Web Process Composition, July 2004.
[12] R. Lara, H. Lausen, S. Arroyo,J. deBruijn, and [29] P. Traverso andM. Pistore. AutomatedComposition
D. Fensel. Semantic WebServices: Description of Semantic WebServices into ExecutableProcesses.
RequirementsandCurrent Technologies. In In 3rd Int. Semantic Web Conf.,November2004.
International Workshop on Electronic Commerce, [30] D. S.Weld. RecentAdvancesin AIPlanning. AI
Agents, and Semantic Web Services, September2003. Magazine, 20(2):93{123, 1999.
[13] D. J. Mandell andS. A.McIlraith. Adapting [31] L. Zeng, B. Benatallah, M. Dumas, J. Kalagnanam,
BPEL4WS for the Semantic Web: The Bottom-Up andQ. Z. Sheng.Quality DrivenWeb Services
Approachto WebService Interoperation. In Composition. In Proceedings of the 12th Intl. World
Proceedings of International Semantic Web Wide Web Conf.,May 2003.
Conference, Oct2003.
[14] M. Matskin andJ. Rao. Value AddedWebServices
Composition using AutomaticProgram Synthesis.In
Proceedings of International Workshop on Web
Services, E-business, and the Semantic Web, 2002.