Sunday, November 18, 2012

Key SOA Design Principles

SOA primarily refers to a set of architectural principles. These principles represent a design continuum that links software development to Cloud deployment and capability exploitation. To support those principles a variety of standards and products have been developed to facilitate implementation and maintenance of SOA solutions. These standards include but are not limited to the following:

  • SOAP - Simple Object Access Protocol
  • UDDI - Universal Description, Discovery and Integration
  • WSDL - Web service definition language
  • WS Policy
  • WS Security
  • WS Addressing

The core SOA Use Cases are dependent upon its architectural principles

The design principles most often agreed to as representing SOA include the following (and yes some of these principles are inherited from Object Oriented Design or expand upon it):
  • 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 Re-usability – 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.
  • Service Encapsulation – Many services are consolidated for use under the SOA. Often such services were not planned to be under SOA.

The history, technical goals and expectations for SOA can be described thusly: “Service-oriented architecture (SOA) is an evolution of distributed computing based on the request/reply design paradigm for synchronous and asynchronous applications. An application's business logic or individual functions are modularized and presented as services for consumer/client applications. What's key to these services is their loosely coupled nature; i.e., the service interface is independent of the implementation. Application developers or system integrators can build applications by composing one or more services without knowing the services' underlying implementations.”

Copyright 2012  - Technovation Talks, Semantech Inc.


Post a Comment