Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Public Web services are accessible and available Web services in the Internet. They are generally published within Web portals, catalogues or repositories directly managed by their providers (Fan and Kambhampati 2005). At the back end, service providers are not obliged to respect the UDDI standard for the implementation of their repositories (Wu and Chang 2007). Service providers offer to end users service lookup interface implemented within their repositories, and end users can invoke directly a found service from those repositories (AbuJarour et al. 2010).

Recent access to seekdaFootnote 1 shows around 28,606 public Web services out of 7,739 providers, which is not negligible as a source of interest in promoting SOA adoption to a larger public than the one traditionally identified in intra-corporate environment. However, exploiting those publicly exposed Web services may come with some challenges due to the following facts:

  • Poor textual documentation found in service description makes end users put more effort in understanding what a service can do, what it needs as input and what it can produce as output. Consumers may have to infer the operation names or message types used in the service in order to utilize them correctly (Li et al. 2007).

  • Poor semantic extension reduces considerably the possibility to automate different essential tasks such as Web service discovery, composition and substitution. Semantic mark-up on Web services comes from Web semantic communities by extending original WSDL descriptions with various semantic formalisms based on ontology. Several available formalisms do not really facilitate the automation process but bring somehow burdens to both service providers, in choosing an appropriate formalism and domain ontology to use as semantic annotation, and consumers in acquiring expertise to construct discovery query or building business process schema for composing Web services (Hageman).

  • Non-situational refers to the fact that public Web services are for general-purposed usage. They are not predestined to be used in a planned composition schema or any specific context. End users can consume them appropriately in their own ways which could be different from the original applicative aims targeted by service providers (Tanaka et al. 2008).

Difficult usage begets hard reuse. In effect, Web service reuse can be simply and practically put as several or repetitive usages of the same Web service instance through time and within different situations. The service is designed and published once, then used and reused over and over again by different consumers in different contexts. Web service reuse is strongly influenced by its usage and represents a great return on investment if it is well achieved.

Public Web services that are available “on the Web” provide unlimited values for a great number of online service consumers and developers, whereas most private registries would focus on a specific, closed domain such as the corporate network (Wu and Chang 2007). Hence, in an open, loosely coupled, demand-driven business environment, a maximal reuse of public Web services is still essential to SOA adoption from a wide range of users such as service consumers, service developers and service brokers.

In this chapter, we would like to tackle the reuse of publicly available Web services from the end-user point of view. In effect, after being published, end users discover, select and consume public Web services in their applications. They are then apt to comment such services on functional or non-functional aspect. Such feedbacks are recommended as supplementary semantics of Web services and can be served to enhance the discoverability and the recommendability of those services (Loutas et al. 2009; Petrie 2009; El-Goarany et al. 2008). Other users would consider if a service can be reused in their application based on the other usage experiences. We attempt in this chapter to provide a simple way by which users can express their service usage experiences. We outline a set of service reusability criteria and show how end-user feedback on the services can be used to satisfy those criteria and reinforce implicitly the service reusability.

This chapter is organized as follows: Sect. 2 discusses related works on Web service reusability and offers a synthesized set of criteria on Web service reusability. Section 3 proposes a formalism allowing end users to express their service usage experiences. Section 4 presents the architecture of a supporting system exploiting aforementioned feedbacks to promote and enhance Web service reusability. We end up with a conclusion and perspective on future works.

2 Related Works

Web service reusability is generally discussed as an issue in service design phase and rarely in consumption phase (published and ready to use). A main challenge is how to bridge the gap between Web services and general public. In effect, the benefit from reusable Web services helps consumers in getting better return on investment because the services can be employed in different situations in their applications and providers in attracting more consumers, gaining more credibility and being more trustworthy.

