proj-sms-u
Pages enfant
  • Implémentation broker

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

...

  • Ouvert aux applications du SI (bibliothèque, service administratif, partenaires, ...)
  • Mutualisable entre les différents adhérents de l'UNPIdF

...

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

Fichiers concernés dans smsuapi

  • l'implémentation doit être réalisée dans
    Bloc de code
    
    src/org/esupportail/smsuapi/services/sms/impl/le_nom_du_broker/
    
  • la configuration doit être mise dans :
    Bloc de code
    
    properties/broker/le_nom_du_broker/
    
    et notamment
    Bloc de code
    
    properties/broker/le_nom_du_broker/le_nom_du_broker.xml
    
    qui doit contenir un bean id="smsSenderImpl".
    Regarder properties/broker/olm/olm.xml et properties/proxy/proxy.xml pour avoir des exemples.
  • enfin, pour utiliser le nouveau broker, il faut modifier properties/config.properties :
    Bloc de code
    
    sms.connector.name=le_nom_du_broker
    

Description de la gestion de l'envoi de SMS

...

  • 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.

Bloc de code

<bean id="sendSmsManager"
      class="org.esupportail.smsuapi.business.SendSmsManager">
      <description>The business layer concerning the sending.</description>
      <property name="daoService" ref="daoService" />
      <property name="smsSender" ref="smsSenderOlmImpl" />
      <property name="schedulerUtils" ref="schedulerUtils"/>
      <property name="clientManager" ref="clientManager"/>
</bean>
<bean id="sendSmsThirdManager"
      class="org.esupportail.smsuapi.business.SendSmsThirdManager">
      <description>The business layer concerning the sending.</description>
      <property name="daoService" ref="daoService" />
      <property name="smsSender" ref="smsSenderOlmImpl" />
      <property name="schedulerUtils" ref="schedulerUtils"/>
      <property name="clientManager" ref="clientManager"/>
</bean>

Description de la gestion des acquittements

...

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.

NB : le code OlmAckManager utilise notamment fr.cvf.util.mgs.mode.sgs.Manager qui gère lui-même un cron qui interroge régulièrement le broker pour savoir s'il y a des acks. A défaut, on peut faire comme le broker "proxy" : utiliser quartz (cf id="smsuapiStatusJobTrigger" dans properties/broker/proxy/proxy.xml).

NB2 : le broker "proxy" ayant des besoins spécifiques n'utilise pas AckManager. L'équivalent à AckManagerBusiness.manageAck est AckStatusProxy.updateStatus

Glossaire

Glossaire des manuels du service SMS-U