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