Policies and Contracts

The Reference Architecture makes a clear distinction between policies and contracts.

A policy represents some constraint or condition on the use, deployment or description of an owned entity as defined by any participant. A contract, on the other hand, represents an agreement by two or more parties. Like policies, agreements are also about the conditions of use of a service; they may also constrain the expected real world effects of using a service.

The specific terms of the contract are determined by the policies of the consumer and provider.

Service Policy

There are three components of service policies:

  • Policy owner
  • Policy assertion
  • Policy enforcement

The document states: "A policy always represents a participant’s point of view. An assertion becomes the policy of a participant when they adopt the assertion as their policy".

Service Contract

A service contract represents an agreement between the consumer and provider.

Unlike policy enforcement, which is usually the responsibility of the policy owner, contract enforcement may involve resolving disputes between the parties to the contract. The resolution of such disputes may involve appeals to higher authorities.

The nature of the "higher authorities" is not determined within the archtitecture and is outside the scope of a "minimal set of unifying concepts, axioms and relationships". It is clearly a critical component of an SOA implementation.