SlapOS: a Multi-purpose Distributed Cloud Operating System
Based on an ERP Billing Model
Jean-Paul Smets-Solanes∗, Christophe C´erin† and Romain Courteaud∗
∗ Nexedi SA,
270 boulevard Cl´emenceau,
59700 Marcq-en-Baroeul, France.
Email: jp@nexedi.com
†Universit´e de Paris 13, PRES Sorbonne Paris Cit´e
LIPN UMR CNRS 7030,
99, avenue Jean-Baptiste Cl´ement, 93430 Villetaneuse, France
Email: christophe.cerin@lipn.univ-paris13.fr
Abstract—SlapOS is an open source grid operating system for
Computing Interface working group, and the Storage Net-
distributed cloud computing based on the moto everything is
work Industry Association Cloud Storage Technical Work
a process. SlapOS combines grid computing and Enterprise
Group. In France the Free Cloud Alliance promotes the first
Resource Modeling (ERP) to provide Infrastructure as a
Open Source Cloud Computing Stack which covers both
Service (IaaS), Platform as a Service (PaaS) and Software
as a Service (SaaS) through a simple, unified API which
Infrastructure as a Service (IaaS), Platform as a Service
one can learn in a matter of minutes. Thanks to its unified
(PaaS) and Software as a Service (SaaS) with a consistent set
approach and modular architecture, SlapOS has been used as a
of technologies targetted at high performance and mission
research testbed to benchmark NoSQL databases and optimize
critical applications. A great resource to see the spectrum of
process allocation over intercontinental Cloud. SlapOS opens
cloud standards activity can be found at the OMG’s cloud-
new perspectives for research in the area of resilience and
security on the Cloud.
standards.org wiki.
With the increasing adoption of IPv6, 1 Gbps fiber to the
Keywords-Service Architecture, Enterprise Level Transforma-
tion, Business Process Management and Integration, Business
home, multi-core CPUs and Solid State Disks, the traditional
Grid and Cloud Computing.
view on Public Cloud based on very large server farms, or
the traditional view on Private Cloud based on corporate
I. I
Storage Area Networks, is no longer as relevant as it used
NTRODUCTION
to be. A new form of Cloud massively distributed cloud
Cloud Computing is traditionally divided in three market
can be implemented nowadays to provide Infrastructure as
segments: Infrastructure as a Service (IaaS), Platform as a
a Service (IaaS), Platform as a Service (PaaS) and Software
Service (PaaS) and Software as a Service (SaaS). Cloud
as a Service (SaaS) with new levels of cost efficiency, dras-
Computing standardization groups, government funded re-
tically reduced environmental impact and higher protection
search projects and corporate marketing presentations often
of citizen Freedom. It is now possible to implement Cloud
introduce Cloud Computing through a 3-layer approach.
Computing through a myriad of servers located in everyone’s
IaaS provides virtual machines and storage. PaaS is built
home or in every worker’s desk. Internet transit marginal
on top of IaaS and provides core services such application
cost becomes zero, distributed storage software is used
servers and databases. SaaS is built on top of PaaS and
instead of SAN. Energy is saved by eliminating the need
provides end-user applications such as Content Management
for air cooling and by reusing natural server dissipation for
System (CMS) or Customer Relation Management (CRM)
house or office heating. Citizen Freedom is better protected
software. The traditional layered approach implicitly sup-
by preventing data to be centralized under control of single
poses that the IaaS layer of Public Clouds is implemented
entity, as it is now required for example by Law in India
by very large server farms, which are supposed to provide
[XX]. Massively distributed cloud is already acknowledged
optimal efficiency through economies of scale and automa-
and supported by the OW2 Consortium1, by the Free Cloud
tion. The IaaS layer of Private Clouds is implicitly supported
Alliance2 and by the Free Software Foundation3.
by expensive Storage Area Networks (SAN) hardware.
There are several efforts already under way, including the
1http://www.ow2.org
Distributed Management Task Force (DMTF) Open Cloud
2http://www.freecloudalliance.org/
Standards Incubator, the Open Grid Forum’s Open Cloud
3http://www.fsf.org/
We will introduce in this article SlapOS, the first open source
operating system for Distributed Cloud Computing. SlapOS
is based on a grid computing daemon
called slapgrid
which is capable of installing any software on a PC and
instantiate any number of processes of potentially infinite
duration of any installed software. Slapgrid daemon receives
requests from a central scheduler the SlapOS Master which
collects back accounting information from each process.
SlapOS Master follows an Enterprise Resource Planning
(ERP) model to handle at the same time process allocation
optimization and billing.
According to the classification in [2] , the paper is related to
Figure 1.
The SlapOS Architecture
Service Architecture (how to design and build an ’operating
system’ for the grid), Enterprise Level Transformation (what
SlapOS Master through a simplified front end, selects which
we consider as best practices for transforming the main
software he or she needs. SlapOS Master then allocates the
activity of the company), Business Process Management
software onto a SlapOS Node and provides the connection
and Integration (how to organize and develop your business
information to the user. The allocated software can be of any
according to the use of Open Source Software), Business
type: virtual machine, database server, application server,
Grid and Cloud Computing (how to enhance your business
web cache front end, etc.
with Cloud Technology).
The organization of the paper is as follows. Section II is an
overview of the SplapOS project. Section III provides with
details about the SlapOS implementation. Section IV-B is
a full description of the developper and accounting models.
Section V is related to an example about SlapOS use case.
Section VI is about research questions about the design and
the future of SlapOS. Section VII concludes the paper.
II. A GRID APPROACH TO CLOUD COMPUTING
SlapOS is an open source Cloud Operating system which
was inspired by recent research in Grid Computing and
in particular by BonjourGrid [3]–[5] a meta Desktop Grid
middleware for the coordination of multiple instances of
Desktop Grid middleware. It is based on the moto that
”everything is a process”. SlapOS is now an OW2 project.
Figure 1 shows the current architecture.
SlapOS defines two types of servers: SlapOS Nodes and
SlapOS Master. SlapOS Nodes can be installed inside data
Figure 2.
An example of SlapOS front-end
centers or at home. Their role is to install software and run
processes. SlapOS Master acts as a central directory of all
SlapOS Nodes, knowing where each SlapOS Node is located
B. An example of SlapOS front-end
and which software can be installed on each node. The role
of SlapOS Master is to allocate processes to SlapOS Nodes.
From a developer point of view, see Figure 2, SlapOS is a
simple and universal API to create instances of any software
A. SlapOS Architecture
daemon through a programmatic interface. The sample code
SlapOS Nodes and SlapOS Master exchange are intercon-
bellow shows how a developer can request a new instances
nected through the HTTP and XML based SLAP protocol.
of a memcache server by invoking the request method of
SlapOS Master sends to each SlapOS Node a description
SlapOS API. Memcache [19] is a widely adopted key-value
of which software should be installed and executed. Each
store protocol which is used to cache values in large scale
SlapOS Node sends to SlapOS Master a description of how
web infrastructure. It is usually installed and configured by
much resources were used during a given period of time for
system administrators using packaging systems such RPM
accounting and billing purpose.
or DEB. In this example, a single method call does in a
From a user point of view, SlapOS Node looks like an online
few seconds what a human system adminstrator would have
shop for Cloud Computing resources. The user connects to
done in few minutes at best.
A sample source code to request a process is shown on
and control a number of processes on UNIX-like operating
Figure 3.
systems. It provides a higher abstraction and flexibility than
traditional sysinit.
After some time, a typical SlapOS Node will include multi-
ple software applications (see Figure 5) and, for each soft-
ware application, multiple instances, each of which running
in a different process. For example, both Mediawiki and OS
Commerce could be installed onto the same SlapOS Node,
with six instances of each being run as processes. By running
software instances as processes, rather than by creating a
virtual machine for each software instance as one would do
with Amazon EC2, SlapOS is able to use hardware resources
and RAM in particular more efficiently.
Figure 3.
Example of source code
III. CURRENT IMPLEMENTATION OF SLAPOS
SlapOS is implemented as an extension of widely adopted
open source software: GNU/Linux, Buildout [20] and Su-
pervisord [21] and as depicted on Figure 4. The only new
software introduced by SlapOS is Slapgrid, a daemon in
charge of implementing the SLAP protocol on each SlapOS
Node.
A. SlapOS Kernel
Each time slapgrid receives a request from SlapOS master to
install a software, it downloads a description of that software
in the form of so-called buildout profile. It then runs the
buildout boostrap process to install the software. Buildout
is a Python-based build system for creating, assembling
and deploying applications from multiple parts, some of
which may be non-Python-based. Buildout can be used
to build C, C++, ruby, java, perl, etc. software on Linux,
MacOS, Windows, etc. Buildout can either build applications
Figure 5.
SlapOS implementation
by downloading their source code from source repositories
(subversion, git, mercurial, etc.) or by downloading binaries
from package repositories (rpm, deb, eggs, gems, war, etc.).
Buildout excels in particular at building applications in a
B. Details about the implementation
way which is operating system agnostic and to automate
SlapOS Master (see Figure 6) runs ERP5 Cloud Engine,
application configuration process in a reproduceable way.
a version of ERP5 open source ERP capable of allocating
processes in relation with accounting and billing rules. Initial
versions of SlapOS Master were installed and configured by
human. Newer versions of SlapOS Master are implemented
themselves as SlapOS Nodes, in a completely reflexive ways.
A SlapOS Master can thus allocate a SlapOS Master which
in turn can allocate another SlapOS Master, etc.
Figure 4.
SlapOS kernel
Each time slapgrid receives a request from SlapOS master
to run a software as a new process, it calls first buildout to
create all configuration files for that process then delegates
Figure 6.
SlapOS Master
to supervisord the execution of the process. Supervisor
is a client/server system that allows its users to monitor
IV. SLAPOS MODEL
a control system pattern.
A. Developper model
B. Accounting model
For the end user or the developer, SlapOS API is based
The accounting model of SlapOS is an application of ERP5
on a single core API method: request. This method is used
Unified Business Model4 (UBM) [12]. ERP5 defines 5
to extend the buildout framework. It adds to buildout the
concepts which match with any business problem: Resource,
possibility to remotely deploy and configure buildout based
Movement, Item, Node and Path. The ERP5 model is
software. Additional SlapOS API methods include initialize-
based on the idea that everything in business is a matter
Connection and registerComputerPartition. They are used to
of flow, stock, traceability and planning of future flows.
register to SlapOS master and are normally hidden to the
Until now, this model has been applied successfully to
developper of buildout profiles.
banking, accounting, manufacturing, trading, HR, document
What is important to notice at this point is that SlapOS,
management, open data management, patient records. The
through the software release url parameter, can build, install
use of ERP5 model in SlapOS comes from the fact that
and instanciate about any type of software as long as the
allocating and billing processes in computers is not very
software is described through a buildout profile which can
different from allocating containers in ships. In both cases,
be stored almost anywhere on the Web and referred to
once it has been allocated, it is difficult to move it to another
through a URL. There are already more than a thousand
computer (vs. another ship).
a buildout profiles for many different types of software
In the case of SlapOS, Nodes are the people and organi-
including storage and virtual machines (IaaS), application
sations who register to the SlapOS portal. Once they are
server (PaaS) and business applications (SaaS). Another
registered, they can request any type of resource. They can
important aspect of the request method is that it defines a
also add to a SlapOS global Cloud their own servers in order
paremeter called instance type which can be used to specify
to contribute to total amount of processing resources, just
which service of a given software should be instanciated and
like SETI@Home did. SlapOS Resources - in the sense of
started. This is useful for encapsulating all services provides
ERP5 UBM - are the Software Products such as MySQL,
by a software into a single buildout software descriptor,
KVM, Xwiki, Nuxeo, ERP5, Sheepdog which people and
rather than developing multiple ones and thus preventing
organisations can subscribe to and for which they will
mutualisation of shared libraries. A Qemu buildout profile
be later invoiced. It is important to notice that Software
for example provides both Kvm based virtual machines
Products do not have a version of release number. It is just
under the instance type kvm and nbd based block server
a marketing or commercial name for a service.
under the instance type nbd. Both services are actually
Movements
in the sense of UBM
represent the billing
available as part of the same qemu binary, although they
information such as the amount of GHz, the amount of
are mostly independent and can be allocated separately.
storage, the number of users which have been used over
Similarly, instances types are useful for application servers
a period of time by each process in the SlapOS cloud. Then
and distribute storage to differentiate master nodes vs. slave
comes the core part of SlapOS: traceability. In order to know
nodes in a non symetrical cluster.
which version of which software is being run on which
The extra parameters of the request method can be used to
computer and IP address for who and with which parameters,
define Service Level Agreement (SLA) information and soft-
SlapOS defines 5 types of UBM Item: Computer, Computer
ware configuration. SLA parameters can be used to specify
Partition, Software Release, Software Instance, Subscription
that the software instance should be allocated on the same
Item.
host, the same LAN, the same country, the same continent
A Computer Item is created each time a server is added to
or on a different host, different LAN, different country
the SlapOS cloud. Each Computer Item is divided into a
or different continent. By allocating software instances on
given number of so-called Computer Partition. The number
different LANs and different continents, resilience of a
of independent services (Software Products) which can be
Cloud hosted environment can be increased. By allocating
instanciated on a given Computer is at most equal to the
software instances on the same LAN or host, performance
number Computer Partitions of the Computer. Computer
of distributed storage can be optimized.
Partitions are usually implemented as subdirectories of the
Extra parameters can also be used to specify the config-
Computer. On an IPv6 network, each Computer Partition
uration of the software instance. The number of backend
can be associated to a different IPv6 address. On an IPv4
nodes of a Web application is typically specified in this
network, each Computer Partition can be associated to a
way. Elasticity is provided in SlapOS by changing the value
different port range for the same IPv4 address. Some Com-
which defines the number of backends. Automatic elasticity
puter Partitions can also associated to a tap virtual ethernet
is provided by combining performance monitoring and calls
interface which is then bridged and used by virtual machines.
to the request method with a number of nodes which depends
on the current status of performance monitoring, following
4http://www.erp5.org/UnifiedBusinessModel
Some Computer Partitions are associated to a physical disk
approach as long as the software which is installed provides
partition, which can be used by virtual machines for higher
itself a way to create multiple software instances through
access performance through Virtio5. The partitioning process
buildout or through any other type of templating system. It
in SlapOS is handled by optional utilities provided by
should also be possible to specify multiple URLs, embedded
SlapOS. There is no obligation to use such utilities. Any
for example in a single file containing a list of URLs. This
naming of directories, allocation of IP addresses or port
would be useful to specify different releases of the same
range, disk partitions or network interfaces is acceptable as
software which are all considered as acceptable (ex. MySQL
long as it can be described in SlapOS standard XML file
5.0, MySQL 5.1, etc.).
which the slapgrid daemon uploads to SlapOS master.
Another evolution could be the encapsulation of best Cloud
A Software Release Item defines precisely how to build a
practices into either buildout recipes (for modularity) or
Software and install it on a Computer. Currently, SlapOS
SlapOS API (for simplicity). For example, self-controlled
uses buildout profiles to define a Software Release. Multiple
elasticity based on performance monitoring and feedback
Software Release can exist for the same Software Product.
could be encapsulated into a class and reused by different
For example, the MySQL Software Product exists in Release
Software Product. SlapOS will first consider the approach of
5.0, Release 5.1, Release 5.0 patched with Senna Full Text,
buildout recipes which provides maximum flexibility before
etc. A major strength of SlapOS is its ability to provide
considering extending the current simple API.
complete freedom to extend the number of Software Release
V. E
and Software Products. The Software Release Item is the
XAMPLES OF APPLICATION
equivalent in SlapOS master of the software release url of
SlapOS is multi-purpose. It is used for public cloud and
the request method.
private cloud. It is used for IaaS, PaaS and SaaS. Although
A Software Instance Item contains all parameters to config-
SlapOS is universal, it is also extremely simple. SlapOS API
ure an instance of Software Release. It also defines the type
consists mostly of a single method: request.
of service to run from Software Release. It is the equivalent
SlapOS is used by VIFIB, a French Internet Service
in SlapOS master of the instance type, instance id and kw
Provider, to provide virtual machines through IPv6. VIFIB
parameters of the request method.
infrastructures consists of Asus barebone PCs with Intel
The Subscription Item is used to group all accounting
i7 860 CPUs, 80 GB Solid Stade Disks and 8 GB RAM.
information for a given consistent set of Software Instances.
Thanks to the use of SSD, running 8 virtual machines on
It is also used to generate daily, weekly, monthly or yearly
a single PC which costs only 700 EUR is possible. VIFIB
subscription billing. It plays a key role for the production of
virtual machines are used mostly by developers who find
invoices. SlapOS movements which are either collected from
them faster than their own laptop. SlapOS is used by Beteire-
each SlapOS node or generated by Subscription Item are col-
flow, one of Ireland’s largest CRM operation. SlapOS is
lected on a monthly base, grouped by Subscription Item and
used to instanciate a complex ERP5 solution which includes
by Customer, so that each customer can receive an invoice
non transactional NoSQL (kumofs), distributed transactional
and understand for which service (Software Product), which
NoSQL (NEO), load balancing (ha-proxy), a cluster of
release (Software Release) and configuration (Software In-
application servers (Zope), a set of front-ends (Apache,
stance), on which computer (Computer Partition) and for
Varnish) and automatic backup daemons (repozo). Thanks
what amount of which resource (Movement) he or she was
to SlapOS, this complex system can be reinstalled and
invoiced.
configured in a matter of seconds on a new infrastructure.
The information needed to produce a detailed invoice is
SlapOS plays a key role here as part of a Disaster Recovery
actually the same as the information needed to provision
Plan.
services on the Cloud. This is another reason why in
SlapOS is used by Nexedi to run ERP5 test suite. ERP5
SlapOS, accounting and provisionning are handled by the
test suite consists of more than 5000 tests including unit
same software component, both to reduce duplication of
tests, functional tests and scalability tests. By distributing
information, increase consistency and make the system more
test tasks to SlapOS, ERP5 test suite can be executed in
simple.
a few minutes instead of a few hours. This productivity
improvement plays nowadays a key role in the acceleration
C. Future evolutions of SlapOS models
of ERP5 release process.
SlapOS uses buildout and a single URL to describe how to
SlapOS is also a key component in the COMPATIBLE
build and install software. This approach could be extended
ONE project, French government sponsored project for open
in different ways. Ideally, it should be possible to install
source Cloud. SlapOS acts as a unified billing platform for
software using other build systems or even by using pack-
all types of IaaS, SaaS and PaaS thanks to the TioXML
ages (DEB, RPM). This is not incompatible with SlapOS
resource accounting standard.
SlapOS should also soon serve as a platform for open source
5http://lwn.net/Articles/239238/
software publisher to turn their software into multi-tenant
SaaS. SlapOS has received a lot of attention from IT industry
native redundancy of most NoSQL software. Applications
and telecommunication industry because it is capable of
based on relational databases need to find relevant tactics to
hosting as many as 200 ERP instances at a cost of less than
implement data redundancy. Some tactics are quite simple:
1 USD per month and per instance. It is also acknowledged
for example, by connecting to two databases and maintaing
that SlapOS can save huge investments in research and
an asynchronous copy of data from one database to the other.
development for those companies which need to turn their
Other tactics are more complex and can involved clustered
existing software into SaaS.
databases. Analysing the different tactics for data redun-
dancy is an interesting field of education, if not research.
VI. RESEARCH QUESTIONS AND DESIGN
Many students are not yet aware how to implement dis-
A. Technology driven projects
tributed data storage. SlapOS is a perfect test bed to educate
SlapOS raises wide variety of research topics: process allo-
students to the different approachs which are implemented
cation optimization, energy management, software distribu-
in the industry.
tion, resilient storage, high availability, security.
High availability is another research topic with SlapOS.
In SlapOS, infinite duration processes are allocated, rather
The introduction of mobile IPv6 could be consider to
than limited duration computing tasks in traditional grid
implement a kind of process migration, as it already exists
computing [10], [11]. Once a process is allocated on a
in XtreemOS [25]. Other approaches, based on dynamic
SlapOS server node, it can not be moved to another SlapOS
DNS and monitoring could be integrated at the core of
server node. Process allocation should at the same time
SlapOS. Mapping processes to internet names is generally a
optimize hardware resource usage and guarantee acceptable
interesting direction for the future of SlapOS in the context
service level. Allocating too few processes per server node
of high availability requirements.
is a waste of resource usage. Allocating too many processes
Security is probably the most important research with Sla-
per server may lead to poor service for customers and users.
pOS. Because it is based on IPv6 and on a flat view of
Early research on this topics is being conducted as part
Internet, SlapOS can not rely on firewalls or masquerading
of TioSafe project [22] by Institut T´el´ecom, based on the
for security. Moroever, granting rights to install software on
metaphor of bin packing.
a SlapOS Node requires more flexibility than what SlapOS
Energy is becoming a key cost factors of Cloud Comput-
currently provides. The introduction of automated source
ing and a growing source of environmental impact. With
code analysis and of distributed intrusion detection could
SlapOS, heat dissipation during winter time is reused for
help adding additional flexibility and create more trust for
household or office heating. During summer time, heat
people to accept on their hardware software provided by
dissipation is either evacuated through natural air circulation
other people. Operating system level security containers
or requires to spend additional energy for air cooling. In
such as those found in ChromeOS [26]
could also help
northern countries or mountain side, SlapOS leads to energy
reducing the risk breaking system security.
savings of more than 50% compared to a server farm. In
B. Distributed architecture and distribution of services
southern countries, the energy balance is unclear. Improving
the energy efficiency of SlapOS, either in combination with
The coordination of SlapOS servers is a research issue as
smart grids6 or by implement optimal process allocation is
the coordination is the key point with Grids. In our context
another field of research.
of Desktop Grids, the BonjourGrid [3]–[5] component aims
SlapOS does not use traditional software packaging found
at improving the infrastructure efficiency by breaking up
for example in GNU/Linux distributions and which has been
a large, monolithic application into separate components
extensively modeled and studied, in particular by Roberto di
(services). The rationale for doing this is that the large
Cosmo [8], [9]. Instead it combines source code access with
application no longer requires an equally large, monolithic
heterogeneous packaging which are now specific to each
mainframe computer to run on. BonjourGrid has been imag-
programming language: python eggs [23], ruby gems [24],
inated for answering to the following question: how to
Java. Thanks to buildout technology, a single SlapOS server
federate all the users and machines of all the Boinc, Condor
node can run any number of versions of a given software or
and XtremWeb projects? (Boinc, Condor and XtremWeb are
library at the same time, thus providing the level of flexibility
popular Desktop Grid middleware [11]).
required for SaaS and PaaS. This new approach opens new
In the past, Desktop Grid systems represented an alternative
fields of research in post-packaging software distribution.
to super-computers and parallel machines and they offered
SlapOS Nodes are not meant to be perfectly reliable. Instead,
computing power at low cost. Indeed, Desktop Grids have
it is the role of the application to implement its own redun-
intrinsic features that explain the large number of interna-
dancy policy. This includes in particular redundant storage.
tional projects aiming to better exploit this computational
Applications based on NoSQL database can leverage the
potential. Many Desktop Grid system have been developed
using a centralized model. These infrastructures run in a
6See http://http://en.wikipedia.org/wiki/Smart grid
dynamic environment and the number of resources may
increases dynamically. Hence, the need for decentralization
authentification. In this new environment, we are planning
is becoming increasingly important. BonjourGrid is a new
to apply a re-engineering step for using the Extensible
decentralized approach of Desktop Grid systems.
Messaging and Presence Protocol (XMPP [17], [18] ) which
Its main objective is to provide a decentralized infras-
is an open technology for real-time communication, which
tructure of multi-coordinators (here multi SlapOS servers),
powers a wide range of applications including instant mes-
using the services offered by a publish/subscribe system [7].
saging, presence, pub-sub.... We believe that the XMPP
Unlike a classical Desktop Grid, BonjourGrid can create, on
framework is of premier choice for the implementation of
demand, a dynamic and decentralized execution environment
the coordination in SlapOS but we need to measure the
for each user, based on existing computing systems such as
architectural impact of this choice on the protocol itself.
XtremWeb, Boinc or Condor, to run any kind of applications,
A good example of what is possible to do with XMPP is
without the intervention of a system administrator. Since Sla-
the Archipel8 project whose aiming at coordinating multiple
pOS Masters are implemented themselves as SlapOS Nodes,
virtual machines. However, XMPP has some limitations,
in a completely reflexive ways, BonjourGrid may help to
among them a scalability problem in the management of
coordinate the multiple MAster nodes in the same way it
rosters (see [18] page 219). The problem could be a problem
coordinates the XtremWeb, Boinc or Condor coordinators.
with implementation.
The problem is even simpler because we have only one type
Another possibility for the coordination is a solution based
of system to manage (a SplaOS master).
on websockets / COMET / hookbox9. Hookbox offers a pub-
Moreover BonjourGrid comes with a fault tolerant approach
sub interface but it is more oriented towards ’pure HTTP’
based on passive replication and virtualization to tolerate the
protocol than XMPP. Consequently, programming is more
crash of coordinators (SlapOS master nodes). The novelty
easy and we have less potential problems with firewalls.
resided here in an integrated environment based on Bonjour
Anyway, the BonjourGrid protocol which is:
(publication- subscription mecanism) for both the coordina-
1) The user requests for computation; He selects ma-
tion protocol and for the fault tolerance issues. In particular,
chines based on their performance (CPU, RAM,...);
it is not so frequent to our knowledge to describe and to
2) The user provides the control ow graph, binaries, input
implement a fault tolerant protocol according to the pub-sub
data;
paradigm. Experiments, conducted on the Grid5000 testbed7,
3) The user deploys locally a coordinator and requests
have illustrated a comparative study between Boinc (resp.
for participants.
Condor) on top of BonjourGrid and a centralized system
becomes as follows in SlapOS:
using Boinc (resp. Condor) and second prove the robustness
1) The user requests an instance of software release (ie.
of the fault tolerant mechanism.
a daemon);
To summarize, the key idea of BonjourGrid is to rely
2) The user provides a URL to a description of the
on existing Institutional Desktop Grid middleware, and to
sofware release which itseld provides a description of
orchestrate and coordinate multiple instances, i.e multiple
how to create software instances;
computing elements, through a publish/subscribe system.
3) The user provides configuration parameters to crate an
We propose to reuse this framework for the coordination
instance of software release.
of SlapOS masters that may appear or disappear on the fly.
but the main challenge remains: how to coordinate SLapOS
Several issues must be taken into account in our future
masters between multiple distinct companies and based on
works. The first issue, which is not really difficult, is the
contractual relationships but not based on technical relation-
reservation of participations: in the current version, Bon-
ships (CPU, RAM,...)?
jourGrid allocates available resources for a user without
any reservation rules. Thus, if a user demands all the
VII. CONCLUSION AND OUTLOOK
available machines for a long time, BonjourGrid allocates
SlapOS demonstrates that the borders between IaaS, PaaS
them to him. The second issue is going up to a wide area
and SaaS in Cloud Computing are no longer relevant.
network. The current version works only in a local network
Through a single API and a single method inspired by 10
infrastructure because of Bonjour, it is important to bypass
years of experience in grid computing, SlapOS is capable
this constraint. Grafting the new package of Bonjour, Wide
of allocating virtual machines, application servers, databases
Area Bonjour from Apple, may be a good solution to resolve
and even ERP applications.
this problem...but it is not sufficient to capture all the issues.
SlapOS also demonstrates that server farms and data cen-
For instance, the advent of Internet-Scale middleware raises
ters are no longer required to provide high quality Cloud
qualitatively different issues than ”global scale” alone specif-
Computing. SlapOS servers hosted at home on optical
ically those of bridging trust domains across organizational
fiber and IPv6 networks are capable of providing reliable
boundaries. So, we will also need to address mecanisms for
8http://http://archipelproject.org/
7https://www.grid5000.fr
9http://hookbox.org/
Cloud service thanks to application level data redundancy.
[6] Douglas Thain, Todd Tannenbaum, and Miron Livny. Con-
Moreover, SlapOS contributes to energy savings by reusing
dor and the grid.
In Fran Berman, Geoffrey Fox, and
heat dissipation of servers for households heating and by
Tony Hey, editors, Grid Computing : Making the Global
Infrastructure a Reality. John Wiley et Sons Inc., December
removing the need for air cooling in many countries.
2002.
SlapOS is already in commercial production. It is used
by companies or by people who are looking for a Cloud
[7] Patrick Th. Eugster, Pascal A. Felber, Rachid Guerraoui,
and Anne-Marie Kermarrec.
The many faces of pub-
Computing solution which protects their strategic data at
lish/subscribe. ACM Comput. Surv., 35(2) :114131, 2003.
a low operating cost. It is used in particular by software
publishers who are urged to transform their applications into
[8] Roberto Di Cosmo, Stefano Zacchiroli: Feature Diagrams
SaaS.
as Package Dependencies. Software Product Lines: Going
Beyond 14th International Conference, SPLC 2010, Jeju
Yet, SlapOS needs many improvements. The Resilience
Island, South Korea, September 13-17, 2010. Proceedings:
project, a project sponsored by more than 10 organisations
476-480
including Morpho, Nexedi, Nuxeo, Wallix, Universit´e de
Paris 13, Institut T´el´ecom will improve SlapOS into two
[9] Pietro Abate, Roberto Di Cosmo, Jaap Boender, Stefano
Zacchiroli: Strong dependencies between software compo-
directions: by removing and making SlapOS Master dis-
nents. Proceedings of the Third International Symposium on
tributed and by adding to SlapOS extensive support for
Empirical Software Engineering and Measurement, ESEM
security.
2009, October 15-16, 2009, Lake Buena Vista, Florida,
SlapOS also nees more contributors. We are calling here all
USA: 89-99
research, educational organization to join the SlapOS com-
[10] Ian Foster (Editor), Carl Kesselman (Editor)
The Grid:
munity and start building recipes for open source software so
Blueprint for a New Computing Infrastructure (The Elsevier
that it can be deployed on SlapOS. This effort is important
Series in Grid Computing) Morgan Kaufmann, 1999
for scientific reasons: by creating a rich library of open
[11] Christophe Cerin (Editor), Gilles Fedak (Editor) Desktop
source applications hosted on the Cloud using open source
Grid Computing Chapman & Hall, Fall 2011
SlapOS, research and education can keep access to the
know how of Cloud Computing which is for now migrating
[12] Smets-Solanes, J.-P., Atem de Carvalho, R. ERP5: a next-
generation, open-source ERP architecture IT Professional,
increasingly to companies such as Google, Facebook and
July-Aug. 2003, Volume: 5 Issue:4, page(s): 38 - 44
Microsoft, and remains secret. SlapOS is our proposed
testbed to make sure that Distributed Cloud Computing
[13] Teragrid. URL: https://www.teragrid.org/
knowledge remains shared and open.
[14] Grid5000. URL: https://www.grid5000.fr/mediawiki/index.
php/Grid5000:Home
REFERENCES
[15] Boinc. URL: http://boinc.berkeley.edu/
[1] Lesyng, B., Bala, P., Erwin, D.: Eurogrid: European compu-
[16] XtremWeb. URL : http ://www.xtremweb.org.
tational grid testbed. J. Parallel Distrib. Comput. 63 (2003)
[17] XMPP. URL: http://xmpp.org/
590–596
[18] Xmpp, the definitive guide. Peter St Andre, Kevin Smith
[2] Liang-Jie Zhang EIC Editorial: Introduction to the Body of
and Remko Trono¸n O’Reilly, 2009.
Knowledge Areas of Services Computing IEEE Transactions
on Services Computing Vol 1, number 2, April-June 2008
[19] Memcached: a free and open source, high-performance,
distributed memory object caching system.
[3] Heithem Abbes, Christophe C´erin, and Mohamed Jemni.
http://memcached.org/
Bonjourgrid as a decentralised job scheduler. In APSCC 08.
[20] Buildout - software build system reloaded
Proceedings of the 2008 IEEE Asia-Pacific Services Com-
http://www.buildout.org/
puting Conference,
pages 89–94,Washington, DC, USA,
2008. IEEE Computer Society.
[21] Supervisor: A Process Control System
http://supervisord.org/
[4] Heithem Abbes, Christophe C´erin, and Mohamed Jemni.
Bonjourgrid : Orchestration of multi-instances of grid mid-
[22] Tiosafe
dlewares on institutional desktop grids. In 3rd Workshop on
http://www.systematic-paris-region.org/en/projets/tiosafe
Desktop Grids and Volunteer Computing Systems (PCGrid
[23] Python Eggs http://www.python-eggs.org/
2009), en conjonction avec IPDPS 2009, Rome, Italie, 29
Mai 2009.
[24] Ruby Gems
http://rubygems.org/
[5] Heithem Abbes, Christophe C´erin, Mohamed Jemni:
A
decentralized and fault-tolerant Desktop Grid system for
[25] Xtreemos http://www.xtreemos.eu/
distributed applications.
Concurrency and Computation:
Practice and Experience 22(3): 261-277 (2010)
[26] ChromeOS – http://www.chromium.org/