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

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Introduction aux environnements répartis
Réflexivité et réseaux d’ information
Le"cartable électronique"®
Message Oriented Middleware
Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation.
Introduction aux applications réparties
Sud Ouest Est Nord Individuel 36 joueurs
Chapitre 1 Introduction
- Couche 4 - Couche transport. Sommaire 1) Caractéristiques de la couche transport 2) Les protocoles TCP & UDP 3) Méthode de connexion TCP.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP slide 1 Cilia, un framework de médiation ouvert, léger, multi-personnalités.
Groupe France Télécom Projet Cilia : collaboration LIG Adèle – Orange Labs/MAPS/MEP slide 1 Cilia, un framework de médiation ouvert, léger, multi-personnalités.
Formation au portail SIMBAD
Le Modèle Logique de Données
Architecture de réseaux
JORAM Java Open Reliable Asynchronous Messaging
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.


Plan de formation Chapitre 1 : Présentation de SAP
BDA'02 1 Tolérance aux fautes (TaF) adaptable pour les systèmes à composants : application à un gestionnaire de données Phuong-Quynh Duong, Elizabeth Pérez-Cortés,
1 ACI DADDI - Réunion de lancement IRISA - Projet ADEPT Michel Hurfin Jean-Pierre Le Narzul Frédéric Tronel 23 mai 2005.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
LES CAPTEURS INDUSTRIELS
User management pour les entreprises et les organisations Auteur / section: Gestion des accès.
wireless sensor networks
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Les Enterprise Service Bus
Développement d’applications web
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Etude des Technologies du Web services
JST 2008 Michel Boisgontier CETMEF/DSANM/GRB Ministère de l'Écologie, de l'Énergie, du Développement durable et de l'Aménagement.
Synchronisation et communication entre processus
Serveurs Partagés Oracle
7 - EAI Les EAI : Enterprise Application Integration Marché
Virtual Local Area Network
Configuration de Windows Server 2008 Active Directory
Classes abstraites et Interfaces
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
DE L'ENTREPRISE IDÉALE AU COMMERCIAL IDÉAL
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Programmation concurrente
Notre calendrier français MARS 2014
COURS DE PROGRAMMATION ORIENTEE OBJET :
C'est pour bientôt.....
Le diagramme de séquences
Interoperabilité des SI - Urbanisation
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Introduction.
Modèle de communication par message
CALENDRIER-PLAYBOY 2020.
Fondements de l’algorithmique des réseaux
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Outil de gestion des cartes grises
LES PILES ET FILES.
Les Chiffres Prêts?
Projet Implémentation du protocole MMT sous Linux
Les sockets.
Les différents modèles d’architecture technique
Plate-forme de réalisation d’agents mobiles. Plan Introduction La plate-forme Voyager implantation Conclusion.
Architecture Client/Serveur
Transcription de la présentation:

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

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

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 Introduction (2) Exemple dapplications Surveillance des équipements dun réseau EAI (Enterprise Application Integration) Workflow … gestion devénements

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 Principes directeurs Message Passing (communication par messages) Message Queuing (communication par file de message) Publish/Subscribe (communication par abonnements)

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 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 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 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 Publish/Subscribe (2) consommateur publish producteur Ë Ì subscribe ¶ recv

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

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 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 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 Middleware à base dagents communicants. Agents Anytime Anywhere

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

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 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 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 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 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 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 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 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 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 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 Configuration des serveurs d'agents Configuration décrite statiquement (a3servers.xml sur chaque site)

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 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 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 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 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 Channel: Localisation et transport des notifications. Engine: Moteur dexécution du serveur. Linfrastructure dexécution Serveur dagents (2)

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 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