Elasticity Interdependies
A Multi-Tenancy Awareness Middleware For Elastic Services Composition
The implementation of the middleware consists of four components which are:
1) CASM4BP Controller: It adopts the elastic CASM4BP middleware to provide the appropriate SaaS instances services for the MTBP based on multi-tenancy modes. The middleware can serve to moderate the load degree of the involved services which consists in creating an instance copy that has reached its maximal threshold by using the multiple instance mode. Thus, sharing an existing instance with the incoming request as long as it does not cause the maximum threshold violation using the native multi-tenancy mode.
2) MTBP Metric Monitor (EMM): This component consists in perceiving the state and metrics variation of the MTBP, based on defined thresholds in the service pattern. When the thresholds in/out of the process are reached, EMM generates an alert and sends control parameters as inputs to the Metric Comparator module to analyze the elasticity impacts of the services to the MTBP. Thus, EMM stores the monitoring data in a persistent memory with different history lengths for resiliency purposes.
3) Metric Comparator (CM): It compares the metric values of the MTBP with the involved services metrics in order to determine the services elasticity impacts. Once the process metrics are violated, it generates an alert and sends impacts parameters as inputs to the Elasticity Dependency Controller module to configure and manage the elasticity rules based on functional dependencies.
4) Elasticity Dependency Controller (EDC): This module is responsible for controlling the elasticity effect produced by one of the services. It analyzes the elasticity dependency type and parses the elastic strategies defined in the service pattern under the given dependency constraints. Thus, this control is done to find the current under/over provisioning regarding the process or services and to detect the SLA-violations for performing counter measures such as providing further resources, creating a new process instance or moving/exchanging existing ones.