Chapter 2: Background and Fundamentals
2.5 Modeling and Verification of Web Service Composition
2.5.2 Tools
In this section, we introduce two prominent public domain model-checking tools which can also be used to model and verify composite web service and workflows, namely SPIN [65] and CPN tools [73].
51
SPIN
SPIN is an automata-based model checker for verifying the correctness of distributed soft- ware. It verifies systems that are described in Promela (Process Meta Language), which supports modeling distributed algorithms as non-deterministic automata. The properties to be verified by SPIN are described by Linear Temporal Logic (LTL) formulas.
In order to use SPIN to verify composite services, the execution process of composite services, for example expressed by BPEL, needs to be translated into Promela. A lot of works have focused on the translation of BPEL into Promela, such as [55][56][57] etc. We omit their details here.
CPN Tools
CPN Tools is a tool for editing, simulating and analyzing colored Petri Nets [73][90]. Col- ored Petri Nets (CP-nets or CPN) is a graphical oriented language for design, specification, simulation and verification of systems. It extends the classical Petri Nets with colors (to model data), time (to model durations), and hierarchy (to structure large models). Simi- lar to classical Petri Nets, CPNs uses transition, place, and token as well. Because of these characteristics, CPNs is in particular well-suited for modeling and verifying composite web services. Related works are [138][73][47], etc.
Chapter 3
EFFICIENT IR-STYLE SEARCH OVER WEB SERVICES
3.1 Introduction
A web service is programmatically available application logic exposed over the Internet. It can be accessed and invoked via standards such as XML, WSDL, UDDI and SOAP. With the rapid development of e-commerce over Internet, web services have attracted much at- tention in recent years. Nowadays, enterprises are able to outsource their internal business processes as services and make them accessible via the Web [34]. Then they can combine individual services into more complex, orchestrated services. As the number of web ser- vices and Service Oriented Computing applications increases, there is a growing need for mechanisms for discovering services efficiently. Effective mechanisms for web services discovery and ranking are critical for organizations to take advantage of the tremendous opportunities offered by web services, to engage in business collaborations and service compositions, to identify potential service partners, and to understand service competitors and increase the competitive edge of their service offerings [43].
Web services discovery introduces many new challenges. First, current web services discovery methods are mostly based on the UDDI-registry. To find a service in UDDI, a user needs to browse the relevant UDDI category to locate relevant web services. Consid- ering a large amount of service entries, this process is time consuming and frustrating. So, we need an effective mechanism for automatic web services discovery. Second, a user’s
53
requirement for desired web services may not always be precise and a service discovery mechanism can potentially return a large number of results to satisfy the user’s require- ment, especially when a large service repository is available. Consequently, an important requirement for web services discovery is to rank the discovered results so that the most relevant services appear first. Finally, a good web services discovery mechanism should also be able to assist users in selecting relevant services and combining them. For example, a typical strategy would allow users to see the services before they can start composing their application. Consider the four services shown in Figure 3.1. The second and the third services can process the order information for one transaction provided that a buyer’s or- der has been generated, whereas the first and the fourth services provide the buyer’s order according to her requirement. Obviously, it is reasonable to say the first and the fourth services are more important than the others since they contribute indispensable informa- tion for the other two services to be invoked. So, an ideal ranking strategy should put the first or the fourth service on top. Also, as we can see from Figure 3.1, there are two links between the first and the second and the third services respectively, in which the output
of CreateOrder service, BuyingOrder, is also the input of both ProcessPayment service
and TransportOrder service. The two links apply to the fourth service, too. This form
of link potentially involves more web services and thus is particular useful in web service composition.
To address the problems above, in this chapter we propose a novel IR-Style mecha- nism for discovering and ranking web services automatically, given a textual description of desired services. The contribution of the work reported here is summarized as follows:
WS1: Web Service: CreateOrder Operation: OrderBuilder
Input: UserID DataType: int Requirement DataType: ItemList
Output: ProductsList DataType: BuyingOrder
WS2: Web Service: ProcessPayment Operation: CheckoutOrder
Input: UserProducts DataType: UserOrder
Output: PaymentConfirmation DataType: bool
WS3: Web Service: TransportOrder Operation: ShippingOrder
Input: Cargo DataType: Order Output: PickupTime DataType: TimeLimit WS4: Web Service: OrderGeneration
Operation: GetOrder
Input: UserName DataType: String
Output: MyProducts DataType: PurchaseOrder
Figure 3.1: Sample web-service operations
level 0 level 1 level 2 level 3 level 4 Order
OrderID [, ] ProductParts ExpectedShipDate
CustomerName CustomerContacts [m, n]
[ |] Part
Telephone email PartName PartPrice PartQuantity
55
service relevanceandservice importance, respectively as two desired properties for measuring the preference degree.
2. We design novel algorithms for computing the relevance and importance degree of services. Our algorithms take into account both textual and structural information of web services.
3. We defineservice connectivity, a novel metric to evaluate the importance of services. In addition, we also develop a new schema tree matching algorithm to measure the service connectivity.
4. We present an approach to identify associations between web-service operations based on service operations matching. This approach uses the concept of attribute closureto obtain sets of operations. Each set is composed of associated web-service operations.
5. We do various experiments to search for desired web services. Initial results show that the proposed IR-style search strategy is efficient and practical.
The rest of this chapter is organized as follows. Section 3.2 reviews the related work. Section 3.3 introduces the conception of preference degree for service ranking. Section 3.4 and Section 3.5 present models and definitions for service relevance and service impor- tance, followed by Section 3.6, in which we present algorithms for ranking web services. An approach to identify associations between web-service operations is presented in Sec- tion 3.7 based on service operation matching. In Section 3.8 we describe our experimental evaluation. Section 3.9 gives some concluding remarks.