Abstract
Cloud environments are being increasingly used for the deployment and execution of complex applications and particularly component-based ones. They are expected to provide elasticity, among other characteristics, in order to allow a deployed application to rapidly change the amount of its allocated resources in order to meet the variation in demand while ensuring a given Quality of Service (QoS). However, establishing a correct elastic component-based application is not guaranteed in Cloud. Indeed, applying elasticity mechanisms should preserve functional properties and improve non-functional properties related to QoS, performance and resource consumption. In this paper, we propose an approach for the verification and deployment of elastic component-based applications. Our approach is based on the Event-B formal method. In fact, we formally model the component artifacts using Event-B and we define the Event-B events that model the elasticity mechanisms (scaling up and down) for component-based applications. Furthermore, we formally verify that our approach preserves the semantics of the component-based applications by using the proof obligations and the ProB animator. Once the elastic component-based applications are validated, they can be deployed in a Cloud environment using an elastic deployment framework which we have developed.
Similar content being viewed by others
References
Abrial JR (2010) Modeling in Event-B: system and software engineering. Cambridge University Press, Cambridge
Albert E, de Boer F-S, Hähnle R, Johnsen E-B, Schlatte R, Tapia Tarifa S-L, Wong P (2014) Formal modeling and analysis of resource management for cloud architectures: an industrial case study using Real-Time ABS. Serv Oriented Comput Appl 8(4): 323–339
Bersani M-M, Bianculli D, Dustdar S, Gambi A, Ghezzi C, Krstić S (2014) Towards the formalization of properties of cloud-based elastic systems. In: The 6th international workshop on principles of engineering service-oriented and cloud systems. ACM
Booch G, Rumbaugh J, Jacobson I (2005) Unified modeling language user guide, 2nd edn. Addison-Wesley Professional, Reading
Chieu T-C, Mohindra A, Karve A-A, Segal A (2009) Dynamic scaling of web applications in a virtualized cloud computing environment. In: The IEEE international conference on e-business engineering. IEEE Computer Society
Cok D-R (2011) JML for Java 7 by Extending OpenJDK. In: The 3rd international conference on NASA formal methods. Springer
Calheiros R-N, Vecchiola C, Karunamoorthy D, Buyya R (2012) The Aneka platform and QoS-driven resource provisioning for elastic applications on hybrid clouds. Future Gener Comput Syst 28(6): 861–870
Dutta S, Gera S, Akshat V, Viswanathan B (2012) SmartScale: automatic application scaling in enterprise clouds. In: The 5th international conference on cloud computing. IEEE Computer Society
Dustdar S, Guo Y, Satzger B, Truong H-L (2011) Principles of elastic processes. IEEE Internet Comput 15(2): 66–71
Gaaloul G, Bhiri S, Rouached M (2010) Event-based design and runtime verification of composite service transactional behavior. IEEE Trans Serv Comput 3(1): 32–45
Galante G, de Bona LCE (2012) A survey on cloud computing elasticity. In: The 5th international conference on utility and cloud computing. IEEE Computer Society
Geelan J, Klems M, Cohen R, Kaplan J, Gourlay D, Gaw P, Edwards D, De Haaff B, Kepes B, Sheynkman K, Sultan O, Hartig K, Pritzker J, Doerksen T, Von Eicken T, Wallis P, Sheehan M, Dodge D, Ricadela A, Martin B, Kepes B, Berger I-W (2009) Twenty-one experts define cloud computing
Hamadi R, Benatallah B (2003) A Petri net-based model for web service composition. In: The 14th Australasian database conference. Australian Computer Society
He S, Guo L, Guo Y, Wu C, Ghanem M, Han R (2012) Elastic application container: a lightweight approach for cloud resource provisioning. In: AINA. IEEE Computer Society
Hoenisch P, Schulte S, Dustdar S (2013) Workflow scheduling and resource allocation for cloud-based execution of elastic processes. In: The 6th international conference on service-oriented computing and applications. IEEE Computer Society
Hoenisch P, Schulte S, Dustdar S, Venugopal S (2013) Self-adaptive resource allocation for elastic process execution. In: The 6th international conference on cloud computing. IEEE
Kranas P, Anagnostopoulos V, Menychtas A, Varvarigou T-A (2012) ElaaS: an innovative elasticity as a service framework for dynamic management across the cloud stack layers. In: The 6th international conference on complex, intelligent, and software intensive systems. IEEE Computer Society
Klai K, Tata S (2013) Formal modeling of elastic service-based business processes. In: International conference on services computing. IEEE Computer Society
Leuschel M, Butler M (2003) ProB: a model checker for B. Formal methods, LNCS 2805
Lahouij A, Hamel L, Graiet M (2013) Formal verification of SCA assembly model with Event-B. In: The 9th international conference on semantics, knowledge and grids. IEEE Computer Society
Lê L-S, Linh Truong H, Ghose A, Dustdar S (2012) On elasticity and constrainedness of business services provisioning. In: The 9th international conference on services computing. IEEE Computer Society
Mammar A, Frappier M (2015) Proof-based verification approaches for dynamic properties: application to the information system domain. Form Asp Comput 27(2): 335–374
Mammar A, Graiet M, Hamel L, Tata S. http://www-public.tem-tsp.eu/~mammar_a/FACElasticity.html
Mammar A, Graiet M, Hamel L, Tata S (2016) A verification and deployment approach for elastic component-based applications. http://www-public.tem-tsp.eu/~mammar_a/FACElasticity.html
Marino J, Rowley M (2009) Understanding SCA (Service Component Architecture). Addison-Wesley Professional, Boston
OASIS (2011) OASIS. Architecture assembly model specification. Version 1.2. 19. http://docs.oasis-open.org/opencsa/sca-assembly/sca-assembly-spec/v1.2/csd01/sca-assembly-spec-v1.2-csd01.html
Pokahr A, Braubach L (2016) Elastic component-based applications in PaaS clouds. Concurr Comput Pract Exp 28(4): 1368–1384
Rivera V, Cataño N (2014) Translating Event-B to JML-specified java programs. In: The 29th annual ACM symposium on applied computing. ACM
Roy N, Dubey A, Gokhale A (2011) Efficient autoscaling in the cloud using predictive models for workload forecasting. In: The 4th international conference on cloud computing. IEEE Computer Society
Sahli H, Belala F, Bouanaka C (2015) A BRS-based approach to model and verify cloud systems elasticity. In: 1st international conference on cloud forward: from distributed to complete computing
Solanki M, Cau A, H Zedan H (2006) A wide spectrum language for designing web services. In: The 15th International World Wide Web Conference
Schulte S, Hoenisch P, Venugopal S, Dustdar S (2013) Introducing the Vienna platform for elastic processes. In: Workshops of international conference on service oriented computing. Springer
Tsai W-T, Sun X, Shao Q, Qi G (2010) Two-tier multi-tenancy scaling and load balancing. In: The 7th international conference on e-business engineering. IEEE Computer Society
Vaquero L-M, Rodero-Merino L, Buyya R (2011) Dynamically scaling applications in the cloud. SIGCOMM Comput Commun Rev 41(1): 45–52
Yangui S, Ben Nasrallah M, Tata S (2013) PaaS-independent approach to provision appropriate cloud resources for SCA-based applications deployment. In: 9th international conference on semantics, knowledge and grids
Zhang Q, Cheng L, Boutaba R (2010) Cloud computing: state-of-the-art and research challenges. J Internet Serv Appl 1(1): 7–18
Author information
Authors and Affiliations
Corresponding author
Additional information
Michael J. Butler
Rights and permissions
About this article
Cite this article
Graiet, M., Hamel, L., Mammar, A. et al. A verification and deployment approach for elastic component-based applications. Form Asp Comp 29, 987–1011 (2017). https://doi.org/10.1007/s00165-017-0425-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-017-0425-3