SlapOS Home SlapOS

    SlapOS: a Multi-purpose Distributed Cloud Operating System Based on an ERP Billing Model

    A draft paper submitted to IEEE 2011 International Workshop on Performance Aspects of Cloud and Service Virtualization.
    • Last Update:2011-04-11
    • Version:001
    • Language:en
    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/