Service-oriented Architecture - Principles

Principles

The following principles were proposed by Yvonne Balzer to guide development, maintenance, and usage of the SOA:

  • Reuse, granularity, modularity, composability, componentization and interoperability.
  • Standards-compliance (both common and industry-specific).
  • Services identification and categorization, provisioning and delivery, and monitoring and tracking.

The Microsoft Windows Communication Foundation team proposed the following principles for service-oriented design:

  • Boundaries are explicit.
  • Services are autonomous.
  • Services share schema and contract, not class.
  • Service compatibility is based on policy.

The first published research of service orientation from an industry perspective was provided by Thomas Erl of SOA Systems Inc. who defined eight specific service-orientation principles common to all primary SOA platforms. These principles were published in “Service-Oriented Architecture: Concepts, Technology, and Design”, on the www.soaprinciples.com research site, and in the September 2005 edition of the Web Services Journal (see Service-orientation).

  • Standardized service contract: Services adhere to a communications agreement, as defined collectively by one or more service-description documents.
  • Service loose coupling: Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
  • Service abstraction: Beyond descriptions in the service contract, services hide logic from the outside world.
  • Service reusability: Logic is divided into services with the intention of promoting reuse.
  • Service autonomy: Services have control over the logic they encapsulate.
  • Service statelessness: Services minimize resource consumption by deferring the management of state information when necessary
  • Service discoverability: Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.
  • Service composability: Services are effective composition participants, regardless of the size and complexity of the composition.

Some authors also include the following principles:

  • Service granularity: A design consideration to provide optimal scope and right granular level of the business functionality in a service operation.
  • Service normalization: Services are decomposed and/or consolidated to a level of normal form to minimize redundancy. In some cases, services are denormalized for specific purposes, such as performance optimization, access, and aggregation.
  • Service optimization: All else equal, high-quality services are generally preferable to low-quality ones.
  • Service relevance: Functionality is presented at a granularity recognized by the user as a meaningful service.
  • Service encapsulation: Many services are consolidated for use under the SOA. Often such services were not planned to be under SOA.
  • Service location transparency: This refers to the ability of a service consumer to invoke a service regardless of its actual location in the network. This also recognizes the discoverability property (one of the core principle of SOA) and the right of a consumer to access the service. Often, the idea of service virtualization also relates to location transparency. This is where the consumer simply calls a logical service while a suitable SOA-enabling runtime infrastructure component, commonly a service bus, maps this logical service call to a physical service.

The following references provide additional considerations for defining a SOA implementation:

  • SOA reference architecture provides a working design of an enterprise-wide SOA implementation with detailed architecture diagrams, component descriptions, detailed requirements, design patterns, opinions about standards, patterns on regulation compliance, standards templates etc.
  • Life-cycle management SOA Practitioners Guide Part 3: Introduction to Services Lifecycle introduces the services lifecycle and provides a detailed process for services management through the service lifecycle, from inception to retirement or repurposing of the services. It also contains an appendix that includes organization and governance best-practices, templates, comments on key SOA standards, and recommended links for more information.
  • SOA design principles provides more information about SOA realization using Service design principles

In addition, one might take the following factors into account when defining a SOA implementation:

  • Efficient use of system resources
  • Service maturity and performance
  • EAI (Enterprise application integration)

Read more about this topic:  Service-oriented Architecture

Famous quotes containing the word principles:

    ...at this stage in the advancement of women the best policy for them is not to talk much about the abstract principles of women’s rights but to do good work in any job they get, better work if possible than their male colleagues.
    Virginia Crocheron Gildersleeve (1877–1965)

    It must appear impossible, that theism could, from reasoning, have been the primary religion of human race, and have afterwards, by its corruption, given birth to polytheism and to all the various superstitions of the heathen world. Reason, when obvious, prevents these corruptions: When abstruse, it keeps the principles entirely from the knowledge of the vulgar, who are alone liable to corrupt any principle or opinion.

    David Hume (1711–1776)

    To abandon oneself to principles is really to die—and to die for an impossible love which is the contrary of love.
    Albert Camus (1913–1960)