Two-Step Semantic Web Services-Discovery Laszlo Kovacs MTA SZTAKI
Semantic Web Services Discovery within the INFRAWEBS Software Environment INFRAWEBS Environment is a set of Semantic Web Services Units (SWU) providing a large set of services for SWS production, deployment, maintenance etc. Network of Semantic Web Service (SWS) Repositories containing WSMO-based semantic descriptions of of SWSs spread around the network
Semantic Web Service Deployment Scenario (The role and placement of SWS discovery) Construction of a goal: The goal describes what the user (user application) wants to achieve by SWS execution in terms of logical expressions. SWS discovery: a list of appropriate (matching) semantic web services is provided for the goal. SWS selection: the user or the application has to select a particular service if there are more services available for the given goal. SWS invocation: the selected semantic web service is started for the given goal, optionally with facts as additional input. SWS execution: the invoked semantic web service executes its communication pattern with the invoker (choreography) and it may also communicate with other semantic web services (orchestration) to produce the result. SWS result: the result of service execution is manifested as new facts that fulfill the postcondition of the original goal, for example, the reservation number and departure time of the flight are given.
Layers of Semantic Web Service Deployment Business Logic Execution Selection Discovery Choreography / Orchestration Grounding Capabilities Web Services Goals, Ontologies, Mediators Services
Functions of Service Access Middleware (SAM) A subsystem within SWU Responsible for the relation to the customer (application), the external user of the semantic web service the internal collaboration with other subsystems of SWU for SWS deployment Provides methods for discovery and selection Coordinates execution
Role and Connections of SAM (Service Access Middleware) SWS Repository in other SWU SWS-enabled User Application Local SWU (partial view) SAM SWS Repository SWS Composer SWS Executor External Interface Internal Interface
Discovery within SAM Two-phase approach: Narrow list of candidates using text-processing (keyword matching) algorithms Perform logical matching based on postconditions and effects Enhance list of services with QoS data based on past execution experience
Discovery: First Step - Keyword-based Matching postcondition nonfunctionalproperties dc#description hasvalue "the output of the service is a flight booking." endnonfunctionalproperties definedby?bookingidentifier memberof bo#bookingidentifier and?flightbookingticket [ bookingticketidentificator hasvalue?bookingticketidentificator, airtripinfo hasvalue?airtripinfo ] memberof fb#flightbookingticket and?airtripinfo [ start hasvalue?start, end hasvalue?end, departure hasvalue?departure, arrival hasvalue?arrival ] memberof fb#airtripinfo and... Indexed words: bo#bookingidentifier fb#flightbookingticket fb#flightbookingticket.bookingticketidentificator fb#flightbookingticket.airtripinfo fb#airtripinfo fb#airtripinfo.start fb#airtripinfo.end fb#airtripinfo.departure fb#airtripinfo.arrival
Example for Keyword-based Matching Example: Book a flight from Innsbruck to Budapest id: flightbuyerws.wsml rank: 0.9809024 id: flightbuyerws_at_2.wsml rank: 0.9512020 id: flightbuyerws_de_us.wsml rank: 0.9056013 id: flightbuyerws_us.wsml rank: 0.8709011 id: hotelroombuyerws.wsml rank: 0.23670077 id: carbuyerws.wsml rank: 0.14597775 id: carbuyerws_at.wsml rank: 0.14597775
Discovery: Second Step - Logic-based Matching Examples of postconditions converted into matchable F-Logic expressions // goal postcondition?- airtripinfo:airtripinfo [ start -> innsbruckairport, end -> budapestairport, departure -> departure, arrival -> arrival, class -> 'economy' ], // web service postcondition?- AirTripInfo:airTripInfo [ start -> innsbruckairport, end -> End, departure -> Departure, arrival -> Arrival, class -> Class ],
Discovery: Second Step - Results Produced by Flora-2 AirTripInfo = airtripinfo End = budapestairport Departure = departure Arrival = arrival Class = economy 1 solution(s) in 0.0000 seconds Yes
Tools Used for Discovery Apache Lucene (indexer) WSML Parser (Ontotext) Wsml2Flora converter (DERI) Flora-2
Overall Architecture of SAM SWS Repository Goal templates Ontologies Service Descriptions SAM Discovery and Indexer Agents SWS Composer SWS enabled User Application User Agent Reasoner Internal SWS index Indexer Connection Manager (agent factory) Service Agent SWS Executor
SAM Agent Characteristics Variable lifetime Example: serving user requests vs. maintaining internal indexes Mostly asynchronous communication Agent tasks often have long completion time
SAM Architecture Principles Interfaces with outer world and other INFRAWEBS components WSDL, enhanced with agent addressing Internally: lightweight agent platform Agent registry Simple agent creation and communication Notifications Distributedness Repositories are distributed, but indexes are global and replicated in each SAM Approach based on experiences in previous EU projects: SELECT and StreamOnTheFly
Interfaces of SAM component SWS Repository in other SWU User Application Local SWU (partial view) SAM SWS Repository SWS Composer SWS Executor External Interface Internal Interface
External Interface Initializes an SWS deployment session with the SAM. This creates the User Agent within SAM, and establishes the communication channel between the session user and the SAM. Asks for and sends facts about the current deployment scenario, including user preferences and user profile data. Discover services matching the given goal. Discovery is an asynchronous request, services found are sent back to the user application with accompanying information which can be used for ranking the service list. Execute a web service for the given goal (also asynchronous). The choreography of the web service is executed, necessary user responses are asked for, and the execution result is sent back to the user application. Abort an ongoing asynchronous request.
Internal Interface Operations supported by the internal interface: Receive notification about new or updated SWS descriptions from the repository, Execute the choreography for a running SWS in cooperation with SWS Executor, Receive result of execution from SWS Executor. Operations of SWS Repository interface used by SAM: Find and list stored objects of given type/characteristic, Retrieve ontologies used in SWS descriptions, Retrieve SWS descriptions, and QoS data. Operations of SWS Executor interface used by SAM: Initiate execution of a web service with SWS Executor module, Abort an execution process running in SWS Executor, Support for choreography execution of invoked SWS (exchange of facts)
Future Research Going beyond the previous basic assumptions: inhomogeneous ontologies ontology alignment (design time) mediation (execution time) distributed indexing Proper network architecture of distributed SWS repositories Evaluation of other discovery models (beyond the two step approach) Improve the performance of discovery process Establishment of standardized testbed (including a large set of SWS descriptions) for comparison of discovery models and algorithms
Step-by-step Discovery Keyword-based filtering Fast, but not selective enough??? Traditional logic-based filtering Slow, but precise 1,000-10,000 100-1,000 0-20
Thanks Laszlo Kovacs laszlo.kovacs@sztaki.hu MTA SZTAKI, the Computer and Automation Research Institute of the Hungarian Academy of Sciences, Budapest, Hungary Department of Distributed Systems dsd.sztaki.hu