Grails, utilisez des notifications.

Grails est un framework très efficace pour le développement MVC, soit de la couche de présentation. Récemment, Graeme Rocher, Project Leader Grails à SpringSource, retwittait une joie d’une migration de JSF en cinq jours. Mais il ne faut pas passer à coté des autres possibilités de Grails. Car Grails possède déjà les outils pour s’intégrer dans l’Entreprise 2.0.

Evidemment, par Entreprise 2.0, je ne veux pas parler de la Classe Excelsior (il s’agit là de l’Entreprise B, pas 2.0). L’Entreprise 2.0 vise à favoriser les collaborations en optimisant la communication au sein de l’entreprise en utilisant les outils communautaires et de réseaux sociaux. Un des objectifs est de s’orienter vers la mise en place d’outils de notification et autres dashboards. Quel rapport avec Grails ?

Et bien tout simplement la notification en temps réel. Il peut exister de nombreux cas pour lesquels un message doit arriver rapidement à un utilisateur. Un avertissement, une demande d’action plus urgente que les autres… Peu importe, il s’agit de déclencheur et c’est au besoin de l’exprimer.

On sait très bien gérer l’envoi de courrier électronique, mais une optique Entreprise 2.0 tend à diminuer l’utilisation du courriel. La théorie est qu’aujourd’hui cet outil s’est tellement banalisé sans évoluer que les informations importantes ne se distinguent pas du bruit. Un message important sera donc noyé dans la masse et ignoré.

L’alternative proposée est donc l’utilisation de la messagerie instantanée. Grails possède via un plug-in, le support du protocole Xmpp (Jabber). Xmpp est un protocole ouvert, documenté, indépendant d’une plate-forme, et décentralisé. Une entreprise souhaitant utiliser une messagerie instantanée pour la communication entre ses collaborateurs se doit de mettre en place un serveur Xmpp interne. Cet outil peut aussi servir à communiquer en dehors de l’entreprise puisqu’il est possible de mettre en place des ponts, donc de maîtriser sa communication interne tout en ayant de la souplesse avec ses partenaires. A titre d’information, ce protocole est utilisé entre autres parGoogle Talk.

L’idée de l’exemple qui va suivre est qu’une action au sein d’un contrôleur doit déclencher l’envoi d’un message à une personne. Avec Grails, la mise en place va aller très vite. On commence par ajouter le plug-in par :

grails install-plugin xmpp

Ensuite, il faut configurer les paramètres de connexion au serveur. Pour cela, il suffit d’ajouter les informations de configurations au fichier/conf/Config.groovy. Le paramétrage devrait ressembler à ça :

//configuration for jabber accounts
xmpp.autoStartup = true
xmpp.username="xmppAccount"
xmpp.password="xmppAccountPassword"
xmpp.connection.host="mycompany.com"
xmpp.connection.port=5222
xmpp.connection.service="mycompany.com"
xmpp.connection.SASLAuthenticationEnabled=true

En fait, il serait judicieux de créer un utilisateur technique, par exemple xmppAccount, dédié. Une raison principale sera suggérée en fin de billet.

Bien… C’est tout… Un certain nombre de méthodes sont maintenant injectées aux Contrôleurs et aux Services parmi lesquelles celle qui nous intéresse, sendXmppMessage( jabberId, message ). Il suffit donc de faire appel à cette méthode au bon moment comme par exemple :

def doSomething = {
    String message
    ...
    sendXmppMessage( employee.messagingAdress, message)
    ...
}

Cette méthode va donc envoyer le message message au destinataire indiqué en premier paramètre, et ce destinataire sera notifié au plus vite via son logiciel de messagerie instantanée. Voilà, on ne peux plus simple. Mais le plus intéressant reste ce qui va être possible de faire au delà de cette simple notification. En effet, il est possible d’utiliser le protocole Xmpp pour communiquer avec son système en ajoutant un client qui sera à l’écoute des messages qui lui sont destinés. L’utilisation de Jabber-RPC fera le sujet d’un prochain billet.

Pour finir, on peut se poser la question « et en Java ? ». Java a évidemment des outils pour gérer Xmpp. On pourra citer Smack qui permet une implémentation simple et complète. L’utilisation serait un peu plus complexe à mettre en place. Celle de Grails offre l’avantage de se configurer simplement et rapidement, et surtout d’injecter les méthodes dans les contrôleurs et les services.

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.

Vous aimerez aussi...