Services can be Internet-based e-commerce services, business services that abstract company-level interactions, or any other software services that are provided by surrounding devices that are mobile or embedded in nearly any type of physical environment (e.g., home, office, or cars). In brief, services are ubiquitous and executed in heterogeneous environments. Surrounding the definitions and technologies that describe services, there are some important features that are in common. First, services always have some actions that are performed by an entity, possibly on behalf of another. Second, there always exists service interaction, including a service provider, service requestor, and service registry. Finally, services have inherent value that is transferred from the service provider to the service requestor as a result of the service’s execution. To invoke and operate a service in the most efficient way, the service is to be described via essential types of knowledge: a) what the service requires from the user/agent(s) and then provides for them; b) where and when the service is available; c) what quality level is to be guaranteed; d) how to access and interact with the service; and e) what access rights are granted over the service. An accurate service description, including the specifications of functional and nonfunctional properties, benefits and facilitates several important activities, such as service discovery, service composition, and service administration, including the monitoring and controlling of the service’s execution. However, due to the diversity of service contexts, service technologies shall be generic and adaptable to different domains and heterogeneous environments. Service description ontologies solve this problem by enabling a rich representation of services and a common understanding about their respective features. The use of ontologies enables computational entities and services to have a common set of concepts and properties for representing knowledge about a domain of interest. The deployment and customization of existing and emerging service systems can also be considerably facilitated by a common set of ontologies that is developed in order to describe service semantics.
The studies on the data schema in XML, RDFs, OWL, and service description languages all form the basis for defining the service semantics. The eXtensible Markup Language (XML), as defined by the World Wide Web Consortium (W3C), is a well known, and industry accepted, way for representing flexible information. It is used to create information objects consisting of elements encoded by tags and attributes. XML schemas express shared vocabularies and allow machines to carry out those rules that are established by people.
The resource description framework (RDF) and Web ontology language (OWL) are built on XML and facilitate greater machine interpretability of content by providing additional vocabulary along with formal semantics.
XML, SOAP, WSDL, and UDDI form the core of Web service standards. Simple object access protocol (SOAP) is a lightweight protocol for exchanging XML-based information in a distributed environment. Web service description language (WSDL) is an XML format for describing services as a set of endpoints operating on messages. The operations and messages are described abstractly, and then bound to a concrete protocol and message format in order to define an endpoint. UDDI (universal description, discovery, and integration) is concerned with the publishing and discovery of Web services.
Service Level Agreements (SLAs) related quality information is described by:
Web service level agreement (WSLA) language (Ludwig et al., 2002), which is based on an XML schema and defines the SLAs in three parts; i) contractual parties, ii) the characteristics of the service and its observable parameters, and ii) obligations to various guarantees and constraints that may be imposed on the SLA parameters, or
Web services offerings language (WSOL) (Tosic, Paguredk, Patel, 2003), which is a formal specification language for defining the functional and QoS constraints and access rights for Web services. WSOL is XML-based and compatible with WSDL.
Key Terms in this Chapter
Service Composite: A cluster of services that are combined together from a bottom-up fashion in order to achieve an enhanced behavior, which no service by itself can provide. Service composites are made proactively (design-time) or reactively (run-time).
Service Modeling: Service modeling produces a service description by exploiting generic graphical modeling languages, such as unified modeling language (UML), and/or textual notations such as Web services description language (WSDL) and Web ontology language for services (OWL-S).
Stakeholder: An individual, team, or organization (or classes thereof) with interests in, or concerns relative to, service development, service deployment, or service operation.
Service: A stateless piece of software with the predefined functional and quality properties that is used for achieving a particular action.
SLA (Service Level Agreement): A contract between a service provider and a service consumer that is related to the quality of service guaranteed by the service provider.
Vocabulary: Vocabularies express equivalent or the semantically closest concepts or concept expressions related to the domain of interest.
Service Description: A definition of what a service provides and how it is accessed and used. A service description includes descriptions of the functional and nonfunctional properties of the service, service interfaces, and the legal and technical constraints or rules for its usage.
QoS (quality of service): Refers to the nonfunctional properties of services at different levels. QoS is the degree to which a service meets its quality requirements and end user needs. QoS quantifies the service fitness based the collective behavior of composite services.
Ontology: Ontology is a shared knowledge standard or a knowledge model defining the primitive concepts, relations, rules, and their instances comprising a relevant knowledge topic. Ontology is used for capturing, structuring, and enlarging explicit and tacit topic knowledge across people, organizations, systems, and software services.