WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Refonte du système d'information de la snel par la mise en place d'un module ERP pour la gestion automatique de paiement des factures par voie bancaire gràące à  l'intergiciel ActiveMQ


par Rodian KABEYA MUKULU
Institut Supérieur Pédagogique et Technique - Licence 2018
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

2. ActiveMQ

2.1. Présentation

Sorti en 2004, ActiveMQ est le MOM open source de la fondation Apache. Il est distribué sous licence Apache 2.0.

Active MQ s'appuie sur quelques autres projets Apache :

Ø Apache Camel : Implémentation partielle des « Entreprise Integration Patterns », que nous avons évoqués plus haut.

Ø Jetty : Serveur d'application Java intégré à Active MQ

Et Active MQ est à son tour utilisé par quelques autres grands projets :

Ø ESB : Active MQ est utilisé par plusieurs ESBs (Enterprise Service Bus) tels qu'Apache Service Mix et Mule.

Ø Serveur J2EE : Active MQ est intégré au serveur d'application Geronimo (certifié JEE5) comme fournisseur JMS par défaut.

Ø Axis et CXF : Extension de Active MQ.

2.1. Caractéristiques principales du produit

2.1.1 Langages d'implémentation

Le code source récupéré du SVN, ne semble pas toujours être d'une qualité exemplaire. La mise en forme du code laisse à désirer et certaines parties ne respectent pas les bonnes pratiques de codage Java : peu d'interfaces, classes et méthodes trop longues, ... Mais la robustesse du produit est néanmoins réputée.

2.1.2 Langages pris en charge

La diversité des langages et environnements supportés est particulièrement grande, et c'est un des grands atouts de Active MQ.

Comme on l'a évoqué, l'aptitude à faire échanger des applications hétérogènes fait partie des missions naturelles d'un middleware.

Les langages à partir desquelles on peut accéder à Active MQ sont :

Ø C : grâce à la bibliothèque OpenWire C Client ;

Ø C++ : grâce à CMS : C'est une bibliothèque C / C++ proposant des interfaces similaires à JMS ;

Ø Ajax, RESTful et SOAP : sous condition d'utilisation des passerelles proposées par Active MQ. (La passerelle est sous forme d'un servlet Java, fonctionnant sur Jetty, ou autre) ;

Ø .Net : grâce à NMS : C'est une bibliothèque .Net proposant des interfaces similaires à JMS ;

Ø Delphi and FreePascal grâce à Habari Active MQ Client ;

Ø Perl, PHP, Pike, Python, Ruby, grâce au protocole STOMP et aux librairies client correspondantes.

On voit que le choix du duo STOMP et OpenWire comme protocole de communication a ouvert la voie à l'implémentation d'APIs dans de nombreux environnements.

De plus, s'agissant de protocoles ouverts et bien spécifiés, il est possible de réaliser un client STOMP vers ActiveMQ depuis de nouveaux environnements s'il en manquait à la liste.

2.1.3 Protocoles pris en charge

Les protocoles prit en charge par Active MQ sont les suivants :

Ø AMQP : Ce protocole est pris en charge,e mais comme sa définition est volatile, Active MQ prend en charge uniquement les versions 0.8 / 0.9 ;

Ø OpenWire : Protocole de communication messages ;

Ø STOMP : Protocole de communication messages ;

Ø JXTA : C'est un protocole permettant de créer des réseaux au-dessus des réseaux. JXTA (pour juxtapose), défini par une série de protocoles légers conçus pour gérer n'importe quelle application peer-to-peer. JXTA est compatible avec l'ensemble des plateformes informatiques. L'implémentation Java est basée sur du XML. Avec Active MQ, il agit en tant que connecteur ;

Ø XMPP : Le protocole de messagerie instantanée utilisé par Jabber. Ainsi, on peut se connecter au MOM grâce à un client de messagerie de type Jabber ;

Ø En ce qui concerne les protocoles proposés par des passerelles :

Grâce aux sous-projets Axis et CXF de Apache, Active MQ gère SOAP, REST, ...

Ø TCP ;

2.1.4 Interfaces prises en charge

Selon les classes d'interface :

Ø Messagerie ;

Ø JCA 1.5 sous Java ;

Ø JMS 1.1 et 1.0.2b sous Java ;

Ø NMS à partir des plateformes .Net ;

Ø CMS à partir des plateformes C/C++ ;

Ø Administration, Monitoring, Configuration ;

Ø JMX, XML, Spring, Java DSL et par messages.

2.2. Gestion des messages

Mis à part la gestion standard des messages imposée par la spécification JMS 1.1, Active MQ gère :

Ø Groupe de messages : Ceci est un concept intéressant dans la mesure où il assure que tous les messages d'un même groupe soient reçus par un consommateur déterminé. Les messages d'un groupe X seront consommés uniquement par le consommateur privilégié. Si celui-ci meurt, Active MQ choisit automatiquement un autre consommateur suivant la configuration.

Ø Notion de sélecteur de messages compatible avec XPATH (et SQL 92 issue de la spécification JMS).

Ø Cependant, il n'y a pas de notion de priorité des messages. Il est possible de la simuler en utilisant des groupes de messages ou bien des sélecteurs.

Ø Destination virtuelle : Il est possible de définir des topics et des queues redirigeant vers des composants du même domaine (topic vers topic et queue vers queue).

Ø « Total Ordering» : Active MQ a la possibilité d'assurer que l'ordre de réception des messages correspond bien à l'ordre d'envoi.

