Cloud-TM
A novel programming paradigm for cloud computing
Cloud-TM aims at defining a novel programming paradigm to facilitate the development and administration of cloud applications. It will develop a Self-Optimizing Distributed Transactional Memory middleware that will spare programmers from the burden of coding for distribution, persistence and fault-tolerance, letting them focus on delivering differentiating business value. Further, the Cloud-TM platform aims at minimizing the operational costs of cloud applications, pursuing optimal efficiency via autonomic resource provisioning and pervasive self-tuning schemes.
Harnessing the Cloud
The appearance of the first commercial Cloud Computing platforms has represented a significant step towards the materialization of the vision of utility-computing.
By shifting data and computation away from local servers towards very large scale, world- wide spread data centers, Cloud Computing promises very compelling benefits for both cloud consumers and cloud services providers: freeing corporations from large IT capital investments via usage-based pricing schemes, drastically lowering barriers to entry and capital costs; leveraging the economies of scale for both services providers and users of the cloud; facilitating deployment of services; attaining unprecedented scalability levels.
However, the promise of infinite scalability catalyzing much of the recent hype about Cloud Computing is still menaced by one major pitfall: the lack of programming paradigms and abstractions capable of bringing the power of parallel programming into the hands of ordinary programmers.
This project will address precisely this issue by developing Cloud-TM (Transactional Memory), a self-optimizing middleware platform aimed at simplifying the development and administration of applications deployed on large scale Cloud Computing infrastructures.
Key Goals
Cloud-TM aims at achieving three key goals:
- defining a friendly programming model for large scale distributed applications that integrates the familiar notion of atomic transaction as a first-class programming language construct. This would spare programmers from the burden of implementing low level, error-prone mechanisms (e.g. distribution, persistence and fault-tolerance) and attaining major reductions of the time and cost for the development process;
- minimizing the monitoring and administration costs by automating the provisioning of resources from the cloud based on user specified target criteria in terms of both Quality of Service and budget;
- maximizing the scalability and efficiency (i.e. the costs/benefits ratio in the Cloud Computing usage-based pricing model) of the user-level services by self-tuning the middleware’s internal mechanisms to ensure optimal performance in face of fluctuations of the number of allocated resources and of the workload characteristics.
Duration
From June 2010 to May 2013
Programme
FP7-ICT-2009-5 – Objective 1.2
This work was generated in the framework of the Specific Targeted Research Project (STReP) Cloud-TM, which is co-financed by the European Commission through the contract no. 257784.

