TD sur JMS ---- 1) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?



Documents pareils
Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Quel ENT pour Paris 5?

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Le modèle client-serveur

Environnements de Développement

Messagerie asynchrone et Services Web

Groupe Eyrolles, 2004 ISBN :

Cahier des charges (CDC)

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Diagramme de déploiement

Java Naming and Directory Interface

PROJET : ETNIC ESB JANUS. Guide technique : WS-Notification - Clustering. BULL Services et Solutions

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

MOM: Concepts & Applications

Description de la formation

Architecture d'entreprise : Guide Pratique de l'architecture Logique

e-business, EAI et Business Intelligence Le triptyque gagnant profondément les structures des organisations et par conséquence

Le rôle Serveur NPS et Protection d accès réseau

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Intégration de systèmes

Prise en compte des ressources dans les composants logiciels parallèles

Principe de la messagerie électronique

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

[ Sécurisation des canaux de communication

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Compte Rendu d intégration d application

Cours CCNA 1. Exercices

JOURNÉE TECHNIQUE BNPE 27 JANVIER 2015 LES COULISSES DE LA BNPE

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Business Intelligence avec SQL Server 2012

Vérifier la qualité de vos applications logicielle de manière continue

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Mise en œuvre des serveurs d application

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Urbanisme du Système d Information et EAI

Introduction à la plateforme J2EE

Utilisation d Hyperplanning 2011

Remote Method Invocation (RMI)

Architectures n-tiers Intergiciels à objets et services web

Projet de Java Enterprise Edition

Notice Générale - MODULE CLIENTS. I. Description générale du module. II. La liste des clients a. Accès

Application web de gestion de comptes en banques

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Nouvelles Plateformes Technologiques

Windows Server Chapitre 4 : Active Directory Gestion des utilisateurs, des ordinateurs et des groupes

Business Process Modeling (BPM)

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Meta Object Facility. Plan

Projet de Conception N 1 Automatisation d'un processus de paiement. Livrable: Spécification du système de compensation

S8 - INFORMATIQUE COMMERCIALE

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Maarch V1.4

NON URGENTE TEMPORAIRE DEFINITIVE. OBJET : FONCTIONNEMENT OmniVista 4760 SUR UN RÉSEAU VPN / NAT

Lotus Notes et Domino 8.5 Administration de serveurs Domino

Business & High Technology

10. Base de données et Web. OlivierCuré

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Cisco Certified Network Associate

Refonte front-office / back-office - Architecture & Conception -

Annuaires LDAP et méta-annuaires

Fiche de l'awt Intégration des applications

Portail collaboratif Intranet documentaire Dématérialisation de processus

WebSSO, synchronisation et contrôle des accès via LDAP

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Formation en Logiciels Libres. Fiche d inscription

Mini-projet systèmes & réseau serveur de «tchatche»

Introduction aux intergiciels

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Integration à un domaine AD SOMMAIRE

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Public Key Infrastructure (PKI)

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Écoles Rurales Numériques et AbulÉdu

LICENCE : INFORMATIQUE GENERALE

L'EAI (Enterprise Application Intégration)

SMS+ PRÉSENTATION. Ensemble, protégeons l'environnement. N'imprimez ce document qu'en cas de nécessité.

GLPI (Gestion Libre. 2 ième édition. Nouvelle édition. de Parc Informatique)

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

Intégration de Cisco CallManager IVR et Active Directory

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Ce guide décrit la procédure à suivre afin de profiter pleinement du Service de Transfert de Fichiers EGIS. Il décrit

Exercices Active Directory (Correction)

Présentation d'un MOM open-source

Call Center Virtuel & Managé

Votre interlocuteur : Téléphonie IP d'entreprise

CAHIER DES CHARGES D IMPLANTATION

Qu est-ce que le relevé de compte?

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Mettez les évolutions technologiques au service de vos objectifs métier

MQPerf un outil de diagnostic en mode SaaS des performances optimales du MOM JORAM

Transcription:

TD sur JMS ---- Questions de cours : 1) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS? MOM : Message Oriented Middleware Intergiciels orientés Messages But : - Création de messages complexes (pas uniquement des tableaux d octets) - Emission/Réception de messages - Eventuellement : stockage de messages (message queuing) JMS est une API Java qui permet de travailler avec des MOM fonctionnant en mode Message Queuing 2) Qu est-ce que JNDI? A quoi sert-il lorsqu il est utilisé avec JMS? JNDI (Java Naming and Directory Interface) est une API pour gérer des annuaires de données ou d objets. Les annuaires peuvent être gérés par des fichiers ou par des systèmes d annuaires répartis comme LDAP. Pour JMS il sert à nommer : - les usines de connexion (ConnectionFactory) qui servent à créer des connexions avec des fournisseurs JMS ; - les files et les sujets de discussions. 3) Parmi les applications suivantes, indiquez si l'utilisation d'un middleware orienté message est adapté en justifiant vos décisions : 1. Visiophonie ; Pas adapté au temps-réel et aux flux audio/vidéo 2. Consultation d infos météo à distance ; Adapté en utilisant le mode requête/réponse mais un MOCS comme CORBA est tout aussi adapté. 3. Messagerie d'entreprise (courrier électronique, fax, messages vocaux) ; Adapté grâce à la gestion de l asynchronisme. Exercice 1 : le but de cet exercice est de simuler trois unités de production dans une ligne automatisée d'usine.

