Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Interactive Discovery and Composition of Complex Web Services Sergey Stupnikov1 , Leonid Kalinichenko1 , and Stephane Bressan2 1 Institute of Informatics Problems, Russian Academy of Science {ssa, leonidk}@synth.ipi.ac.ru 2 National University of Singapore steph@nus.edu.sg Abstract. Among the most important expected benefits of a global service oriented architecture leveraging web service standards is an increased level of automation in the discovery, composition, verification, monitoring and recovery of services for the realization of complex processes. Most existing works addressing this issue are based on the Ontology Web Language for Services (OWL-S) and founded on description logic. Because the discovery and composition tasks are designed to be fully automatic, the solutions are limited to the realization of rather simple processes. To overcome this deficiency, this paper proposes an approach in which service capability descriptions are based on full first order predicate logic and enable an interactive discovery and composition of services for the realization of complex processes. The proposed approach is well suited when automatic service discovery does not constitute an absolute requirement and the discovery can be done interactively (semi-automatically) with human expert intervention. Such applications are, for instance, often met in e-science. The proposed approach is an extension and adaptation of the compositional information systems development (CISD) method based on the SYNTHESIS language and previously proposed by some of the authors. The resulting method offers a canonical extensible object model with its formal automatic semantic interpretation in the Abstract Machine Notation (AMN) as well as reasoning capabilities applying AMN interactively to the discovery and composition of web services. 1 Introduction The current Web service infrastructure offers syntactic interoperability by means of widely accepted standards such as the Web Services Description Language (WSDL1.1 [27]), the Universal Description, Discovery and Integration language (UDDI [26]) and the Simple Object Access Protocol (SOAP [21]). Yet semantic interoperability is one of the most important expected features of a global service oriented architecture. In order to reach the necessary level of automation of service discovery, composition, verification, monitoring and recovery, a large body of research works aims at devising richer specifications providing for semantically well-founded reasoning about services. Many such approaches Y. Manolopoulos, J. Pokorný, and T. Sellis (Eds.): ADBIS 2006, LNCS 4152, pp. 216–231, 2006. c Springer-Verlag Berlin Heidelberg 2006  Interactive Discovery and Composition of Complex Web Services 217 are based on OWL-S [17], a language for the semantic specification of services building upon OWL [16], the Ontology Web Language proposed by W3C. In OWL-S each service is provided with an advertisement containing three descriptions: service profile (”what the service does”), service model (”how the service works”), and service grounding (”how to access the service”). OWL-S and other similar languages assume mechanisms for their combined use with existing Web service standards such as UDDI and WSDL. The solutions proposed realize simple ”on the fly” dynamic discovery – usually referred to as service matchmaking – and composition of services based on the service’s capability descriptions, i.e. inputs, outputs, pre-conditions and effects (IOPEs) of a service [20]. Because of the limitations of the OWL description and of the reasoning mechanism based on description logic, and because the discovery and composition tasks are designed to be fully automatic, the solutions are limited to the realization of rather simple processes. Indeed, full automation applies to tractable problems (checking credit, simple procurement, etc.). Most importantly, such approaches do not apply to the problems of discovery and composition of services for the realization of complex processes that are in use in numerous application domains such as e-science. In order to overcome this deficiency, this paper1 proposes an approach in which IOPEs service capability descriptions based on full first order predicate logic that enable an interactive discovery and composition of services for the realization of complex processes. The proposed approach is well suited when automatic service discovery does not constitute an absolute requirement and the discovery can be done interactively (semi-automatically) with human expert intervention. The proposed approach extends and adapts the Compositional information systems Development (CISD) method [4] devised and proposed by some of the authors. CISD is a method for the semantically correct composition of software components into coherent application. The CISD method is originally designed for object- oriented platforms such as CORBA, RMI and J2EE. CISD leverages an ontological model and a canonical object model, both based on the SYNTHESIS language [10], to offer a unified representation of both the new application (specification of requirement) and pre-existing components. Discovery and composition of components relevant to the application is realized in the framework offered by the domain ontology and the canonical object model. In order to apply the CISD method to Web services, we have preliminarily defined in [5] a mapping of WSDL specifications into the canonical model. The basic steps for composing Web services by refining a specification of requirement were also demonstrated in [5]. In this paper, we concentrate on the discovery based on the IOPEs capabilities of services, putting aside other service properties (e.g., non functional properties) defined by other metadata facilities of the augmented UDDI. We use the canonical extensible object model of SYNTHESIS [10], its formal automatic 1 This research has been partially supported by the grants 05-07-90413, 06-07-89188-a of the Russian Foundation for Basic Research and by NUS Eastern Europe Research Scientists & Students Exchange & Collaboration Programme (EERSS). 218 S. Stupnikov, L. Kalinichenko, and S. Bressan semantic interpretation in the Abstract Machine Notation (AMN) [2] and reasoning mechanisms obtained by applying AMN interactively. If a service is defined in WSDL or UDDI augmented with OWL-S, such definition is also assumed to be mapped into the canonical model. How to do such mapping for OWL is considered in detail in [12,15]. The paper is structured as follows. In Section 2 we give a brief introduction to the canonical model. We define the operations of the type composition calculus based on the refinement2 relation. We show the need for a formal proof of the refinement relation between type specifications. B-Technology that implements AMN [1] is used for that purpose. We give a short characterization of AMN as well as of the program facilities that have been recently developed [24] for the automatic mapping of the canonical model specifications into AMN. In Section 3, we present an example with two Web services. The first Web service is specified in OWL-S and WSDL. Pre-conditions and effects in this service are defined using Semantic Web Rule Language (SWRL) [25] which is tractable. The second Web service is described with formulae expressed in the canonical model to describe pre-conditions and effects. Such formulae are generally not tractable (as they make use of full first order predicate logic). Appropriate composition of services is realized by using the type specification calculus [11]. To show that the discovery of Web services is correct, we prove that a relevant type of specification of requirements is refined by the composition of Web services obtained. In Section 4, we illustrate an approach to the formal proof of this condition showing also some details of the mapping of the canonical model into AMN. In section 5, we survey the related work. In the conclusion section, we summarize the contribution of the paper. 2 Complex Service Discovery for Compositional IS Development In CISD, the SYNTHESIS language is intended to provide a uniform (canonical) representation of heterogeneous data, programs and processes for their use as interoperable entities. Strongly typed, object-oriented subset of the language (as required in this paper) contains a universal constructor of arbitrary abstract data types, a comprehensive collection of the built-in types, as well as type expressions based on the operations of type calculus. All operations over typed data in the SYNTHESIS language are represented by functions. Functions are given by predicative specifications expressed by mixed pre- and post-conditions formulae of typed first order predicate logic. In the SYNTHESIS language the type specifications are syntactically represented by frames, their attributes by slots of the frames. Frames are embraced by figure brackets { and }, slots are represented as pairs slot name : slot value (a frame can be used as a slot value). Slots in a frame are separated by semi-colons. 2 A non-formal definition of refinement is as follows. Type A refines type B if A can be substituted instead of B so that a user does not notice the difference. Interactive Discovery and Composition of Complex Web Services 219 Compositional development is a process of systematic manipulation and transformation of specifications. Type specifications of the SYNTHESIS language are chosen as the basic units for such manipulation. The manipulations required include decomposition of type specifications into consistent fragments, identification of reusable fragments, composition of identified fragments into specifications refining [2] the requirements, justification of the refinement relation reached. The compositional specification calculus [11], designed for such manipulations, uses the following concepts and operations. Definition 1. A signature ΣT of a type specification T = VT , OT , IT  includes a set of operation symbols OT indicating operation arguments and result types and a set of predicate symbols IT for invariants. Conjunction of all invariants in IT constitutes the type invariant InvT . OT is a union of type state attributes AttT and type methods MethT . Extent VT of the type T (carrier of the type) is modeled by a set of admissible instances of the type. Each instance of the type is a tuple of pairs a, v  such that a is a state attribute of the type (a ∈ AttT ) and v is a value of the attribute. Every instance must satisfy the invariant InvT . Definition 2. A type reduct RT is a subspecification of an abstract data type ′ T specification. A signature ΣT of RT is a subsignature of ΣT including the extent VT , a set of operation symbols OT′ ⊆ OT , a set of symbols of invariants IT′ ⊆ IT . The identification of a fragment of an existing component type that may be reused in the implementation of another type requires a most common reduct of these types to be constructed. Definition 3. Most common reduct RMC (T1 , T2 ) for types T1 and T2 is a reduct RT1 of T1 such that there exists a reduct RT2 of T2 such that RT2 refines ′ such that RMC (T1 , T2 ) is a reduct of RT1 and there can be no other reduct RT 1 ′ ′ ′ of T2 that refines RT1 , RT1 is not equal to RMC (T1 , T2 ) and there exists RT 2 ′ R T1 . Definition 4. Type C is a refinement of type R iff: – – – – there exists an injective mapping Ops : OR → OC ; there exists a total abstraction function Abs : VC → VR ; for all v ∈ VC , InvC (v ) implies InvR (Abs(v )); for all m ∈ MethR , m is refined by Ops(m). To establish a method refinement m1 refines m2 it is required that method precondition pre(m2 ) implies pre-condition pre(m1 ) and post-condition post (m1 ) implies post-condition post (m2 ). The type calculus operations (such as meet and join) are used for the composition of identified reusable fragments into specification refining the specification of requirements. The meet operation T1 ⊓ T2 produces a type T as an ”intersection” of specifications of the operand types. The join operation T1 ⊔T2 produces a type T as a ”join” of specifications of the operand types [11]. To save space, we provide a complete definition only for join operation. 220 S. Stupnikov, L. Kalinichenko, and S. Bressan Definition 5. Generally type T – a result of an operation T1 ⊔ T2 – includes a merge of specifications of T1 and T2 . Common elements of specifications of T1 and T2 are included into the merge (resulting type) only once. Common elements of the types are defined by most common reducts RMC (T1 , T2 ) and RMC (T2 , T1 ). More formally OT1 ⊔T2 is defined as OT1 ⊔T2 = (OT1 \ ORMC (T1 ,T2 ) ) ∪ (OT2 \ ORMC (T2 ,T1 ) ) Type invariant of T is defined as a conjunction of operand types invariants InvT1 &InvT2 . The most important stage of CISD is the proof of the refinement relation between requirement type R and component composition of type C . Since predicative specifications of functions in the SYNTHESIS language are based on an undecidable first order logic, special methods and tools should be used for establishing of the refinement. In CISD for this purpose B-Technology [1] is used. B-Technology provides an implementation for formal specification language – Abstract Machine Notation (AMN) as well as tools (B-Toolkit[28]) for automatic/interactive proof of the refinement. AMN [2] is based on the first order predicate logic and Zermelo-Frenkel set theory and enables to consider state space specifications and behavior specifications in an integrated way. The system state is specified by means of state variables and invariants over these variables, system behavior is specified by means of operations defined as generalized substitutions – a sort of predicate transformers. Refinement of AMN specifications is formalized as a set of refinement proof obligations – theorems of first order logic. Generally speaking in terms of pre- and post-conditions of operations, refinement of AMN machines means weakening pre-conditions and strengthening post-conditions of corresponding operations included in these constructions. Proof requests are automatically generated by B-Toolkit and should be proven with the help of B-Toolkit theorem prover. To reduce refinement of SYNTHESIS type specifications to refinement of AMN specifications, specific program facilities were recently developed for automatic mapping of the canonical model (SYNTHESIS) specifications into AMN. These facilities were developed as a part of CISD tool [4] [5] and include a graphical user interface enabling an expert to select an appropriate type from the meta-information repository to map into AMN and a translator of the SYNTHESIS specifications into AMN. The paper introduces the principles of the canonical model into AMN mapping (section 4) and demonstrates their use for formal verification of complex services discovery and composition. 3 Specifications of Requirement and Web Services Compositional development includes several stages mentioned on Fig. 1. In this paper we concentrate on the stage of formal verification of the refinement assuming the previous stages to be done and results obtained. The stage of formal verification is marked in grey on Fig. 1. Some details about the stages omitted including ontological relevance check can be found in [4][5]. Interactive Discovery and Composition of Complex Web Services 221 Fig. 1. CISD Tool structure We shall consider formal verification of compositional development of a part of Funding Agency system managing finances aimed at support of research projects. A group of researchers prepares a proposal and registers it at the Funding Agency to obtain a grant. The funding Agency nominates experts to review proposals and decides whether to support a proposal or not. As a example of a requirement specification consider the type Secretary of a Funding Agency system. A secretary of the agency identifies a set of available experts (obtainExperts method), searches for relevant experts and reports the number of relevant experts (searchForExperts method). An expert is considered to be relevant if her or his research area is computer science. The secretary selects some relevant experts to review a proposal (dispatch method). An expert can be selected to review a proposal if and only if her or his area of expertise is the same as the research area of the proposal. The area of expertise of an expert can be more specific than the research area of the expert, for example data mining can be an area of expertise. Secretary type specification in the SYNTHESIS language is as follows. { Secretary; in: type; availableExperts: {set; type_of_element: Expert;}; obtainExperts: { in: function; params: {+exprts/{set; type_of_element: Expert;}}; {{ this.availableExperts’ = exprts }}; }; searchForExperts: { in: function; params: {-numberOfExperts/integer}; 222 S. Stupnikov, L. Kalinichenko, and S. Bressan {{ this.availableExperts’ = {exp/Expert | in(exp, availableExperts) & exp.researchArea = "computer sci"} & numberOfExperts = card(this.availableExperts’) }}; }; dispatch: { in: function; params: { +revi/Review }; {{ ^isempty(this.availableExperts) & ex exp/Expert (in(exp, this.availableExperts) & exp.area_of_expertise = revi.forProposal.area & revi.byExpert’ = exp) }}; }; } Input and output parameters of methods are marked by + and - respectively, term this denotes a reference to an instance of a type for which a method is called. Terms marked by apostrophe refer to the post-state of the system, builtin boolean function in checks whether an item belongs to a set, card function returns a cardinality of a set, isempty function checks whether a set is empty, ^ denotes logical not, ex denotes existential quantifier. We can assume that, as a result of the primary stages of compositional development, two Web services have been chosen to be relevant to Secretary type (requirement). A first service is Dispatcher service specified in OWL-S with grounding in WSDL. Pre-conditions and effects in this service are defined using SWRL [12]. To save space the Dispatcher service XML code is omitted: <wsdl:portType name="Dispatcher"> <wsdl:operation name="getExperts" ... </wsdl:operation> <wsdl:operation name="checkExpert" ... </wsdl:operation> <wsdl:operation name="countExperts" </wsdl:operation> </wsdl:portType> Dispatcher looks for all the specialists which are potential experts (operation getExperts). After that Dispatcher considers potential experts one by one and chooses relevant experts such that their research field is computer science (checkExpert method) and reports the number of relevant experts (countExperts method). Semantics of Dispatcher service is provided by the OWL-S service profile specification. To save space this XML code is omitted. A second service is the Executive service specified in the SYNTHESIS language and uses for pre-conditions and effects the formulae of the canonical model that is not tractable (as it uses full first order predicate logic). A specialist can be appointed to review a submission if and only if his/her field of expertise is the same as research field of submission, specialists with PhD degree are preferred (appoint method). { Executive; in: type; relevantExperts: {set; type_of_element: Specialist;}; expertsChecked: boolean; appoint: {in: function; params: { +revi/Evaluation }; Interactive Discovery and Composition of Complex Web Services 223 {{ this.expertsChecked = true & ^isempty(this.relevantExperts) & ( ex exp/Specialist(in(exp, this.relevantExperts) & exp.fieldOfExpertise = ev.submRef.field & exp.degree = "PhD" & revi.bySpecialist’ = exp) | ( all exp/(Specialist)((in(exp, this.relevantExperts) & exp.fieldOfExpertise = revi.submRef.field) -> exp.degree <> "PhD") & ex exp/(Specialist)(in(exp, this.relevantExperts) & exp.fieldOfExpertise = revi.submRef.field & revi.bySpecialist’ = exp) ) ) }}; }; } To satisfy the requirement specified by type Secretary it is required to create an appropriate composition of Dispatcher and Executive components. For this purpose WSDL+OWL-S specification of Dispatcher should be mapped into the Dispatcher type of the canonical model: { Dispatcher; in: type; experts: {set; type_of_element: Specialist;}; expertsGot: boolean; relevantExperts: {set; type_of_element: Specialist;}; expertsChecked: boolean; getExperts: { in: function; ... }; checkExpert: { in: function; ... }; countExperts: {in: function; params: {-numberOfExperts/integer}; {{ isempty(this.experts) & this.expertsGot = true & numberOfExperts = card(this.relevantExperts) & this.expertsChecked’ = true }}; }; } The required composition intended to refine Secretary type is the join of Dispatcher and Executive types that is DispatcherJOINExecutive type: { DispatcherJOINExecutive; in: type; experts: {set; type_of_element: Specialist;}; expertsGot: boolean; relevantExperts: {set; type_of_element: Specialist;}; expertsChecked: boolean; getExperts: { in: function; ... }; checkExpert: { in: function; ... }; countExperts: {in: function; ... }; appoint: {in: function; ... }; } Discovery of relevant services includes also the establishment of ontological relevance of structure and methods of requirement and component types. 224 S. Stupnikov, L. Kalinichenko, and S. Bressan Fig. 2. Ontological relevance diagram Specifications of requirement and pre-existing components must be associated with ontological contexts defining concepts of the respective subject areas. Here we assume that ontological concepts are described with their verbal definitions similarly to definitions of words in a dictionary. Fuzzy relationships between concepts of different contexts are established by calculating correlation coefficients between concepts on the basis of their verbal definitions. The correlation coefficients are calculated using the vector-space model [4]. This can be done with the help of CISD tool [4][5]. In this paper only the final picture of ontological relevance is presented on Fig. 2. Arcs on the figure denotes a relation of ontological relevance. For example, method appoint of type Executive, a pair of methods checkExpert and countExpert, four state attributes of type Dispatcher were established to be relevant to method dispatch of type Secretary, method searchForExperts, attribute availableExperts of type Secretaty respectively. Note that ontological relevance should be established also for types used in specification of requirement type Secretary (Proposal, Expert, Review types) and types used in composition of components type Dispatcher ⊔ Executive (Submission, Specialist, Evaluation types). In the example considered type Proposal was established to be relevant to the type Submission, type Expert – to the type Specialist, type Review – to the type Evaluation. 4 Formal Verification of Web Service Discovery To show that the discovery of Web services is correct, we need to prove that a relevant type of specification of requirements Secretary is refined by the composition of Web services obtained (Dispatcher ⊔ Executive). To use automatic/interactive tools of B-technology for proving the refinement it is required to map Secretary and Dispatcher ⊔ Executive types into AMN. In this section general principles underlying the mapping of the SYNTHESIS language into AMN is demonstrated by the example of mapping the Secretary Interactive Discovery and Composition of Complex Web Services 225 type into AMN. Mapping of abstract types into AMN is based on extensional principle: every type is represented by its extent – a constant set of possible instances of the type. For a set of interrelated types a special AMN construction is provided, so-called context machine. MACHINE FundingAgency structureContext SETS AVAL; . . . CONSTANTS Obj , . . . , ext Review , ext Secretary, ext Expert, . . . PROPERTIES Obj ∈ POW (AVAL) ∧ ext Review ∈ POW (Obj ) ∧ ext Secretary ∈ POW (Obj ) ∧ ext Expert ∈ POW (Obj ) . . . END It contains a definition of the extent of all object types – Obj which is a subset of the set of all abstract values (AVAL) expressible in the language and definitions of extents of all types required (ext Secretary, ext Expert , etc.). An extent of every type (for example, Secretary) is a subset of Obj : ext Secretary ∈ POW (Obj ). POW (Obj ) denotes a set of all subsets of the set Obj . An abstract type is represented in AMN by a separate construction: REFINEMENT Secretary INCLUDES Review SEES String TYPE , Bool TYPE , Expert, FundingAgency structureContext, . . . VARIABLES available experts INVARIANT available experts ∈ ext Secretary → POW (ext Expert) OPERATIONS . . . REFINEMENT is the most universal AMN construction, since it can be used both as refined and as refining machine in the hierarchy of refinement. Therefore this construction is most preferable for homogeneous representation of abstract types in AMN. This construction is composed with context machine, with machines corresponding to other types used (Expert, Review, etc.) and to auxiliary constructions (String TYPE , Bool TYPE ) with the help of AMN composition facilities (SEES, INCLUDES [2]). State attributes of a type is represented in AMN by variables. Variables are appropriately typed as total functions from extent of the type into a type of the attribute in the INVARIANT section. Methods of a type are represented in AMN as operations defined as generalized substitutions [2]. Every operation is of sort op = S Here op is an operation signature, S is a substitution, defining the effect of the operation on the state space. The Generalized Substitution Language (GSL [2]) provides for description of transitions between system states. Each generalized substitution S defines a predicate transformer, linking some post-condition R with its weakest pre-condition [S ]R. This guarantees preservation of R after the operation execution. In such case we say that S establishes R. We shall use substitutions given in the table 1. 226 S. Stupnikov, L. Kalinichenko, and S. Bressan Here S , T stand for substitutions, x , y, t are variables, E , F denote expressions, G, P are predicates, P {x → E } denotes predicate P having all free occurrences of variable x replaced by E . Table 1. The Generalized substitutions and their semantics The generalized substitution S x := E x := E || y := F ANY t WHERE G THEN T END S; T [S ]P P {x → E } [x , y := E , F ]P ∀ t • (G ⇒ [T ]P ) [S ][T ]P To save space full representation of a method by AMN operation is provided only for the method searchForExperts of the type Secretary. receiveExperts(av , expts) = . . . dispatch(av , revi ) = . . . numberOfExperts ← searchForExperts(av ) = PRE av ∈ ext Secretary THEN ANY v 1, numberOfExperts1 WHERE v 1 ∈ POW (ext Expert) ∧ numberOfExperts1 ∈ NAT ∧ ∃(exprts).(exprts ∈ POW (ext Expert) ∧ (exprts = {exp | exp ∈ ext Expert ∧ exp ∈ availableExperts(av ) ∧ researchArea(exp) = ”computer sci”} ∧ v 1 = exprts ∧ numberOfExperts1 = card (exprts))) THEN availableExperts(av ) := v 1; numberOfExperts := numberOfExperts1 END END This example demonstrates some principles of mapping SYNTHESIS specifications of mixed pre and post-conditions of methods (formulae of typed first order logic) into AMN generalized substitutions. The general idea is to extract terms referring to the system post-state from a formula and replace them by auxiliary variables. In case of searchForExperts method these terms are this.availableExperts’ and output parameter numberOfExperts. Auxilary variables are v 1 and numberOfExperts1. After that the formula should be transformed into AMN predicate: every term, built-in operation or logical operation of the formula should be transformed into AMN expression, built-in operation or logical operation. Note that every operation has an obligatory input parameter av that denotes an instance of the type for which a method is called (parameter av is a representation of this reference). In the same way the composition type Dispatcher ⊔ Executive is mapped into AMN construction DispatcherJOINExecutive. Interactive Discovery and Composition of Complex Web Services 227 REFINEMENT DispatcherJOINExecutive INCLUDES Evaluation SEES String TYPE , Bool TYPE , Submission, Expert, Specialist, FundingAgency structureContext VARIABLES dispatcher, relevantExperts, expertsGot, experts INVARIANT dispatcher ∈ POW (ext Dispatcher) ∧ relevantExperts ∈ ext Dispatcher → POW (ext Specialist) ∧ expertsGot ∈ ext Dispatcher → BOOL ∧ experts ∈ ext Dispatcher → POW (ext Specialist) ∧ . . . OPERATIONS getExperts(av ) = . . . numberOfExperts ← countExperts(av ) = PRE av ∈ ext Dispatcher THEN ANY v 1, numberOfExperts1 WHERE v 1 ∈ BOOL ∧ numberOfExperts1 ∈ NAT ∧ experts(av ) = ∅ ∧ v 1 = TRUE ∧ numberOfExperts1 = card (relevantExperts(av )) THEN expertsGot(av ) := v 1; numberOfExperts := numberOfExperts1 END END ; checkExpert(av ) = PRE av ∈ ext Dispatcher THEN ANY v 2, v 1 WHERE v 2 ∈ POW (ext Specialist) ∧ v 1 ∈ POW (ext Specialist) ∧ ¬ (experts(av ) = ∅) ∧ ∃(exp).(exp ∈ ext Specialist ∧ exp ∈ experts(av ) ∧ (researchField (exp) = ”computer sci” ∧ v 1 = {exp} ∪ relevantExperts(av ) ∨ researchField (exp) = ”computer sci” ∧ v 1 = relevantExperts(av )) ∧ v 2 = experts(av ) \ {exp}) THEN experts(av ) := v 2; relevantExperts(av ) := v 1 END END ; appoint(av , revi ) = . . . END . Mapping of services presented in the SYNTHESIS language into AMN is done automatically by means of mapping facilities developed as a part of CISD tool. These facilities implement principles introduced above. The last stage of the proof consists in applying the automation facilities of B-Technology to prove that construction Secretary is refined by construction DispatcherJOINExecutive. Complex proofs are carried out with human expert intervention. We use B-Toolkit 5.4.1. In the example at hand, it automatically 228 S. Stupnikov, L. Kalinichenko, and S. Bressan formulated 20 theorems, expressing the fact that construction Secretary is refined by construction DispatcherJOINExecutive. Large number of theorems is explained by automatically subdividing complex theorems by the tool into simpler ones to prove them independently. In the table 2 total number of theorems formulated and number of theorems automatically proved are shown. Table 2. The number of theorems Number of Number of theorems automatically proved theorems Theorems of the initialisation refinement 6 1 Theorems of refinement for operation getExperts 3 2 Theorems of refinement for operation checkExpert 4 3 Theorems of refinement for operation searchForExperts 2 1 Theorems of refinement for operation dispatch 5 3 Total number of theorems 20 10 Complete proof of all the refinement theorems make us sure that discovered services and their proper composition implement the requirement specification. 5 Related Work In order to enhance Web service descriptions, existing approaches extend UDDI or WSDL. For instance, [23] combines OWL-S and UDDI by embedding an OWL-S profile description into a UDDI data structure. The UDDI registry is augmented with an OWL-S matchmaking component. [8] uses OWL-S profile elements with no corresponding UDDI. It defines specialized UDDI T-Models for each unmapped elements in the OWL-S Profile. Mechanisms for augmenting WSDL to provide semantic descriptions and for enhancing UDDI to provide semantic discovery are defined in [20]. Extensions to Web service description are presented as annotated WSDL 1.1 files. The internal organization of UDDI data structures are modified to act as place holders of semantic information [18]. In the SYNTHESIS CISD we combine the canonical model and UDDI similarly to [23]. A number of capability matching algorithms have been proposed for OWLS. They use the service descriptions in the Service Profiles and the ontologies that are available to decide whether there is a match between service requests and advertisements. A first family of approaches relies on an extensive ontology where OWL ontological classes in request and advertisements are compared. The matching process [13] is reduced to subsumption between the classes in the ontology. Different degrees of matching can be detected. A second family represents capabilities in terms of the state transformation. The respective matchmakers [14][19][3][22] compare the state transformation described in each advertisement to the one described in the request. They compare Interactive Discovery and Composition of Complex Web Services 229 both outputs and inputs of the IOPEs. If the output required by the requester subsumes that of the advertisement, then the inputs are checked. If the inputs requested are subsumed by the input acceptable to the service, then the service is a candidate. Distinctively, our approach uses a full first-order predicate language, which is more powerful than description logic as used in OWL-S. In our approach, it is possible to interactively prove a refinement relation between type specifications. Type specifications are used as ontological concept definitions as well as abstract specifications of services. A Service aggregation matchmaking (SAM) [7] can be used to match queries with service registries enriched with OWL-S ontologies. SAM provides more flexible matching with respect to matchmakers of the entire services. It performs a fine-grained matching at the level of atomic processes and sub-services. It can return (when no full match is possible) a list of partial matches. The service discovery approach proposed in our work is a significant Generalization of the SAM capabilities. According to the compositional calculus used, we discover the most common reduct (fragment) of request and advertisement services and try to construct a composition of such common reducts developed for existing advertisements that should refine the request [4]. 6 Conclusion In this paper we reported the latest results that we obtained extending the CISD method for compositional information systems development to the semantic composition of Web services. The CISD method has been developed for correct composition of software components. It was originally designed [4] for object-oriented platforms (like CORBA, RMI, J2EE). In CISD, an ontological model and a canonical object model (both based on the SYNTHESIS language) are used for the unified representation of the new application (specification of requirement) and of the pre-existing components. Discovering of components relevant to the application and producing their compositions are provided in frame of the domain ontology and the canonical object model. In 2003, we started to investigate the application of the CISD method to the composition of Web services. We studied the mapping of WSDL specifications into the canonical model and we defined the basic steps in the composition of Web services [5]. Meanwhile, the lack of semantic interoperability of Web service infrastructure motivated researchers to develop rich specifications catering for semantically well-founded reasoning about services. Focusing on the realization of complex processes and considering an interactive active approach that allows harnessing the intractability of full first order logic, we now present a novel approach extending and adapting CISD to web service composition. The approach leverages a mapping of the SYNTHESIS language into the Abstract Machine Notation (AMN). AMN is a formal method providing for interactive proof of a refinement relation between type specifications. The paper shows by example how the CISD method extended with such mapping can be applied for interactive provable discovery of the application relevant 230 S. Stupnikov, L. Kalinichenko, and S. Bressan complex Web services to develop their composition refining a specification of requirement. We are convinced that such approach can co-exist with approaches based on OWL-S or similar ideas for applications where automatic service discovery does not constitute the absolute requirement and can be done interactively (semi-automatic) with human expert intervention. We are currently applying the approach that we have presented to the composition of services in the e-science framework of the Virtual Observatory in astronomy [6] project. References 1. Abrial J.-R. B-Technology. Technical overview. – BP International Ltd., 1992. 2. Abrial. J.-R. The B-Book. – Cambridge University Press, 1996. 3. T. Andrews, et. al. Business Process Execution Language for Web Services // http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/ – 2003. 4. Briukhov D.O., Kalinichenko L.A. Component-based information systems development tool supporting the SYNTHESIS design method // Advances in Databases and Information Systems: Proc. of the Second East European Conference. – BerlinHeidelberg: Springer-Verlag, 1998. – P. 305-327. 5. Briukhov D.O., Kalinichenko L.A., Tyurin I.N. Extension of Compositional Information Systems Development for the Web Services Platform // Advances in Databases and Information Systems: Proc. of the Second East European Conference. – Berlin-Heidelberg: Springer-Verlag, 2003. – P. 16-29. 6. Briukhov D.O., Kalinichenko L.A. et. al. Information Infrastructure of the Russian Virtual Observatory (RVO). – http://synthesis.ipi.ac.ru/synthesis/publications/ rvoii/rvoii.pdf – Moscow: IPI RAN, 2005. – 173 p. 7. A. Brogi, S. Corfini, R. Popescu. Composition-oriented Service Discovery // Department of Computer Science, University of Pisa. 8. Colgrave et. al. Using WSDL in a UDDI Registry // UDDI TC Note. – 2003. 9. D.Fensel, C. Bussler. Web Services Modeling Framework // Electronic Commerce: Research and Applications. – http://www.wsmo.org/papers/publications/ wsmf.paper.pdf – 2002. 10. Kalinichenko L.A. SYNTHESIS: the language for description, design and programming of the heterogeneous interoperable information resource environment. – Moscow, 1995. 11. Kalinichenko L.A. Compositional Specification Calculus for Information Systems Development // Advances in Databases and Information Systems: Proc. of the 3rd East European Conference. – Berlin-Heidelberg: Springer-Verlag, 1999. – P. 317-331. 12. Kalinichenko L.A., Skvortsov N.A. Extensible ontological modeling framework for subject mediation // Proc. of the Fourth Russian Scientific Conference ”DIGITAL LIBRARIES: Advanced Methods and Technologies, Digital Collections. – Dubna, 2002. 13. L. Li, I. Horrocks. A Software Framework for Matchmaking Based on Semantic Web Technology // Proc. 12th Internationall World Wide Web Conf. – 2003. 14. D. Martin, et. al. Bringing Semantics to Web Services: The OWL-S Approach // J. Cardoso and A. Sheth (Eds.): Proc. SWSWPC 2004, LNCS 3387. – Springer, 2005. 15. Kalinichenko L.A., Skvortsov N.A. Ontology reconciliation in terms of type refinement // Proc. of the Sixth Russian Conference on Digital Libraries RCDL2004. – Pushchino, 2004. Interactive Discovery and Composition of Complex Web Services 231 16. OWL Web Ontology Language Reference // http://www.w3.org/TR/owl-ref/ 17. OWL-S Coalition. OWL-S 1.0 Release // http://www.daml.org/services/owl-s/ 1.0/ 18. M. Paolucci, T. Kawamura, T. Payne, K. Sycara. Importing the Semantic Web in UDDI // Proc. of Web Services, E-Business and Semantic Web Workshop, CAiSE. – 2002. 19. M. Paolucci et al. Semantic Matching of Web Services Capabilities // The Semantic WebISWC 2002: First International Semantic Web Conf., LNCS 2342. - - SpringerVerlag, 2002. 20. P. Rajasekaran, J. Miller, K. Verma, A. Sheth. Enhancing Web Services Description and Discovery to Facilitate Composition // LSDIS Lab, Computer Science Department, University of Georgia. – Athens, 2004. 21. Simple Object Access Protocol (SOAP) 1.1 // W3C Note 08 May 2000. – http://www.w3.org/TR/SOAP/ 22. E. Sirin, B. Parsia, J. Hendler. Filtering and Selecting Semantic Web Services with Interactive Composition Techniques // IEEE Intelligent Systems. – July/August 2004. 23. N. Srinivasan, M. Paolucci, K. Sycara. Adding OWL-S to UDDI, implementation and throughput // Robotics Institute, Carnegie Mellon University. – 2003. 24. S.A. Stupnikov. Automation of refinement verification in information systems compositional design// The Systems and Means of Informatics: Special Issue Formal Methods and Models for Compositional Infrastructures of Distributed Information Systems.— Moscow: IPI RAN, 2005. – P. 96-119. (In Russian) 25. SWRL: A Semantic Web Rule Language: Combining OWL and RuleML // W3C Member Submission 21 May 2004. – http://www.w3.org/Submission/SWRL/ 26. UDDI Version 3.0 Specification // http://uddi.org/pubs/uddi v3.htm 27. Web services description language (wsdl) 1.1 // W3C note 15 March 2001. – http://www.w3.org/tr/wsdl/ 28. http://www.b-core.com/ONLINEDOC/BToolkit.html