The existing works on reusable Web services are mostly focused on service providers rather than considering end-user perceptions on services. In Dan et al. (2008), reusing Web services refers to good governance in SOA lifecycle. The proposal is very enterprise oriented and consists of using a common language with consistent business term to describe services, governing new service creation and discovery of existing services, providing assurance to both service users and owners and supporting new requirements against existing services. Following the same idea, the proposal in Chu and Qian (2009) considers designing reuse-oriented Web service through a top-down process by modelling business requirement as business processes, breaking them down and identifying fine-grained requirement before the real service design. These two solutions may be applied efficiently in supervised and inter/intra-corporate environment where business terms can be controlled by internal glossary or domain ontology; business processes are predefined, imposed and slightly evolving, and expertise in SOA governance is present. In contrary, public Web services use the Internet, and the latter represents an unsupervised environment but focuses more on end users. Therefore, applying the aforementioned concepts to public Web services may not bring interesting outcome.

Besides, another work is interested in providing reusable data-centric Web services (Saleh et al. 2009) through a formal specification of Web service model. Their model attempts to deal with the interpretation of data that must be marshalled between service consumers and producer systems. It is again an answer to reusability of a specific kind of Web service and may not cover all existing categories found among public Web services.

Nonetheless, Bechara and Feuerlicht and Wijayaweera (2007) consider reusable Web services as respecting some general criteria:

  • Loose coupling: between services, it refers to minimal dependency among them and between providers and consumers; it means that the service providers shall hide service implementation detail from their consumer by using standard interface (e.g. WSDL, SOAP messages).

  • Functional cohesion: a service can contain several operations, and each of them should execute a specific task in order to guarantee the modularity of services.

  • Granularity: it is normally hard to achieve. Coarse-grained services return the result after aggregating several response messages. They are then easy to identify. Fine-grained services execute elementary function. They need more breakdown to identify lowest-level elementary actions that they will implement.

  • Statelessness: it refers to the fact that during its execution, a service does not wait for any event or callback. There should not be any temporary state during a service execution because it can be very costly to take into account such states.

  • Autonomy: it refers to autonomous resource usage of a service (e.g. databases, documents).

  • Discoverability: ability of a service to be identified given a user request that expresses his/her requirement.

  • Composability: ability of a service to participate in a composition or a mashup scenario given a requirement.

From user point of view, we reduce these reusability criteria into usability, discoverability and composability. Usability covers, in effect, loose coupling, functional cohesion, granularity, statelessness and autonomy. This criterion (usability) requires works from service providers to realize, particularly in service design time. Once a service respecting this criterion is published and deployed, it should only be or seen as runnable or executable by consumers via testing or try interface provided by service providers. Thus, service usability is designed by service providers and perceived by consumers.

Discoverability and composability, however, can depend both on textual documentation and/or semantic annotation that service providers attach with their services. The mentioned supplementary information can be consulted by service end users but may submerge them into technical difficulty in interpreting or understanding how to use the documented or annotated services. We are facing problems related to common terminology and domain ontology usage between service providers and consumers. Moreover, expertise at both sides is needed in order to work coherently on the service semantic annotations and to construct correct semantic discovery or composition requests.

In the actual work, we choose to tackle the public Web service reusability from end-user point of view by encouraging end users to express their service usage experience for the benefit of the others in the community. We initiate our proposal based on the following observation (see Fig. 50.1):

Fig. 50.1
figure 00501

Public web service lifecycle seen by end users

We consider that end users can observe what happens when they use a service and can report what goes through their perceptions to the others and make them taking profit from previous usage experiences to enhance on one hand the reusability of Web services and on the other hand provide real situational meta-data on published Web services to their communities. Our approach is oriented to socially provided service semantics as advocated by Averbakh et al. (2009), Jansen et al. (2008), and Leitner et al. (2009). We then have to provide possibilities to end users, allowing them to express their usage experience in a simple way and to exploit those experiences to promote public Web service reusability.

3 Expressing Service Usage Experience

We define the process of providing service usage experience as a socialization one. It is based on a simple observatory hypothesis which is “more a service is socialized, more it has been tested or tried”. If a service is repetitively used in various situations, then it is considered as reusable. In this case, functional aspect interests us more than non-functional one. In effect, the latter is often use to compute the selectivity of Web services.

