In service-oriented systems a service invariably is bound to a contract. This contract includes the functionalities and quality of services guarantees that the provider can make. But such guarantees are not absolute. A service cannot guarantee its contract in all situations. It can only guarantee its contract in a predefined set of conditions. These conditions are usually related to the context of the service provider and requester. Yet, most of service-oriented applications use only service functionality as the basis of providing services and building system compositions. To remedy this situation, in this article both functionality and contract of a service are integrated into a single concept, called ConfiguredService, and formalized as a higher-order data type. The service part that includes the functionality, nonfunctional properties, service parameters, and data of the service requester, is loosely coupled to the contract part that includes trustworthiness claims, legal and business rules governing the service provision, and the context information pertaining to the provider and receiver. This loose coupling allows the creation of many ConfiguredServices, which share the same functionality but possess different contract parts. To facilitate dynamic service adaptation, we introduce a syntax and semantics for extending or modifying a ConfiguredService.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.