Different Web Service standards like WSDL, WS-Security, WS-Policy etc., henceforth referred to as WS*, factorize Web Service management tasks into different aspects, such as input/output, workflow, or security. The advantages of WS* are multiple and have already achieved industrial impact. WS* descriptions are exchangeable and developers may use different implementations for the same Web Service description. The disadvantages of WS*, however, are also apparent: even though the different standards are complementary, they must overlap and one may produce models composed of different WS* descriptions, which are inconsistent with each other, but the reasons for the inconsistencies are not easily determined. This is the case because there is no coherent conceptual model of WS*, i.e. terms with equivalent semantics are introduced differently in the respective XML-DTDs. Thus, it is impossible to ask for conclusions that come from integrating different WS* descriptions. Hence, discovering such Web Service management problems or asking for other similar kinds of conclusions that derive from the integration of WS* descriptions remains a purely manual task to be done by the software developers accompanied by little to no formal machinery.
Researchers investigating Semantic Web Services have clearly articulated these shortcomings of WS* standardization and have been presenting approaches to counter some of them [6]. The core of their proposals lies in creating semantic standards, their principal objective being a far-reaching formalization that allows for full automation of Web Service management tasks such as discovery and composition. Again, the potential advantages are obvious; the disadvantages, however, are also apparent: It is unclear, what kind of powerful machinery could constitute a semantic model allowing for full automation, and indeed such full automation appears to be outside the scope of real-world software applications within the foreseeable future.
Therefore, we postulate that semantic management of Web Services should not try to tackle full automation of all Web Service management tasks as its objective, as this requires an understanding of the world that is too deep to be modelled explicitly. Instead, we foresee a more passive role for semantic management of Web Services. One that is driven by the needs of the developers, who must cope with the complexity of Web Service integration and WS* descriptions. They could use valuable tools for integrating previously separated aspects. As such, semantic management of Web Services has also been used as an example for the W3C Note of the Software Engineering Task Force.1
The kind of objectives that are to be approached by this semantic management are constrained by a trade-off between investing efforts for managing Web Services and investing efforts for semantic modelling of Web Services. The tradeoff is depicted qualitatively in Figure 1. The objective of full automation by semantic modelling will need very fine-grained, detailed modelling of all aspects of Web Services -- essentially everything that an intelligent human agent must know. Thus, modelling efforts skyrocket at the end of fine-grained modelling. At the other end, where modelling is very coarse and little modelling facilitates management, efforts for managing distributed systems soar as experiences have shown in the past. No matter what the exact scale of granularity and efforts are, the qualitative indication of management and modelling costs such as done in Figure 1 leads to an overall total cost picture as indicated in the same figure.
We realize our approach by means of a comprehensive ontology for modelling services and service management tasks, the Core Ontology of Services (CoS), based on the foundational ontology DOLCE [11]. We do not envision CoS as a standard, but understand it as a clean reference ontology for disambiguating overloaded terms like Web Service.
The remainder of this paper consists of sections containing a discussion of use cases, some remarks about CoS, a prototype description, related work, and conclusons.
In order to take advantage from the trade-off depicted in Figure 1, potential application cases have to approach the point of minimal total efforts. We have identified and analysed a number of use cases which can be expected to gain from semantic management using our approach. They also allow us to distinguish semantic management from other tasks involving Web services development and from full automation like postulated by Semantic Web Services. A detailed account of our analysis is given in [9], and we restrict ourselves to the brief discussion of a few examples.
Besides the purpose of meeting the representation requirements, our aim is to lower the modelling costs as much as possible. In [7,4] we analyzed existing ontology efforts and came to the conclusion that their lack of ontology quality complicates the modelling task for several reasons. Hence, we try to simplify this task by re-using a proven foundational ontology instead of modelling everything from scratch. Foundational ontologies are high-quality formalizations of domain independent concepts and associations.
Figure 2 shows the carefully crafted stack of ontologies we have reused and created, respectively. It consists of the DOLCE foundational ontology [11], ontology modules for context modelling (Descriptions & Situations [3]) and plans (Ontology of Plans [2]). All three are used to formulate a Core Ontology of Services2 that models services and their interrelationships in a domain-independent way. Finally, domain ontologies specialize concepts, associations and axioms in a particular setting. For details, the reader is again referred to [9].
The role of the Core Ontology of Services with respect to existing efforts like OWL-S [13] or WSMO [1], where the intended meaning of terms is often ambiguous, is that of a well-founded least common denominator. Existing efforts can be aligned to this ontology and thus harmonized. For example, [7] shows how OWL-S can be aligned.
Our approach takes the Web service and ontology infrastructure of KAON SERVER as a basis for semantic management of Web services. Existing WS* descriptions are still fed into their corresponding engines for security, transaction or workflow. It is still necessary for the developer to familiarize and work with WS* descriptions.
However, we take WS* descriptions as a basis, i.e. we parse them, extract relevant information and integrate them as instances into our ontology. In a similar fashion, programme code and modelling tools already in use can be leveraged. As a result, the developer is able to query and reason with a harmonizing conceptual model spanning several aspects (Figure 3).
As an example for a conclusion derived from both a BPEL and WS-Policy description, consider the following case. Assume a web shop realized with internal and external Web Services composed and managed by a BPEL engine. After the submission of an order, a BPEL process checks the customer's credit card for validity depending on the credit card type (VISA, MasterCard etc.). We assume that credit card providers offer this functionality via Web Services. The corresponding BPEL process checkAccount thus invokes one of the provider's Web Services depending on the customer's credit card.
Suppose now that the Web Service of one credit card provider, say MasterCard, only accepts authenticated invocations conforming to Kerberos or X509. It states such policies in a corresponding WS-Policy document. The invocation will fail unless the developer ensures that the policies are met. That means the developer has to check the policies manually at development time or has to implement this functionality to react to policies at runtime.
Since process and policy information can be parsed, analyzed and integrated in our ontology, checking for the existence of external policies boils down to a simple query. Without our approach the developer would have to collect and check this information manually by analyzing BPEL and WS-Policy documents. As we may recognize from this small example, it is desirable to query a system for semantic management rather than to manually check a complex set of process definitions. We can think of more sophisticated examples where we query for particular policy constraints or where we have large indirect process cascades.
Developers have to face the multitude of WS* specifications like WSDL, WS-Policy, WS-Coordination, WS-Transaction or BPEL. Because of their sheer number and disjointness, managing Web Services with WS* creates high management efforts for the developer. There is no coherent formal model of WS* and there are no means to ask for, possibly undesirable, conclusions that arise from integrating several WS* descriptions.
However, several semantic standards are arising at the moment in the field of research which is often circumscribed as ``Semantic Web Services'' [6]. Unlike our approach, they aim at full automation of Web Service invocation, discovery and composition. However, common ontology languages are typically not expressive enough to reach these objectives. E.g. [6] uses a description logic which is extended by Golog to automate planning tasks. Golog is a high level programming language built on top of the situation calculus. In addition, the objective of full automation by semantic modelling will need very fine-grained, detailed modelling of all aspects of Web Services leading to high modelling costs. Our approach is located between the two extremes of WS* and semantic standards and finds a good trade-off between modelling and management costs. The following paragraph discusses some of the semantic efforts.
Two approaches try to incorporate semantic technology in UDDI, for instance. The first, [14], proposes a taxonomy support for semantics in the registry. The primary aim is to allow for a better discovery and matchmaking by leveraging the semantic descriptions. The second tries to achieve similar goals by incorporating OWL-S profiles into the UDDI registry [12]. OWL-S5 is one of the first core ontologies explicitly aiming at automatic discovery, automatic invocation, automatic composition and interoperation as well as automatic execution of Web Services. The Web Service Modelling Ontology (WSMO) [1] has goals similar to OWL-S. However, it additionally defines an Execution Environment (WSMX) for the dynamic discovery, selection, mediation, invocation and inter-operation of Semantic Web Services. [5] take into account that most semantic efforts have been disconnected from the emerging WS* standards. Hence, they propose a ``bottom-up'' approach of enriching BPEL by semantics. However, they also try to enable automated service discovery, customization, and semantic translation.
In a certain sense, our approach is similar to the way that model driven engineering (MDE) tackles a problem, viz. by abstracting modelling of some parts of an architecture, while retaining full control by the software engineer. MDE/MDA6 and semantic management however differ, because the latter constitutes a precise, formal, executable model that may be exploited not only at compilation time (like MDE/MDA), but also for hot deployment or during runtime. Indeed, the principal idea of MDA is to separate conceptual concerns, such as which component is using which other component, from implementation-specific concerns, such as which version of an application interface requires which versions of windows libraries. MDA achieves this separation by factorizing the two concerns, specifying them separately and compiling them into an executable. Notwithstanding that MDA already provides conceptual modelling in order to improve management of complex systems, MDA is disadvantaged in two ways. First, MDA requires a compilation step preventing changes at run time which are characteristic for application server software. Second, an MDA itself cannot be queried or reasoned about. Hence, there is no way to ask the system whether some configuration is valid or whether further components are needed.
Our approach is also complementary to currently arising management specifications from the Web service community. First, the OASIS is working on Web Services Distributed Management7. Second, WS-Management by IBM and others is a competing specification with similar goals. Both share some of their use case with our approach but could greatly benefit from semantic technology.
We have shown what semantic management of Web Services may contribute to Web Service management in general. We have described use cases for semantic management of Web Services that can be realized with existing technology and that provide immediate benefits to their target groups, i.e. software developers and administrators who deal with Web Services. The use cases shown that semantic descriptions may play a fruitful role supporting an integrated view onto Web Service definitions in WS*. At the basis of the integration we have put the Core Ontology of Services.
While we have implemented a prototype as proof-of-concept of our approach, in the long run the viability and success of semantic descriptions will only be shown in their successful use of integrated development and runtime environments. The development of the corresponding paradigm of Semantic Management of Web Services through use cases, ontologies, prototypes and examples is an important step in this direction.
A pdf version of this paper is available from the authors' webpages at http://www.aifb.uni-karlsruhe.de/WBS/dob/pubs/icws2005.pdf. The paper is based mainly on [9]. The Core Ontology of Services is available from http://cos.ontoware.org. The prototype implementation is available from http://kaon.semanticweb.org/server.