La première unité produit des pièces qui sont consommées par la seconde. Cette dernière produit ensuite une nouvelle pièce qui est consommée par la troisième. 1.1 Représentez les interactions entre entités réparties à l aide d un diagramme de séquences UML. 1.2 Représentez sur un schéma l architecture JMS : c est-à-dire, les différentes entités logicielles et les communications en utilisant des sujets de discussion (topics) et/ou des files de messages (queues). A1 A2 A3 1.3 Quel type de message utiliseriez-vous pour le corps des messages échangés? ObjectMessage transportant des objets de type Piece (sérialisés). 1.4 On veut maintenant gérer le système avec une seule file de message. Comment gérer cela avec JMS? On va typer les messages en utilisant l entête JMSType (type INIT et TRANSFO). A2 utilisera le filtre : "JMSType = INIT " et A3, le filtre : "JMSType = TRANSFO " Exercice 2 : le but de cet exercice est de simuler un service web qui diffuse les cours de la bourse d'un certain nombre de titres à un ensemble de courtiers en bourse. Note : bien sûr un courtier peut s'abonner à plusieurs titres. 2.1 Représentez les interactions entre entités réparties à l aide d un diagramme de séquences UML.

2.2 Sur un schéma, placez les différents acteurs et les communications en utilisant des topics et/ou des files de messages.! Courtier1! Service! Publication! Bourse! Courtier2!!Courtier3! 2.3 Quel type de message utiliseriez-vous pour le corps des messages échangés? MapMessage contenant le nom de l entreprise ou du titre (String), la cotation (float) et la variation de la cotation (float).

Exercice 3 : Une application de type ecommerce en JMS. Cette application simule une application complète de ecommerce avec les participants suivants : ServeurWeb : un serveur web sur lequel le client choisit des objets à acheter ; ServeurClientèle : centralise le traitement des commandes ; ServeurStocks : vérifie la disponibilité des objets commandés ; ServeurFacturation : centralise le traitement des paiements bancaires ; ServeurBanque : vérifie les références bancaires des clients et gère les ordres de paiement ; ServeurLivraison : s'occupe de la livraison des commandes. Remarques : 1. Pour qu'une commande soit livrée par le ServeurLivraison, il faut que le ServeurStocks et le ServeurFacturation l'aient validée ; 2. Le ServeurClientèle s'occupe de cette validation ; 3. Le ServeurFacturation contacte le ServeurBanque pour s'assurer que les références bancaires sont correctes et pour demander un ordre de paiement ; 4. Chaque application se connectera avec un login/mot de passe ; 5. Une commande pourra être représentée par plusieurs messages émis lors d'une transaction. Si l'utilisateur annule sa commande il suffira alors de faire un rollback. 3.1 Représentez les interactions entre entités réparties à l aide d un diagramme de séquences UML 3.2 Sur un schéma, placez les différents acteurs et les communications en utilisant des topics et des files de messages.

