La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Message Oriented Middlewares: Le middleware AAA F. Boyer, RICM2, année 04-05

Présentations similaires


Présentation au sujet: "1 Message Oriented Middlewares: Le middleware AAA F. Boyer, RICM2, année 04-05"— Transcription de la présentation:

1 1 Message Oriented Middlewares: Le middleware AAA F. Boyer, RICM2, année 04-05 http://sardes.inrialpes.fr/~boyer

2 2 Plan Introduction sur les MOM Principes généraux Implantation des MOM Exemple de MOM Java Message Service (JMS)

3 3 Introduction (1) Outils à base de RPC Appels synchrones Composants fortement couplés (connexion permanente) Désignation explicite du destinataire Connexion (1-1) Communication par message Communications asynchrones Désignation anonyme (ex : diffusion sur un bus) Diffusions (1-N)

4 4 Introduction (2) Exemple dapplications Surveillance des équipements dun réseau EAI (Enterprise Application Integration) Workflow … gestion devénements

5 5 Exemple d application Solution client-serveur Interrogation régulière par l'application d'administration (client) des éléments à surveiller (serveur) et mise à jour d'une base de données centralisée. Utilisation d'une configuration complexe afin de connaître l'ensemble des éléments à surveiller. Maintien de cette configuration lorsque des machines ou des applications rejoignent, quittent ou se déplacent dans le système. Interrogation par les administrateurs de la base centrale.

6 6 Principes directeurs Message Passing (communication par messages) Message Queuing (communication par file de message) Publish/Subscribe (communication par abonnements)

