Service-oriented Architecture - Programmatic Service Contract

Programmatic Service Contract

A service contract may have the following components:

  • Header
    • Name: Name of the service. This should indicate in general terms what the service does, not just its definition
    • Version: The version of this service contract
    • Owner: The person/team in charge of the service
    • Responsibility assignment (RACI)
      • Responsible: The role/person/team responsible for the deliverables of this contract/service. All versions of the contract
      • Accountable: Ultimate decision-maker in terms of this contract/service
      • Consulted: Whom one must consult before action is taken on this contract/service. This is two-way communication. These people have an impact on the decision or the execution of that decision.
      • Informed: Who must be informed that a decision or action is being taken. This is a one-way communication. These people are impacted by the decision or execution of that decision, but have no control over the action.
    • Type: This is the type of the service: to help distinguish the layer in which it resides. Different implementations will have different service types. Examples of service types include:
      • Presentation
      • Process
      • Business
      • Data
      • Integration
  • Functional
    • Functional requirement (from requirements document): Indicates the functionality in specific bulleted items: what exactly this service accomplishes. The language should encourage test cases to prove the functionality is accomplished.
    • Service operations: Methods, actions etc. Must be defined in terms of what part of the functionality it provides.
    • Invocation: Indicates how to invoke the service. This includes the URL, interface, etc. There may be multiple invocation paths for the same service. One may have the same functionality for an internal and some external clients, each with different invocation means and interfaces. Examples:
      • SOAP
      • REST
      • Events triggers
  • Non-functional
    • Security constraints: Defines who can execute this service in terms of roles or individual partners etc. and which invocation mechanism they can invoke.
    • Quality of service: Determines the allowable failure rate
    • Transactional: Is this capable of acting as part of a larger transaction and if so, how do we control that?
    • Service level agreement: Determines the amount of latency the service is allowed to have to perform its actions
    • Semantics: Dictates or defines the meaning of terms used in the description and interfaces of the service
    • Process: Describes the process, if any, of the contracted service

Read more about this topic:  Service-oriented Architecture

Famous quotes containing the words service and/or contract:

    Television could perform a great service in mass education, but there’s no indication its sponsors have anything like this on their minds.
    Tallulah Bankhead (1903–1968)

    Smoking ... is downright dangerous. Most people who smoke will eventually contract a fatal disease and die. But they don’t brag about it, do they? Most people who ski, play professional football or drive race cars, will not die—at least not in the act—and yet they are the ones with the glamorous images, the expensive equipment and the mythic proportions. Why this should be I cannot say, unless it is simply that the average American does not know a daredevil when he sees one.
    Fran Lebowitz (b. 1950)