We opt for collaborative socialization process, i.e. users can comment on the services they have been using, and those comments are available to other users. Comments from different users on a service are aggregated to reflect the importance of the commented service. Thus, collaborative tagging (Papathanasiou et al. 2009) is a relevant option for expressing this kind of feedback after using, testing or trying a service.

A service (taggable object) can be tagged by several users with several tags. A tag can be used by several users to tag several services. Therefore, the tagging model can be summarized as a triplet <User, Tag, TaggableObject> (see Fig. 50.2). The model illustrated above can be stored in the folksonomy base in our supporting system.

Fig. 50.2
figure 00502

Folksonomic tagging model

Expressing a service usage experience consists then of reporting on it usage situation, what operation has been used, what input is required and what output is produced. Such information can be observed during a test or a try on a service.

According to the structure of WSDL that is normally used to describe Web services, a Web service can be considered as an object that can be parsed into several operations, and each of them is respectively into several pairs of input and output. We allow end users to express such features related to a service they used in their usage experience by focusing particularly on the functional capacity of the service (see Fig. 50.3).

Fig. 50.3
figure 00503

Different taggable item in a Web service

Using tags is both flexible and easy for nonexpert consumers. However, synonymy of terms can generate ambiguity in providing the correct meaning of a used term. Therefore, our tag is associated with a meaning. Each tag has a weight which is its occurrence number, and this weight reflects the importance of the tag related to the tagged service. We impose a simple tagging convention by using “;” as separator, “{}” as block definition and “_” for multiple term tag (see Fig. 50.4 for an example: {flight, sense{flight, 0}, 10} means that the tag “flight” is associated to the first meaning found in the term meaning base (indexed by 0) and is tagged 10 times on the service).

Fig. 50.4
figure 00504

Tags associated to WS1

The next section depicts how we can exploit the user-provided annotation on Web services to promote and enhance the reusability of public Web services. We emphasize on the fact that a reusable Web service is most likely usable, discoverable and composable. These criteria should be perceived by end users within public Web service lifecycle in order to encourage them to use and then reuse the published Web services.

4 Public Web Service Reuse Supporting Framework Architecture

The main goal of this supporting framework is twofold: service providers can use it to advertise their published Web services with help from end-user community by making their service more and more usable, discoverable and composable. Service consumers, via this framework, should be able to test, try, use, discover, compose, substitute and annotate published Web services (see Fig. 50.5).

Fig. 50.5
figure 00505

Supporting framework for public Web service reuse

This system is divided into several modules. It also depends on a tag sense base that contains not only a terminological relationship base between tags such as synonym but also for each tag an array of possible meanings associated to that tag. Several existing lightweight knowledge bases or thesaurus can be used to implement our tag sense base such as WordNet,Footnote 2 Wikipedia, Common TagFootnote 3 or DBpedia.Footnote 4 However, we cannot use exclusively one of them to disambiguate in the tagging process. In effect, on one hand, we search for simple visual sense array proposed to end users while they are entering a tag having multiple senses and, on the other hand, we aim at finding the tag relatedness such as synonymy relation in order to extend the Web service discovery and composition space. Using WordNet with one among the rest of the aforementioned candidates seems very plausible.

Tagger module allows end users to provide comment, feedback or usage experience (tag or annotate) on a Web service. Each given tag is disambiguated thanks to tag sense base, and finally, the triplet <user, tag, annotated item> is stored in the folksonomy base (see Fig. 50.6).

Fig. 50.6
figure 00506

User-system interaction while expressing a service usage experience

Tag browser module allows end users to visualize tagged Web services and the end users having tagged services given a selected tag to browse. This module gives an insight on what tags have been used and by what users before commenting a service. It can help the tagging user to choose the already used tags to express his/her usage experience (see Fig. 50.7).

