Service SMS-U |
|
|
Université de Paris |
|
|
|
Document de conception |
contexte du projet
rappel du contexte
L'Université Paris 1 Panthéon - Sorbonne souhaite mettre en place un service d'envoi de messages SMS intégré à l'Environnement Numérique de Travail. Ce service doit être :
- Ouvert aux applications du SI (bibliothèque, service administratif, partenaires, ...)
- Mutualisable entre les différents adhérents de l'UNPIdF
Figure 1 : Architecture fonctionnelle générale du service d'envoi de SMS
Ce service doit permettre d'attribuer à l'université une image d'administration en mouvement, ayant réussi son passage à l'ère numérique, en utilisant un média de communication très apprécié des jeunes adultes.
Ce service doit respecter le cadre technique décrit dans le projet open source ESUP Portail en s'appuyant plus particulièrement sur le framework esup-commons et proposer une architecture d'API permettant un faible couplage vis-à-vis des opérateurs télécom.
périmètre de l'étude
Ce document décrit la méthode à utiliser pour implémenter un broker autre que celui fourni par OLM.
architecture de l'implémentation broker
description de la gestion de l'envoi de SMS
Toute implémentation de broker doit répondre à l'interface ISMSSender.java. Celle ci ne contient qu'une méthode :
public interface ISMSSender { |
Figure 2 : Interface ISMSSender
Cette méthode sendMessage est appelée par la couche métier du Back Office du service SMS-U. Elle ne prend qu'un unique paramètre, un objet de type SMSBroker qui est décrit comme suit :
public class SMSBroker implements Serializable { |
Figure 3 : Classe SMSBroker
Ce « pojo » est composé de 3 attributs (et de leurs accesseurs) décrivant un SMS à envoyer avec :
- id : L'identifiant unique du SMS à envoyer
- recipient : une chaine de caractère représentant le numéro de téléphone du destinataires
- message : le message en lui même.
Une fois l'implémentation réalisée, il faut remplacer (par le bean de la nouvelle implémentation) l'injection du bean spring smsSenderOlmImpl dans les beans sendSmsManager et sendSmsThirdManager du fichier d'application contexte business.xml.
<bean id="sendSmsManager" |
Figure 4 : fichier business.xml
description de la gestion des acquittements
La gestion des acquittements reçus par le broker passe la classe nommée AckManager.
public class AckManager { |
Figure 5 : Classe AckManager
Elle gère les acquittements sous la forme d'un objet Acknowledgment.
public class Acknowledgment { |
Figure 6 : Classe Acknowledgment
Ce « pojo » contient deux attributs :
-
- smsId : qui est l'identifiant unique du message auquel est associé l'acquittement (le pendant de l'attribut id de la classe SMSBroker).
- smsStatus : qui est la valeur de l'acquittement, cette valeur représente l'état dans lequel est le sms
La classe SmsStatus est une énumération qui reprend les différents états que peut prendre le sms.
public enum SmsStatus { |
Figure 7 : Enumeration SmsStatus
Pour remplacer l'actuelle implémentation, il faut donc implémenter un gestionnaire d'acquittement spécifique au broker (comme cela est fait pour OLM dans le package org.esupportail.smsuapi.services.sms.impl.olm) dans lequel sera construit un objet Acknowledgment qui sera envoyé à la couche métier par le biais de la classe AckManager.