W! Stocks! S! Web! Cdes! C! Clients! L! Livr!!Fact! F! B!!Banq!! 3.2 : Faites un scénario en indiquant quels messages transitent par quelles files/topics. 1 Un client valide sa commande. Web envoie un message commande (id client, id commande, liste des produits et quantités) via le topic Cdes vers Stocks et Fact. 3 Stocks valide la commande et envoie un message valid_stocks (id commande, liste des produits et quantités commandées et disponibles) via la file C vers Clients. 4 Stocks envoie aussi un message de confirmation conf_dispo(id commande, liste des produits et quantités commandées et disponibles) de disponibilité au serveur Web via la file W. 5 Fact récupère les infos bancaires du client et les envoie dans un message verif_banq (id verif, infos bancaires) via la file B à Banq. 6 Banq vérifie les infos bancaires et envoie un message valid_fact (id commande, true ou false) via la file F à Fact. 7 Fact envoie le message valid_fact (id commande, true ou false) via C à Clients. 8 Clients, après la réception des 2 messages valid_stocks et valid_fact d une même commande, envoie le message livraison(id commande, id client, adresse client, liste des produits et quantités à livrer) via L à Livr ainsi que le message facturer(id client, infos bancaires, somme à prélever) via F à Fact. Il envoie aussi un message decr_stocks(liste des produits et quantités envoyées) pour décrémenter les stocks disponibles à Stocks via S. Exercice 4 : On se propose de réaliser une application répartie avec JMS permettant la consultation à distance du solde et de l'historique d'un compte bancaire. 4.1 : Diagramme de séquence

4.2 : Présentez sur un schéma, l'architecture de l'application répartie (applications, files et/ou topics). Ici on peut directement utiliser le mode requête/réponse présenté à la fin du cours.!!cli1!!cli2! T 1! B!!Banq! T 1! B est une file nommée utilisée pour envoyer les requêtes. Les files T sont des files temporaires utilisées pour envoyer les réponses. 4.2 : Décrivez les messages qui seront échangés entre les applications. Les clients envoient des messages : Req_solde (id compte) de type StreamMessage Req_histo (id compte) de type StreamMessage Le serveur envoie des messages : Rep_solde (id compte, solde) de type StreamMessage Rep_histo (id compte, nb opérations, liste opérations) de type StreamMessage.

Exercice 5 : On se propose de développer une application répartie avec JMS permettant la consultation et la gestion d une bibliothèque (permettant : l ajout, le retrait, l emprunt et le retour d un livre). 5.1 : Décrivez, avec un schéma, l application que vous proposez en précisant les files de messages, sujets de discussion (topics) et applications que vous allez utiliser. Le schéma est identique au précédent. 5.2 : Donnez la liste exhaustive des messages que vous allez utiliser (et leurs types JMS) ainsi que leur contenu. Les clients envoient des messages : Req_recherche (mots) de type TextMessage Req_ajout_livre (auteur, titre, année, ref) de type StreamMessage Req_retrait_livre (ref) de type StreamMessage Req_emprunt_livre (ref, id emprunteur) de type StreamMessage Req_retour_livre (ref, id emprunteur) de type StreamMessage Le serveur envoie des messages : Rep_recherche (nombre de refs, liste de refs) de type StreamMessage Rep_ajout_livre (ref, nouveau nombre de livres) de type StreamMessage. Rep_retrait_livre (ref, nouveau nombre de livres) de type StreamMessage. Rep_emprunt_livre (ref, id emprunteur, true ou false) de type StreamMessage.