In a service process involving many service partners, it is imperative to have a mechanism to ensure that external services provide a consistent level of performance and stability, therefore to satisfy end-to-end quality of service (QoS) requirements. The accountability of individual services should be enforced in order to attribute credit for success or responsibility for an undesired outcome in the whole process. Moreover, ill-performed services should be replaced on-the-fly to maintain needed QoS levels.
To reach such goals, systems must have easy-to-use mechanisms in order to provide:
In this paper, we describe the LLAMA project -- an automatic, dynamic and efficient SOA middleware framework to support the monitoring, analysis, and reconfiguration of service processes. It includes the mechanism to continuously monitor services within an active service workflow, and dynamically adapt by rerouting around faulty services. We adopt and extend an open source ESB (Enterprise Service Bus) project, Mule, to incorporate routing and interception mechanisms. Specifically, we create the LLAMA ESB by adding additional features to support: 1) dynamic routing, via a routing table and a communication interceptor, 2) efficient and tunable profiling and logging components to report performance data regarding services and the host, including a profiling interceptor to transparently capture service-specific performance information, and 3) a configuration gateway (CGW) located on each LLAMA ESB instance to support configurability of ESB components by external LLAMA components.
Our contribution in this work is that we have designed dynamic service configuration support that is easy to use and efficient to deploy. Traditional ESB support, such as in Mule, is designed to provide static workflow configurations. However, dynamic reconfiguration is necessary when a service process must be kept constantly available even under partial process distress. It is also desirable for a service process to be continuously optimized using the best individual service components.