Coopération entre modèles de temps et de communication

Dans les cours précédents, j’ai présenté plusieurs types de modèles de temps et de communication pour les circuits et logiciels associés : modèles asynchrones sans contrôle de temps, modèles vibratoires où calculs et communications prennent un temps prévisible, modèles synchrones où la communication est supposée conceptuellement instantanée, modèles de temps continu ou de temps discret, etc. Ces modèles ont des caractéristiques et des champs d’application bien différents : grands réseaux et algorithmes distribués généraux pour l’asynchrone, circuits, systèmes embarqués et systèmes cyber-physiques pour le vibratoire et le synchrone, simulation de systèmes physiques pour les modèles de temps continu par exemple. Nous avons aussi vu que les applications modernes demandent souvent une conjonction de modèles : circuits globalement asynchrones mais localement synchrones (GALS), orchestration d’activités Web asynchrones par des programmes synchrones (Hop / HipHop), etc.

Dans ce cours, j’étudierai plus en profondeur la coopération entre modèles de temps et de communication. Je montrerai d’abord que cette coopération existe déjà dans notre activité de tous les jours, et que nous utilisons nombres d’outils permettant de passer d’un mode à l’autre : répondeur téléphonique, téléphone ou vision conférence sur Internet, etc. J’expliquerai ensuite que beaucoup de travaux ponctuels ont été faits et beaucoup d’outils développés pour utiliser en coordination plusieurs modèles de temps en informatique, mais sans beaucoup de relations entre eux.

Je présenterai enfin avec plus de détails le système Ptolemy II développé à UC Berkeley par l’équipe  d’Edward Lee. C’est actuellement le seul système ayant pour ambition de développer divers modèles de calcul et leurs compositions hiérarchiques au sein d’un atelier logiciel unique fondé sur des sémantiques formelles claires des modèles et de leur composition tout en étant orienté vers un grand nombre de domaines applicatifs. J’illustrerai les principaux modèles de temps de Ptolemy et la façon de les composer dans les applications : réseaux de flots de données équilibrés ou non, automates finis, réseaux synchrones, simulateurs à événements discrets, systèmes distribués synchrones à temps coordonné, compositions modales ou continues / discrètes, etc. Ptolemy II est disponible librement sur le Web, et accompagné d’un superbe livre pédagogique dont tous les exemples peuvent être exécutés en ligne. Ils seront la base de cette partie du cours.