Département d'informatique, Institut d'informatique fondamentale IIF (Laboratoire de systèmes répartis LSR)

The CORBA object group service : a service approach to object groups in CORBA

Felber, Pascal ; Schiper, André (Dir.)

Thèse Ecole polytechnique fédérale de Lausanne EPFL : 1998 ; no 1867.

Ajouter à la liste personnelle
    Summary
    Distributed computing is one of the major trends in the computer industry. As systems become more distributed, they also become more complex and have to deal with new kinds of problems, such as partial crashes and link failures. To answer the growing demand in distributed technologies, several middleware environments have emerged during the last few years. These environments however lack support for "one-to-many" communication primitives; such primitives greatly simplify the development of several types of applications that have requirements for high availability, fault tolerance, parallel processing, or collaborative work. One-to-many interactions can be provided by group communication. It manages groups of objects and provides primitives for sending messages to all members of a group, with various reliability and ordering guarantees. A group constitutes a logical addressing facility: messages can be issued to a group without having to know the number, identity, or location of individual members. The notion of group has proven to be very useful for providing high availability through replication: a set of replicas constitutes a group, but are viewed by clients as a single entity in the system. This thesis aims at studying and proposing solutions to the problem of object group support in object-based middleware environments. It surveys and evaluates different approaches to this problem. Based on this evaluation, we propose a system model and an open architecture to add support for object groups to the CORBA middle- ware environment. In doing so, we provide the application developer with powerful group primitives in the context of a standard object-based environment. This thesis contributes to ongoing standardization efforts that aim to support fault tolerance in CORBA, using entity redundancy. The group architecture proposed in this thesis — the Object Group Service (OGS) — is based on the concept of component integration. It consists of several distinct components that provide various facilities for reliable distributed computing and that are reusable in isolation. Group support is ultimately provided by combining these components. OGS defines an object-oriented framework of CORBA components for reliable distributed systems. The OGS components include a group membership service, which keeps track of the composition of object groups, a group multicast service, which provides delivery of messages to all group members, a consensus service, which allows several CORBA objects to resolve distributed agreement problems, and a monitoring service, which provides distributed failure detection mechanisms. OGS includes support for dynamic group membership and for group multicast with various reliability and ordering guarantees. It defines interfaces for active and primary-backup replication. In addition, OGS proposes several execution styles and various levels of transparency. A prototype implementation of OGS has been realized in the context of this thesis. This implementation is available for two commercial ORBs (Orbix and VisiBroker). It relies solely on the CORBA specification, and is thus portable to any compliant ORB. Although the main theme of this thesis deals with system architecture, we have developed some original algorithms to implement group support in OGS. We analyze these algorithms and implementation choices in this dissertation, and we evaluate them in terms of efficiency. We also illustrate the use of OGS through example applications.
    Résumé
    Les systèmes distribués occupent une place de plus en plus importante dans l'informatique actuelle. La distribution rend les systèmes plus complexes à concevoir et à gérer car ces derniers doivent tenir compte de nouveaux types de problèmes, tels que les pannes partielles ou les défaillances du réseau. Afin de répondre à la demande grandissante des technologies distribuées, plusieurs environnements de type "middleware" sont apparus au cours des dernières années. Ces environnements ne disposent cependant pas de primitives de communication permettant d'envoyer un message à plusieurs destinataires (un vers plusieurs); ces primitives simplifient grandement le développement de plusieurs types d'applications qui ont des besoins spécifiques dans des domaines tels que la haute disponibilité, la tolérance aux défaillances, le calcul parallèle ou le travail collaboratif. La communication de groupe offre un outil adéquat pour les interactions de type un vers plusieurs. Elle gère des groupes d'objets et permet d'envoyer des messages à tous les members d'un groupe avec diverses garanties de fiabilité et d'ordonnancement. Un groupe représente une facilité d'adressage logique: des messages peuvent être envoyés à un groupe sans avoir à connaître le nombre, l'identité ou l'emplacement de chacun de ses membres. La notion de groupe a prouvé son utilité dans le contexte de la haute disponibilité par duplication: plusieurs copies d'un objet sont réunies dans un groupe qui apparaît à ses clients comme une seule entité dans le système. Le but de cette thèse est d'étudier et de proposer des solutions au problème de la communication de groupe dans un environnement orienté-objet de type "middleware". Elle présente et évalue différentes approches à ce problème. Sur la base de cette évaluation, nous proposons un modèle et une architecture ouverte permettant d'ajouter la notion de groupe d'objets dans l'environnement CORBA. Par cela, nous mettons à disposition du programmeur un ensemble de primitives puissantes pour la communication de groupe dans le cadre d'un environnement orienté-objet standard. Cette thèse contribue aux efforts actuellement en cours visant à supporter la tolérance aux défaillances dans CORBA à l'aide de la redondance. L'architecture proposée dans cette thèse — le service de groupes d'objets (OGS) — est basée sur le concept d'intégration de composants. Cette architecture comprend différents composants, réutilisables indépendamment les uns des autres, qui mettent à disposition diverses facilités pour la programmation d'applications distribuées fiables. La communication de groupe est mise en oeuvre à l'aide de ces différents composants. OGS définit donc un ensemble de composants CORBA pour les systèmes distribués fiables. Les composants d'OGS incluent un service qui gère la composition de groupes d'objets, un service qui fournit diverses primitives pour communiquer avec ces groupes, un service qui permet de résoudre le problème du consensus distribué, et un service qui détecte les pannes de composants distants. OGS gère des groupes dont la composition peut évoluer dynamiquement, et offre diverses garanties de fiabilité et d'ordonnancement pour la communication de groupe. Il propose des interfaces permettant de dupliquer des objets activement ou passivement. En outre, OGS offre différents styles d'exécution et divers niveaux de transparence. Un prototype d'OGS a été mis en oeuvre dans le contexte de cette thèse. Ce prototype est disponible pour deux mises en oeuvre commerciales de CORBA (Orbix et VisiBroker). Comme il se base uniquement sur le standard CORBA, ce prototype peut être facilement porté sur toute autre mise en oeuvre de CORBA. Bien que la contribution principale de cette thèse se situe au niveau architectural, nous avons adopté des approches algorithmiques originales pour la communication de groupe. Nous détaillons ces algorithmes dans cette thèse et nous évaluons leurs performances. En outre, nous illustrons l'utilisation d'OGS à l'aide de plusieurs exemples d'applications.