7 7 Message passing Principes directeurs communication asynchrone communication directe ou indirecte (via des portes) problème de désignation, localisation des entités coopérantes messages éventuellement typés (ex: Mach) Interface de programmation et mise en œuvre primitives de communication élémentaires ("envoyer", recevoir") : dans une architecture de type micro-noyau : Chorus, Mach dans un environnement de programmation parallèle : PVM, MPI Outils de développement peu évolués et de bas niveau

8 8 Message passing Exemple d utilisation Réalisation dune interaction de type « client-serveur » Client Serveur exécution du service Port_S Port_C (nom_de_service, paramètres, port_C) (résultat)

9 9 Message Queuing Queue de messages persistantes asynchronisme et fiabilité Indépendance de l'émetteur et du destinataire Le destinataire nest pas forcément actif send recv ClientServeur

10 10 Publish/Subscribe (1) Désignation anonyme Lémetteur envoie un message Basé sur un sujet (subject-based:failure,load,…) Basé sur un contenu (content-based:*kernighan*) Le récepteur sabonne (à un sujet ou un contenu) Communication 1-N Plusieurs récepteurs peuvent sabonner Un même message est diffusé à l'ensemble des abonnés (non possible avec une queue de messages / subject ou / topic).

11 11 Publish/Subscribe (2) consommateur publish producteur Ë Ì subscribe ¶ recv

12 12 Implantation (1) Serveur centralisé (Hub & spoke) Simplicité de mise en œuvre Peu tolérant aux pannes Passage à léchelle difficile Serveur client

13 13 Implantation (2) Serveur réparti (Snow flake) Chaque serveur connaît un ensemble dautres serveurs Routage des messages Répartition de la charge Fiabilité relative Passage à léchelle serveur client serveur client

14 14 Implantation (3) Service réparti (bus logiciel) Machine A Système d exploitation Services du bus logiciel Processus_a Machine B Système d exploitation Services du bus logiciel Processus_b protocoles du bus logiciel Interface Bus

15 15 Propriétés des MOM Tolérance aux pannes Garanties de délivrance des messages Perte et duplication Ordre Garanties datomicité Pour une séquence denvoi et de réception Sécurité Confidentialité Intégrité Persistence Arret du MOM redémarrage avec état

16 16 Middleware à base dagents communicants. Agents Anytime Anywhere

17 17 LEnvironnement dexécution A3 La plate-forme à agents Linfrastructure dexécution Exemple dapplications Agents Anytime Anywhere Plan

18 18 Agents: objets « réactifs » se comportant selon le modèle « événement – réaction ». Un événement est representé par une notification. Les notifications sont envoyées via un bus logiciel. Les agents sont composés: dun état, dun ensemble de règles décrivant leurs réactions. La plate-forme à agents Introduction

19 19 La plate-forme à agents Propriétés B C A Les agents: Sont persistants (état sauvegardé). Ont des réactions atomiques (état toujours cohérent). Les communications sont: Asynchrones (fonctionnement en mode déconnecté). Fiables (garantie de délivrance). Ordonnancées (causalité).

20 20 La plate-forme à agents Modèle de programmation (1) Agents: Objets Java héritant de la classe de base Agent. Identifiés de façon unique par un agentId. public class HelloWorld extends Agent { public HelloWorld(short to, String name) { super(to, name); } public void react(AgentId from, Notification not) throws Exception { … }

21 21 La plate-forme à agents Modèle de programmation (1) Notifications: Objets Java sérialisables héritant de la classe de base Notification. public class HelloWorldNot extends Notification { public String msg = "Hello world"; public HelloWorldNot(String msg) { this.msg = msg; }

22 22 La plate-forme à agents Modèle de programmation (2) Envoi de notifications: Directement vers un agent Vers un Role ou un RoleMultiple (configurables). sendTo(AgentId ag, Notification n) ou sendTo(Role role, Notification n) ag: id de lagent destinataire Role: structure contenant lid du/des destinataires (indirection) n: la notification qui doit être envoyée

23 23 AgentId Identification du serveur de l'agent créateur (from) Identification du serveur de résidence de l'agent créé (to) Estampille locale au serveur d'agents de l'agent créateur (stamp) Creation engine Localisation engine Stamp 16 bits 32 bits

24 24 La plate-forme à agents Modèle de programmation (3) Modèle événement/réaction Evénement = objet passif (message) émis par un agent à destination d un autre agent. Réaction = la réception d un événement par un agent provoque l éxécution de la méthode réact de la classe de l'agent Agent attribute1 :... attribute2 :... Agent attribute1 :... attribute2 :... event1 (...) event2 (...) dest1 (...) dest2 (...)

25 25 La plate-forme à agents E xemple d'agent public class HelloWorld extends Agent { public AgentId dest; public HelloWorld(short to, String name) { super(to, name); } public void react(AgentId from, Notification not)throws Exception { if (n instanceof HelloWorldNot) { // on a reçu une HelloWorldNot System.out.println(((HelloWorldNot)n).msg); // on peut envoyer une nouvelle notification sendTo(dest, new HelloWorldReceivedNot()); } else super.react(from,not); }

26 26 La plate-forme à agents Création et déploiement des agents Dans un serveur dagents: Création des agents (instanciation classe correspondante puis déploiement) Exécution des agents Communication des agents Création et déploiement: 1. Instanciation locale de lagent (création dun « germe ») 2. Déploiement de lagent sur le serveur destinataire.

27 27 Création et déploiement short agentServerId;.. // Create agent ag to be deployed on AgentServer x Ag ag = new Ag(agentServerId); // Deploy agents ag.deploy(),..

28 28 Configuration des serveurs d'agents Configuration décrite statiquement (a3servers.xml sur chaque site)

29 29 La plate-forme à agents Création d'un serveur d'agent (1) > java fr.dyade.aaa.agent.AgentServer num rac // num = numéro du serveur // rac = racine de persistence // exemple : java fr.dyade.aaa.agentServer 1 s1

30 30 La plate-forme à agents Création d'un serveur d'agent (2) public class Launch { // Starts an initial AgentServer public static void main (String args[]) { try { AgentServer.init(args); // Create agent ag to be deployed on AgentServer 0 (or 1) Ag ag = new Ag((short)0); // Deploy agents ag.deploy(), // Send a notification Channel.sendTo(ag.getId(), new not()); // Become an AgentServer AgentServer.start(); }.. }

31 31 Linfrastructure dexécution Vue densemble (1) Infrastructure basée sur un bus à messages: Achemine les notifications. Provoque la réaction du destinataire. Mise en œuvre distribuée: sur chaque site, le bus local représente le bus à messages.

32 32 Linfrastructure dexécution Vue densemble (2) Bus local: Achemine les notifications. Système de queues persistantes. Délivrance via la méthode react du destinataire.

33 33 Linfrastructure dexécution Serveurs dagents (1) Serveur dagents: Machine virtuelle hôte (incluse dans un processus). Embarque un bus local et une fabrique à agents (allocation id + image persistente). Bus local: Gère les communications locales. Assure les propriétés datomicité et de fiabilité (journal). Fortement interconnecté avec les autres bus locaux. Composé dun Channel et dun Engine.

34 34 Channel: Localisation et transport des notifications. Engine: Moteur dexécution du serveur. Linfrastructure dexécution Serveur dagents (2)

35 35 Linfrastructure dexécution Serveur dagents (3) Channel Agent qin Engine React SendTo msg = qin.get(); agent = Agent.load(msg.to); agent.reac(msg.from, msg.not); transaction.begin() qin.pop(); channel.dispatch(); Agent.save(); transaction.commit() Network Agent qout Dans un serveur dagents: Un seul flot dexécution Une réaction est incluse dans une transaction

36 36 Exemple considéré pour la manip: HelloWorld React(from, not) { if (not instanceof StartNot) { sendTo(to,HelloWorldNot); }... } React(from, not) { if (not instanceof HelloWorldNot){ println(« helloworld»); }... } HelloWorldNot HelloWorldClient HelloWorl d StartNot


Télécharger ppt "1 Message Oriented Middlewares: Le middleware AAA F. Boyer, RICM2, année 04-05"

Présentations similaires


Annonces Google