It’s always exciting to get a glimpse of a new innovative technology just before it really takes off. One of the more interesting Web prospects is Semantic Web Services.
Today, Web Services are self-contained, self-described, component applications that can be published, located, and invoked across the Web. Web Services provide a standard means of interoperating between different software applications running on a variety of platforms. eXtensible Markup Language (XML) provides the extensibility and language neutrality that is the key for standards-based interoperability of Web Services. They perform functions that can include anything from simple query responses to complex business processes. Once a Web Service is deployed, other applications can discover and invoke it. At present, Web Services require human interaction for identification and implementation.
Tim Berners-Lee, the inventor of the Web, has suggested that the integration of Web Services and Semantic Web technology could offer significant performance improvement for Web applications. Integration could combine the business logic of Web Services with the Semantic Web’s meaningful content. There are several areas where the two could work well together. For example, the current technologies for discovery (Universal Description, Discovery and Integration, UDDI), binding (Web Services Description Language, WSDL), and messaging (Simple Object Access Protocol, SOAP) could use an ontology (Web Ontology Language, OWL) to provide automatic Semantic Web Services thereby allowing fast interaction with Web business rules’ engines.
Through the Semantic Web, users and software agents would be able to discover, invoke, compose, and monitor Web resources offering particular services with a high degree of automation. Recent industrial interest in such services and the availability of tools to enable service automation suggests the possibility that fast progress can be made. Ontology Web Language (OWL) for services (OWL-S) may be the most viable application.
Web Service Architecture requires that discrete software agents work together to implement functionality. These agents must communicate by protocol stacks that are less reliable than direct code invocation. Therefore, developers must consider the unpredictable latency of remote access, and take into account issues of partial failure and concurrency.
To make use of a Web Service, a software agent needs a computer-interpretable description of the service and the means for access. An important goal for Semantic Web markup languages is to establish a framework for making and sharing these descriptions. Web sites should be able to employ a set of basic classes and properties for declaring and describing services, and the ontology structuring mechanisms of OWL provides the appropriate framework to do this.
OWL-S is a high-level ontology, at the application level that is meant to answer the what- and why-questions about a Web Service, while the how-questions are addressed as part of WSDL. An Ontology is a taxonomy ( classes and relationships) along with a set of inference rules.
As a result, an ontology for Web Services would make Web Services machine understandable and support automated Web Service composition and interoperability.
Thereby providing automated functions for:
* service discovery,
* service execution,
* service composition,
* service monitoring.
Discovery: A program must first be able to automatically find, or discover, an appropriate Web service. Neither Web Service Description Language (WSDL) nor Universal Discovery and Description language (UDDI) allows for software to determine what a Web service offers to the client. A Semantic Web service describes its properties and capabilities so that software can automatically determine its purpose.
Invocation: Software must be able to automatically determine how to invoke or execute the service. For example, if executing the service is a multi-step procedure, the software needs to know how to interact with the service to complete the necessary sequence. A Semantic Web service provides a descriptive list of what an agent needs to be able to do to execute and fulfill the service. This includes what the inputs and outputs of the service are.
Composition: Software must be able to select and combine a number of Web services to complete a certain objective. The services have to interoperate with each other seamlessly so that the combined results are a valid solution.