La désignation symbolique des entités persistantes (segments ou fichiers) manipulées par le système d'exploitation, est un problème dont les concepts sous-jacents sont connus depuis la fin des années 60. Le système Multics [Org72] propose en effet un modèle d'organisation de l'espace de désignation des segments qui est à la base de la plupart des systèmes de désignation des systèmes d'exploitation, et notamment de celui d'Unix.
Les premiers systèmes répartis Brownbridge [Bro82] Popek [Pop85] qui font leur apparition au début des années 80, s'ils n'introduisent pas de concepts nouveaux pour ce qui est de la désignation symbolique, doivent cependant prendre en compte les nouveaux problèmes dûs à la répartition : résistance aux pannes, efficacité et hétérogénéité. Plusieurs systèmes comme NFS et AFS [How88] pour ne citer que ceux qui sont dans le domaine commercial, offrent des solutions plus ou moins complètes à ces problèmes.
Les progrès technologiques récents concernant tant les réseaux de communication, que les processeurs (architecture RISC, processeurs à 64 bits d'adresses) permettent d'envisager de nouvelles architectures de systèmes répartis pouvant fédérer un nombre potentiellement illimité de machines, regroupées en cellules au sein de réseaux locaux, ces cellules étant elles mêmes interconnectées par des réseaux internationaux. Ce type d'architecture va impliquer que les systèmes de désignation symbolique devront être capables de prendre en compte deux nouveaux types de problèmes : d'une part la taille des espaces de noms à manipuler et d'autre part l'extensibilité c'est-à-dire la possibilité d'ajouter à tout moment à l'espace de noms existant l'espace de noms d'une nouvelle cellule.
Plusieurs conceptions de services de désignation de grande taille ont été proposées (voir Lampson[Lam86], Birell[Bir82] et Dalal[Opp83]), mais la granularité des objets désignés n'est généralement pas assez fine pour pouvoir s'appliquer aux fichiers et aux objets de programmation. Ces systèmes se sont intéressés plus particulièrement à la désignation des machines et des utilisateurs.
Un système de grande taille peut contenir un nombre important de sous-systèmes qui évoluent en permanence, l'adjonction ou la réorganisation de ces sous-systèmes ne doit pas compromettre le fonctionnement du service de désignation. Si les modifications se traduisent par une restructuration de l'espace de noms. Il faut alors garantir que les changements effectués ne remettent pas en cause la validité des anciens noms.
Les composantes matérielles du système telles que les machines hôtes et les réseaux de communication peuvent tomber en panne. Le service de désignation étant un passage obligé pour accèder à un objet, il est donc essentiel d'assurer sa disponibilité.
Avec l'effet de l'extension, les opérations de résolution de noms deviennent de plus en plus coûteuses, de récentes études ont montré que ces opérations sont à l'origine d'une grande surcharge du système, il faut donc mettre en place une stratégie pour améliorer les performances K.W Shirrif[Shi92], permettant ainsi, le regroupement potentiel d'un plus grand nombre de sous-systèmes.
Notre travail a été effectué dans le cadre du projet Guide, qui est un projet mené en commun par le groupe Bull et l'institut IMAG au sein de l'unité mixte Bull-IMAG/Systèmes.
Le projet Guide (Grenoble University Integrated Distributed Environment) a commencé en 1986, la première phase s'est achevée par la réalisation d'un prototype expérimental Guide-1. La deuxième phase du projet est en cours, et consiste à mener à bien la réalisation d'un prototype pré-industriel Guide-2. Guide est une composante du projet ESPRIT COMANDOS (Construction and Management of Distributed Open Systems).
Le projet Guide a pour objectif la construction d'un système informatique permettant de développer, de mettre au point et d'exécuter des applications réparties sur un réseau local à haut débit interconnectant des postes de travail et des serveurs. Le système assure une gestion globale et intégrée des ressources matérielles et des informations. Il doit permettre de développer des applications coopératives (génie logiciel et gestion de documents), en utilisant des méthodes de structuration à base d'objets.
Des exemples typiques de telles applications sont:
Le système Guide-2 doit servir deux catégories d'utilisateurs : les développeurs et intégrateurs d'applications destinées à des usagers finals, qui programment en langage Guide, les usagers finals eux-mêmes qui utilisent ces applications et les services de base du système. Guide doit également servir à écrire des outils pour les développeurs d'applications.
Ce projet vise à étudier la conception d'un service de désignation pour un système réparti de grande taille. L'objectif est de réaliser, dans une première phase, l'étude des principes généraux de la désignation dans les systèmes répartis. Ensuite, d'identifier les problèmes introduits par l'extension sur les systèmes de grande taille, et de proposer des solutions à ces problèmes. L'étude accorde un intérêt particulier aux aspects suivants :
Les résultats de cette étude débouchent sur une proposition d'un service de désignation extensible pour le système réparti à objets Guide-2.
Le rapport est organisé en cinq parties :
dans la suite du rapport e terme niveau inter-cellules sera équivalent au terme niveau global,
et le terme niveau intra-cellule équivalent au terme niveau local