Title: Web Service Composition as Planning
1Introduction to Artificial Intelligence
MSc 2005 Semester 2 8th Tutorial
- Web Service Composition as Planning?
2The problem
- Is composition of Web Services possible by
describing services as planning
operators/domains? - Are current planners suitable for this kind of
composition? - 1000s of services, probably doing almost the same
(e.g. there are loads of Hotel booking services)?
3a pessimistic view from the lecture slides
Jim Hendler's opinion 01/02/2004
public-sws-ig_at_w3.org
- I would point out that the mapping of web
services to compositions has largely been done in
the past, even in the best work in - this area, with some simplifications that
generally "twist" web services into a planning
framework -- there's huge parts of the - web service world that need to be explored before
we can really say AI planning has shown a success
in web services other - than as an evocative idea -- the reason is that
a real web services engine will need to deal with
(at least) - scaling issues way beyond anything we've seen in
planning to date (there may be thousands of
services each with multiple ports, optional
arguments, etc.) - the issues Dana mentioned (side effects, change
in the world, etc.) that make Strips-operators
planning an approximation at best (the assumption
that change occurs only through the operators
under the control of this planner is clearly
wrong) - issues of interaction with users - web service
planning better be more mixed-initiative - issues of preferences v. constraints
- issues of interaction between planning agents out
there (you buy the book I'm in the process of
planning to buy) - knowledge engineering issues (when planners take
ebXML and WSDL as inputs, instead of requiring
specialized planning-like languages like - OWL-S, then we'll see a lot more excitement on
the outside - OWL-S is an interesting starting
place, but we fool ourselves if we think it
really is going to be widely used for process
specification in its current form) - In fact, I'll wager that it will be absolutely
trivial to prove that web services planning, even
w/simplifications, is inherently - undecidable, so we'll need to explore a lot of
the issues from the old "dynamic planning" world
as well. All this, by the way, I - see as good news - it means this is a fertile and
exciting research area for those of us in
planning, with good heuristic solutions - being transitionable. That said, in the past I
have tried to get AI planning people to think
outside the box and failed miserably, - and I'll be surprised if the web services
planning stuff doesn't become an "applied" area
being ignored by the bulk of the - research community (who, if you'll apologize my
saying so, still have their heads up their
you-know-whats worrying about - scaling simple problems in all the wrong ways)
4Classical Planner are not necessary suitable
- BUT Can serve as an approximation at a high
level of abstraction in semi-automatic
approaches! - i.e. planning as a "heuristics" for WSC!
- You should try out this week how far this is
possible and under which restrictions!
5Assignment this week
- This weeks assignment is a challenge for your
creativity! - You should
- describe a service composition problem as a
planning problem in PDDL - Generate a big set of operators, emulating lots
of possible similar services and observe
scalability - Find a suitable planner for your problem, run it.
- If not possible to describe/solve your encoding,
find usable abstractions, simplifications. - ? See last slide for the concrete task.
6Web and Services
- Text/images information providing/world
altering services - Manual Web services interoperation
- Agents interoperation Semantic services
- Service markup machine understandable
7Web and Services
- Text/images information providing/world
altering services - Manual Web services interoperation
- Agents interoperation Semantic services
- Service markup machine understandable
- We try to use PDDL this week to semantically
describe Web services!
8Semantic Service Description
- Problem/Vision
- automatic discovery,
- execution and
- composition of Web services
- Solution
- Semantic markup of Web services
- in our case we will PDDL
- More general approach Service ontologies, OWL-S,
WSMO
9Service Composition andInteroperation
- The automatic selection, composition, and
interoperation of appropriate Web services to
perform some task, given a high-level description
of the tasks objective. - Make the travel arrangements for my IJCAI 2001
conference trip. - Can be formulated as a simple goal in PDDL
10Industrial Standards
- UDDI, WSDL, ebXML
- E-speak (HP), .NET (MS)
- For us here most important
- WSDL exposes operations describing how to
interact with a service, but not really what it
does.
11Example XMethods
- www.xmethods.com a repository of real Web
Services available online - E.g. Global Weather service
- http//www.webservicex.com/globalweather.asmx?WSD
L
Most services currently available are as simple
as simple procedure calls.
12Problem with XMethods
- WSDL only describes in-out of service operations,
but not what the service does (preconditions,
effects are missing) - Most services, such as the weather service are
pure information gathering services. - You gather information as you execute the action,
the outcome is non-deterministic, i.e. we don't
know what - getWeather(Innsbruck)
- will return.
- Current planners are not conceived for
information gathering, i.e. adding knowledge or
taking decisions based upon the outcome of
actions. - More interesting, in our context are services
with real world effects, such as charging my
credit card, etc. - Since existing services lack these descriptions,
let us use some fictitious but useful web
services, e.g. Hotel booking, car rental, flight
booking, etc.
13Sample Problem Online Trip Booking
- Let us now try to encode a simple problem and a
few services as a planning problem in PDDL - I have 100 on my credit card and 150 on my bank
account and I want to purchase a ticket way and
back to Vienna and book a hotel in Vienna. - Initial State and Goal
- (define (problem ticketAndHotelVienna)
- (domain servicesPlanning)
- (objects
- Innsbruck Vienna city
- 2000 2001 2002 2004 2005 - year
- (init ( (creditCardBalance) 100)
- ( (accountbalance) 150)
- ( (total-money-spent) 0)
- )
- (goal(and (haveTicket Innsbruck Vienna)
- (haveTicket Vienna Innsbruck)
- (haveHotelReservation Vienna))
- (metric minimize (total-money-spent))
- )
14Online Trip Booking - Domain
fluents allow function definitions and use
of assignments and arithmetic expr. In effects
- (define (domain servicesPlanning)
- (requirements typing strips fluents)
- (types city year)
- (predicates (haveTicket ?x ?y - city)
- (haveReservation ?x - city))
- (hasVorteilsCard ?y - year)
- (functions (total-money-spent)
- (accountBalance)
- (creditCardBalance))
- (action TheRottenHotelBookingService
- parameters (?x - city)
- preCondition (gt (creditCardBalance) 50)
- effect (and (haveReservation ?x)
- (decrease (creditCardBalance)
50) - (increase (total-money-spent
50)))) - (action TheFancyHotelBookingService
- parameters (?x - city)
15- (action onlineBankingService
- parameters (?transferAmount)
- preCondition (gt (accountCardBalance)
?transferAmount) - effect (and (decrease (accountBalance)
?transferAmount) - (increase (creditCardBalance)
?transferAmount))) - (action oebbTicketService
- parameters (?from ?to)
- effect (and (hasTicket ?from ?to)
- (decrease (creditCardBalance)
70) - (increase (total-money-spent
70)))) - (action oebbVorteilsCardTicketService
- parameters (?from ?to)
- preCondition (and (hasVorteilsCard 2005)
(gt (accountCardBalance) 20 ) - effect (and (hasTicket ?from ?to)
- (decrease (creditCardBalance)
20) - (increase (total-money-spent
20))))
16Your exercises
- Improve the very simple encoding in the slides,
e.g. by - parametrizing by date, number of days to stay in
the hotel - The vorteilscard has to be valid for the date of
travel, - adding more services,
- adding more cities and different costs for
tickets encoded in some fixed predicates, - etc.
- Think of an own example in the web service
composition area and model it in PDDL. Try to
avoid simplifications and keep your modeling as
realistic as possible. You can use any extension
of PDDL which you might find useful. What are the
obstacles? - Find a planner which can solve your problem.
- Now try to enrich you modeling by adding more
services (actions) which offer the same or only
slightly different functionality, does it affect
scaling? - Answer the following questions
- Which abstractions, simplicifcations did you have
to make in your modeling to tweak the composition
problem into PDDL? - Is it feasible that Web services advertise their
functionality in a language like PDDL? Why? Why
not? - Why can't you use WSDL directly for planning and
composition, what is missing? - Relate your observations to assumptions A0-A7
from the lecture slides. - As mentioned in the beginning This exercises is
a challenge for your creativity and to find out
what are the borders of current languages and
technologies. - Due to travelling and public holidays, you have
more time than usual for this assignment