Return to search

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

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.

Identiferoai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00439136
Date03 December 1997
CreatorsSeinturier, Lionel
Source SetsCCSD theses-EN-ligne, France
LanguageFrench
Detected LanguageFrench
TypePhD thesis

Page generated in 0.0015 seconds