3. Chapitre 3 : Etude conceptuelle
3.2. Phase 1 : Conception des Services Web
3.2.2. Urbanisation du SI de l’établissement
3.2.2.1. Le serveur de base de données PostgreSQL
Dans ce projet, on a supposé que toutes les informations sur les étudiants sont stockées dans une seule table appelée « etudiant ».
Description de la table « etudiant » :
etudiant
id : character varying(8) <<PK>>
nom : character varying(25) prenom : character varying(25) dep : character varying(5) spec : character varying(5) niveau : integer
tel : character varying(8) email : character varying(255) loginftp : character varying(255) adrmac : character varying(17) refrecu : character varying(16) process : character varying(3)
Figure 13 - Table « etudiant »
Description des attributs :
Champ Description
id Identifiant de l’étudiant
nom Nom de l’étudiant.
prenom Prénom de l’étudiant.
dep Code de département
spec Code de spécialité
niveau Niveau
Tel Numéro de téléphone personnel (GSM).
email Adresse email.
loginftp Login du compte FTP sur le réseau de l’institut.
adrmac Adresse MAC de l’interface réseau sans fil de l’ordinateur portable de l’étudiant.
refrecu Référence de l’accusé de payement.
process Code d’état du process.
Objectif : Avoir 3 services web qui permettent de :
1) Récupérer toutes les informations sur un étudiant,
2) Mettre à jours une ou plusieurs informations sur un étudiant, 3) Connaitre l’identifiant de l’étudiant suivant.
Note : En cas d’erreur (identifiant non existant, serveur déconnecté…) chaque service web doit le signaler en renvoyant au client la description et le code de l’erreur.
La figure suivante représente la modélisation de la classe BDetu :
+connect() : boolean +disconnect() : boolean
«interface»
PodBridgeConnectorInterface
+getLastErrorMsg() : string +setLastError()
+setParam() +getSessionLog() +setSessionLog() : array
+getSessionLogCounter() : integer
#params : array
#error : array
#sessionLog : array
#sessionLogCounter : integer = 0 PodBridgeConnector
+getStudentById() : array +updateStudentById() : boolean +getNextId() : array
-executeSQL() : array +connect() : boolean +disconnect() : boolean -conn : ressource = null
BDetu
Figure 14 - Classe BDetu (Conne cteur PodBridge de l’établissement)
Description des attributs de la classe BDetu:
Nom de l’attribut Description Valeur initiale
conn Ressource PostgreSQL Client null
Description des méthodes de la classe BDetu :
Nom de la méthode Description Entrée Sortie
Service
getStudientById
Renvoi les informations sur un étudiant depuis la base de données.
id : Identifiant.
String
Informations sur l’étudiant (id,nom, prénom,
dep,spec,niveau,te l,email,loginftp,adr mac,refrecu,proce ss). Array
Service
updateStudentById
Met à jour une ou plusieurs informations sur un
étudiant tel que, son email, tel, login ftp…
id :Identifiant.
String
Vrai si succès de la mis à jour.
boolean Tel String
adrmac String ftp String refrecu String process String
Service
getNextId
Renvoi l’identifiant de l’étudiant suivant.
id : Identifiant.
(Optionnel) -’Si elle prend null c’est pour récupérer le premier identifiant’
String
Identifiant. String
Code état du process (Filtre)
executeSQL
Envoi la requête SQL au SGBD et revoie le résultat.
sql : Requête SQL String
Résultat de la requête. Array Numrows : Nombre de ligne retournées integer
connect Se connecter au serveur Vrai si succès de la
PostgreSQL (initialise la ressource conn)
connexion.
boolean disconnect Se déconnecter du serveur
PostgreSQL et libère la ressource conn.
Vrai en cas de succès de la déconnexion.
boolean
Les méthodes suivantes: getStudentById(), updateStudentById() et getNextId() seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge.
La figure suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final.
postgresql (5432) PodBridge 1.2 SOA Middleware
HTTP (80)
PB1.2 Core
SOAP web service API
PB1.2 Connector
« Bdetu.connector.php »
End system PostgreSQL DBMS
SQL Execute : SELECT .. FROM .. WHERE ..
Invoke WS : getSudentByID
Authenticate and check privilege
Handle request
<< Include >>
Invoke WS : updateStudentById
Call method : updateStudentById()
Call method : getStudentById()
Call method : executeSQL()
Service Consumer
<< Include >>
<< Include >>
Get response from cache
<< Include >>
SQL Execute : UPDATE .. SET .. WHERE ..
Tell PostgreSQL Server to perform the
operation
<< Include >>
if cached Trace requests and
responses
<< Include >>
Invoke WS : getNextId
Call method : getNextId()
<< Include >>
Frontend
Get WSDL Setup PB1.2
Monitor transactions log
PodBridge admin
DBA
Figure 15 – Modélisation de la logique métier (Connecteur BDetu)
3.2.2.2. Le serveur FTP dédié aux étudiants
Objectif : Avoir 7 services web qui permettent de :
1) Créer un nouveau compte FTP,
2) Modifier la date d’expiration d’un compte FTP,
3) Modifier le message de bienvenu affiché lors de la connexion au compte FTP, 4) Désactiver le message de bienvenu affiché lors de la connexion au compte FTP, 5) Modifier le mot de passe d’un compte FTP,
6) Supprimer un compte FTP,
7) Transférer des fichiers ou répertoires vers n’importe quel compte FTP.
Note : En cas d’erreur (utilisateur déjà existant, serveur FTP déconnecté…) chaque service web doit le signaler en renvoyant au client la description et le code de l’erreur.
La figure suivante représente la modélisation de la classe FTPAccount :
+connect() : boolean +disconnect() : boolean
«interface»
PodBridgeConnectorInterface
+getLastErrorMsg() : string +setLastError()
+setParam() +getSessionLog() +setSessionLog() : array
+getSessionLogCounter() : integer
#params : array
#error : array
#sessionLog : array
#sessionLogCounter : integer = 0 PodBridgeConnector
-generateRandomPasswd() : string +ifUserExists() : boolean
-getUnixDate() : string
+doCreateFTPUserAccount() : array +setFTPUserAccountExpiryDate() : boolean +setFTPUserWelcomeMsg() : boolean +doDisableFTPUserWelcomeMsg() : boolean +doChangeFTPUserPassword() : boolean -doCheckPassword() : boolean
+doDeleteFTPUserAccount() : boolean +doFTPsendFile() : boolean
-ssh2Exec() : stream +connect() : boolean +disconnect() : boolean -sshCon : ressource = null -authenticated : boolean = false -regexValidator : array
FTPAccount
Figure 16 - Classe FTPAccount (Connecteur PodBridge de l’établissement)
Description des attributs de la classe FTPAccount :
Nom de l’attribut Description Valeur initiale
sshCon Ressource sshclient null
authenticated Pour identifier si la connexion au serveur SSH est établit et en cours.
False
regexValidator Renferme différentes expressions régulières.
Expression régulière d’un nom d’utilisateur.
Description des méthodes de la classe FTPAccount :
Nom de la méthode Description Entrée Sortie
generateRandomPasswd
Génère un mot de passe aléatoire.
len : Longueur du mot de passe (optionnel) 5 par défaut Integer
Mot de passe.
String
ifUserExists
Vérifie si un utilisateur existe déjà sur le système.
user : Nom d’utilisateur String
Vrai si
l’utilisateur est déjà existant.
boolean
getUnixDate
Converti une date au format JJ/MM/AAAA en une date au format MM/JJ/AAAA.
date : Une date (JJ/MM/AAAA) String
Une date (MM/JJ/AAAA) String
SERVICE
doCreateFTPUserAccoun t
Créer un nouveau compte d’utilisateur FTP.
user : Nom d’utilisateur String
(login, mot de passe, nom de domaine et n°
port ftp) Array expiry_date :
Date
d’expiration boolean use_welcome : Utiliser le message de bienvenu par défaut (Vrai par
défaut) boolean
SERVICE
setFTPUserAccountExpir yDate
Modifie la date
d’expiration d’un compte utilisateur FTP.
user : Nom d’utilisateur String
Vrai si la date d’expiration du compte à été modifiée avec succès. boolean expiry_date :
Date
d’expiration String
SERVICE
setFTPUserWelcomeMs g
Modifie le fichier
« welcome.msg » qui existe dans la racine du compte utilisateur FTP.
user : Nom d’utilisateur.
String
Vrai si le contenu du fichier
« welcome.msg à été modifier.
boolean message :
Message de bienvenu. String
SERVICE
doDisableFTPUserW elcomeMsg
Supprime le fichier
« welcome.msg » qui existe dans la racine du compte utilisateur FTP.
user : Nom d’utilisateur.
String
Vrai si le fichier
« welcome.msg à été supprimer.
boolean
SERVICE
doChangeFTPUserPa ssword
Modifie le mot de passe d’un compte utilisateur FTP.
user : Nom d’utilisateur.
String
Vrai si le mot de passe a été changé avec succès. boolean password :
Ancien mot de passe. String new_password : Nouveau mot de passe. String
doCheckPassword
Vérifie si le mot de passe passé en paramètre est correct.
user : Nom d’utilisateur.
String
Vrai si la vérification est positive et faux dans le cas contraire.
boolean password : Mot
de passe String
SERVICE
doDeleteFTPUserAcc ount
Supprime un compte utilisateur FTP du système.
user : Nom d’utilisateur.
String
Vrai si le compte d’utilisateur a été supprimé avec succès.
boolean
SERVICE
doFTPsendFile
Fait une copie des fichiers ou dossiers d’une source à un compte utilisateur FTP.
file : Chemin du fichier ou du répertoire source. String
Vrai si la copie de fichiers est terminée avec succès. boolean user : Nom
d’utilisateur.
String
ssh2Exec
Demande au serveur SSH d’exécuter une commande Shell.
cmd : La commande.
String
Le résultat d’exécution de la commande.
String exception : Lever
une exception dans le cas où le résultat retourné par la
commande est une erreur. (Vrai par défaut) boolean
readResponse : si elle prend vrai, on récupère le résultat retourné par la
commande (Faux par défaut) boolean
connect
Se connecter au serveur SSH (initialise la ressource sshCon).
Vrai en cas de
succès de la connexion.
boolean
disconnect
Se déconnecter du serveur SSH et libère la ressource sshCon.
Vrai en cas de succès de la déconnexion.
boolean
Les méthodes suivantes: doCreateFTPUserAccount (), setFTPUserAccountExpiryDate (), setFTPUserWelcomeMsg (), doDisableFTPUserWelcomeMsg (), doDisableFTPUserWelcomeMsg (), doDeleteFTPUserAccount () et doFTPsendFile () seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge.
La figure de la page suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final.
Figure 17 - Modélisation de la logique métier (Connecteur FTPAccount)
S S H ( 2 2 ) F T P ( 2 1 ) P o d B r i d g e 1 . 2 S O A M i d d l e w a r e
H T T P ( 8 0 )
P B 1 . 2 C o r e
S O A P w e b s e r v i c e A P I
P B 1 . 2 C o n n e c t o r
« F T P A c c o u n t . c o n n e c t o r . p h p »
E n d s y s t e m O p e n S S H a n d p r o F T P d o n U b u n t u
s e r v e r
S h e ll e x e c u t e : u s e r a d d … - g F T P ...
A u t h e n t ic a t e a n d c h e c k p r iv ile g e
H a n d le r e q u e s t
< < I n c lu d e > > C a ll m e t h o d : s e t F T P U s e r W e lc o m e M s g ( )
C a ll m e t h o d : d o C r e a t e F T P U s e r A c c o u n t ( )
C a ll m e t h o d : s s h 2 E x e c ( )
S e r v ic e C o n s u m e r
< < I n c lu d e > >
< < I n c lu d e > >
G e t r e s p o n s e f r o m c a c h e
< < I n c lu d e > >
S h e ll E x e c u t e : c p … T e ll S S H S e r v e r t o
p e r f o r m t h e o p e r a t io n
< < I n c lu d e > >
if c a c h e d T r a c e r e q u e s t s a n d
r e s p o n s e s
< < I n c lu d e > >
F T P S e r v e r a d m in
C a ll m e t h o d : s e t F T P U s e r A c c o u n t
E x p ir y D a t e ( )
< < I n c lu d e > >
F r o n t e n d
G e t W S D L P B a d m in
S e t u p P B 1 . 2 M o n it o r t r a n s a c t io n s lo g
I n v o k e W S : d o C r e a t e F T P U s e r A c c o u n t
I n v o k e W S : s e t F T P U s e r W e lc o m e M s g
I n v o k e W S : s e t F T P U s e r A c c o u n t E x p ir y D a t e
I n v o k e W S : d o F T P s e n d F ile
C a ll m e t h o d : d o F T P s e n d F ile ( )
< < I n c lu d e > >
C a ll m e t h o d : g e t U n ix D a t e ( )
< < I n c lu d e > >
C a ll m e t h o d : g e n e r a t e R a n d o m P a s s w d ( )
< < I n c lu d e > >
C a ll m e t h o d : if U s e r E x is t s ( )
< < I n c lu d e > >
S h e ll e x e c u t e : u s e r m o d - e . . . .
< < I n c lu d e > >
S h e ll E x e c u t e : c h o w n . . .
3.2.2.3. Le point d’accès sans fil
Objectif : Avoir 3 services web qui permettent de :
1) Ajouter une adresse dans le filtre MAC du point d’accès sans fil (autorisation d’accès).
2) Supprimer une adresse du filtre MAC du point d’accès sans fil. (interdiction d’accès)
3) Récupérer des informations sur le point d’accès sans fil.
Note : En cas d’erreur (format adresse MAC incorrecte, connexion impossible au Point d’accès…) chaque service web doit le signaler en renvoyant au client la description et le code de l’erreur.
La figure ci-dessous représente la modélisation de la classe APACLManager :
+connect() : boolean +disconnect() : boolean
«interface»
PodBridgeConnectorInterface
+getLastErrorMsg() : string +setLastError()
+setParam() +getSessionLog() +setSessionLog() : array
+getSessionLogCounter() : integer
#params : array
#error : array
#sessionLog : array
#sessionLogCounter : integer = 0 PodBridgeConnector
+doForwardMACaddr() : array
+doRomoveForwordedMACaddr() : boolean +getAccesPointInfo() : array
+connect() : boolean +disconnect() : boolean -regexValidator : array
APACLManager
Figure 18 – Classe APACLManager (Conne cteur PodBridge de l’établissement)
Description des attributs de la classe APACLManager :
Nom de l’attribut Description Valeur initiale
regexValidator Renferme différentes expressions régulières.
Expression régulière d’une adresse MAC.
Description des méthodes de la classe APACLManager :
Nom de la méthode Description Entrée Sortie
SERVICES
doForwardMACaddr
Ajoute une adresse MAC dans l’ACL du point d’accès sans fil. (Autorise l’accès au réseau)
macaddr : Adresse MAC.
String
Vrai si adresse à été ajoutée à la liste de contrôle du point d’accès.
boolean
doRomoveForwordedM ACaddr
Supprime une adresse MAC depuis l’ACL du point d’accès sans fil. (Interdit l’accès au réseau)
macaddr : Adresse MAC.
String
Vrai si adresse à été supprimer de la liste de contrôle du point d’accès.
boolean
getAccesPointInfo
Renvoi des informations sur le point d’accès (l’SSID et la clé
d’authentification).
(clé
d’authentificatio n, SSID). Array
connect
Se connecter au serveur TELNET.
Vrai en cas de succès de la connexion.
boolean
disconnect
Se déconnecter du serveur TELNET.
Vrai en cas de succès de la déconnexion.
boolean
Les méthodes suivantes: doForwardMACaddr (), doRomoveForwordedMACaddr () et getAccesPointInfo () seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge.
La figure de la page suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final.
TELNET (23)
PodBridge 1.2 SOA Middleware
HTTP (80)
PB1.2 Core
SOAP web service API
PB1.2 Connector
« APACLManager.connector.php »
End system Wireless Access Point
Add mac address to ACL
Invoke WS : doRomoveForworded
MACaddr
Authenticate and check privilege
Handle request
<< Include >>
Invoke WS : doForwardMACaddr
Call method : getAccesPointInfo() Call method :
doForwardMACaddr()
Call method : SocketSend()
Service Consumer
<< Include >>
Get response from cache
<< Include >>
Remove mac address from ACL Tell Telnet Server to
perform the operation
<< Include >>
if cached Trace requests and
responses
<< Include >>
Invoke WS : getAccesPointInfo
Call method : doRomoveForworded
MACaddr()
<< Include >>
Frontend
Get WSDL Setup PB1.2
Monitor transactions log
PodBridge admin
Network admin
Figure 19 - Modélisation de la logique métier (Connecteur APACLManager)
3.2.2.4. Le serveur d’impression CUPS
Objectif : Avoir 2 services web qui permettent de :
1) Imprimer une page du web sur une imprimante partagée via CUPS,
2) Retourner une liste de noms des imprimantes partagées par le serveur CUPS.
Note : En cas d’erreur (page web introuvable, serveur CUPS déconnecté…) chaque service web doit le signaler en renvoyant au client la description et le code de l’erreur.
La figure ci-dessous représente la modélisation de la classe IPPService :
+connect() : boolean +disconnect() : boolean
«interface»
PodBridgeConnectorInterface
+getLastErrorMsg() : string +setLastError()
+setParam() +getSessionLog() +setSessionLog() : array
+getSessionLogCounter() : integer
#params : array
#error : array
#sessionLog : array
#sessionLogCounter : integer = 0 PodBridgeConnector
+doPrintWebPage() : boolean -doPrintInternalDocument() : boolean +connect() : boolean
+disconnect() : boolean
-ipp : CupsPrintIPP Object = null IPPService
Figure 20 – Classe IPPService (Connecteur PodBridge de l’établissement)
Description des attributs de la classe IPPService :
Nom de l’attribut Description Valeur initiale
ipp Objet de la classe CupsPrintIPP. null
Description des méthodes de la classe IPPService :
Nom de la méthode Description Entrée Sortie
SERVICES doPrintWebPage
Envoyer un ordre
d’impression d’une page web à une imprimante partagée.
url : URL de la page web. String
Vrai si l’ordre d’impression à été envoyé.
boolean jobname : Nom
du job d’impression (optionnel) String
getPrinters
Renvoie les adresses (URI) des imprimantes
partagées par CUPS
Des URI délimités par des points virgules. String
doPrintInternalDocument
Envoyer un ordre d’impression à une
imprimante partagée d’un document présent sur le serveur.
filepath : Chemin d’accès à un document présent sur le serveur. String
Vrai si l’ordre d’impression à été envoyé.
boolean jobname : Nom
du job d’impression (optionnel) String
connect
Se connecter au serveur CUPS.
Vrai en cas de succès de la connexion.
boolean
disconnect
Se déconnecter du serveur CUPS.
Vrai en cas de succès de la déconnexion.
boolean
Les méthodes suivantes: doPrintWebPage () et getPrinters () seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge.
La figure de la page suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final.
cups (631)
PodBridge 1.2 SOA Middleware
HTTP (80)
PB1.2 Core
SOAP web service API
PB1.2 Connector
« IPPService.connector.php » End system CUPS Server
Scan for available printers
Invoke WS : doPrintWebPage
Authenticate and check privilege
Handle request
<< Include >>
Invoke WS : doPrintInternalDocument
Call method : getPrinters() Call method : doPrintWebPage()
Service Consumer
<< Include >>
<< Include >>
Get response from cache
<< Include >>
start print job Tell CUPS Server to
perform the operation
if cached Trace requests and
responses
<< Include >>
Invoke WS : getPrinters
Call method : doPrintInternalDocument()
<< Include >>
Frontend
Get WSDL Setup PB1.2
Monitor transactions log
PodBridge admin
Network admin
<< Include >>
Figure 21 - Modélisation de la logique métier (Connecteur IPPService)
3.2.2.5. Le serveur web (inscription.rnu.demo)
Objectif : Avoir 1 service web qui permet de :
- Renvoyer la référence et l’URL de l’accusé de payement d’inscription universitaire d’un étudiant depuis le site d’inscription inscription.edu.demo.
Note : En cas d’erreur (identifiant incorrecte, site web indisponible …) ce service web doit le signaler en renvoyant au client la description et le code de l’erreur.
La figure ci-dessous représente la modélisation de la classe wwwsubscr :
+connect() : boolean +disconnect() : boolean
«interface»
PodBridgeConnectorInterface
+getLastErrorMsg() : string +setLastError()
+setParam() +getSessionLog() +setSessionLog() : array
+getSessionLogCounter() : integer
#params : array
#error : array
#sessionLog : array
#sessionLogCounter : integer = 0 PodBridgeConnector
-getAccuseRef() : string +getAccuse() : array +ssh2Exec() : stream +connect() : boolean +disconnect() : boolean -curl_handle : ressource = null
wwwsubscr
Figure 22 – Classe wwwsubscr (Connecteur PodBridge de l’établissement)
Description des attributs de la classe wwwsubscr :
Nom de l’attribut Description Valeur initiale
curl_handle ressource curl null
Description des méthodes de la classe wwwsubscr :
Nom de la méthode Description Entrée Sortie
getAccuseRef
Renvoi la référence de l’accusé de paiement pour une année universitaire donnée. (si paiement effectué)
studentident : Identifiant de l’étudiant. String
Référence de l’accusé de paiement. String au : Année
universitaire (AAAA/AAAA).
String
SERVICE
getAccuse
Renvoi la référence et l’URL de l’accusé de paiement pour une année universitaire donnée. Si getAccuseRef renvoie la référence de l’accusé.
studentident : Identifiant de l’étudiant. String
Référence et url de l’accusé de paiement. Array au : Année
universitaire (AAAA/AAAA).
String
connect
Initialisation de la ressource
Vrai si la ressource à été initialisée.
boolean disconnect
Ressource libérée Vrai si la
ressource à été libérée. boolean
La méthode getAccuse ( ) sera choisi pour êtres exposée en tant que service web SOAP à travers PodBridge.
La figure de la page suivante fournit une description étendue sur la logique métier caché derrière ce service allant du consommateur de service au système final.
HTTP (80)
PodBridge 1.2 SOA Middleware
HTTP (80)
PB1.2 Core
SOAP web service API
PB1.2 Connector
« wwwsubscr.connector.php »
End System HTTP Server (inscription.edu.demo
)
Get page of requested URL
Invoke WS : getAccuse
Authenticate and check privilege
Handle request
<< Include >>
Call method : getAccuseRef()
Service Consumer
<< Include >>
Get response from cache
<< Include >>
Authenticate Tell WEB Server
To perform the operation
if cached Trace requests and
responses
<< Include >>
Call method : getAccuse()
<< Include >>
Frontend
Get WSDL Setup PB1.2
Monitor transactions log
PodBridge admin
Web user
<< Include >>
Figure 23 - Modélisation de la logique métier (Connecteur wwwsubscr)
3.2.2.6. Le modem SMS
Objectif : Avoir 1 service web qui permet de :
- Envoyer un message court (SMS) à numéro de téléphone particulier.
Note : En cas d’erreur (format du numéro de téléphone incorrecte, serveur déconnecté
…) ce service web doit le signaler en renvoyant au client la description et le code de l’erreur.
La figure ci-dessous représente la modélisation de la classe SMSService :
+doSendSMS() : boolean -stripSpaces() : boolean -ssh2Exec() : stream +connect() : boolean +disconnect() : boolean -sshCon : ressource = null -authenticated : boolean = false -regexValidator : array
SMSService +connect() : boolean +disconnect() : boolean
«interface»
PodBridgeConnectorInterface
+getLastErrorMsg() : string +setLastError()
+setParam() +getSessionLog() +setSessionLog() : array
+getSessionLogCounter() : integer
#params : array
#error : array
#sessionLog : array
#sessionLogCounter : integer = 0 PodBridgeConnector
Figure 24 – Classe SMSService (Conne cteur PodBridge de l’établissement)
Description des attributs de la classe SMSService :
Nom de l’attribut Description Valeur initiale
sshCon Ressource client ssh null
authenticated Pour identifier si la connexion au serveur SSH est établit et en cours.
False
regexValidator
Renferme différentes expressions régulières.
Expression régulière d’un numéro de téléphone de 8 chiffres.
Description des méthodes de la classe SMSService :
Nom de la méthode Description Entrée Sortie
SERVICE
doSendSMS
Envoyer un SMS. destinataire : numéro de téléphone du destinataire.
String
Vrai si l’SMS a été envoyé au destinataire boolean
message : Message texte court à envoyer String
stripSpaces
Supprimer des espaces qui existent dans le numéro de téléphone et valider son format.
phonenumber : Numéro de téléphone String
Numéro de téléphone sans espaces blanc String
ssh2Exec
Demande au serveur SSH d’exécuter une commande Shell.
cmd : La commande.
String
Le résultat d’exécution de la commande.
String exception : Lever
une exception dans le cas où le résultat retourné par la
commande est une erreur. (Vrai par défaut) boolean
readResponse : si elle prend vrai, on récupère le résultat retourné par la
commande (Faux par défaut)
boolean
connect
Se connecter au serveur SSH (initialise la ressource sshCon).
Vrai en cas de
succès de la connexion.
boolean
disconnect
Se déconnecter du serveur SSH et libère la ressource sshCon.
Vrai en cas de succès de la déconnexion.
boolean
La méthode doSendSMS () sera choisi pour être exposée en tant que service web SOAP à travers PodBridge.
La figure de la page suivante fournit une description étendue sur la logique métier caché derrière ce service allant du consommateur de service au système final.
SSH (22) PodBridge 1.2 SOA Middleware ( podbridge-12.intranet.demo)
HTTP (80)
PB1.2 Core
SOAP web service API
PB1.2 Connector
«SMSService.connector.php »
End System Server
Send SMS command Invoke WS :
doSendSMS
Authenticate and check privilege
Handle request
<< Include >>
Call method : stripSpaces()
Service Consumer
Get response from cache
<< Include >>
Tell SSH Server to perform the operation
if cached Trace requests and
responses
<< Include >>
Call method : doSendSMS()
<< Include >>
Frontend
Get WSDL Setup PB1.2
Monitor transactions log
PodBridge admin
Server Admin
<< Include >>
Figure 25 - Modélisation de la logique métier (Connecteur SMSService)