Fig. 50.7
figure 00507

User-system interaction while browsing a tag for services or users

Retriever module allows end users to discover tagged Web services based on tags. Looking up Web services this way is more extensive and richer than using simple keyword because in our case, tags are disambiguated and bundled into a structure. We then exploit the lexical and structural information related to the searched services. Moreover, inside the service usage experience expression, usage situation is given, and it can help enhance the quality of discovery process. A discovery request must be formalized as how tags are organized around services. It is represented by four tag vectors (usage situation, operation, input and output), but each tag item has no weight (see Figs. 50.8 and 50.9). Tag-wise similarity is the core of the discovery algorithm, and we define that two tags are identical if and only if they share the same meaning and the same term. Two tags are similar if they have synonymy relatedness or their meanings reveal a certain degree of textual similarity (e.g. computed by co-occurrence, cosine, Jaccard or dice measures) (Cattuto et al. 2008).

Fig. 50.8
figure 00508

Discovery request model

Fig. 50.9
figure 00509

Textual example of discovery request

Recommender module can be used as the extension of the three above modules. Its role is to exploit the co-occurrence between tags, determine which tag appears frequently with another, compute closeness of user profile generated from tagging activity in order to propose similar service tagged by user having the similar profile and propose other services tagged by similar tags.

Composer module allows end users to establish a visual composition of a number of services by drag-and-drop actions. After a service is dropped in the composition space, the system has to look up for the most appropriate candidate to pipe from its output by exploiting the exact or similar tag match. This module is served as a concept-proof of likely composability of a chosen service. It is still very hard to achieve real composite services this way due to input, output and constraint on manipulated data type.

5 Conclusion and Future Works

The main contribution of this chapter lies in the identification of service reusability features. We then propose a tagging model allowing service consumers to express their usage experience by using tags. We bring in the concepts of using tags to enhance or promote the likely usability, discoverability and composability of services. We propose also some service recommendation mechanisms and the concept of visual service composition.

Then, we provide the architecture of a supporting system that allows end users and service providers to easily enhance and promote public Web service reuse. It can also be a potential candidate to be employed for realizing different tasks such as:

  • Web service discovery at design time: service-oriented application engineers can dispose of such system to assist his/her task in finding services that are relevant to the functional requirement of clients. Such system allows engineers to browse different services in the enterprise collection by simple tags and formulate easily his/her request by just following a simple guide. Usage experience of services can be shared among engineer community to improve the reuse of locally available Web services, if those engineers care enough participating in the tagging activities after testing or using the services.

  • User-assisted Web service composition: when a user would like to have on-time effects or interventions on the composition of Web services, he/she can check the tag clouds at his/her disposal for atomic service that responds to his/her prompt need in order to create his/her composite service. The need formulation is easy, and our tagging model favours the annotations on input/output of Web services which are habitually useful for the composition process.

  • User-oriented and semi-automatic Web services clustering or classification: with the increasing number of tags on functionality of services provided by users, the expression of actual usage of services can be deduced. By employing efficient text or data mining algorithms, the clustering or classification of such annotated service collection is more than feasible and can bring interesting outcome.

  • User-centric Web service recommendation: collaborative tagging provides meta-data in form of tags which can be exploited in the recommendation process based on collaborative or user profile-based filtering.

However, dealing with tags provokes some issues also such as tag bombing or tag spamming. We do not tackle such issues in the scope of this chapter.

As the perspective of our proposal, technical issues need to be studied in order to implement an appropriate system based on our aforementioned architecture. Several elements need to be considered such as the complexity of tag disambiguation process, the quality and scalability of service discovery and composition based on tags. Service recommendation process should be studied in more detail in order to exploit the minimum amount of data for the acceptable results.

To sum up, we attempt to promote the likelihood of public Web service reuse by socializing those services. Service providers can take benefit from such approach without heavy additional work. End users are however encouraged to express their service usage experience in a collective and collaborative environment in order to promote service reusability.