A.R. Lomuscio et al. (Eds.): ICSOC 2013 Workshops, LNCS 8377, pp. 381–393, 2014. © Springer International Publishing Switzerland 2014 Towards a Formal Model for Cloud Computing Zakaria Benzadri, Faiza Belala, and Chafia Bouanaka LIRE Laboratory Department of Software and Information Systems Technology University of Constantine 2, Constantine, Algeria benzadri@gmail.com, belalafaiza@hotmail.com, c.bouanaka@umc.edu.dz Abstract. The use of formal methods is an effective means to improve complex systems reliability and quality. In this context, we adopt one of these methods to formalize cloud computing concepts. We focus on modeling interactions between cloud services and customers. Based on Bigraphical Reactive Systems, the formalization process is realized via the definition of a Cloud General Bigraph (CGB) obtained by associating; primarily, a CCB (Cloud Customers Bigraph) to cloud customers. Then, a Cloud Services Bigraph (CSB) is pro- posed to formally specify cloud services structure. Finally, juxtaposing these two bigraphs (CSB and CCB) gives rise to the suited CGB. In addition, a natu- ral specification of cloud deployment models is specified. This paper also ad- dresses cloud service dynamics by defining a set of reaction rules on bigraphs in a way that is amenable to reconfigure the designed cloud system. Keywords: Cloud Computing, Bigraphical Reactive Systems, Formal Methods, Cloud Model, Cloud General Bigraph, Cloud Customers Bigraph, Cloud Ser- vices Bigraph. 1 Introduction Software reusability has permanently triggered researchers and practitioners of software engineering. From the notion of modules defined by Djikstra to the well-known web services, we are still aiming on maximizing software reusability and thus reducing devel- opment cost. Based on service oriented paradigm and service oriented architectures and putting forward reduction of not only software development cost but also deployment effort, cloud computing [1] generalizes service reuse to all computer resources. The main principle behind this model is offering computing, storage, and software “as a service”. It implies dynamic provisioning with on demand shared computing resources, and provides computing resources as services in an attempt to reduce IT capital and operating costs. Nevertheless, cloud computing is actually changing software design and development practices and involves revisiting and redefining some fundamentals and concepts. Much as service-oriented architecture (SOA), cloud architecture must be defined, governed, and managed independently [2].