venes in service deployment and execution processes
to study platforms behavior on deployment taks and
highlight API limitations support of these platforms.
Google offers Google App Engine (GAE) (En-
gine, 2011) is one of the platforms which offer de-
vlopement and deployment features for applications
coupled to the GAME API (Zahariev, 2009). Among
the interesting features that provide the platform,
there is a possibility to connect to the internal SI se-
curely. There is also Heroku PaaS which is optimized
for Web applications developement using Ruby and
Rack (Heroku, 2011). The functioning of Heroku is
quite simple: The infrastructure used is Amazon Web
Services (AWS) through Internet while the deploy-
ment and the management of applications is done us-
ing Git. Microsoft is also a main actor in Cloud PaaS
solutions. Microsoft Azure offers typical data storage
(SQL Azure Storage), running applications on Web
servers (IIS Web Role), an equivalentof Windows ser-
vices (Work Role), bus systems and data management
access (Microsoft, 2011).
We can also quote open source PaaS like Cloud
Foundry (Xebia, 2011), CloudBees (CloudBees,
2011) or OpenShift (OpenShift, 2011)
A comprehensivestudy of these platformsallowed
us to highlight limitations and constraints imposed by
classical PaaS to developer community. For exam-
ple, in CloudBees platform, RUN@CLOUD service
supports only languages that are based on JVM like
Scala, Clojure or Jruby, even if that there is one plat-
form user who define a Grails CloudBees plugin (Plu-
gin, 2011) and he still to maintain it regularly. Sim-
ilarly, the specific JVM and APIs offered by GAE
are not 100% standard and requires adapting applica-
tions to deploy to take advantage of the power of the
platform even if the API is high-level and a number
of common frameworks and JVM-based languages
are supported. Another limitation observed concerns
Microsoft Azure which supports only .NET applica-
tions. In addition to that, we note the restrictions
on platforms communication protocols and on bind-
ings implementations of deployed services. For ex-
ample, Router component from Cloud Foundry and
Reverse proxy component from Heroku allows only
HTTP messages ingoing and outgoing platforms.
Our objective is to propose a new comer of PaaS
which is independent of any API Cloud platform. To
do this, we have to resume our previous work on
micro-service containers. Service micro-containers
are scalable and come adress limitations of classi-
cal service containers in Cloud environments (Yangui
et al., 2011).
3 CLOUDSERV: A PaaS FOR
SERVICE-BASED
APPLICATIONS
In this section, we firstly explain briefly our previous
works on scalable service micro-containers. Then, we
present our PaaS called CloudServ. We describe sev-
eral deployment scenarios using CloudServ. We first
treat the case of simple construction and deployment
of an elementary service before moving to the case of
deploying a service-based applications.
3.1 Previous Work
As a part of our work, we defined a new approach for
service-based application deployment and execution
on the Cloud. We designed a newcomer of service
containers which can be scalable (Mohamed et al.,
2011). We got the idea to create a service micro-
container that is able to contain not more than one
service. This micro-container provides the minimal
functionalities to manage the life cycle of the de-
ployed service. With this idea we have shown that we
used the minimal resources to encourage the pay as-
you-gomodel of Cloud Computing (Grossman, 2009)
and we could enforce the elasticity of Cloud because
we use just the resources needed. We have also con-
ducted conclusive experiments against classical ser-
vice containers (like Apache Axis2) to validate the
reliability and scalability on micro-containers (Yan-
gui et al., 2011).
Since we consider several types of services (lan-
guages, bindings, etc.), we are able to generate the
correspondent micro-container for each service to be
deployed. Micro-containers are built dynamically
from the deployment frameworkthat we have realized
as part of our work (Yangui et al., 2011).
As shown in (Figure 1) , each service micro-
container consists of three modules: (1) Communica-
tion module to establish communication and to sup-
port connection protocols, (2)Processing module to
process ingoing and outgoing data into and out of the
server (packing and unpacking data) and (3)Service
module to store and invoke the requested service.
In the following subsection, we show how micro-
containers are generated and deployed in order to de-
ploy elementary services on ClouServ. In subsection
3.3, we show how CloudServ support service-based
application deployment from deploying a set of ele-
mentary service compositions.
3.2 Elementary Service Deployment
Figure 1 presents our deployment framework. To de-
PaaSELEMENTSFORHOSTINGSERVICE-BASEDAPPLICATIONS
477