Wednesday, 3 October 2012

Preparing for an Enterprise Service Bus

Before embarking on a costly Enterprise Service Bus (ESB) project, you must define clearly what requirement you are trying to satisfy, and hence what capabilities are required from your ESB.

An Enterprise Service Bus is not an Enterprise Silver Bullet, and can be defined as a set of infrastructure capabilities implemented by a middleware technology that helps to enable a Service-Oriented Architecture.  Remember the service capabilities you are looking to implement, thing like: loose coupling, location transparency, cohesion, implementation abstraction, policy-based management, scalability, and so on.

These capabilities (listed below) support service, message, and event-based interactions in a heterogeneous environment, with appropriate service levels and manageability:

ESB Key Capabilities
  • Communications
    • routing
    • addressing
    • protocol agnostic
    • publish/subscribe
    • request/response
    • fire-forget
    • events
    • synchronous and asynchronous messaging
  • Service interaction
    • interface definitions, implementation agnostic
    • service directory and discovery
  • Integration
    • database
    • service aggregation
    • adaptors
    • protocol transformation
    • multi-language invocation support
  • Quality of Service
    • Transactions (atomic, compensation)
    • Reliable delivery
  • Security
    • authentication
    • authorisation
    • non-repudiation
    • confidentiality
    • credential mapping
    • WS-Security
  • Service Level
    • Performance
    • Throughput
    • Availability
    • Service SLA monitoring and enforcement
  • Message processing
    • Config-based logic
    • Content-based logic
    • Message and data transformations
    • Validation
    • Enrichment
  • Management
    • Service registration
    • Logging, metering and monitoring
    • Discovery
    • Integration with systems management and administration tooling
    • Self-monitoring and management
  • Tooling
    • IDE for drag-on-drop flow creation
  • Infrastructure Intelligence
    • Business rules
    • Policy-driven behaviour and quality of service capabilities
    • Pattern recognition
Oh, and for goodness sake, don't let your developers kid you that they can build this stuff!  If cost is an issue, take a look at the open source products Mule or WS02.