• Aucun résultat trouvé

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)

Documents relatifs