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