Wednesday, September 12, 2007

SOA Postulates, Theorems & Corollaries

Similar to the mathematics, I felt that there is a need to define the laws for Service Oriented Architecture based on facts, observations and technology roadmaps and have termed tham as SOA Postulates, SOA Theorems and SOA Corollaries.

SOA Postulates:
  1. A service is an indivisible unit of work
  2. A service is independent of the protocol or implementation
  3. There will be one and only one service producer
  4. There can be multiple instances of the same service
  5. An entity that utilized the service is called the service consumer
  6. There can be one or more service consumers for a given service
  7. A line between the services is the agreement between the producer and the consumer
  8. A service can invoke other services, thereby, creating a hierarchy of services
  9. A service not consumed by any producer is an orphan service

SOA Theorems:

SOA Corollaries:

  • SOA Corollary #1 Dynamic Service Discovery does not require centralized repository (Corollary to SOA Theorem #3)
  • SOA Corollary #2 All service containers need to count and limit service hops (Coroloary to SOA Theorem #4)

For those not familiar with these tersm following are the Wikipedia defintions

Postulates: The term postulate, or axiom, indicates a starting assumption from which other statements are logically derived. It does not have to be self-evident (constancy of the speed of light in a vacuum is not self-evident, however it was used as a postulate in the special theory of relativity). Some axioms are experimental facts, but some are just assumptions not based on anything.

Theorems: In mathematics, a theorem is a statement, often stated in natural language, that can be proved on the basis of explicitly stated or previously agreed assumptions. In logic, a theorem is a statement in a formal language that can be derived by applying rules and axioms from a deductive system. This definition in logic is crucial in fields such as proof theory that study the general properties of provable and unprovable statements.

Corollary: A corollary is a mathematical statement which follows easily from a previously proven statement, typically a mathematical theorem. The use of the name corollary in place of proposition or theorem is usually subjective: proposition A is a corollary of proposition B if A can be deduced quickly and easily from B, but the meaning of "quickly and easily" varies depending upon the author and context. Sometimes a corollary has a proof which explains the derivation; sometimes the derivation is considered to be self-evident.

No comments:

Key Learnings - Using EDA to implement the core SOA principle of "loose-coupling"!!!

A lot has been said about how SOA and EDA are unique "architecture styles". It seems like only one or the other architectural prin...