Web services and service oriented architectures were presented as a significant step towards a simple solution for the interoperability problems that typically plague middleware applications.
Web services also play a part in the Semantic Web. As Semantic Web applications increase in complexity, and as information consumers become more discerning, the focus is turning from semantically addressable information to semantically addressable services that allow automated creation of customized software system, or Semantic Web services.
Current tools provide the capability to describe Web services, but do not have adequate means for categorizing and utilizing those descriptions. The categorizations available, such as WSIndex are designed primarily for human use rather than machine.
As a result, automated system composition is more a dream than reality right now.
However, unlike most information on the Web, Web services are typically accompanied by adequate metadata, which is the key component of the Semantic Web. The difficulty in using that metadata lies in understanding the semantics. Predictably, there is a substantial amount of research focused
on applying ontologies and other tools of the Semantic Web to Web services.
Semantic Web services provide a mechanism for creating semantically rich descriptions of services. These can be used to create specifications for composite services, to represent business logic at a more abstract level and to supply knowledge for reasoning systems which can then intelligently assemble software from service descriptions.
One of the underlying languages in the development of Semantic Web services is the Ontology
Web Language for Services (OWL-S). OWL-S is an ontology language with the goal of enabling automated discovery, incorporation and execution of Web services.
OWL-S breaks the description of a service into three parts, a service profile, a process model and a mapping between the process model and the message passing protocol (called a grounding).
The profile is used both to advertise services and to request services. The intention is that the profile
is used in service discovery to match appropriate services to requests for services. Profiles consist, in part, of a description of both functional parameters, described as inputs, outputs, preconditions and effects, and nonfunctional parameters such text fields meant for human consumption or to
define quality of service constraints.
The process model uses the OWL-S process ontology to describe the execution of a web service. The process model precisely describes the required flow of control and data to obtain the results specified in the profile and includes three types of processes, namely atomic, simple and composite.
Only atomic processes may be executed directly.
Finally the grounding provides the binding between the atomic processes and the message format selected. Currently OWL-S has a grounding ontology defined for WDSL that allows for describing the message requirements for atomic processes.
OWL-S is not a complete specification nor is it a stable standard. It is,
however, a good start at defining how semantics can be added to Web services. It has been subjected to few real world test cases to date, but experiences with a prototypical use case implementation suggested that OWL-S may be a good start for enterprise integration, but that it currently lacks the capacity to allow fully automated discovery and composition of services.
Nonetheless, it seems inevitable that OWL-S or some other similar work, such as the Internet Reasoning Service will result in an automated mechanism for finding and composing services.