Elasticity Multi-tenant Process
A Multi-Tenancy Awareness Middleware For Elastic Services Composition
The implementation of the middleware consists of four components which are:
1) Tenants Service (TS): It is a multi-tenancy enablement layer which encapsulates the functionality that ensures the tenant’s awareness. The tenants and their corresponding users have to be authenticated when they interacted with the multitenant process by providing a unique tenantID and userID. Then, the authorized access should be managed by the TS Layer transparently in order to deal with the tenants requirements and interact with the underlying components.
2) Service Patterns Selector (SPS): This component selects a service pattern from the patterns database to adjust services instances. The tenant’s concerns and contexts serve as inputs for this module to look for the appropriate elastic service pattern. The SPS resolve the discovery query by matching the semantic similarity between the BPEL variation point name and the service pattern name.
3) QoS Monitor (QoS-M): It collects metrics from the selected service pattern and monitors metrics for each instance to avoid the violation of the tenant’s non-functional concerns. When the threshold in/out is reached, it generates an alert and sends control parameters as inputs to the Elastic Instances Balancer module to configure and manage elasticity rules. Thus, the monitoring data is also stored in a persistent memory for resiliency purposes.
4) Elastic Instances Balancer (EIB): This module is responsible for ensuring the coordination of auto-scaling cloud services instances. Two modules work together to achieve this goal. The Action Executor uses the selected patterns received from SPD module. It determines what scaling action should be taken upon the violation of a metric by parsing the elastic strategy based on the appropriate multi-tenancy mode. Afterwards, the Service Router forwards the tenant’s request to a new identical service instance if this request routing does not violate the maximum thresholds, in order to handle the variation load and better satisfy the tenant’s requirements. Furthermore, it is directly connected with the involved instances and can therefore duplicate new services, remove running services, or move/exchange existing ones.