Faculté informatique et communications IC, Section des systèmes de communication, Institut d'informatique fondamentale IIF (Laboratoire de systèmes répartis LSR)

JMSGroups : JMS compliant group communication

Kupšys, Arnas ; Schiper, André (Dir.)

Thèse sciences Ecole polytechnique fédérale de Lausanne EPFL : 2005 ; no 3341.

Ajouter à la liste personnelle
    Summary
    Nowadays, computers are the indispensable part of our life. They evolve rapidly and are more and more versatile. Computer networks made the remote corners of the world just a click away. But unavoidably, any software and hardware component is subject to failure. Distributed systems spread on tens or hundreds of machines are particularly vulnerable to failures. Consequently, high availability and fault tolerance became a "must have" feature for such systems. Software fault tolerance is achieved through the technique called replication. In replication several software replicas are executed at the same time. If one or several of them fail, other still provide the service. Software replication is often implemented using group communication, which provides communication primitives with various semantics and greatly simplifies the development of highly available and fault tolerant services. However, despite tremendous advances in research and numerous prototypes, group communication stays confined to small niches and academic prototypes. In contrast, other technology, called messageoriented middleware such as the Java Message Service (JMS) is widely used in distributed systems, and has become a de-facto standard. We believe that the lack of a well-defined and easily understandable standard is the reason that hinders the deployment of group communication systems. Since JMS is a well-established technology, we propose to extend JMS adding group communication primitives to it. Foremost, this requires to extend the traditional semantics of group communication in order to take into account various features of JMS, e.g., durable/non-durable subscriptions and persistent/non-persistent messages. The resulting new group communication specification, together with the corresponding API, defines group communication primitives compatible with JMS, that we call JMSGroups. To validate the specification and API we provide a prototype implementation of JMSGroups. As such, we believe it facilitates the acceptance of group communication by a larger community and provides a powerful environment for building fault-tolerant applications.
    Résumé
    De nos jours, les ordinateurs jouent un rôle indispensable dans notre quotidien. Ils évoluent rapidement et sont de plus en plus versatiles. Les réseaux informatiques rendent accessibles en un clic les coins les plus retirés du monde. Immanquablement, tout logiciel ou composant matériel est sujet à des pannes. Les systèmes distribués qui s'étendent sur des dizaines ou des centaines de machines sont particulièrement vulnérables aux fautes. En conséquence, haute disponibilité et tolérance aux fautes sont devenues, pour ces systèmes, une caractéristique essentielle. La tolérance aux fautes des logiciels est obtenue par une technique appelée réplication. Grâce à la réplication plusieurs copies d'un même logiciel sont exécutées simultanément. Si l'une d'entre elles tombe en panne, d'autres pourront assurer la disponibilité du service. La réplication de logiciel est souvent réalisée en utilisant la communication de groupe, qui definit des primitives de communication avec diverses sémantiques et simplifie beaucoup le développement du services hautement disponibles et tolérants aux fautes. Malgré de grands progrès et la réalisation de nombreux prototypes, la communication de groupe demeure confinée dans des domaines très particuliers. Par comparaison, une autre technologie appelée, en anglais, Message Oriented Middleware (MOM), comme Java Message Service (JMS), est très utilisée dans les systèmes répartis et est devenue un standard de fait. Nous pensons que l'absence de standards freine le déploiement d'applications utilisant la communication de groupe. Puisque JMS est une technologie bien établie, nous proposons d'étendre sa spécification en y ajoutant des primitives de communication de groupe. Tout d'abord, cela nécessite l'extension de la sémantique de la communication de groupe afin d'y inclure les divers aspects de JMS tels que, par exemple, les souscriptions durables/non-durables et les messages persistants/non-persistants. Cette nouvelle spécification, avec l'API correspondante, définit des primitives de communication de groupe compatibles avec JMS que nous appelons JMSGroups. Pour valider la spécification et l'API, nous avons implémenté un prototype de JMSGroups. Nous espérons que JMSGroups favorisera l'acceptation des communications de groupe dans une plus grande communauté et constituera une infrastructure robuste pour construire des applications réparties tolérantes aux fautes.