Conception d'algorithmes répartis et de protocoles réseaux en approche objet - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 1997

Object-Oriented Design of Distributed Algorithms and Network Protocols

Conception d'algorithmes répartis et de protocoles réseaux en approche objet

Résumé

This thesis deals with the design of distributed algorithms, network protocols, and cooperative applications with an object-oriented approach. This process requires the use of numerous system and network software components. We propose several tools and formalisms to carry out this activity. The originality of our approach is, first, to extend the local point of view of existing object-oriented methods in order to integrate the behaviors of groups of distributed objects, and second, to set up a distributed programming language. Thus, we propose a development process with three methodological levels: group, object, and method. This top-down process introduces, with successive refinement steps, more and more details in the behavioral models. These three levels deals, respectively, with distribution, concurrency, and sequentiality. In this thesis, we are interested in the first two levels. The group level deals with the inter-objects coordination of distributed objects. The interactions inside such groups are defined in terms of knowledge exchanges. They can be seen as the consequences of the run of some global actions performed by all the objects of the group. We put forward four global actions, called distributed control structures, frequently used in distributed applications: the phase, the distributed condition, the distributed iteration, and the distributed recursion. They can be seen as the extension, at a distributed level, of the four following basic algorithmic statements: the sequence, the \em case \em and the \em if \em statements, the \em while \em loop, and the backtrack traversal. We use an epistemic logic to describe the knowledge levels reached by the run of these structures. We propose a syntax, called group level knowledge based program, to describe the global actions and the epistemic predicates used by an application. The object level deals with intra-object coordination. According to the fact that inter-objects coordination is performed by objects whose concurrent activities need to be synchronized, the object level is a refinement of the group level. To carry out the description of intra-object coordination, we propose the CAOLAC language. We implemented it on top of the object language of the GUIDE distributed system. The CAOLAC language is a meta-object protocol that separates synchronization tasks from sequential ones. The former are defined in meta-classes, and the latter in classes. The originality of the CAOLAC language is to use both some state/transition models and some usual object-oriented code to write meta-classes. Each object is associated with a meta-object that traps method calls and that performs some coordination before delivering them to the object. The advantage of this approach is to clearly separate the different functionalities, and to facilitate the reuse of synchronization policies. The semantics of the CAOLAC language is partially defined with Lamport temporal logic of actions. We illustrate our approach with two examples. We present the design of a spanning tree construction distributed algorithm, and of a transactional two phases commit protocol.
Dans cette thèse, nous nous intéressons à la conception d'algorithmes répartis, de protocoles réseaux et d'applications coopératives avec une approche objet. Cette activité, souvent complexe, nécessite la mise en \oe uvre de nombreux mécanismes systèmes et réseaux. Nous proposons donc différents outils et formalismes permettant de mener à bien cette tâche. L'originalité de notre approche est, d'une part, d'étendre le point de vue local des méthodologies de conception existantes afin d'intégrer les comportements de groupes d'objets distribués, et d'autre part, de proposer les premiers éléments d'une démarche systématique d'algorithmique répartie. Ainsi, nous proposons un processus de développement en trois niveaux méthodologiques : groupe, objet et méthode. Ce processus de type descendant permet d'introduire, par raffinements successifs, de plus en plus de détails dans les modèles de comportements. Ces trois niveaux traitent, respectivement, des aspects liés à la distribution, à la concurrence et aux traitements séquentiels. Dans cette thèse, nous nous intéressons aux deux premiers niveaux. Le niveau groupe concerne la coordination des comportements de groupes d'objets distribués. Nous modélisons les interactions au sein de tels groupes en terme d'échanges de connaissances. Ceux-ci peuvent être vus comme la conséquence d'actions globales entreprises par l'ensemble des objets du groupe. Nous avons mis en évidence quatre actions globales, ou structures de contrôle de groupe, qui apparaissent dans de nombreuses applications distribuées : le schéma de phasage, la conditionnelle distribuée, l'itération distribuée et la récursion distribuée. Elles peuvent être vues comme l'extension, à un niveau réparti, des structures algorithmiques de base que sont, respectivement, la séquence, les instructions de type \em case \em ou \em if\em , les boucles \em while \em et le parcours récursif. Nous utilisons une logique épistémique pour décrire les différents niveaux de connaissance atteints lors de l'exécution de ces structures. Nous proposons une notation appelée programme à base de connaissances de niveau groupe pour exprimer les actions globales et les prédicats épistémiques utilisés par une application. Le niveau objet s'intéresse à la coordination des comportements internes à un objet. C'est un raffinement du niveau précédent, au sens où la coordination inter-objets est implantée par des objets dont les activités concurrentes nécessitent une synchronisation. Pour mener à bien la description de cette coordination intra-objet, nous proposons le langage CAOLAC. Nous en avons réalisé une implantation au-dessus du langage objet du système distribué GUIDE. Le langage CAOLAC se présente sous la forme d'un protocole méta-objet et sépare les aspects de synchronisation des traitements effectifs. Les premiers sont définis dans des méta-classes, tandis que les seconds le sont dans des classes. L'originalité du langage CAOLAC est d'utiliser conjointement un modèle à base d'états et de transitions et du code objet habituel pour l'écriture des méta-classes. Ainsi, chaque objet est associé à un méta-objet qui intercepte les invocations de méthodes et les coordonne avant de les délivrer à l'objet. L'avantage de cette approche est de séparer clairement les différents fonctionnalités et de faciliter la réutilisation des politiques de synchronisation. La sémantique du langage CAOLAC est définie, partiellement, par une logique temporelle, la logique temporelle d'actions de Lamport. Enfin, nous illustrons notre propos par deux études de cas. Nous présentons la conception d'un algorithme réparti de calcul d'arbres couvrants et d'un protocole transactionnel de validation à deux phases.
Fichier principal
Vignette du fichier
these.pdf (1.24 Mo) Télécharger le fichier
expose.ps (386.66 Ko) Télécharger le fichier
Format : Autre
Loading...

Dates et versions

tel-00439136 , version 1 (06-12-2009)

Identifiants

  • HAL Id : tel-00439136 , version 1

Citer

Lionel Seinturier. Conception d'algorithmes répartis et de protocoles réseaux en approche objet. Réseaux et télécommunications [cs.NI]. Conservatoire National des Arts et Métiers - CNAM Paris, 1997. Français. ⟨NNT : ⟩. ⟨tel-00439136⟩

Collections

CNAM CEDRIC-CNAM
149 Consultations
431 Téléchargements

Partager

Gmail Facebook X LinkedIn More