I. LOOSE COUPLING

  A real dependency is a state of affairs in which one system depends on the functionality provided by another. ⇔ artificial dependency
We cannot remove artificial dependencies, but if the artificial dependencies among systems have been reduced, ideally, to their minimum, we have achieved loose coupling.

II. SOA DEFINED AND EXPLAINED

  SOA is an architectural style whose goal is to achieve loose coupling among interacting software agents.
  The results of a service are usually the change of state for the consumer but can also be a change of state for the provider or for both

  A. A small set of simple and ubiquitous interfaces to all participating software agents. Only generic semantics are encoded at the interfaces. The Interfaces should be universally available for all providers and consumer
  B. Descriptive messages constrained by an extensible schema delivered through the interfaces. No, or only minimal, system behavior is prescribed by messages. A schema limits the vocabulary and structure of messages. An extensible schema allows new versions of services

  A few rules to call that architecture is service oriented
A. The messages must be descriptive, rather than instructive
B. Service providers will be unable to understand your request if your messages are not written in a format, structure, and vocabulary that is understood by all parties.
C. Extensibility is vitally important
D. An SOA must have a mechanism that enables a consumer to discover a service provider under the contest of a service sought by the consumer.

III. ADDITIONAL CONSTRAINTS

  There are a number of additional constraints one can apply on SOA

A. Stateless Service : improve scalability
B. Stateful Servce : improve performance
C. Idempotent Request : improve reliability

IV. DERIVING WEB SERVICES FROM SOA

A. Interfaces must be based on Internet protocols such as HTTP, FTP, and SMTP.
B. Except for binary data attachment, messages must be in XML

  There are two main styles of Web services : SOAP web services and REST web services

V. SOAP WEB SERVICES

A. Except for binary data attachment, messages must be carried by SOAP
B. The description of a service must be in WSDL

VI. SOAP RPCWEB SERVICES

  SOAP RPC “tennels” new application-specific RPC interfaces though an underlying generic interface.

VII. REST WEB SERVICES

A. Interfaces are limited to HTTP. The following semantics are defined
  1) GET is used for obtaining a representation of a resource.
  2) DELETE is used for removing representations of a resource.
  3) POST is used for updating or creating the representations of a resource.
  4) PUT is used for creating representations of a resource.
B. Most messages are in XML, confined by a schema written in a schema language such as XML Schema from W3C or RELAX NG.
C. Simple messages can be encoded with URL encoding.
D. Service and service providers must be resources while a consumer can be a resource.

+ Recent posts