Elastic Software Architectures for Cloud Computing Environments
Supervision
- Romain Rouvoy
(Associate Professor - Adam research group) - Philippe Merle
(Research Scientist - Adam research group) - Lionel Seinturier
(Professor - Adam research group)
Host
Adam Research GroupInria Lille - Nord Europe
Parc Scientifique de la Haute Borne
40, avenue Halley - Bat. A, Park Plaza
59650 Villeneuve d'Ascq - FRANCE
Context
Inria, the French national institute for research in computer science and control, is dedicated to fundamental and applied research in information and communication science and technology (ICST). Throughout its eight research centres located in seven major regions (Aquitaine, Bretagne, Lorraine, Île-de-France, Nord Pas-de-Calais, Provence Alpes Côte d’Azur, Rhône-Alpes), the Institute has a workforce of 3,700, 2,900 of whom are scientists from Inria and its partner organizations. Inria has an annual budget of 162 million euros, 20% of which comes from its own research contracts and development products. Inria develops many partnerships with industry and fosters technology transfer and company foundations in the field of ICST - some eighty companies have been funded. Startups are financed in particular by Inria Transfert, a subsidiary of Inria that supports four startup funds. The international collaborations are based on an incentive strategy of welcoming and recruiting foreign students as well as developing strong exchanges between research scientists. Priority is given to geographic zones with strong growth: Europe, Asia and North America while maintaining reasonable cooperation with South America, Africa and Middle-East.
Adam is a project-team of the Inria Lille – Nord Europe research center. Members of the ADAM project-team are also part of the LIFL (Laboratoire d'Informatique Fondamentale de Lille) which is a joint unit between CNRS and the University of Lille 1. The objective of the Adam (Adaptive Distributed Applications and Middleware) project-team is to provide a set of concepts, paradigms, approaches, frameworks, and tools based on advanced software engineering techniques such as CBSE (Component-Based Software Engineering), AOSD (Aspect-Oriented Software Development) or CAC (Context-Aware Computing) to build distributed adaptive software systems (applications and middleware) involving in multi-scale environments and to take into account the adaptation all along the software life-cycle. The ADAM project-team proposes solutions to manage the evolution of application requirements in terms of functional and extra-functional properties either at the level of execution platforms or at the design level. The ADAM project-team applies them to component-based and service-oriented computing distributed applications and platforms.
Project
Cloud computing has emerged as an open environment that provides computation, software, data access, and storage services without requiring end-user knowledge of the physical location and configuration of the system that delivers the services. Cloud computing describes a new supplement, consumption, and delivery model for IT services based on Internet protocols, and it typically involves provisioning of dynamically scalable and often virtualised resources. Cloud computing providers deliver applications via the Internet, which are accessed from desktop web browsers and mobile apps, while the business software and data are stored on servers at a remote location. At the foundation of cloud computing is the broader concept of infrastructure convergence and shared services. This type of data center environment allows enterprises to get their applications up and running faster, with easier manageability and less maintenance, and enables IT to more rapidly adjust IT resources (such as servers, storage, and networking) to meet fluctuating and unpredictable business demand. Most cloud computing infrastructures consist of services delivered through shared data-centers and appearing as a single point of access for consumers' computing needs. Commercial offerings may be required to meet service-level agreements (SLAs), but specific terms are less often negotiated by smaller companies.
In this context, the objective of this internship is to provide a support for the continuous management of systems deployed in the Cloud. In particular, we are interested in investigating the elasticity of component-based software architectures deployed in Cloud computing environments. Although Cloud providers are able to provision new instances of virtual machines on-the-fly depending on contextual conditions (load peaks, instance failures, etc.), the management of this elasticity at the application level fails to be properly covered. The purpose of this work is therefore to bring innovation in terms of self-management capabilities for Cloud computing environments. This includes the dynamic and scalable reconfiguration of software architectures deployed on a variable number of instances of virtual machines and Cloud providers. New paradigms for describing software architectures, new algorithms for implementing reconfigurations, and new protocols for ensuring the consistency of the architectures are examples of contributions expected in this work. These contributions will be assessed and integrated into the FraSCAti middleware platform and the FraSCAla architecture description framework.
Agenda
The internship will be organized as follows:Installing the FraSCAti platform and the associated tools (2 weeks). This task will consist in discovering the implementation of the SCA standard [1] developed by the research group [2,3]. This includes the installation and the configuration of the platform, the execution of the various examples available, and the development of a first SCA application;
Deploying FraSCAti on several Cloud providers (2 weeks). This task will consider the deployment of FraSCAti on several Cloud infrastructures using remote deployment tools like Fabric [4]. This task will therefore investigate the limitations of current approaches in terms of dynamic deployment of Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) solutions;
Installing and executing the FraSCAla framework (2 weeks). This task will focus on discovering and testing the FraSCAla architecture description framework. FraSCAla exploits the Scala programming language [5] to define an extensible and modular architecture description framework, which includes a architecture description language (ADL) and a runtime management middleware;
Developing a distributed SaaS (2 months). This task will consider the development of a SCA-based SaaS, which will be deployed across a variable number of Cloud providers. The developed SaaS will use the FraSCAla architecture description framework and will include extensions for packaging and deploying the SaaS on a set of machines;
Extending FraSCAla with self-management support (2 months). This task will cover the execution of distributed self-management policies which are deployed on different Cloud infrastructures. This requires the development of appropriate mechanisms to deal with the communication of relevant symptoms (node failure, load peak, etc.) and the ability to operate appropriate reconfiguration actions (e.g., clone a component, deploy a proxy);
Validating the overall proposal (2 weeks). This task will asses the developments realized by previous tasks. In particular, a demonstrator will be setup for illustrating the self-management capabilities of a distributed SaaS. We expect the results of this internship to be freely distributed as part of the FraSCAti OSS platform.
References
- Service Component Architecture (SCA) specifications. Open Service Oriented Architectures (OSOA). osoa.org
- A Component-Based Middleware Platform for Reconfigurable Service-Oriented Architectures. L. Seinturier, P. Merle, R. Rouvoy, D. Romero, V. Schiavoni and J.-B. Stefani. Software: Practice and Experience. 2011. frascati.ow2.org
- A Reflective Platform for Highly Adaptive Multi-Cloud Systems. P. Merle, R. Rouvoy and L. Seinturier. In 10th International Middleware Workshop on Adaptive and Reflective Middleware (ARM'11). Lisbon, Portugal. December, 2011.
- Fabric Remote Deployment Framework. fabfile.org
- Scala Programming Language. scala-lang.org
Skills
Required: Eclipse, Maven, JavaAppreciated: SCA, SOA, SOAP, WSDL, BPEL, REST, Scala, Python