Accueil🇫🇷Chercher

JGroups

JGroups est un système fiable (c'est-à-dire qui ne perd pas les messages) de multicast écrit dans le langage Java.

Multicast

Nous disposons de plusieurs moyens pour communiquer avec une ou un groupe de machines :

  • Unicast : Dans ce système, chaque message a un destinataire. Donc, pour envoyer le mĂŞme message Ă  plusieurs personnes, il faut le dupliquer pour chaque destinataire.
  • Multicast : Dans ce système, chaque machine qui dĂ©sire recevoir les messages vers un groupe donnĂ© s'enregistre sur une adresse (l'adresse de groupe). Pour envoyer, il suffit donc d'envoyer Ă  l'adresse du groupe, une et une seule fois.
  • Broadcast : Dans ce système, chaque message est envoyĂ© Ă  chaque machine qui se trouve sur le rĂ©seau. Donc, les machines doivent elles-mĂŞmes filtrer les messages non dĂ©sirĂ©s.

TCP/IP propose un système de multicast et JGroups a été initialement créé pour pouvoir automatiser le processus d'abonnement, réception et désabonnement d'un multicast IP. JGroups supporte ainsi les fonctionnalités suivantes :

  • CrĂ©ation et destruction de groupes multicast. Ces groupes peuvent ĂŞtre sur un rĂ©seau local ou un rĂ©seau de grande taille.
  • Abonnement et dĂ©sabonnement de ces groupes.
  • Transmission de messages (non fiables) entre groupe.

Extensions fournies par JGroups

Le multicast IP est utilisé dans diverses applications:

  • Diffusion en temps rĂ©el de flux audio ou vidĂ©o: dans ce cas, si un paquet est perdu ou arrive dans un mauvais ordre la perte n'est pas très importante, les paquets prĂ©cĂ©dents et suivants sont probablement suffisants pour rĂ©cupĂ©rer.
  • Le protocole OSPF, pour la dĂ©tection automatique de routeurs: dans ce cas, la perte des paquets n'est pas un problème car très peu probable.

Ces applications ne nécessitant pas un contrôle de flux, le multicast IP utilise un protocole non fiable et n'ayant aucun contrôle d'ordonnancement. JGroups a rapidement été étendu pour pouvoir pallier ces manques et offre plus de fonctionnalités et de flexibilité:

  • Un choix parmi divers protocoles de transport: UDP, TCP ou encore JMS.
  • DĂ©tection d'abonnement et notifications au sujet des membres qui ont rejoint ou quittĂ© le groupe.
  • DĂ©tection et enlèvement de membres s'Ă©tant "plantĂ©s" (terminaison inattendue).
  • Transmission fiable et ordonnĂ©e des messages.
  • Messages point-Ă -point.
  • Fragmentation des messages trop grands.
  • Politiques d'ordonnancement: atomique (tout ou rien), FIFO, ordre total.
  • Encryption.
  • etc.

JGroups est donc un système simple, rapide et fiable permettant de mettre en communication un ensemble de machines et proposer des services tels que la synchronisation, la répartition de charge ou encore la substitution (failover) en cas de problème.

Usages

JGroups est utilisé dans de diverses applications:

  • JBoss et JOnAS utilisent tous les deux JGroups pour gĂ©rer les parties rĂ©partities du serveur et la rĂ©partition des caches
  • GroupPac (une implĂ©mentation de la spĂ©cification CORBA tolĂ©rante aux fautes) utilise JGroups
  • Autodesk LocationLogic utilise JGroups dans son mĂ©canisme de rĂ©plication de cache
  • Apache ActiveMQ Artemis utilise JGroup pour son mĂ©canisme de rĂ©partition
  • etc.

Ressources

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.