Connaissances pour la distribution Peu-t-on rendre un système intelligent ? M. Riveill Coordination Système multi-agents/objets pour la coopération de systèmes d?information D. Boulanger, G. Dubois, V. Couturier, E. Disson, M. Seguran Utilisation dinteractions entre objets distants pour distribuer des systèmes à base de connaissances A.M. Dery, M. Blay-Fornarino, S. Moisan, B. Arcier
Distribué, réparti ? Pas dhorloge globale –La notion de date nest pas intrinsèque, –Impossibilité pour un ensemble de processus, agent de prendre la même décision, ou de faire la même action au même moment Pas de mémoire commune –Pas détat divin du système ou de lenvironnement –Il faut reconstruire létat partiel (ou total) du système ou de lenvironnement Date ou mémoire sont des notions qui « émergent »
Systèmes répartis Ingénierie des connaissances GDR ARP ( –Les systèmes répartis doivent supporter l'exécution de différentes classes d'applications, ayant des exigences pouvant évoluer au cours du temps. Ces exigences concernent les aspects temporels (temps processeur, bande passante réseau,...), mais aussi la sécurité, la protection, la tolérance aux fautes, la mobilité. Par ailleurs à l'autre bout du spectre, les applications, de plus en plus construites sous la forme d'assemblage de composants n'ayant pas été prévu pour fonctionner ensemble, ont des exigences vis à vis du système de plus en plus grandes. GDR I3 ( –L'ingénierie des connaissances propose des concepts, méthodes et techniques permettant de modéliser et d'acquérir les connaissances dans des domaines se formalisant peu ou pas. Appréhender correctement la complexité du processus d'acquisition des connaissances passe par l'introduction de multiples modèles. Les modèles doivent jouer un rôle de médiation en étant lisibles et compréhensibles par tous. Les modèles doivent aussi faciliter le codage de la base de connaissances.
A laide… Pourquoi mon système est-il si peu intelligent ? 3 exemples « quotidiens »… parmi tant dautres –Descriptions de ressources Déploiement dapplications réparties (SIRAC) – typage fort Recherche de services (OMG) – sans typage –Gestion de copies multiples Dessin collaboratif, agenda partagé, mémoire partagée répartie
Déploiement dapplications réparties (1) Description dune application par assemblage de composants Interfaces d'entrée (export) Interfaces de sortie (import) Connecteur (objet de communication) Composant élémentaire Composant construit Application A B A1 A2 A3 B1 B2
Déploiement dapplications réparties (2) Description des plates-formes, utilisateurs par une API typedef struct nodeInfoIncomplet { // description dun noeud string name; string IPAdr; string platform; string osType; string osVersion; string CPULoad; string UserLoad; } typedef struct userInfoIncomplet { // description dun utilisateur string name; string uid; string grpId; }
Déploiement dapplications réparties (3) Basé sur linterprétation de directives management AnnuaireMgmt : AnnuaireImpl { Node.name == "db?.inrialpes.fr"; /* un site dont le nom commence par db, puis un caractère dans le domaine inrialpes.fr */ Node.CPULoad <= 10; /* La charge moyenne constatée lors de l'installation doit être inférieure à 10 (échelle de 0 à l'infini, la charge 100 étant une utilisation standard). */ Node.UserLoad <= 10; /* Nombre d'utilisateurs moyen inférieur à 10 */ User.name == "admin"; /* appartient à l'utilisateur privilégié */ } Description typée difficilement extensible… non exhaustive…
Recherche de service (OMG) Interface ServiceImpression { Void imprimer (in string fichier); } Description dune imprimante Nomstring Couleur boolean Cout_par_pagefloat Ppmunsigned short Mécanisme facilement extensible… –une propriété est un couple : ( nom, type)
Recherche de service (OMG) Recherche dune imprimante Offres = Holder (); Iter = Holder (); Limites = Holder (); Trader.query ( « imprimante », « couleur == TRUE and ppm > 2 », « first », CosTrading.PolicySeq (); // pas de strategie de recherche particulière CosTrading.Lookup.SpecifiedProps ( // propriété à retourner CosTrading.Lookup.HowManyProps.some, [« nom », « couleur », « cout_par_page », « ppm »] ), 5, offres, iter, limites// nbre max et variables out ) Service non typée (pas de vérification statique, erreur à lexécution), Utilisation du service non portable… printer, black & white
Gestion de copies multiples (1) Distribution Copies multiples Accélérer les lectures Ne pas pénaliser les écritures Contrôle pessimiste On « freine » la divergence des copies (en limitant le parallélisme des actions) Pose de verrou Contrôle optimiste Les copies diverges Il faut « réconcilier » les copies
? Gestion de copies multiples (2) Laquelle prendre ? Comment comprendre lintention –De lauteur, de lapplication, …
Approche « systèmes répartis » Choix dune évolution parmi les autres –Priorité, date, … Ou « synthèse des différentes modifications » –Fichier de log, enregistre les actions –Chaque action est datée (ordre total, ordre causal, …) –Eventuellement pré et post condition –Puis rejouer les logs Selon la relation dordre Selon pré post condition –Selon les cas Solution unique plusieurs solutions pas de solution
Sil vous plait… Pouvez-vous rendre mon système intelligent ? –Comment représenter Des intentions… Des propriétés floues… Des notions changeantes… … –Sans tout câbler en dur dans le système (ni dans la base de connaissance) Tout en étant efficace, Prédictifs (?), Fiables, … –Afin dêtre : adaptable, souple, …
Quelques questions… Quels types de connaissance le système à besoin de l'application ? Quels types de connaissance l'application à besoin du système ? Pour que l'ensemble offre les fonctionnalités souhaitées. –Comment une application peut elle connaître les "services" présent sur le système (réparti) ? Est-ce que ces connaissances sont formalisables ou non ? –Que peut connaître un système de l'application ? Est-ce que les applications peuvent décrire d'une manière ou d'une autre leurs besoins ? Ces connaissances ont-elles un jour la chance d'être comprise pas le système ? –Qui gère les périphériques (PC, PDA, téléphone), communication par réseaux rapides ou au contraire lent (GSM), l'application ou le système ? –Quel langage pour quel usage ? programmation "in the large" (langage de script ou d'assemblage) vs programmation "in the détail" (limites, vertus des objets, agents, composants) ? Y a-t-il différentes voies d'approches ? –Si le Web est un middleware, si le code présent sur chaque station devient accessible depuis l'extérieur, que peuvent offrir les systèmes à base de connaissance pour permettre le passage à léchelle (i.e. comment faire en sorte que quelques soit l'endroit ou je me trouve du réseau, je puisse avoir l'impression d'être dans mon bureau par exemple) ?