May 26, 2004

SOA Blueprints: Best practices for service-oriented architectures

The Middleware Company, in conjunction with other companies like BEA, recently published an example architecture utilizing SOA best practices. This architecture is available at the SOA blueprints website (registration required). The architecture demonstrates how an example HR system/Employee portal and Product services system can be designed using SOA. It also describes (briefly) the provisioning of an enterprise wide security service to provide authentication, authorization and auditing capabilities for all enterprise applications.

The SOA Blueprints specifications identify the following to be common SOA patterns:

  • Synchronicity- Invoking services in two modes: synchronously or asynchronously.
  • Component Services- A simple atomic action on a simple entity that does not depend on
    another service to function.
  • Composite (Business) Services - A composite service, also called business service, is also atomic in nature, but orchestrates the invocation of component services into a business level process. A composite service is stateless (unlike the workflow service), does not manage a long lived transaction (again, unlike workflow services), and may be invoked synchronously or asynchronously.
  • Conversational (Workflow) Services - A conversational service (also called workflow service) typically has state attached to it and looks like a classical finite state machine. BPEL4WS type Web service composition would be an example of a compositional web service.
  • Data Services - A data service provides a mechanism for querying a datasource or multiple datasources
    through a message based request response mechanism.
  • Publish-Subscribe Services - Publish-subscribe services are ones in which interested parties (called subscribers) may request notification of certain events.
  • Service Brokers - An intermediary service that manages the invocation of a set of registered services based on a set of rules.
  • Exception Handling and Compensating Services - A compensating service (also called compensating transaction) is a mechanism for undoing some actions that were already completed that are now inconsistent because the service failed.
  • Interception and Extensibility - Interception is a mechanism for inserting additional functionality into a system without modifying or affecting existing components.
  • Interoperability - This means that the invocation mechanism, message format, data format and security
    requirements of a service can be interacted with successfully by any SOA implementation.
  • Service Security - Set of techniques for ensuring protection of confidential resources. This includes wire level security (HTTP authentication, HTTPS) as well as message layer security (XML Signature, XML Encryption).

Personally, I'm not sure why Interoperability and Service Security are listed as patterns. Anyways, the Blueprints specifications also list common Anti-Patterns:

  • Overly granular business services
  • Remote access to local services
  • Overuse of XML
  • Use of loosely coupled services where tight coupling is required

This, I totally agree with. These anti-patterns would have a performance impact on your services. Other things to look at that relate to performance are listed in my weblog post from two weeks ago

Posted by vivek at May 26, 2004 10:32 PM | TrackBack
Comments
Post a comment









Remember personal info?