Decentralized Service Deployment for Collaborative Environments
Daniel L´ azaro Iglesias
Open University of Catalonia
dlazaroi@uoc.edu
Joan Manuel Marqu` es i Puig
Open University of Catalonia
jmarquesp@uoc.edu
Josep Jorba Esteve
Open University of Catalonia
jjorbae@uoc.edu
Abstract
In this paper we present the design of a system which
allows service deployment in a small-sized group of com-
puters distributed through the Internet. These groups are
formed by users who share a common interest, and vol-
untarily yield their own resources for the achievement of
the collaborative activities of the group. Having enough
resources contributed by the members of the group, our sys-
tem guarantees service availability and the fact that the de-
ployment and execution of the services is carried out us-
ing only the resources of the group. This management is
done in a completely decentralized manner, and the system
is self-organized in the presence of component connections,
disconnections and failures. We demonstrate its validity
through the implementation of a prototype and the execution
of some tests, which allow us to guarantee that the system
is self-organized, always reaching a consistent state.
1. Introduction
When a group of people formed rather spontaneously
(informal school associations, people with similar inter-
ests, campaigns for social and political activists) uses inter-
net to carry out collaborative activities, usually they won’t
have supporting entities that automatically and transpar-
ently guarantee the necessary resources. These group mem-
bers must thus collaborate using applications that only par-
tially meet their needs (such as email), by having a few
members manage resources for the whole group, or by pay-
ing for third-party resources or accepting advertising.
In this kind of environments, it would be desirable that
the members of the group could collaborate sharing their re-
sources. Each user should be able to provide resources so
that they can be used for the benefit of the group. In this type
of group the members share some common motivations and
want their collaborative activities to be achieved, so they’ll
be willing to provide their own resources. On the other
hand, as they’re individual users with limited resources,
variations of the capacity and availability of these resources
over time can be expected, either because users disconnect,
either because of components’ failures, etc. Therefore, a
system for managing the use of own resources in a collec-
tive way is required.
LaCOLLA [1, 2] is a middleware that allows the mem-
bers of a small-sized group this kind of collaboration. Fol-
lowing the peer-to-peer paradigm, the group works in a de-
centralized manner, coordinating the resources and the ap-
plications contributed to the group by its members to allow
collaboration. It basically offers general purpose function-
alities that user applications can use to carry on their collab-
orative activities. Specifically, the middleware offers pres-
ence information, location transparency, object storage and
communication between members of a group by dissemi-
nating events, which inform all the members of an action
that occurred in the group, and messages, sent to a subset of
participants.
When someone wants to offer a service (i.e. any applica-
tion that receives a query and returns an answer) using the
resources provided by the participants, whether it’s an inter-
nal service for the use of the own system or one that a user
wants to offer to the rest of the members of the group, its
implementation should deal with all the difficulties derived
from decentralized systems. A possible way to avoid this
would be to extend the system with the ability to deploy a
service within a group. The middleware would guarantee
that the service is always active and reachable, using only
resources provided by group members. This way, the ser-
vice could be designed and implemented without having to
manage its own decentralization, and would work in our de-
centralized environment. This would allow users to deploy
services they want to offer but lack the resources to do it
(for example, a web server), as well as provide an internal
service that can be used by applications.
This paper extends the LaCOLLA middleware available
at http://lacolla.uoc.edu/lacolla, and presents a system that
allows the deployment of stateless services in a group of
computers scattered across the Internet, in a decentralized
manner, so that these services are always available as long
as the resources provided to the group permit it.
Proceedings of the First International Conference
on Complex, Intelligent and Software Intensive Systems (CISIS'07)
0-7695-2823-6/07 $20.00 © 2007