c-Eclipse

Introduction

c-Eclipse is a generic Application Management Framework that is open-source and has been implemented on top of the reliable Eclipse platform. It offers graphical tools to facilitate the intuitive description of an application's structure and its life-cycle management operations. For this purpose, c-Eclipse adopts the TOSCA open specification for blueprinting Cloud applications and consequently packaging them in portable archives that can be processed by any compliant IaaS-provider. Furthermore, c-Eclipse adopts the SYBL language for enabling elasticity requirements specification for Cloud applications, and it provides the necessary tools for its users to describe such elasticity requirements at different levels of an application's structure.

To this end, c-Eclipse can be promoted by Cloud vendors as an enabling tool for configuring, deploying and managing Cloudified elastic applications on their infrastructure. This is beneficial both for vendors and users; the former can integrate c-Eclipse to their Cloud architectures to attract a wider customer base to use their services via its GUI, while the latter are able to describe - the often complex - deployment and management life-cycle of their applications with minimal effort and in a portable way, thus avoiding vendor lock-in.

Functionality
Generic Application Description

At first, users can describe an application's topology, the relationships between its tiers and its life-cycle management operations, according to the TOSCA specification. The description, at this point is generic, and can be used to deploy the same application over alternative providers.

JCatascopia
c-Eclipse: Generic description of a 3-tier video streaming service to online users
Application Description Customization

After describing an application in a vendor-neutral manner, users can customize their description by selecting a Cloud platform (i.e. Amazon EC2, OpenStack private Cloud, Flexiant FCO, etc.) and then adding Cloud provider specific information to it (i.e. VM images)

JCatascopia
c-Eclipse: Application description customization for Amazon EC2
Description of Application's Elasticity Requirements

Users can specify elasticity requirements for the elastic components comprising an application, according to the SYBL language for elasticity requirements description.

JCatascopia
Example Elasticity Requirement: Database backend should scale out when the condition "CPUutilization < 80%" is violated.
Monitoring Application Deployment Status

After requesting the deployment of a described application, users can overview the deployment's status via the Application Deployments View of c-Eclipse.

JCatascopia
Application Deployment View: Video service has been successfully deployed on Amazon EC2 and on our OpenStack compliant private Cloud.
ICWE 2014 Demo

The video demonstrates the demo paper entitled: "Managing and Monitoring Elastic Cloud Applications" which was submitted to ICWE 2014. More information for the demo paper can be found on the demo webpage

Code Repository

The code for the tools that were used for the demonstration can be found in the links below :

More Resources

Describing an online video streaming service with c-Eclipse




A video showcasing c-Eclipse in its early developing stage




Getting Started

A tutorial showcasing how to get start with c-Eclipse can be found here

Publications
Journals and Magazines
  • [J1] "Enabling Interoperable Cloud Application Management through an Open Source Ecosystem", Nicholas Loulloudes, Chrystalla Sofokleous, Demetris Trihinas, Marios D. Dikaiakos, George Pallis, IEEE Internet Computing, May/June 2015, doi:1089-7801/15/ pdf
Book Chapter
  • [B1] "On Controlling Elasticity of Cloud Applications in CELAR", Georgiana Copil, Daniel Moldovan, Duc-Hung Le, Hong-Linh Truong, Schahram Dustdar, Chrystalla Sofokleous, Nicholas Loulloudes, Demetris Trihinas, George Pallis, Marios D. Dikaiakos, Craig Sheridan, Evangelos Floros, Christos KK Loverdos, Kam Star, Wei Xing, "Emerging Research in Cloud Distributed Computing Systems" (Advances in Systems Analysis, Software Engineering, and High Performance Computing (ASASEHPC) book series), Oakland University, USA 2014.
Conferences