Ø Et bien d'autres, issues des EIP.

2.2.1 Traitement des messages

Le traitement des messages d'Active MQ est sans doute son plus célèbre atout, après celui de sa grande connectivité. À l'aide du projet Camel qui est intégré, il a la possibilité de traiter les messages selon les modèles d'intégration d'entreprises (EIP).

Citons un exemple faisant d'Active MQ un EAI à part entière. Les fonctionnalités de routage et de transformation représentent les caractéristiques principales des EAIs.

2.2.2 Gestion des transactions

Bien qu'il n'existe pas de documentation sur la méthode de gestion des transactions en interne, ActiveMQ nous donne quelques pistes.

Par exemple, la journalisation du « Message Store » permet la reprise sur incident sans perte de données lors d'un « rollback» (retour arrière).

Attention, par défaut, le routage et la transformation des messages ne sont pas transactionnels. Une « Dead Message Queue » est présente.

2.2.3 Persistance des messages

Active MQ a introduit un mode de persistance appelé « Active MQ Message Store » qui joint un stockage de données sous forme de fichiers avec un système de journalisation et de mise en cache. Il affiche des performances supérieures au système de persistance sur fichier ou base de données seule. Il affiche aussi une meilleure fiabilité, car il a été bâti pour le transactionnel.

Regardons de plus près son fonctionnement.Lors de l'écriture d'une donnée, le message réside en cache (Mémoire volatile). On construit sa référence (identification) qui sera stockée dans le journal des références. Périodiquement, une copie du journal des références caché est réalisée sur le support persistant. Ceci représente le journal des références persistant. De plus, si la donnée n'a pas été consultée depuis longtemps (configurable), elle est déplacée vers média persistant (d'une façon transactionnelle) et ses références sont mises à jour (cache et persistant).

Lors d'une lecture, on accède soit directement à la donnée en cache, soit dans le média de stockage.Lors d'une transaction, Active MQ ne modifie que les références des messages.Active MQ recommande d'avoir un nombre de messages inférieur à 1 million par page de cache. Le nombre de page de cache n'est pas limité.

2.3 Interopérabilité avec d'autres MOMs

Active MQ fournit une passerelle JMS aisément configurable (DSL, Spring XML). L'authentification est aussi prise en compte par les fichiers de configuration. Ces fichiers de configuration peuvent être intégrés à ceux d'Active MQ.

2.4 Gestion de la sécurité et d'un annuaire

L'authentification et la gestion des droits sont intégrées sous forme de plugins dans Active MQ. Les plugins proposés par défaut s'appuient sur JAAS ou sur des fichiers XML.L'interconnexion entre brokers peut aussi être sécurisée par mot de passe et / ou chiffrement (SSL). Il est possible d'encapsuler les connexions dans du SSL entre les clients et un broker pour sécuriser les échanges. Le SSL se comporte donc comme un connecteur à part entière.Il possible de lier la sécurité de la plateforme avec un serveur LDAP.

Active MQ fournit une interface de personnalisation via des «Interceptors». Il est un ainsi possible d'étendre les possibilités de Active MQ très facilement.

L'exemple le plus commun serait la gestion de l'authentification. Les «Interceptors» permettent de modifier certains comportements internes sans changer le coeur d'Active MQ et en compatibilité avec les versions futures.

2.5 Administration

Le monitoring et l'administration de la plateforme sont proposés :

Ø à travers de l'interface JMX ;

Ø au moyen d'une interface web (web console) ;

Ø par des messages : cette fonctionnalité est aussi disponible à distance via le protocole XMPP (Voir le Glossaire).

Active MQ propose des « Advisory Message » (message d'information) qui permettent de connaître l'état du système. Voici des exemples de métriques :

Ø Les connexions clients ;

Ø les files d'attentes créées et détruites par les applications ;

Ø les messages expirés

Ø etc...

Les « Advisory Messages » sont organisés en queues et topics protégés par mot de passe. On peut y accéder à partir d'un simple client Active MQ (JMS ou autre).

Active MQ implémente aussi des « Mirrored Queues » : les messages envoyés à une file d'attente seront, de manière transparente, envoyés sur un Topic. Même si cette fonctionnalité est à utiliser avec précaution, elle permet à un ou plusieurs clients de suivre l'état d'une file d'attente. C'est l'application du design «WireTap» (les écoutes téléphoniques pratiquées par les espions) d'EIP.

De plus, Active MQ nous fournit une interface d'administration Web.

Cette interface est démarrée par défaut à l'aide de Jetty. Elle démarre par défaut à l'adresse suivante : HTTP://0.0.0.0:8161/admin

2.6 Configuration et déploiement

Active MQ peut être installé sur n'importe quelle plateforme supportant au minimum Java 5.

Ø Active MQ est configurable en utilisant des fichiers XML intégrables à Spring.

Ø Active MQ se configure aussi à l'aide de Java DSL.

Ø Active MQ peut aussi être configuré et lancé à partir d'un autre programme (Java), c'est la notion de « Embedded Broker » : le broker n'est plus un processus indépendant auquel le programme s'adresse par le réseau, il tourne dans le même processus que le programme client.

Active MQ est livré avec un ensemble d'exemples codés en Java ou en Ruby. Tous les cas d'utilisation d'Active MQ ne sont pas couverts par la trentaine d'exemples fournis.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Les esprits médiocres condamnent d'ordinaire tout ce qui passe leur portée"   François de la Rochefoucauld