It’s always exciting to catch a glimpse of innovative new technology just before it really takes off. One of the most exciting web prospects is semantic web services.
Today, web services are self-contained, self-describing component applications that can be published, located, and invoked over the web. Web services provide a standard means of interoperability between different software applications running on a variety of platforms. Extensible Markup Language (XML) provides the extensibility and language neutrality that is the key to 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 implemented, it can be discovered and invoked by other applications. Currently, Web Services require human interaction for their 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 a significant improvement in the performance of Web applications. The integration could combine the business logic of the Web Services with the meaningful content of the Semantic Web. There are several areas where the two could work well together. For example, 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). Web, OWL) to provide automated Semantic Web services, enabling rapid interaction with Web business rule engines.
Through the Semantic Web, users and software agents could discover, invoke, compose, and monitor Web resources that offer 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 rapid progress can be made. Ontology Web Language (OWL) for Services (OWL-S) may be the most viable implementation.
Web services architecture requires discrete software agents to work together to implement functionality. These agents must communicate using protocol stacks that are less reliable than direct code invocation. Therefore, developers must consider the unpredictable latency of remote access and be aware of partial failure and concurrency issues.
To make use of a web service, a software agent needs a computer-readable description of the service and the means of 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 use a set of basic classes and properties to declare and describe services, and OWL’s ontology structuring mechanisms provide the framework for doing this.
OWL-S is a high-level, application-level ontology that aims to answer what and why questions about a web service, while how questions are addressed as part of WSDL. An ontology is a taxonomy (classes and relations) together with a set of inference rules.
As a result, an ontology for web services would make web service machines understandable and support the composition and interoperability of automated web services.
Thus providing automated functions for:
* discovery service,
* execution of the service,
* composition service,
* service tracking.
Discovery: First, a program must be able to automatically find or discover a suitable Web service. Neither the Web Services Description Language (WSDL) nor the Universal Discovery and Description Language (UDDI) allow 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: The software must be able to automatically determine how to invoke or run the service. For example, if running 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 must be able to do to run and fulfill the service. This includes what the inputs and outputs of the service are.
Composition: The software must be able to select and combine a series of web services to complete a given goal. The services must interoperate with each other seamlessly for the combined results to be a valid solution.
Monitoring: The agent software must be able to check and monitor the properties of the service while it is running.
With these capabilities, we will be able to program agents to automatically locate and use web services.