Standardized Service Contract
Encyclopedia
The Standardized Service Contract is a design principle, applied within the service-orientation
Service-orientation
Service-orientation is a design paradigm to build computer software in the form of services. Like other design paradigms , service-orientation provides a governing approach to automate business logic as distributed systems...

 design paradigm
Design paradigm
The term Design paradigm derives from the rather ambiguous idea of paradigm originating in Sociology of Science, which carries at least two main meanings:...

, in order to guarantee that the service contracts within a service inventory (enterprise or domain) adhere to the same set of design standards, which results in standardized service contracts across the service inventory.

Purpose

The agility promised by an SOA
Service-oriented architecture
In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...

 is usually measured in terms of the reusability level of its contained services. However, this reusability is directly related to the way service capabilities have been defined within the service contract, as a service that is built upon a potentially reusable functional context but whose contract does not convey this reusability in an appropriate manner is not going to achieve its reusability potential. Within service-oriented solutions, a service contract represents a fundamental artifact as this is the only medium through which the services interact with each other or with other potential consumer programs. Therefore, there exists a strong need to standardize the service contracts in order to make services reusable and recomposable as much as possible. In order to achieve this, the Standardized Service Contract design principle needs to be applied as its application results in standardized service contracts that are based on design standards as set within a service inventory.

One of its goals is to reduce the need for data transformations as two services interact with each other, which can be achieved if the service contracts use standardized data models e.g. XML schemas
XML schema
An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself...

 if the services have been implemented as web services
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

. This also helps in making services more interoperable. Another important goal of this design pattern is to use a standardized way of expressing service capabilities so that their purpose and ability can be easily understood at design time.

Application

A technical service contract is usually composed of a WSDL
Web Services Description Language
The Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...

document, XML schema(s) and policy document(s). Consequently, this principle needs to be applied across three areas of a service contract as described below:

Functional Expression Standardization

The service's operations need to be defined using standardized naming conventions. This would also apply to the constituent input and out message names and their corresponding type names. This helps to increase the service contract's correct interpretation, which in turn increases service’s reuse and interoperability. When service contracts clearly express their capabilities, the chance of service duplication is also reduced.

Data Model Standardization

Two services exchanging messages based on the same type of data e.g. a purchase order, might model that data according to different schemas, which requires data model transformation. This is clearly an overhead and stands in the way of service interoperability and reuse. In order to avoid this transformation, the Standardized Service Contract principle requires developing standardized data models, which further helps in the creation of a standardized data representation architecture that could be reused across the enterprise for defining standardized service capabilities. The objectives of data model standardization are directly supported by the Schema Centralization design pattern, which further helps in the creation of centrally governed schemas.

Policy Standardization

Service policies represent the terms of usage for a service. So in order for a service to be reusable, its behavioral requirements need to be expressed in a consistent manner using standardized policy expressions that are based on industry standard vocabularies. This type of standardization further promotes separation of policies from the service contracts into individual policy documents in order to allow centralized governance. In some cases, two policies, although syntactically different, might mean the same thing, therefore, design standards need to be in place that dictate the acceptable policy structure.

Considerations

The application of this design principle depends upon the existence of design standards on the service inventory level. This would require additional resources in terms of time and effort. Secondly, in order to apply this design principle effectively, the actual contract needs to be physically isolated from the service logic and implementation so that it could be based upon industry standards. This could be achieved by the application of the Decoupled Contract design pattern. Also that the ‘contract first’ approach needs to be followed so that the underlying logic only makes use of standardized data models. Furthermore, the requirement for centralized data models may end up in the transmission of redundant data between services as the actual data required by a service may only be a subset of the data as expressed by the standardized schema imposed on the service.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK