Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2)...

247
R APPORT DE PROJET DE FIN DETUDES Urbanisation d’un Système d’information universitaire SOA & BPM Elaboré par : KARRAY WALID Encadré par : NAFAA FREAA Encadré par : FOURAT ZOUARI | AHMED MASMOUDI Année Universitaire 2009/2010 - Semestre 1 Référence Dép. TI AN/SE 2010/S01 CODE IRP05 Institut Supérieur des Études Technologiques de Djerba Département Technologie de l’Informatique République Tunisienne Ministère de l’Enseignement Supérieur, de la Recherche Scientifique et Technologie Direction Générale des Études Technologiques Effectué à :

description

Ce rapport s'inscrit dans la préparation du Projet de Fin d' Etudes à l’Institut Supérieurdes Etudes Technologiques - ISET Djerba - 2009/2010. Le Projet a été réalisée dans la Société''Tritux''- Tunis et vise à urbaniser les systèmes d'information académique et la gestion des donnéessous les architectures de S.O.A et du B.P.M. La migration vers l'Architecture Orientée Services ainsi qu'avec Business Process Managementpermet la réorganisation des systèmes d'information de l'entreprise et la conformité rapide etconstante avec l'environnement évolutif. Le projet est consacré totalement aux axes de l'architecture S.O.A pour générer unefonctionnalité d'un ensemble de fonctions de base (Services) avec des composants afin de créer unschéma d'interactions entre ces services. Avec S.O.A et B.P.M, des efforts considérables ont été déployés pour garantir enfin un systèmeévolutif de l'information basée sur des composants connectés, sécurisé, facile à maintenir et à seconformer aux normes standards.

Transcript of Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2)...

Page 1: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

RAPPORT DE PROJET DE FIN D’ETUDES

Urbanisation d’un Système d’information universitaire

SOA & BPM

Elaboré par : KARRAY WALID Encadré par : NAFAA FREAA

Encadré par : FOURAT ZOUARI | AHMED MASMOUDI

Année Universitaire 2009/2010 - Semestre 1

Référence

Dép. TI

AN/SE 2010/S01

CODE IRP05

Institut Supérieur des Études

Technologiques de Djerba

Département Technologie de l’Informatique

République Tunisienne

Ministère de l’Enseignement Supérieur,

de la Recherche Scientifique et Technologie

Direction Générale des Études Technologiques

Effectué à :

Page 2: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

ISET Djerba | TriTux PAGE 1

Page 3: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

ISET Djerba | TriTux PAGE 2

Dédicaces

A toute ma famille,

à mes enseignants,

à mes amis,

et à mes camarades

je dédie ce travail.

Page 4: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

ISET Djerba | TriTux PAGE 3

Remerciement

Je tiens à remercier chaleureusement Mr. Mounir Khalifa CEO de

Tritux, Mr. Fourat Zouari et Mr. Ahmed Masmoudi, chefs de projets

ainsi que toute l’équipe de développement à Tritux.

Mes forts remerciements à mon encadreur Mr. Nafaa Freaa ainsi

que mes enseignants.

Je remercie encore la communauté Ubuntu GNU/Linux, Canonical

Ltd., la communauté PHP et Open ESB.

…et un aussi grand MERCI à la communauté Open Source !

Walid Karray

Page 5: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

ISET Djerba | TriTux PAGE 4

Table des matières Dédicaces ................................................................................................................................... 2

Remerciement ........................................................................................................................ 3

Table des matières..................................................................................................................... 4

Liste des illustrations ................................................................................................................. 6

1. Chapitre 1 : Introduction ...................................................................................................... 8

1.1. Introduction générale.................................................................................................. 8

1.2. Entreprise d’accueil ..................................................................................................... 8

1.3. Contexte et objectif du projet ................................................................................... 11

2. Chapitre 2 : Etat de l’art...................................................................................................... 14

2.1. Introduction au concept SOA .................................................................................... 14

2.2. Les services web ........................................................................................................ 17

2.2.1. Introduction........................................................................................................ 17

2.2.2. Les différents types de services web ................................................................. 17

2.2.3. Résumé ............................................................................................................... 24

2.3. Orchestration de Services web.................................................................................. 25

2.3.1. Introduction........................................................................................................ 25

2.3.2. Exemple .............................................................................................................. 25

2.3.3. Le langage BPEL .................................................................................................. 28

2.3.4. Résumé ............................................................................................................... 32

2.4. Résumé sur le concept SOA....................................................................................... 33

3. Chapitre 3 : Etude conceptuelle ......................................................................................... 34

3.1. Introduction ............................................................................................................... 34

3.2. Phase 1 : Conception des Services Web .................................................................... 35

3.2.1. Introduction........................................................................................................ 35

3.2.2. Urbanisation du SI de l’établissement ............................................................... 37

3.2.3. Urbanisation du SI du RNU................................................................................. 64

3.2.4. Conclusion .......................................................................................................... 71

3.3. Phase 2 : Processus métier et orchestration de services .......................................... 74

3.3.1. Introduction........................................................................................................ 74

3.3.2. Conception du 1er processus métier : ProcessRUById ....................................... 74

3.3.3. Conception du processus : BatchProcessRU ...................................................... 77

3.3.4. Conclusion .......................................................................................................... 78

Chapitre 4 : Réalisation ........................................................................................................... 79

3.4. Installation & Configuration ...................................................................................... 79

3.4.1. Serveur FTP : ftp-etu.intranet.demo .................................................................. 79

Page 6: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

ISET Djerba | TriTux PAGE 5

3.4.2. Serveur CUPS : cups.intranet.demo ................................................................... 79

3.4.3. Serveur de BD PostgreSQL : postgres-83.intranet.demo................................... 79

3.4.4. Serveur web d’inscription en ligne : inscription.edu.demo ............................... 80

3.4.5. Point d’accès sans fil : ap-21. intranet.demo ..................................................... 81

3.4.6. Serveur mail : (ws.rnu.edu.demo)...................................................................... 81

3.4.7. Modem GSM connecté au serveur Lenny : debian5-02.intranet.demo ............ 82

3.4.8. PodBridge 1.2 ..................................................................................................... 82

3.4.9. Installation de GlassFish ESB 2.1 ........................................................................ 83

3.4.10. Installation des plugins SOA & BPEL pour NetBeans...................................... 83

3.5. Réalisation des connecteurs ...................................................................................... 83

3.5.1. Exemple de réalisation d’un connecteur : pbFTPAccountConnector................. 83

3.5.2. Test du service web doCreateFTPUserAccount par l’utilitaire SoapUI 3.0.1 ..... 85

3.6. Réalisation des processus métiers - phase 2............................................................. 89

3.6.1. Test de ProcessRUById (Invocation du service composite) ............................... 91

3.6.2. Test de BatchProcessRU (Invocation du service composite) ............................. 94

3.7. Développement des applications .............................................................................. 96

3.7.1. Appel web-service SOAP en PHP5...................................................................... 97

3.7.2. Exemple d’appel web-service SOAP en Perl (Suppression d’un compte FTP) ... 98

3.7.3. Appel web-service SOAP en JAVA SE – Swing (Invocation du service Ping (test

PodBridge)) ....................................................................................................................... 98

3.7.4. Appel web-service SOAP en Shell (Invocation du service composite

BatchProcessRU) ............................................................................................................... 99

3.8. Environnement de travail .......................................................................................... 99

3.8.1. Matériel utilisé ................................................................................................... 99

3.8.2. Logiciels utilisés : .............................................................................................. 100

4. Perspective ........................................................................................................................ 105

5. Liste des abréviations ....................................................................................................... 106

6. Bibliographie ..................................................................................................................... 108

Page 7: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

ISET Djerba | TriTux PAGE 6

Liste des illustrations Figure 1 - Diagramme hiérarchique de l’entreprise ........................................................... 10

Figure 2 – Requête / Réponse (SOA) ................................................................................. 14

Figure 3 – L’architecture SOA............................................................................................. 15

Figure 4 - Le modèle en couches de l’architecture SOA .................................................... 16

Figure 5 – Connexion à PostgreSQL en ligne de commande ............................................. 20

Figure 6 – Premier extrait du document WSDL ................................................................. 22

Figure 7 – Deuxième extrait du document WSDL .............................................................. 22

Figure 8 – Message XML SOAP – Requête ......................................................................... 23

Figure 9 – Message XML SOAP - Réponse.......................................................................... 23

Figure 10 – Exemple d’un processus faisant appel à 4 services........................................ 27

Figure 11 – Eléments de BPEL (Architecture).................................................................... 29

Figure 12 –Modélisation d’un connecteur PodBridge1.2 (Cas généra l) ............................ 36

Figure 13 - Table « etudiant » ............................................................................................ 37

Figure 14 - Classe BDetu (Connecteur PodBridge de l’établissement) .............................. 39

Figure 15 – Modélisation de la logique métier (Connecteur BDetu) ................................. 42

Figure 16 - Classe FTPAccount (Connecteur PodBridge de l’établissement) ..................... 44

Figure 17 - Modélisation de la logique métier (Connecteur FTPAccount)......................... 49

Figure 18 – Classe APACLManager (Connecteur PodBridge de l’établissement) .............. 50

Figure 19 - Modélisation de la logique métier (Connecteur APACLManager)................... 53

Figure 20 – Classe IPPService (Connecteur PodBridge de l’établissement) ...................... 54

Figure 21 - Modélisation de la logique métier (Connecteur IPPService) ........................... 56

Figure 22 – Classe wwwsubscr (Connecteur PodBridge de l’établissement) .................... 57

Figure 23 - Modélisation de la logique métier (Connecteur wwwsubscr) ......................... 59

Figure 24 – Classe SMSService (Connecteur PodBridge de l’établissement)..................... 60

Figure 25 - Modélisation de la logique métier (Connecteur SMSService) ......................... 63

Figure 26 – Classe MailAccount (Connecteur PodBridge 1.2)............................................ 65

Figure 27 - Modélisation de la logique métier (Connecteur MailAccount) ....................... 70

Figure 28 – Connecteurs PodBridge (de l’établissement).................................................. 72

Figure 29 - Connecteur PodBridge (du RNU) ..................................................................... 73

Figure 30 - diagramme d'activité « ProcessRUById » ........................................................ 76

Figure 31 - diagramme d'activité « BatchProcessRU » ...................................................... 78

Figure 32 - Arborescence du projet PodBridge - Netbeans IDE ......................................... 84

Figure 33 –1ère phase de l’urbanisation des deux réseaux (Services Web) ....................... 88

Figure 34 –Déploiement de ProcessRUById et BatchProcessRU ....................................... 90

Figure 35 - SI après urbanisation........................................................................................ 96

Figure 36 - Architecture de PodBridge 1.2 ....................................................................... 104

Page 8: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

ISET Djerba | TriTux PAGE 7

‘ Ce document représente le rapport de projet de fin d’étude effectué

par l’étudiant au 5ème niveau informatique réseaux Walid Karray, de l’Institut Supérieur des Etudes Technologiques de Djerba, au sein de

l’entreprise Tritux, pendant la période Septembre 2009 - Janvier 2010.’ Adresse électronique: [email protected]

Page 9: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 1 : Introduction

ISET Djerba | TriTux PAGE 8

1. Chapitre 1 : Introduction

1.1. Introduction générale

Des systèmes informatiques qui sont réunis pour exécuter une tâche, peuvent tous êtres

considérés comme étant un seul système, toute cette force peut être due à un échange

d’une faible quantité d’informations entre les différents systèmes. On peut déduire ainsi

que ces systèmes sont dépendantes les unes des autres, et si à un moment donné deux

systèmes parmi l’ensemble n’arrivent pas à s’échanger d’informations, ça engendrera alors

le dysfonctionnement de la totalité du système.

Malheureusement, à chaque fois qu’on se lance à la conception d’une application

composite on découvre toujours des problèmes d’intégration avec des systèmes qui à la

base ne sont pas pensées pour fonctionner ensemble utilisant des technologies différentes

et des protocoles propriétaires.

Pour remédier à ce genre de problèmes on utilise souvent des logiciels intermédiaires

appelées (intergiciels), le plus souvent appelé middlewares (en anglais) qui servent

d’intermédiaire de communication entre plusieurs applications, généralement complexes

ou distribuées sur un réseau informatique.

1.2. Entreprise d’accueil

Tritux, SARL1 est une SSII2 Tunisienne née par le regroupement, au sein d'un réseau

professionnel, des compétences provenant de divers horizons et partageant la même

conviction : que les nouvelles technologies de l'information et de la communication (NTIC)

basées sur les logiciels libres, constitueront le choix fondamental face aux exigences de la

société future, société de l'information.

Dynamique, rapide et accompagnant les changements et bouleversements induits par

l'émergence de nouvelles techniques et des nouveaux besoins des usagers, Tritux a repensé

1 Société Anonyme à Responsabilité Limitée

2 Société de service et d’ingénierie de l’informatique

Page 10: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 1 : Introduction

ISET Djerba | TriTux PAGE 9

l'approche des activités liées aux NTIC par l'adaptation du choix "Open Source " garantissant

la sécurité, fiabilité, flexibilité, et surtout, une évolution quotidienne vers le top de la

technologie.

Les domaines d’activités de Tritux s’étendent sur plusieurs disciplines à savoir :

- Bases de données libres,

- Logiciels libres,

- Développement de solutions avec des outils/ressources libres,

- Annuaires LDAP3,

- Messageries mail,

- Messageries courtes (SMS4) et Multimédia (MMS5),

- Systèmes GNU6 Linux,

- Supervision et monitoring,

- Réseaux complexes,

- Sécurité et optimisation,

- …

Références de Tritux:

- Tunisie Telecom,

- Assurances BIAT,

- Mobile Services,

- Nouvelair,

- Alva,

3 Lightweight Directory Access Protocol

4 Short Message Service

5 Multimedia Messaging Service

6 Gnu’s Not Unix

Page 11: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 1 : Introduction

ISET Djerba | TriTux PAGE 10

- Sameteam,

- PixelJ,

- Attijari Bank,

- Groupe Délice Tunisie,

- …

Diagramme hiérarchique de l’entreprise:

Figure 1 - Diagramme hiérarchique de l’entreprise

CEO : Acronyme anglais pour « Chief Executive Officer », en français le chef de direction

et tient le rang le plus élevé dans la hiérarchie de l’entreprise son rôle est de superviser

tout les projets en cours de développement et leurs état d’avancement, maintenir le

contact avec les clients, en contact avec les chefs de projet, le recrutement etc.….

Les chefs de projets : Les chefs de projets sont chargées de guider les équipes de

développements et de mener les projets et de contrôler leur bon déroulement.

Secrétaire : Elle s'occupe pour les comptes, des communications téléphoniques, de la

rédaction des comptes rendus de réunions, etc.….

Page 12: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 1 : Introduction

ISET Djerba | TriTux PAGE 11

Service Technique : Sa fonction et de bien veiller sur le bon fonctionnement du réseau

local de l’entreprise ainsi ses différents équipements, installer et mettre à jour les

logiciels, achat de nouveau matériel et la réparation des équipements informatiques en

cas de panne.

Equipe de développement : Représente la force motrice de l’entreprise, l’équipe est

constituée d’une dizaine de développeurs et d’ingénieurs qualifiés pour exécuter des

tâches sous la responsabilité des chefs de projets.

Chargé de la documentation : C’est une personne chargé de la rédaction et la mise à jour

des documents techniques et des manuels d’utilisation pour les produits réalisés.

1.3. Contexte et objectif du projet

Notre projet de fin d’étude consiste à urbaniser un SI (Système d’Information)

universitaire. Il est noté que les différents systèmes informatiques visés du SI universitaire,

les différentes procédures d’urbanisation ainsi que les applications réalisées dans ce projet

ont été virtualisés dans un environnement local.

La quasi-totalité des établissements d’enseignement supérieurs en Tunisie disposent de

systèmes informatiques hétérogènes (matériel et applicatif) déjà performants pour répondre

à des besoins très élémentaires, tel que:

- L’SGBD permet la gestion des informations sur chaque étudiant,

- le point d’accès sans fil permet l’accès au réseau,

- le serveur FTP 7permet l’hébergement de comptes pour les étudiants,

- le serveur d’impression permet d’envoyer un ordre d’impression à une

imprimante distante partagée,

- le site web d’inscription en ligne permet de consulter les reçus de payements de

chaque étudiant,

- le serveur Mail permet d’envoyer un message à un groupe d’étudiants,

7 File Transfer Protocol

Page 13: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 1 : Introduction

ISET Djerba | TriTux PAGE 12

- et encore plus…

Existe-il un système informatique aussi performent qui peut répondre à plusieurs besoins

à la foi ? Comme par exemple, un système pouvant à partir des informations stockés sur

chaque étudiant de gérer automatiquement leurs comptes FTP, leurs comptes Mail, leurs

accès au réseau sans fil, les notifiés par SMS, leurs envoyer les calendriers et des documents

numériques, etc...

Par les moyens présents, si un établissement pense à offrir ces différents services à ses

quelques milliers d’étudiant, il faudra compter des semaines de travails pour arriver à un

résultat presque satisfaisant !

Certainement que l’informatisation (automatisation) des différentes procédures cités

précédemment est sans aucun doute quelque chose d’indispensable ; il faudra donc un

système qui à la foi capable de gérer les différentes ressources et de coordonner l’échange

d’informations d’une façon autonome entre les différents systèmes informatiques qu’on

dispose. Mais avant de penser à une solution on se pose ces deux questions :

- Comment des systèmes de technologies et de protocoles de communications

différents puissent s’interagir ?

- Par quel moyen sera assuré l’échange de flux d’information entre les différents

systèmes ?

C’est pour cette raison que le concept SOA8 et le BPM9 sont les choix les plus appropriés

pour résoudre notre problématique.

Pour pouvoir répondre à cette problématique l’étude conceptuelle de ce projet va être

divisé sur deux phases :

1) La première phase consiste à l’exposition d’un protocole de communication ouvert

(unifié) pour chacun des systèmes à travers un middleware. (migration aux services

web)

8 Service Oriented Architecure

9 Business Process Management

Page 14: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 1 : Introduction

ISET Djerba | TriTux PAGE 13

2) La deuxième phase consiste à la conception des processus métier à travers un

workflow / orchestration10 de services web

10

Processus de coordination d'un échange d'information à travers l 'interaction de services web. « Source

Wikipedia – http://fr.wikipedia.org/wiki/Orchestration_(informatique) »

Page 15: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 14

2. Chapitre 2 : Etat de l’art

2.1. Introduction au concept SOA

L’architecture orientée services AOS, ou plus souvent appelé SOA acronyme anglais pour

« Services Oriented Architecture » est un moyen d’interaction applicatif qui met en œuvres

une collection de services (des composant logiciels) qui peuvent être exécutés sur n’importe

quelle plateforme.

Par définition un service est une tâche exécuté par un individu (un fournisseur) à

l’attention d’un autre individu (un consommateur), le principe est le même dans le jargon

informatique.

Fournisseur / Prestataire

de service

Demandeur / Consommateur

de service

Demande

RéponseMessage

Message

Figure 2 – Requête / Réponse (SOA)

Par analogie avec le concept objet, un service ressemble beaucoup à une méthode d’une

classe, il permet de recevoir des données et de renvoyer le résultat. Disposant plus

d’avantages qu’une méthode un service est distingué par le fait qu’il peut être invoqué à

distance et par n’importe quelle plateforme.

Au terme d’interopérabilité, l’architecture SOA repose sur des normes décrites à travers

WS-I11.

Un service peut être une activité (suite d’appels à d’autres services), appelé autrement

service de large granularité ou service composite.

11

Un consortium industriel initié pour la promotion de l’interopérabilité entre plateformes par la rédaction

des spécifications des Services Web WS-*

Page 16: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 15

La figure de ci-dessous décrit l’architecture SOA d’une façon globale:

Service X

Service Z

Service Y

Service W

Service U

Architecture SOA

Service composite

Demandeur 1

Demandeur 2

Orchestration

Service V

Figure 3 – L’architecture SOA

Un service est l’unité atomique de l’architecture SOA

L’architecture SOA est représentée par un modèle en couches, voir la figure de ci-

dessous.

Page 17: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 16

Application

WebTerminal

Appareil

Mobile

OrchestrationWORKFLOW

BPEL, BPM

PrésentationConsommateur

Application

ServicesServices

Services web

Composants,

MéthodesMéthodes de classes

bibliothèques,drivers...

Systèmes &

RessourcesServeurs,

Bases de données..

DBDBI0II0I0I0I0

II0III00I0I

0I0III0I0I0

I0I0I0

I0II0I0I0I0

II0III00I0I

0I0III0I0I0

I0I0I0

Func () {

----

---

}

Func () {

----

---

}

Func () {

----

---

}

Func () {

----

---

}

5

4

3

2

1

Figure 4 - Le modèle en couches de l’architecture SOA

Couche 1 (Les systèmes et les ressources): Englobe des systèmes informatiques (logiciels

et matériels) hétérogènes et différentes types de ressources telle que les bases de

données et des fichiers.

Couche 2 (Composants et méthodes) : Représente des méthodes (fonctions) qui

tiennent la logique métier, ainsi que les composants d’applications qui sont utilisés pour

dialoguer avec différents systèmes et ressources.

Couche 3 (Services) : C’est à ce niveau que la logique métier est devenu caché à

l’utilisateur ainsi que le dialogue avec les différentes systèmes et ressources est devenu

au moyen d’un protocole ouvert (standard).

Couche 4 (Orchestration): Vient juste au dessus de la couche services, l’orchestration de

services est définit par l’interaction et l’échange des flux d’information métier entre

plusieurs services d’une façon autonome.

Couche 5 (Présentation): Elle représente l’interface par laquelle les utilisateurs finaux

(consommateurs de services) peuvent consumer les différents services et interagir

indirectement avec les différents systèmes existant.

Page 18: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 17

2.2. Les services web

2.2.1. Introduction

Les services web représentent un ensemble de fonctionnalités distribués sur intranet ou

internet qui peuvent être exécutés à distance à travers les protocoles d’internet tel que

HTTP12/HTTPS 13et SMTP14.

2.2.2. Les différents types de services web

Il existe différents types de services web :

2.2.2.1. XML-RPC

XML-RPC est un protocole RPC (Remote procedure call), une spécification simple et un

ensemble de codes qui permettent à des processus s'exécutant dans des environnements

différents de faire des appels de méthodes à travers un réseau.

Les processus d'invocation à distance utilisent le protocole HTTP pour le transport des

données et la norme XML 15 pour le codage des données.

XML-RPC est conçu pour permettre à des structures de données complexes d'être

transmises, exécutées et renvoyées très facilement.

Voici un exemple d’une requête/réponse XML-RPC :

Requête XML-RPC :

POST /xmlrpc HTTP 1.0

User-Agent: myXMLRPCClient/1.0

Host: 192.168.1.2

Content-Type: text/xml

Content-Length: 169

<?xml version="1.0"?>

<methodCall>

12

HyperText Transfer Protocol 13

HTTP Secure 14

Simple Mail Transfer Protocol 15

Extensible Markup Language

Page 19: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 18

<methodName>calculeSurfaceCercle</methodName>

<params>

<param>

<value><double>2.41</double></value>

</param>

</params>

</methodCall>

Réponse XML-RPC :

HTTP/1.1 200 OK

Date: Sat, 02 Jan 2010 23:20:04 GMT

Server: Apache.1.3.12 (Unix)

Connection: close

Content-Type: text/xml

Content-Length: 124

<?xml version="1.0"?>

<methodResponse>

<params>

<param>

<value><double>18.24668429131</double></value>

</param>

</params>

</methodResponse>

Réponse ‘fault’ (Erreur) XML-RPC :

<?xml version="1.0"?>

<methodResponse>

<fault>

<value><string>No such method!</string></value>

</fault>

</methodResponse>

2.2.2.2. Les services web SOAP

Les services web de type SOAP 16 se basent aussi sur l’échange de messages XML et se

reposent sur le standard SOAP pour l’échange de message et WSDL 17 pour décrire les

services web.

Structure d’un document WSDL :

16

Simple Object Access Protocol 17

Web Services Description Language

Page 20: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 19

Un document WSDL (basé sur XML) permet la description d’un service, il décrit les

paramètres d’entrés du service et le format et le type des données retournées.

Voici quelques éléments d’un document WSDL :

- portType : définissant le service web, en particulier les opérations qu’il réalise et

le type de messages échangés.

- message : comprend une ou plusieurs parties représentant les paramètres

d’entrés.

- types : définissant les types de données utilisés par le service web.

- binding : précisant le protocole utilisé et le format de message.

2.2.2.3. Un exemple de service web (type SOAP) :

L’exemple qui suit démontre comment il est possible de récupérer des informations

depuis une base de données PostgreSQL à travers un service web SOAP via le protocole

HTTP.

Avant de passer au service web, la figure de ci-dessous explique les différentes

procédures à effectuer au moyen d’un client PostgreSQL pour récupérer les informations sur

un étudiant donné par son identifiant (id).

Page 21: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 20

Figure 5 – Connexion à PostgreSQL en ligne de commande

Les inconvénients :

- Il faut avoir une idée sur les structures des différentes tables pour pouvoir

exécuter des requêtes,

- Il faut savoir utiliser les différentes fonctionnalités fournis par le client de

PostgreSQL,

- Cette opération ne peut être exécutée que depuis le réseau de l’établissement

tant que le port 5432 n’est pas autorisé depuis l’extérieur,

- Lors de développement d’une application, le langage de programmation à utiliser

doit supporter une extension qui lui permet de se connecter au serveur

PostgreSQL.

- Le développeur de l’application doit obligatoirement maitriser le langage SQL

ainsi les syntaxes spécifiques pour PostgreSQL.

Page 22: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 21

- Communiquer des informations sur l’SGBD tel que son adresse IP, le port qu’il

utilise, nom des tables… peuvent aider les pirates pour accéder illégalement aux

données confidentielles.

Maintenant, si on reprend le même exemple, mais cette fois en se basant sur les services

web SOAP. (Après une procédure d’urbanisation)

On suppose que les informations suivantes sont déjà communiquées :

- La clé d’authentification (Key): 691292877050480f54b5 (Doit être passé en

paramètres à chaque invocation d’un service, permettant de sécurisé l’accès au

service ainsi d’identification de son consommateur)

- L’emplacement/adresse (URL) du document WSDL qui sert à décrire le service

getStudentById :

http://podbridge12.intranet/projects/unstable/podbridge/web/index.php/wsdl/auto

/691292877050480f54b5/getStudentById

Les deux figures suivantes représentent des extraits du même document WSDL décrivant

le service getStudentById :

Page 23: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 22

Figure 6 – Premier extrait du document WSDL

Figure 7 – Deuxième extrait du document WSDL

Grâce au document WSDL on a pu :

- Identifier les paramètres nécessaires ainsi que leurs types pour pouvoir générer le

message XML SOAP (requête) approprié pour notre service.

- Savoir d’avance la structure du message de retour XML SOAP (réponse).

- Identifier l’emplacement (URL) du service web.

Page 24: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 23

Invoquer un service web SOAP est le faite d’envoyer à travers HTTP-POST un message au

format XML (Requête) à l’adresse URL (SOAP Address) indiquée dans le document WSDL.

Requête (Message XML SOAP envoyé par le client):

Figure 8 – Message XML SOAP – Requête

Réponse (Message XML SOAP Renvoyé par le serveur):

Figure 9 – Message XML SOAP - Réponse

Les avantages :

- Consulter la BD sans la moindre requête SQL,

Page 25: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 24

- la logique métier est caché à l’utilisateur (procédures d’authentification au SGBD,

les différentes requêtes…)

- aucune information n’est communiquée sur le serveur de base de données (Type,

IP, Port, nom des tables, utilisateur...),

- l’invocation du service est sécurisée par une clé (key) d’authentification,

- grâce au WSDL, on connait les différents paramètres, les variables, les types… du

service.

- tout les services web peuvent êtres consumer/tester par le même client.

- Le port 80 est toujours ouvert parce qu'il est employé par le protocole HTTP

utilisé par les navigateurs Web, donc l’invocation d’un service web peut être

possible de n’importe quel emplacement et par n’importe quel plateforme.

- La quasi-totalité des langages de programmation supportent des bibliothèques ou

des extensions lui permettant d’invoquer les services web SOAP ou d’envoyer des

requêtes HTTP-Post.

2.2.3. Résumé

On peut dire que les services web :

- communiquent en utilisant des protocoles ouverts,

- sont souvent réutilisables,

- sont des composants d'application,

- sont autonomes et auto-descriptif,

- peuvent être utilisés par d'autres applications,

- se basent sur XML.

Page 26: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 25

2.3. Orchestration de Services web

2.3.1. Introduction

Dans le concept SOA, l’orchestration s’explique par un enchainement d’invocation de

services web de fines granularités obéissant à un chef d’orchestre : WS-BPEL18 est un langage

d’orchestration de services web.

Dans un service composite les services web sont reliés à travers des standards (Messages

XML). Ces standards assurent le découplage, c’est-à-dire la réduction des dépendances ;

(Couplage faible).

2.3.2. Exemple

Dans cet exemple, on se propose de réaliser un processus pour une gamme d’appareils

mobile, qui renseigne son utilisateur sur les salons de thé les plus proches en les indiquant

sur la carte de Google Maps.

Notre process aura besoin de faire appel à 4 services partenaires (correspondent aux

rectangles colorés en verts dans le diagramme qui suit).

Voici une description sur le rôle de chacun de ces services :

1) Service embarqué: Un service embarqué dans l’appareil mobile, à son invocation, il

renvoi toutes les informations confidentielles à propos son utilisateur (profil

utilisateur) tel que son nom, prénom, numéro de sa carte crédit, code….

2) Internet Banking Web Service : Service web fournit par la banque de l’utilisateur de

l’appareil qui lui permet de consulter son solde en tout sécurité.

3) GSM Tracking Web Servie : Service web de géolocalisation fournit par l’opérateur de

téléphonie mobile. Il permet de renvoyer la longitude et la latitude de l’emplacement

de l’appareil.

18

(Business Process Execution Language)

Page 27: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 26

4) Google maps API : Service web fournit par Google permettant de renvoyer des

informations (tel que : sa nature, son nom, longitude, latitude…) sur les endroits qui

entourent un point donné par sa longitude et latitude.

Page 28: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 27

Service partenaire (Internet

Banking Service)

Services partenaire (Google Maps

API)

Service partenaire (GSM Tracking) L'appareil Mobile

Quelles sont les espaces

qui m’entourent ?

Quelle est ma géoposition

(longitude & latitude)

Quel est mon solde ?

[Solde >= 10 Dinars]

[Nombre > 0]

Indiquer les salons de thé

sur la carte.

Afficher message

« Ce n’est pas le moment

pour aller au salon de thé !!! »

[Solde < 10 Dinars]

Afficher message « Désolé !

Aucun salon de thé trouvé

dans votre position. »

[Nombre = 0]

Entrée:

- Cherche (string) = "Salon de thé"

- Rayon en KM (real)

- Longitude (string)

- Lattitude (string)

Sortie:

- Nombre (integer)

- Liste des salons de thé (string XML)

Enrée:

- numéro de compte (number)

- code (string)

Sortie:

- Solde (real)

Entrée:

- SN (Subscriber Number) (number)

Sortie:

- Logitude (string)

- Lattitude (string)

Quel est son numéro de tel

et le numéro de sa carte de crédit ?

Saisir le rayon (zone de recherche

- Valeur en km)

Entrée: (Aucun)

Sortie:

- SN (Subscriber number) (number)

- numéro de compte (number)

{Donnée:

Rayon (real)

min=0.1

max=10.0}

HTTPS (SSL)

Saisir code confidentiel

Figure 10 – Exemple d’un processus faisant appel à 4 services

Page 29: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 28

En examinant le diagramme précédent on constate que les différents services dépendent

les uns des autres. La longitude et la latitude renvoyées par le service de géolocalisation

fournis par l’opérateur ont étés utilisées dans les paramètres d’entrées du service Google

Maps.

2.3.3. Le langage BPEL

BPEL est l’acronyme de « Business Process Execution Language », qui est un langage

de programmation destiné à l’exécution des procédures d’entreprises .

BPEL4WS « Business Process Execution Language For Web Services », devenu WS-

BPEL est un standard de l’orchestration de services web.

Ce langage a été défini dans sa version 2.0 par une spécification du consortium OASIS 19

en 2007.

BPEL : Architecture

Les trois principaux éléments de BPEL sont :

- Editeur graphique BPEL (BPEL Designer) : Outil permettant la génération du code

BPEL à travers une interface graphique.

- Process flow template : code source (BPEL) du processus métier générer par

l’éditeur graphique BPEL.

- Moteur BPEL (BPEL Engine) : Le moteur BPEL agissant comme une machine

virtuelle, permet l’exécution du code BPEL (ça inclus l’invocation des servies web,

le mapping de donnés, les transactions, la sécurité, et encore plus…)

19

Organization for the Advancement of Structured Information

Page 30: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 29

Process

flow

template

GeneratesBPEL

Designer

Executes BPEL

Engine

Design Time Run Time

Business Expert End User / Application

Figure 1120

– Eléments de BPEL (Architecture)

Fichier BPEL :

C’est un fichier dont le contenu est basé sur XML et qui porte dans la plus part des cas

l’extension (.bpel), qui représente le code source de l’application qui va constituer le

processus décrivant la logique des actions à exécuter par le moteur d’orchestration.

Le code BPEL (syntaxe) :

BPEL est un langage d’orchestration de services web basé sur langage XML , comme

n’importe quel langage de programmation il possède un vocabulaire propre à lui.

- La balise <process> :

Représente l’élément racine du document BPEL, dans la quel se trouve la description du

processus. Par exemple l’attribut name pour donner un nom au processus.

<process name="processRUById" targetNamespace="http://enterprise.netbeans.org/bpel/processRUById/processRUById"

xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

[…]

- La balise <import> :

Permet d’importer un fichier WSDL

20 Figure - Référence: http://www.developer.com/services/article.php/3609381/An-

Introduction-to-BPEL.htm

Page 31: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 30

<import namespace="urn:tns" location="services_rnu.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

- La balise <partenerLinks> :

Permet de lier des actions définies dans le fichier WSDL (via partnerLinkType) au process

BPEL.

<partnerLinks>

[…]

<partnerLink name="pbServicesLocalPL" xmlns:tns="http://enterprise.netbeans.org/bpel/servicesWrapper" partnerLinkType="tns:PodBridgeLinkType" partnerRole="PodBridgeRole"/>

[…]

</partnerLinks>

- La balise <variables> :

Permet de définir les variables utilisées par le processus.

<variable name="KEY" type="xsd:string"/>

- La balise <sequence> :

Pour réunir une suite d’actions à exécuter dans le processus.

<sequence name="main_seq">

[Actions]

</ sequence>

- La balise <receive> :

Permet de recevoir un signal de l’extérieur d’un processus, ce qui permettra d’instancier

le processus, ou d’attendre qu’un événement se termine avant de continuer le processus.

<receive name="Receive" createInstance="yes" partnerLink="processRUByIdPL"

operation="processRUByIdOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" portType="tns:processRUByIdPortType" variable="processRUByIdOperationIn"/>

- La balise <reply> :

Permet de renvoyer une réponse à un partnerLink qui en attend une.

<reply name="Reply" partnerLink="processRUByIdPL" operation="processRUByIdOperation"

xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" portType="tns:processRUByIdPortType" variable="processRUByIdOperationOut"/>

Page 32: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 31

- La balise <invoke> :

Permet d’appeler un service web.

<invoke name="CREATE_FTP" partnerLink="pbServicesLocalPL" operation="doCreateFTPUserAccount" portType="pbns:PodBridgePortType" inputVariable="DoCreateFTPUserAccountIn" outputVariable="DoCreateFTPUserAccountOut"/>

- La balise <if> :

Condition

<if name="ifhastel">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:tel != ''</condition>

[…]

</if>

- La balise <flow> :

Permet l’exécution en parallèle de plusieurs actions.

<flow name="Flow1">

[…]

</flow>

- La balise <forEach> :

<forEach name="ForEach1" parallel="no" counterName="ForEach1Counter">

<startCounterValue>0</startCounterValue>

<finalCounterValue>$variable</finalCounterValue>

[…]

</ forEach >

- La balise <while> :

<while name="While1">

<condition>$variable != true()</condition>

[…]

</while>

- La balise <repeatUntil> :

<repeatUntil name="RepeatUntil1">

[…]

<condition>$GetNextIdOut.body/ns0:response/ns0:last = true()</condition>

</repeatUntil>

Page 33: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 32

2.3.4. Résumé

Avantages de BPEL

- Séparer le logique processus de la logique application,

- Possibilité de changer le processus sans impact sur les applications,

- Agilité de l’entreprise ou l’organisme,

- Présenter le processus comme un service,

- Portable : supporté par plusieurs serveurs (moteurs BPEL),

- Basé sur XML,

- Supporte plusieurs fonctionnalités tel que (Exécution asynchrone, fonction

XSLT21, exécution en parallèle, validation, exceptions …).

21

eXtensible Stylesheet Language Transformation

Page 34: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 2 : Etat de l’art

ISET Djerba | TriTux PAGE 33

2.4. Résumé sur le concept SOA

Les avantages :

- Se base sur des standards (Exemple : SOAP/WSDL pour les services web et BPEL

pour orchestration)

- interopérabilité : ne différencie pas les plateformes (matérielles et logicielles),

- une réutilisabilité possible de services,

- améliore la rapidité ainsi que la productivité des développements,

- une modularité permettant de remplacer facilement un service par un autre,

- de meilleures possibilités d’évolution,

- une plus grande tolérance aux pannes,

- une maintenance facilitée.

Les inconvénients :

- Le temps de réponse est plus long en le comparant avec le temps de réponse du

système final, cet alourdissement est à l’origine du protocole utilisé et du

système d’intermédiation (middlewares) : analyse des messages,

ordonnancement, le Framework, sécurité, logging…,

- Si le niveau de granularité d’un service augmente, le temps de réponse lui aussi

augmente.

- La sécurité dépends de l’infrastructure elle-même ; les logiciels d’intermédiation,

les équipements de routage, les protocoles utilisés (pour le cas des services web,

il est conseiller d’utiliser HTTPS)…

Page 35: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 34

3. Chapitre 3 : Etude conceptuelle

3.1. Introduction

Maîtriser des langages de programmation orientée objet tel que PHP, C++ ou Java est

aujourd’hui quelque chose fondamentale pour la réalisation des applications complexes, en

plus grâce à la programmation objet, on apprendra à savoir décomposés les grands

problèmes en des sous-problèmes, et par suite ça permet à des équipes indépendantes de

les résoudre aisément. Malgré ça une question qui se pose toujours : comment va-t-on

présenter notre application à des individus ne maitrisant pas le langage par lequel a été

développé?

Pour cela, il nous faut :

1) un langage (pour s'exprimer clairement à l'aide des concepts objets), qui doit

permettre de :

- représenter des concepts abstraits (graphiquement par exemple),

- limiter les ambiguïtés (parler un langage commun, au vocabulaire précis,

indépendant des langages orientés objet),

- faciliter l'analyse (simplifier la comparaison et l'évaluation de solutions).

2) une démarche d'analyse et de conception objet, pour :

- ne pas effectuer une analyse fonctionnelle et se contenter d'une implémentation

objet, mais penser objet dès le départ,

- définir les vues qui permettent de décrire tous les aspects d'un système avec des

concepts objets.

UML est notre choix !

UML est avant tout un support de communication performant, qui facilite la

représentation et la compréhension de solutions objet :

- Sa notation graphique permet d'exprimer visuellement une solution objet, ce qui

facilite la comparaison et l'évaluation de solutions.

Page 36: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 35

- L'aspect formel de sa notation, limite les ambiguïtés et les incompré hensions.

- Son indépendance par rapport aux langages de programmation, aux domaines

d'application et aux processus, en font un langage universel.

Comme UML n'impose pas de méthode de travail particulière, il peut être intégré à

n'importe quel processus de développement logiciel de manière transparente. UML est une

sorte de boîte à outils, qui permet d'améliorer progressivement nos méthodes de travail,

tout en préservant nos modes de fonctionnement.

Intégrer UML par étapes dans un processus, de manière pragmatique, est tout à fait

possible. La faculté d'UML de se fondre dans le processus courant, tout en véhiculant une

démarche méthodologique, facilite son intégration et limite de nombreux risques (rejet des

utilisateurs, coûts...).

3.2. Phase 1 : Conception des Services Web

3.2.1. Introduction

Cette première phase de l’étude conceptuelle s’intéresse au 3 premiers couches du

Concept SOA. Dans notre étude on s’intéressera à la modélisation des connecteurs

PodBridge 1.2, à travers lesquels on va intégrer les différentes systèmes et protocoles

présents. Ces connecteurs servent d'interface entre le middleware (PodBridge) et les

différents systèmes applicatifs présents.

Les connecteurs de PodBridge sont des classes qui dérivent tous de la même classe mère

PodBridgeConnector et qui implémentent l’interface PodBridgeConnectorInterface.

Page 37: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 36

+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

NOM_DU_CONNECTEUR

Figure 12 –Modélisation d’un connecteur PodBridge1.2 (Cas général)

Les différents systèmes et ressources visés par notre projet sont répartis sur deux réseaux

géographiquement distants, le premier est un réseau local d’un établissement

d'enseignement supérieur et l’autre est celui du Réseau National Universitaire (RNU).

Les systèmes informatiques visés de l’établissement supérieur:

1) Le serveur de base de données dans lequel sont centralisées les informations sur

chaque étudiant.

2) Le serveur FTP dédié aux étudiants du département informatique. Chaque étudiant à

le droit d’avoir un seul compte dans le quel il peut stocker ses documents, comme il

peut ainsi s’en servir même de chez lui.

Page 38: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 37

3) Le point d’accès sans fil du département informatique qui permet une connexion

sans fil au réseau local de l’établissement et à internet, la connexion est sécurisé

grâce au filtrage MAC ainsi par une clé.

4) Une imprimante partagée sur le réseau de l’établissement.

5) Un Modem GSM permettant l’envoi des SMS en masse.

Les systèmes informatiques visés du RNU:

1) Le serveur web d’inscription universitaire « inscription.edu.demo ».

2) Le serveur mail « rnu.edu.demo » pour héberger les comptes de messageries

électronique des étudiants et des enseignants.

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 »

Page 39: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 38

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 :

Page 40: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 39

+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 (Connecteur PodBridge de l’établissement)

Page 41: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 40

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

Serv

ice

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,tel,email,loginftp,adr

mac,refrecu,process). Array

Serv

ice

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

Serv

ice

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

Page 42: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 41

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.

Page 43: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 42

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)

Page 44: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 43

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 :

Page 45: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 44

+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)

Page 46: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 45

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

SER

VIC

E

doCreateFTPUserAccount

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

Page 47: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 46

défaut) boolean

SER

VIC

E

setFTPUserAccountExpiryDate

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

SER

VIC

E

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

SER

VIC

E

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

SER

VIC

E

doChangeFTPUserPassword

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

SER

VIC

E

doDeleteFTPUserAccount

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

Page 48: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 47

SER

VIC

E

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.

Page 49: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 48

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.

Page 50: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 49

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 id g e 1 .2 S O A M id d le 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 ic 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 te :

u s e ra d d … -g F T P . . .

A u th e n t ic a te a n d

c h e c k p r iv i le g e

H a n d le re q u e s t

< < In c lu d e > > C a ll m e th o d :

s e tF T P U s e r

W e lc o m e M s g ( )

C a ll m e th o d :

d o C re a te F T P

U s e rA c c o u n t ( )

C a ll m e th o d :

s s h 2 E x e c ( )

S e rv ic e

C o n s u m e r

< < In c lu d e > >

< < In c lu d e > >

G e t re s p o n s e f ro m

c a c h e

< < In c lu d e > >

S h e ll E x e c u te : c p …T e ll S S H S e rv e r to

p e r fo rm th e o p e ra t io n

< < In c lu d e > >

if c a c h e d

T ra c e re q u e s ts a n d

re s p o n s e s

< < In c lu d e > >

F T P S e rv e r

a d m in

C a ll m e th o d :

s e tF T P U s e rA c c o u n t

E x p ir y D a te ( )

< < In c lu d e > >

F r o n t e n d

G e t W S D LP B a d m in

S e tu p P B 1 .2

M o n ito r

t ra n s a c t io n s lo g

In v o k e W S :

d o C re a te F T P

U s e rA c c o u n t

In v o k e W S :

s e tF T P U s e rW e lc o m e M s g

In v o k e W S :

s e tF T P U s e r

A c c o u n tE x p ir y D a te

In v o k e W S :

d o F T P s e n d F ile

C a ll m e th o d :

d o F T P s e n d F ile ( )

< < In c lu d e > >

C a ll m e th o d :

g e tU n ix D a te ( )

< < In c lu d e > >

C a ll m e th o d :

g e n e ra te

R a n d o m P a s s w d ( )

< < In c lu d e > >

C a ll m e th o d :

i fU s e rE x is ts ( )

< < In c lu d e > >

S h e ll e x e c u te :

u s e rm o d -e . . . .

< < In c lu d e > >

S h e ll E x e c u te :

c h o w n . . .

Page 51: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 50

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 (Connecteur PodBridge de l’établissement)

Page 52: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 51

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

SER

VIC

ES

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’authentification, 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.

Page 53: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 52

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.

Page 54: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 53

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 ACLTell 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)

Page 55: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 54

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

Page 56: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 55

Description des méthodes de la classe IPPService :

Nom de la méthode Description Entrée Sortie

SER

VIC

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

Page 57: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 56

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)

Page 58: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 57

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 :

Page 59: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 58

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

SER

VIC

E

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.

Page 60: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 59

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)

Page 61: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 60

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 (Connecteur 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

Page 62: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 61

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

SER

VIC

E

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)

Page 63: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 62

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.

Page 64: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 63

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)

Page 65: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 64

3.2.3. Urbanisation du SI du RNU

3.2.3.1. Serveur Mail

Objectif : Avoir 7 services web qui permettent de :

1) Créer un nouveau compte mail (1ère version - nom d’utilisateur est au choix),

2) Créer un nouveau compte mail (2ème version - le nom d’utilisateur doit être auto-généré à partir du nom et le prénom de son propriétaire),

3) Changer le mot de passe d’un compte mail,

4) Supprimer un compte mail,

5) Désactive un compte mail,

6) Active un compte mail,

7) Envoyer un message à n’importe quelle adresse électronique.

Note : En cas d’erreur (compte utilisateur déjà existant, problème de connexion au

serveur…) 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 MailAccount :

Page 66: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 65

+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

-generateUserName() : string

-doStripAtDomain() : string

+doCreateMailUserAccount2() : array

+doCreateMailUserAccount() : array

+doChangeMailUserPassword() : boolean

-doCheckPassword() : boolean

+doDeleteMailUserAccount() : boolean

+doUnlockMailUserAccount() : boolean

+doLockMailUserAccount() : boolean

+doSendMail() : boolean

-ssh2Exec() : stream

+connect() : boolean

+disconnect() : boolean

-sshCon : ressource = null

-authenticated : boolean = false

-regexValidator : array

MailAccount

Figure 26 – Classe MailAccount (Connecteur PodBridge 1.2)

Description des attributs de la classe MailAccount :

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 pour

un nom d’utilisateur (mail), prénom et adresse email.

Page 67: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 66

Description des méthodes de la classe MailAccount :

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) 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

generateUserName

Génère un nom d’utilisateur à partir du

nom et prénom passés en paramètres.

fstname : prénom. String

Nom d’utilisateur.

String lstname : nom.

String

doStripAtDomain

Extrait le nom

d’utilisateur à partir d’une adresse email du domaine (rnu.edu.demo).

emailaddr :

adresse email. String

Nom

d’utilisateur.

String

SER

VIC

E

doCreateMailUserAcco

unt

Créer un nouveau

compte mail (1)

user : Nom

d’utilisateur String

(adresse email,

mot de passe, port POP3, port

SMTP, adresse url du webmail

‘SquirrelMail’) Array

genpswd: vrai

pour auto générer le mot

de passe. boolean

password: mot

de passe (si genpswd reçoit

faux). String

SER

VIC

E

doCreateMailUserAccount2

Créer un nouveau compte mail (2)

fstname : prénom. String

(adresse email, mot de passe, port POP3, port

SMTP, adresse url du webmail ‘SquirrelMail’)

lstname : nom. String

genpswd: vrai

pour auto

Page 68: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 67

générer le mot de passe.

boolean

Array

password: mot

de passe (si genpswd reçoit

faux). String

SER

VIC

E

doDeleteMailUserAccount

Supprime un compte

mail.

emailaddr :

adresse mail. String

Vrai si le compte

mail a été supprimé avec

succès. boolean

SER

VIC

E

doUnlockMailUserAccount

Active un compte mail. emailaddr : adresse mail.

String

Vrai si le compte mail a été activé.

boolean

SER

VIC

E

doLockMailUserAccoun

t

Désactive un compte

mail.

emailaddr :

adresse mail.

String

Vrai si le compte

mail a été

désactivé. boolean

SER

VIC

E

doChangeMailUserPassword

Modifie le mot de passe d’un compte

mail.

emailaddr: adresse email.

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

SER

VIC

E

doSendMail

Permet (à un administrateur) l’envoi de messages à n’importe quelle adresse électronique.

from: adresse email de l’envoyeur.

String

Vrai si le message à été envoyé avec succès. boolean

to : adresse email du destinataire.

String

message : Corps du message

String

subject : Sujet du

Page 69: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 68

message

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

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

Page 70: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 69

Les méthodes suivantes: doCreateMailUserAccount (), doCreateMailUserAccount2 (),

doDeleteMailUserAccount (), doUnlockMailUserAccount (), doLockMailUserAccount (),

doChangeMailUserPassword () et doSendMail () 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.

Page 71: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 70

SSH (22)

POP (110)

SMTP (25)

HTTP (80)

PodBridge 1.2 SOA Middleware

HTTP (80)

PB1.2 Core

SOAP web service API

PB1.2 Connector

« MailAccount.connector.php »

End system

OpenSSH and Postfix

and Dovecot on

Ubuntu server

Shell execute :

useradd … -g mail ...

Authenticate and

check privilege

Handle request

<< Include >>

Call method :

doSendMail()

Call method :

doCreateMail

UserAccount2()

Call method :

ssh2Exec()

Service

Consumer

<< Include >>

<< Include >>

Get response from

cache

<< Include >>Shell Execute :

mail -s…Tell SSH Server to

perform the operation

<< Include >>

if cached

Trace requests and

responses

<< Include >>

Mail Server

admin

Call method :

doChangeMail

UserPassword()

<< Include >>

Frontend

Get WSDLPB admin

Setup PB1.2

Monitor

transactions log

Invoke WS :

doCreateMail

UserAccount2

Invoke WS :

doDeleteMail

UserAccount

Invoke WS :

doChangeMail

UserPassword

Invoke WS :

doSendMail

Call method :

doDeleteMail

UserAccount()

<< Include >>

Call method :

doCheckPassword()

<< Include >>

Call method :

generate

generateUserName()

<< Include >>

Call method :

ifUserExists()

<< Include >>

Shell execute :

userdel -r ....

<< Include >>

Shell Execute :

usermod -p...

Figure 27 - Modélisation de la logique métier (Connecteur MailAccount)

Page 72: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 71

3.2.4. Conclusion

Finalement on est arrivé à la fin de cette première phase par la conception des

connecteurs PodBridge 1.2. Chaque connecteur englobe une logique métier lui permettant

de s’adapter et dialoguer avec le système informatique dont il est conçu pour.

PodBridge se chargera de la génération des services web SOAP et des WSDL.

Page 73: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 72

+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

+doForwardMACaddr() : array

+doRomoveForwordedMACaddr() : boolean

+getAccesPointInfo() : array

+connect() : boolean

+disconnect() : boolean

-regexValidator : array

APACLManager

-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

+doPrintWebPage() : boolean

-doPrintInternalDocument() : boolean

+connect() : boolean

+disconnect() : boolean

-ipp : CupsPrintIPP Object = null

IPPService

-getAccuseRef() : string

+getAccuse() : array

+ssh2Exec() : stream

+connect() : boolean

+disconnect() : boolean

-curl_handle : ressource = null

wwwsubscr

+doSendSMS() : boolean

-stripSpaces() : boolean

-ssh2Exec() : stream

+connect() : boolean

+disconnect() : boolean

-sshCon : ressource = null

-authenticated : boolean = false

-regexValidator : array

SMSService

Figure 28 – Connecteurs PodBridge (de l’établissement)

Page 74: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 73

+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

-generateUserName() : string

-doStripAtDomain() : string

+doCreateMailUserAccount2() : array

+doCreateMailUserAccount() : array

+doChangeMailUserPassword() : boolean

-doCheckPassword() : boolean

+doDeleteMailUserAccount() : boolean

+doUnlockMailUserAccount() : boolean

+doLockMailUserAccount() : boolean

+doSendMail() : boolean

-ssh2Exec() : stream

+connect() : boolean

+disconnect() : boolean

-sshCon : ressource = null

-authenticated : boolean = false

-regexValidator : array

MailAccount

Figure 29 - Connecteur PodBridge (du RNU)

Page 75: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 74

3.3. Phase 2 : Processus métier et orchestration de services

3.3.1. Introduction

Finalement, on est arrivés au niveau de la couche orchestration de services. Dans cette

phase 2ème phase de l’étude conceptuelle on s’intéressera à la conception des processus de

coordination d’un échange d’information à travers l’interaction des services web

précédemment conçus.

Notre objectif est de concevoir à travers de diagrammes d’activité (workflows) deux

processus métiers (ProcessRUById et BatchProcessRU).

3.3.2. Conception du 1er processus métier : ProcessRUById

Ce processus doit exécuter quelques procédures pour offrir à un étudiant donné par son

identifiant les différents services que proposent les systèmes informatiques de

l’établissement en se référant sur ses informations stockés dans la base de données.

Avant d’exécuter ces différentes procédures, ce processus doit automatiquement vérifier

depuis le site (inscription.edu.demo) si l’étudiant a déjà payé les frais d’inscription de

l’année en cours.

Quelques remarques :

Etats du processus :

- EXE : Processus en cours d’exécution.

- PAI : Renvoyé à la fin d’exécution. dans le cas où l’étudiant n’a pas encore

effectué le paiement des frais d’inscription.

- OK : Renvoyé à la fin d’exécution ; Succès de l’exécution de toutes les procédures.

Voici les différentes procédures que doit exécuter notre processus (ProcessRUById) :

- Mettre à jours la valeur du champ process par EXE (dans la table etudiant) pour

l’identifiant passé en paramètre.

- vérifier depuis le site inscription.edu.demo, si l’étudiant a effectué le paiement

des frais d’inscription. Si les frais d’inscription n’ont pas été payés, un message

Page 76: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 75

d’alerte doit lui être envoyé par mail et SMS, ensuite le processus doit finir son

exécution et renvoyer le message ‘PAI’,

- envoyer à une imprimante partagée un job d’impression pour l’accusé de

paiement de l’étudiant (pour le service de la scolarité de l’établissement),

- si l’étudiant ne possède pas un compte mail, un nouveau compte mail doit donc

lui être créé sur le domaine RNU, ensuite les paramètres de son nouveau compte

doivent lui être envoyés par SMS.

- si l’étudiant est en informatique et ne possède pas déjà un compte FTP, alors un

nouveau compte FTP doit lui être créé, ensuite les paramètres de son nouveau

compte FTP doivent lui être envoyés sur son mail et par SMS.

- dans le cas où l’étudiant possède déjà un compte FTP, la date d’expiration de son

compte doive être étendue d’une année,

- envoyer sur son compte FTP son calendrier, ses cours et TP (en s’appuyant sur les

informations : département, spécialité et niveau).

- si l’étudiant a déjà fourni l’adresse MAC de la carte réseau sans fil de son

ordinateur portable, alors son ordinateur doit être autorisé à se connecté au

réseau sans fil de l’établissement à traves l’interface Wifi, ainsi qu’il doit être

informé par SMS et mail des paramètres du réseau Sans fil tel que (SSID, Clé),

- envoyer à l’étudiant un message de bienvenu par mail & SMS,

- mettre à jour les données de l’étudiant sur la base de donnée par les nouvelles

informations telles que : la référence de son accusé de paiement de l’année

universitaire en cours, son nouveau login FTP, sa nouvelle adresse mail et le code

(process state code) renvoyé par le process à sa fin d’exécution,

- renvoyer le message ‘OK’ (code sucés d’exécution).

Page 77: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 76

Donner l’identifiant de l'étudiant

RECEIVE: ProcessRUByIdIn

Récupérer les informations

de l’étudiant depuis

la base de données

INVOKE: « getStudentById »

Récupérer la référence de l’accusé

de paiement et son URL

depuis le site inscription.edu.demo

INVOKE: « getReceipt »

[Paiement effectué]

Lancer un nouveau job d’impression

pour l’accusé de paiement

INVOKE: « doPrintWebPage »Mettre à jour la BD,

état process PAI

INVOKE: « updateStudentById »

[Paiement non effectué]

Son département

est-il ‘TI’ ?

A-t-il donné son

adresse MAC ?

Possède-il un compte FTP ?

[oui]

[non] [oui]

Crée un message welcome

pour ce compte FTP

INVOKE: « setFTPUserWelcomeMsg »

Envoyer le calendrier

,les cours & TP

INVOKE: « doFTPsendFile »

Envoyer le cour d’UML2

INVOKE: « doFTPsendFile »

Est-il niveau 2 ou plus ?

[oui] [non]

Mettre à jour le filtre MAC du

point d’accès Sans fil (Ajout)

INVOKE: «doForwardMACaddr »

[oui]

[non]

Possède-il un

compte e-mail ?

Créer un nouveau compte e-mail

INVOKE:

«doCreateMailUserAccount »

[non]

[oui]

Mettre à jour la BD

(login FTP, e-mail,refrecu et état process ‘OK’)

INVOKE: « updateStudentById »

Renvoyer OK

REPLY: ProcessRUByIdOut

[non]

Renvoyer PAI

REPLY: ProcessRUByIdOut

Envoyer les paramètres du nouveau

compte mail par SMS

INVOKE: « doSendSMS »

Envoyer les paramètres du

point d’accès par SMS

INVOKE: « doSendSMS »

Envoyer les paramètres du

point d’accès par mail

INVOKE: « doSendMail »Envoyer les paramètres du

nouveau compte FTP par SMS

INVOKE: « doSendSMS »

Envoyer les paramètres du

nouveau compte FTP par mail

INVOKE: « doSendMail »

Etendre le délai d’expiration

INVOKE:

«setFTPUserAccountExpiryDate »

Créer un compte FTP

INVOKE: « doCreateFTPUserAccount »

Envoyer un SMS de bienvenue

INVOKE: « doSendSMS »

Envoyer un mail de bienvenue

INVOKE: « doSendMail »

Mettre à jour la BD,

état process EXE

INVOKE: « updateStudentById »

Appel service web

Figure 30 - diagramme d'activité « ProcessRUById »

Page 78: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 77

3.3.3. Conception du processus : BatchProcessRU

Objectif: Concevoir un processus métier permettant d’exécuter les mêmes procédures du

processus ProcessRUById sur un grand nombre d’étudiants, et de notifier l’administrateur

(celui qui lance le processus) par Mail & SMS à la fin d l’exécution.

Paramètres d’entrés :

Un paramètre filtre (chaine de caractère) doit être spécifié avant l’exécution du processus

et doit prendre l’une des valeurs suivantes : ATT22, PAI ou * (signifie ATT et PAI).

Les différents cas :

- Si filtre prend ATT : le processus parcoure seulement les identifiants possédants

un champ process égale à ATT.

- Si filtre prend PAI : le processus parcoure seulement les identifiants possédants

un champ process égale à PAI.

- Si filtre prend * : le processus parcoure seulement les identifiants possédants un

champ process égale à ATT ou PAI.

Information renvoyées :

A la fin de l’exécution du processus, les informations suivantes doivent êtres renvoyés :

- Message (Chaine de caractères) : Succes, fail.

- Code (Entier) : 0 pour Succes, 2 pour fail.

- Date et heure de lacement du processus. (DATETIME).

- Date et heure de fin d’exécution du process. (DATETIME).

22

Indique que dans la table étudiant l’identifiant possédant le champ process égale à ATT n’a été traité aucune fois par le processus ProcessRUById. (ATT est la valeur initiale du champ process à chaque nouvelle

insertion dans la table etudiant).

Page 79: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 78

Donner le filtre (soit ‘PAI’, ‘ATT’ ou ‘ * ‘)

RECEIVE: BatchProcessRUIn

Renvoyer (Etat process,

date de début et de fin d’exécution)

REPLY: BatchProcessRUOut

Récupérer l’indentifiant

Suivant

INVOKE: « getNextId »

Dernier identifiant ?

[oui]

[non]

Invoquer le service (ProcessRUById)

pour l’identifiant courant

INVOKE: « ProcessRUById »

renvoie le premier identifiant

à la première itération

Notifier l’administrateur

par SMS

INVOKE: « doSendSMS »

Notifier l’administrateur

par Mail

INVOKE: « doSendMail »

Appel service web

Figure 31 - diagramme d'activité « BatchProcessRU »

3.3.4. Conclusion

Finalement on est arrivé à la fin de la 2ème phase par la conception de deux processus

métiers ProcessRUById et BatchProcessRU permettant l’orchestration des services conçus

dans la première phase.

Page 80: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 79

Chapitre 4 : Réalisation

3.4. Installation & Configuration

3.4.1. Serveur FTP : ftp-etu.intranet.demo

- Ajout du domaine ftp-etu.intranet.demo dans /etc/hosts (Voir documentation

technique - 1.1)

3.4.2. Serveur CUPS : cups.intranet.demo

- Ajout du domaine cups.intranet.demo dans /etc/hosts (Voir documentation

technique - 1.1)

- Installation de CUPS Serveur et Client :

$ sudo apt-get cups cups-client

- Démarrage du serveur CUPS :

$ sudo /etc/init.d/cups start

Voir l’interface web de configuration de serveur CUPS dans la section (3.2) -

documentation technique

3.4.3. Serveur de BD PostgreSQL : postgres-83.intranet.demo

- Ajout du domaine postgres-83.intranet.demo dans /etc/hosts (Voir

documentation technique - 1.1)

- Installation de PostgreSQL :

$ sudo apt-get install postgresql-8.3

- Démarrage de PostgreSQL :

$ sudo /etc/init.d/postgresql-8.3 start

- Etapes de création du nouvel utilisateur (bdetuadmin) et schéma (bdetu) :

Page 81: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 80

$ sudo -u postgres psql –h postgres-83.intranet.demo -p 5432

postgres=# create user bdetuadmin;

postgres=# create database bdetu owner bdetuadmin;

postgres=# \q

Création de la structure de la table etudiant et insertion des données de test. Voir

Documentation technique (2.1.1 pour le script de création) et (2.1.2 pour le script

d’insertion).

-- Connexion

postgres=# \i /home/walid/sql/create.sql

postgres=# \i /home/walid/sql/insert.sql

postgres=# \q

Lister le contenu de la table après l’insertion des données de test.

-- Connexion

postgres=# select * from etudiant;

Resultat :

3.4.4. Serveur web d’inscription en ligne : inscription.edu.demo

- Ajout du domaine ftp-etu.intranet.demo dans /etc/hosts (Voir documentation

technique - 1.1)

Création d’un virtualhost (Apache) dans le fichier /etc/apache2/sites-

enabled/inscription.edu.demo :

<VirtualHost *:80>

ServerName inscription.edu.demo

DocumentRoot "/var/www/projects/unstable/inscription.edu.demo"

Page 82: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 81

DirectoryIndex index.php

<Directory "/var/www/projects/unstable/inscription.edu.demo">

AllowOverride All

Allow from All

</Directory>

</VirtualHost>

- redémarrage du serveur HTTP:

$ sudo /etc/init.d/apache2 restart

3.4.5. Point d’accès sans fil : ap-21. intranet.demo

- Ajout du domaine ap-21.intranet.demo dans /etc/hosts (Voir documentation

technique - 1.1)

Configuration :

- Fonction : Accès Point

- SSID : ETUDIANTS_WIRELESS

- Norme de sécurité : WPA2

- Clé de chiffrement : soaetbpm

3.4.6. Serveur mail : (ws.rnu.edu.demo)

- Ajout du domaine ws.rnu.edu.demo dans /etc/hosts (Voir documentation technique

- 1.1)

- Installation du serveur POP3/IMAP :

$ sudo apt-get install dovecot

- Démarrage du serveur POP3/IMAP :

$ sudo /etc/init.d/dovecot start

- Installation du serveur SMTP :

$ sudo apt-get install postfix

- démarrage du serveur SMTP :

Page 83: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 82

$ sudo /etc/init.d/postfix start

- Installation du webmail:

$ sudo apt-get install squirrelmail

Création d’un virtualhost (Apache) dans le fichier /etc/apache2/sites-enabled/

webmail.rnu.edu.demo:

<VirtualHost *:80>

ServerName webmail.rnu.edu.demo

DocumentRoot "/usr/share/squirrelmail"

DirectoryIndex index.php

<Directory "/usr/share/squirrelmail">

AllowOverride All

Allow from All

</Directory>

</VirtualHost>

- redémarrage du serveur HTTP:

$ sudo /etc/init.d/apache2 restart

Voir capture écran de squirrelmail (écran de connexion) dans la documentation technique.

3.4.7. Modem GSM connecté au serveur Lenny : debian5-

02.intranet.demo

- Ajout du domaine debian5-02.intranet.demo dans /etc/hosts (Voir documentation

technique - 1.1)

3.4.8. PodBridge 1.2

- Ajout du domaine podbridge.intrant.demo et ws.rnu.edu.demo dans /etc/hosts

(Voir documentation technique - 1.1)

- Déploiement de PodBridge 1.2 :

$ mkdir –p /var/www/projects/unstable/podbridge && cd /var/www/projects/unstable

$ svn co https://svn.tweety.tux/podbridge/trunk podbridge

$ ./pbadmin pb-fix-perms

$ sudo -u postgres psql –h podbridge.intrant.demo

postgres=# create user podbridge;

postgres=# create database podbridge owner podbridge;

postgres=# \q

Page 84: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 83

$ ./pbadmin pb-build-all-load

3.4.9. Installation de GlassFish ESB 2.1

Voir document accompagné (Glass Fish ESB 2.1 & Netbeans 6.7.1 BPEL Designer

Installation & Sample tutorial )

3.4.10. Installation des plugins SOA & BPEL pour NetBeans

Voir document accompagné (Glass Fish ESB 2.1 & Netbeans 6.7.1 BPEL Designer

Installation & Sample tutorial )

3.5. Réalisation des connecteurs

3.5.1. Exemple de réalisation d’un connecteur :

pbFTPAccountConnector

Le connecteur pbFTPAccountConnector doit êtres copié sous le répertoire :

Podbridge/plugins.

Les fichiers sous pbFTPAccountConnector/data/fixtures sont au format yml23, destinés

pour stocker la configuration (pour la génération du WSDL) ainsi que les paramètres par

défaut du connecteur.

pbFTPAccountConnector/lib/connector contient la classe « FTPAccount.connector.php »

qui implémente les différentes méthodes qui seront exposées par PodBridge en tant que

services web.

23

Extension pour les fichiers basés sur Yaml (Yaml Ain’ t Markup Language)

Page 85: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 84

Figure 32 - Arborescence du projet PodBridge - Netbeans IDE

Ajout du connecteur pbFTPAccountConnector à PodBridge (Génération des services web, et

WSDL) :

Page 86: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 85

3.5.2. Test du service web doCreateFTPUserAccount par

l’utilitaire SoapUI 3.0.1

Invocation du service web doCreateFTPUserAccount – XML SOAP Request Message :

doCreateFTPUserAccount Réponse - XML SOAP Response Message:

Page 87: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 86

Accès au nouveau compte FTP:

Re-Invocation du même service web doCreateFTPUserAccount utilisant les mêmes

paramètres – XML SOAP Request Message :

Réponse (Utilisateur déjà existant / Code erreur : 804) – SOAP Faut Message:

Tentative d’invocation du service web doCreateFTPUserAccount (Avec une clé erronée):

Page 88: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 87

Réponse (Erreur d’authentification) – SOAP Faut Message:

L’illustration de la page suivante donne une vue générale sur l’intégration de chacun des

systèmes visés au moyen de PodBridge1.2

Page 89: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 88

Réseau National Universitaire (WAN)

IPP : 631 SSH : 22SSH : 22 Telnet : 23 Pgsql : 5432

BD

étu

dia

nts

Po

stg

reS

QL

po

stg

res-8

3.in

tra

ne

t.d

em

o

Réseau local de l’établissement (LAN)

AP

AC

LM

an

ag

er

AP

AC

LM

an

ag

er.

co

nn

ec

tor.

ph

p

IPP

Se

rvic

e

IPP

Se

rvic

e.c

on

ne

cto

r.p

hp

BD

be

tu

BD

etu

.co

nn

ec

tor.

ph

p

SM

SS

erv

ice

SM

SS

erv

ice.c

on

ne

cto

r.p

hp

FT

PA

cc

ou

nt

FT

PA

cc

ou

nt.

co

nn

ec

tor.

ph

p

Po

int

d’a

cc

ès

Sa

ns

Fil

ap

-21

.in

tra

ne

t.d

em

o

Serveurs d’application,

Ressources

Systèmes hétérogènes

SSH : 22

Ma

ilA

cc

ou

nt

Ma

ilA

cc

ou

nt.

co

nn

ec

tor.

ph

p

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Connecteurs PodBridge

Logique métier

Middleware SOA – PodBridge1.2Intermédiation entre serveurs d’application et

consommateurs de services

WSDL & Services Web SOAPSOAP endpoint, description, XML,

XSD..

Protocoles de

communication

Règles de communication

HTTP : 80

ww

ws

ub

sc

r

ww

ws

ub

sc

r.c

on

ne

cto

r.p

hp

Operation

X

Operation

Y

Operation

Z

WS

SOAP

PodBridge 1.2 (Middleware SOA) – podbridge.intranet.demo PodBridge 1.2

ws.rnu.edu.demo

Se

rve

ur

CU

PS

cu

ps.in

tra

ne

t.d

em

o

Mo

de

m G

SM

co

nn

ec

à u

n s

erv

eu

r D

eb

ian

Le

nn

y

de

bia

n5

-02

.in

tra

ne

t.d

em

o

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Ad

min

. P

od

Bri

dg

e

Ad

min

. P

od

Bri

dg

e

Se

rve

ur

Ma

il –

SM

TP

& P

OP

3

rnu

.ed

u.d

em

o

Se

rve

ur

We

b d

u s

ite

d’in

sc

rip

tio

n u

niv

ers

ita

ire

inscrip

tio

n.e

du

.de

mo

Ad

min

. S

ys

tèm

e

Ad

min

istr

ate

ur

Sy

stè

me

Se

rve

ur

FT

P

ftp

-etu

.in

tra

ne

t.d

em

o

Consommateur

de service

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Consommateur

de service

Figure 33 –1ère

phase de l’urbanisation des deux réseaux (Services Web)

Page 90: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 89

3.6. Réalisation des processus métiers - phase 2

Déploiement de ProcessRUById et BatchProcessRU :

Page 91: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 90

ProcessRUById

WS

SOAP

GlassFish ESB 2.1composant sun-bpel-engine

bpel-engine.intranet.demo

BatchProcessRU

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Receive

invoke

Invoke

Processinvoke

invoke

Reply

BP

EL

BatchProcessRU

Receive

invoke

invoke

invoke

Reply

BP

EL

ProcessRUById

invoke

invoke

Messages XML SOAP

(Requête et réponse)

Figure 34 –Déploiement de ProcessRUById et BatchProcessRU

Page 92: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 91

3.6.1. Test de ProcessRUById (Invocation du service composite)

Requête :

POST http:// sun-bpel-engine.intranet.demo:9080/processRUByIdService HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/soap+xml;charset=UTF-8

User-Agent: Jakarta Commons-HttpClient/3.1 Host: sun-bpel-engine.intranet.demo:9080 Content-Length: 281

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:proc="processRUByIdCA">

<soap:Header/>

<soap:Body>

<proc:processRUByIdOperation>

<identifiant>12345678</identifiant>

</proc:processRUByIdOperation>

</soap:Body>

</soap:Envelope>

Réponse :

HTTP/1.1 200 OK Content-Type: application/soap+xml;charset="utf-8" Transfer-Encoding: chunked Date: Thu, 14 Jan 2010 13:58:02 GMT <?xml version="1.0" ?>

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">

<env:Body>

<processRUByIdOperationResponse>

<statut xmlns:msgns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById">OK</statut>

</processRUByIdOperationResponse>

</env:Body>

</env:Envelope>

Voici les informations de l’étudiant ayant l’identifiant ‘12345678’ après l’exécution du

processus. (Depuis BD – table étudiant)

Page 93: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 92

Lancement d’un job d’impression pour l’accusé de paiement :

Boite de réception :

Paramètres du compte FTP (reçu par mail) :

Page 94: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 93

Notification par SMS – Message de bienvenu :

Compte FTP :

Page 95: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 94

La connexion au réseau sans fil (ETUDIANT_WIRELESS) est autorisée :

3.6.2. Test de BatchProcessRU (Invocation du service

composite)

Requête :

POST http://sun-bpel-engine.intranet.demo:9080/BatchProcessRUService HTTP/1.1

Accept-Encoding: gzip,deflate Content-Type: application/soap+xml;charset=UTF-8 User-Agent: Jakarta Commons-HttpClient/3.1 Host: sun-bpel-engine.intranet.demo:9080

Page 96: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 95

Content-Length: 382

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bat="BatchProcessRUCA" xmlns:bat1="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd">

<soap:Header/>

<soap:Body>

<bat:BatchProcessRUOperation>

<part1>

<bat1:filter>PAI</bat1:filter>

</part1>

</bat:BatchProcessRUOperation>

</soap:Body>

</soap:Envelope>

Réponse :

HTTP/1.1 200 OK Content-Type: application/soap+xml;charset="utf-8" Transfer-Encoding: chunked Date: Thu, 14 Jan 2010 13:48:19 GMT

<?xml version="1.0" ?>

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">

<env:Body>

<BatchProcessRUOperationResponse>

<part1 xmlns:msgns="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU">

<ns0:message xmlns:ns0="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd">success</ns0:message>

<ns0:statecode xmlns:ns0="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd">0</ns0:statecode>

<ns0:date xmlns:ns0="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd">

<ns0:start>2010-01-14T14:41:08.34+01:00</ns0:start>

<ns0:end>2010-01-14T14:48:19.76+01:00</ns0:end>

</ns0:date>

</part1>

</BatchProcessRUOperationResponse>

</env:Body>

</env:Envelope>

Page 97: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 96

3.7. Développement des applications

Réseau National Universitaire (WAN)

ProcessRUById

WS

SOAP

GlassFish ESB 2.1composant sun-bpel-engine

bpel-engine.intranet.demo

BatchProcessRU

WS

SOAP

IPP : 631 SSH : 22SSH : 22 Telnet : 23 Pgsql : 5432

BD

étu

dia

nts

Po

stg

reS

QL

po

stg

res-8

3.in

tra

ne

t.d

em

o

Réseau local de l’établissement (LAN)

AP

AC

LM

an

ag

er

AP

AC

LM

an

ag

er.

co

nn

ec

tor.

ph

p

IPP

Se

rvic

e

IPP

Se

rvic

e.c

on

ne

cto

r.p

hp

BD

be

tu

BD

etu

.co

nn

ec

tor.

ph

p

SM

SS

erv

ice

SM

SS

erv

ice

.co

nn

ec

tor.

ph

p

FT

PA

cc

ou

nt

FT

PA

cc

ou

nt.

co

nn

ec

tor.

ph

p

Po

int

d’a

cc

ès

Sa

ns

Fil

ap-2

1.in

tra

ne

t.d

em

oServeurs d’application,

Ressources

Systèmes hétérogènes

SSH : 22

Ma

ilA

cc

ou

nt

Ma

ilA

cc

ou

nt.

co

nn

ec

tor.

ph

p

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Connecteurs PodBridge

Logique métier

WSDL & Services Web

SOAPSOAP endpoint, description,

XML, XSD..

Protocoles de

communication

Règles de communication

SSH : 80

ww

ws

ub

sc

r

ww

ws

ub

sc

r.c

on

ne

cto

r.p

hp

Operation

X

Operation

Y

Operation

Z

WS

SOAP

PodBridge 1.2 (Middleware SOA) – podbridge.intranet.demo PodBridge 1.2

ws.rnu.edu.demo

Se

rve

ur

CU

PS

cu

ps.in

tra

ne

t.d

em

o

Mo

de

m G

SM

co

nn

ec

à u

n s

erv

eu

r D

eb

ian

Le

nn

y

de

bia

n5

-02

.in

tra

ne

t.d

em

o

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Se

rve

ur

Ma

il –

SM

TP

& P

OP

3

rnu.e

du.d

em

o

Se

rve

ur

We

b d

u s

ite

d’in

sc

rip

tio

n u

niv

ers

ita

ire

inscrip

tio

n.e

du.d

em

o

Se

rve

ur

FT

P

ftp

-etu

.in

tra

ne

t.d

em

o

Operation

X

Operation

Y

Operation

Z

WS

SOAP

Receive

invoke

Invoke

Processinvoke

invoke

Reply

BP

EL

BatchProcessRU

Receive

invoke

invoke

invoke

Reply

BP

EL

ProcessRUById

invoke

invoke

start-pru-09-

10-att.shdeleteftp.pl

ping.java

formulaire.php

Messages XML SOAP

(Requête et réponse)

Middleware SOA –

PodBridge1.2Intermédiation entre serveurs

d’application et consommateurs

de services

Figure 35 - SI après urbanisation

Page 98: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 97

3.7.1. Appel web-service SOAP en PHP5

Exemple :

1 <?php

2

3 //init

4 $client = new SoapClient("http://podbridge.intranet.demo/projects/unstable/podbridge/web/index.php/wsdl/auto/691292877050480f54b5/getStudentById");

5

6 try {

7

8 //Arguements (paramètres d'entrées)

9 $arguments=array(

10 'key'=>'691292877050480f54b5',

11 'sync'=>'1',

12 'id'=>'12345678'

13 ) ;

14

15 //Apel de la méthode getStudentById

16 $result = $client->getStudentById($arguments);

17

18 //Affiche toute la réponse - Type: stdClass Object

19 print_r ($result);

20 //Affiche status - Type: stdClass Object

21 print_r ($result->status);

22

23

24 //Affiche le message renvoyé par podBridge (reponse)

25 echo $result->status->message ."\n";

26 //Affiche le prénom

27 echo $result->response->prenom."\n";

28 //Affiche l'adresse email

29 echo $result->response->email."\n";

30

31 }

32 catch (SoapFault $e) {

33 echo '['.$e->getCode().']';

34 echo $e->getMessage();

35 }

36

37 ?>

Voir source et capture d’écran de l’application web PHP (formulaire info etudiant) dans la

documentation technique.

Page 99: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 98

3.7.2. Exemple d’appel web-service SOAP en Perl (Suppression

d’un compte FTP)

#!/usr/bin/perl -w

#

# Ce code permet d’appeler le service web (doDeleteFTPUserAccount) exposé par podbridge

#

use SOAP::Lite;

my $soap = SOAP::Lite

-> uri ('urn:ftpacntns')

-> proxy ('http://podbridge.intranet.demo/projects/unstable/podbridge/web/api/index.php?wsdl');

my $res = $soap ->doDeleteFTPUserAccount(SOAP::Data->name('key' => '691292877050480f54b5'),SOAP::Data->name('user' => 'etu_12345678'));

unless ($res->fault) {

print $res->result(),"\n";

}else{

print 'FAULT CODE : ',$res->faultcode,"\n",'FAULT MESSAGE : ',$res->faultstring,"\n";

}

3.7.3. Appel web-service SOAP en JAVA SE – Swing (Invocation

du service Ping (test PodBridge))

66 ………

67 ………

68 pbns.PodBridgePingService service = new pbns.PodBridgePingService();

69

70 QName portQName = new QName("urn:pbns" , "PodBridgePingPort");

71 String req = "<ping xmlns=\"urn:pbns\"><key>691292877050480f54b5</key><sync>1</sync></ping>";

72

73 try { // Call Web Service Operation

74 Dispatch<Source> sourceDispatch = null;

75 sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);

76 Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));

77 String resultString = sourceToXMLString(result);

78 System.out.println("Received xml: \n" + resultString);

79 } catch (Exception ex) {

80 System.out.println("An error has occured: \n" + ex.getMessage());

Page 100: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 99

81 }

82

83 ………

84 ………

3.7.4. Appel web-service SOAP en Shell (Invocation du service

composite BatchProcessRU)

Fichier (soap-request.xml) :

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bat="BatchProcessRUCA" xmlns:bat1="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd">

<soap:Header/>

<soap:Body>

<bat:BatchProcessRUOperation>

<part1>

<bat1:filter>ATT</bat1:filter>

</part1>

</bat:BatchProcessRUOperation>

</soap:Body>

</soap:Envelope>

Fichier script Shell (start-pru-09-10-att.sh) :

#!/bin/bash

curl http://sun-bpel-engine.intranet.demo/projects/unstable/podbridge/web/api/index_dev.php -d @soap-request.xml

3.8. Environnement de travail

3.8.1. Matériel utilisé

Ordinateur portable (Toshiba A210-16C) :

- Microprocesseur : 2x1.8 GHz, AMD Athlon X2 - Architecture 64 bits,

- Mémoire vivre : 3 Go DDR2,

- Disque dur : 12O Go SATA,

- Contrôleur graphique : ATI X1200 ~320 Mo,

Page 101: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 100

- Carte réseau : Ethernet LAN 10/100Mbps (interface RJ45).

Imprimante Laser (Lexmark E120)

3.8.2. Logiciels utilisés :

SquirrelMail 1.4.15 (Client mail sur navigateur web) :

Site web officiel : http://squirrelmail.org

SquirrelMail est un webmail écrit en PHP4. Il supporte les

protocoles POP, IMAP et SMTP, et toutes les pages générées le

sont en pur HTML (sans aucun JavaScript),ceci afin d'être

compatible avec le maximum de navigateurs.

Dovecot 1.1.11 (Serveur POP3/IMAP) :

Site web officiel : http://squirrelmail.org

Postfix (Serveur SMTP) :

Site web officiel : http://squirrelmail.org

Apache 2.2.11 (Serveur HTTP) :

Site web officiel : http://www.apache.org

Apache HTTP Server, est un logiciel de serveur HTTP produit par

l'Apache Software Foundation. C'est le serveur HTTP le plus populaire du

Web. C'est un logiciel libre avec un type spécifique de licence, nommée

licence Apache.

PostgreSQL 8.3 (Serveur & Client) :

Site web officiel : http://www.postgresql.org

PostgreSQL est un système de gestion de base de données

relationnelle et objet(SGBDRO). C'est un outil libre disponible selon les

termes d'une licence de type BSD. PostgreSQL n'est pas contrôlé par une

seule entreprise, mais est fondé sur une communauté mondiale de

développeurs et d'entreprises.

Page 102: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 101

proFTPD 1.3.1 (Serveur FTP) :

Site web officiel : http://www.proftpd.org

ProFTPd est un serveur FTP libre. Il est puissant et parfaitement

sécurisé. Il est distribué selon les termes de la licence GNU GPL.

Son architecture est modulaire, ce qui a permis d'écrire des extensions pour le support de

la cryptographie SSL/TLS (protocole FTPS) et l'extension de l'authentification via des bases

RADIUS, LDAP ou SQL.

OpenSSH (Serveur SSH) :

Site web officiel : http://www.openssh.com

OpenSSH (OpenBSD Secure Shell) est un ensemble d'outils informatiques

libres permettant des communications sécurisées sur un réseau informatique

en utilisant le protocole SSH.

Créé comme alternative Open Source à la suite logicielle proposée par la société SSH

Communications Security, OpenSSH est développé par l'équipe d'OpenBSD, dirigée par son

fondateur.

CUPS (Serveur ….) :

Site web officiel : http://www.cups.org

CUPS est l’acronyme de (Common Unix Printing System) est un système

modulaire d'impression informatique pour les systèmes d'exploitation Unix et

assimilés. Tout ordinateur qui utilise CUPS peut se comporter comme un serveur

d'impression ; il peut accepter des documents envoyés par d'autres machines

(ordinateurs clients), les traiter, et les envoyer à l'imprimante qui convient.

Ubuntu 9.04 (Jaunty Jackalope) :

Site web officiel : http://www.ubuntu.com

Ubuntu est une distribution Linux libre fondé sur Debian (basé sur GNU/Linux)

et commandité par la société Canonical. Ubuntu Server est une version pour

serveur.

Page 103: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 102

SoapUI 3.0.1 :

Site web officiel : http://www.soapui.org

SoapUI est outils de test de services web pour l’architecture SOA

écris en java et distribué sous licence LGPL, il offre une multitude de

fonctionnalité sue les services web tel que les inspecter, les invoquer, simuler...

Netbeans IDE 6.8 :

Site web officiel : http://www.netbeans.org

NetBeans est un environnement de développement intégré (IDE)

pour Java, placé en open source par Sun sous licence CDDL et GPLv2.

En plus de Java, NetBeans permet également de supporter différents

autres langages, comme Python, C, C++, XML, Ruby, PHP et HTML. Il comprend toutes les

caractéristiques d'un IDE moderne (éditeur en couleur, projets multi -langage, refactoring,

éditeur graphique d'interfaces et de pages web). Conçu en Java, NetBeans est disponible

sous Windows, Linux, Solaris (sur x86 et SPARC), Mac OS X et Open VMS.

PHP 5.2.6 :

Site web officiel : http://www.php.net

PHP (sigle de PHP: Hypertext Preprocessor), est un langage de scripts

libre principalement utilisé pour produire des pages Web dynamiques via un

serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage

interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un

langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet

complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une

plate-forme plus qu'un simple langage.

Symfony 1.0.22-PRE (Framework) :

Site web officiel : http://symfony-project.org

Symfony est un Framework MVC « Modèle-Vue-Contrôleur » libre

entièrement écrit en PHP 5. En tant qu’un Framework, il facilite et

accélère le développement des sites et d'applications Internet et Intranet.

Page 104: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 103

Symfony intègre Proprel qui est lui aussi un Framework de mapping objet relationnel «

ORM » offrant une technique de programmation informatique qui crée l'illusion d'une base

de données orientée objet à partir d'une base de données relationnelle en définissant des

correspondances entre cette base de données et les objets du langage utilisé. On pourrait le

désigner par « correspondance entre monde objet et monde relationnel ».

Les fichiers de configuration employés par Symfony sont au format YAML qui est un

langage de sérialisation de données comme XML mais plus humain et facile interpréter.

GlassFish ESB 2.1 :

Site web officiel : http://glassfish.java.net

PodBridge 1.2 :

Site web officiel : http://www.tritux.com

PodBridge est un middleware qui favorise une évolutivité

des systèmes, applications et données, qui permet

d'étendre, d'augmenter ou de réallouer les ressources

conformément aux contraintes et à la croissance du marché par plusieurs fonctions : Mettre

en place un écosystème composé d'applications hétérogènes, assurant la sécurité d’échange

d'informations et l’enregistrement complet d’un suivi/traçabilité des flux de données et de

gestion de processus, pour renforcer la connaissance des mouvements d'entrée/sortie.

Développer des connecteurs centralisés ou distribués permettant d'interfacer des

applications utilisant des protocoles de communication différents. En effet, un seul

connecteur suffit pour communiquer plusieurs informations.

Page 105: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Chapitre 3 : Etude conceptuelle

ISET Djerba | TriTux PAGE 104

Figure 36 - Architecture de PodBridge 1.2

Page 106: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Perspective

ISET Djerba | TriTux PAGE 105

4. Perspective

De nombreuses perspectives peuvent être envisagées comme suites à ce travail .

Par le manque de temps, on n’a pu se concentrer que sur un seul système d’information,

mais il est plus intéressant si on s’intéresse à urbaniser d’autres systèmes informatiques

géographiquement répartis et de nature de services différents. On peut même imaginer une

multitude d’applications suite à l’interaction entre les différents services qui peuvent êtres

fournis par l’office des services universitaires (hébergement, restaurants, inscription..), la

Poste (service de paiement en ligne), le site du CNS (Conseil National de la Statistique), et

encore d’autres…

Page 107: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Liste des abréviations

ISET Djerba | TriTux PAGE 106

5. Liste des abréviations

ACL............................................................................................................ Access Control List

AOS ........................................................................................ Architecture Orientée Services

API ..................................................................................Application Programming Interface

BD ................................................................................................................Base de Données

BPEL ............................................................................ Business Process Execution Language

BPEL4WS........................................ Business Process Execution Language For Web Services

BPM .......................................................................................Business Process Management

BSD ........................................................................................ Berkeley Software Distribution

CEO ..................................................................................................... Chief Executive Officer

CLI ................................................................................................... Command Line Interface

CNS .................................................................................... Conseil National de la Statistique

CUPS ..................................................................................... Common UNIX Printing System

DB .......................................................................................................................... Data Base

EJB .......................................................................................................... Enterprise JavaBean

FTP ........................................................................................................ File Transfer Protocol

GNU ................................................................................................................ Gnu’s Not Unix

GPL...................................................................................................... General Public License

GSM ............................................................................................... Global System for Mobile

HTTP ..........................................................................................HyperText Transfer Protocol

HTTPS............................................................................. HyperText Transfer Protocol Secure

IDE .............................................................................Integrated Development Environment

IIP ................................................................................................... Internet Printing Protocol

JDK ........................................................................................................Java Development Kit

LDAP .......................................................................... Lightweight Directory Access Protocol

MAC .................................................................................................. Medium Access Control

MMS ...................................................................................... Multimedia Messaging Service

MVC .................................................................................................... Model View Controller

NTIC ................................Nouvelles Technologies de l'Information et de la Communication

OASIS ....................................Organization for the Advancement of Structured Information

Page 108: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Bibliographie

ISET Djerba | TriTux PAGE 107

ORM............................................................................................. Object Relational Mapping

PHP ............................................................................................PHP Hypertext Preprocessor

POP ......................................................................................................... Post Office Protocol

POP3 ........................................................................................Post Office Protocol version 3

RMI ............................................................................................. Remote Method Invocation

RNU......................................................................................... Réseau National Universitaire

RPC..................................................................................................... Remote Procedure Call

SARL .................................................................... Société Anonyme à Responsabilité Limitée

SGBD ......................................................................Système de Gestion de Base de Données

SI .........................................................................................................Système d'Information

SMS .................................................................................................. Short Messaging Service

SMTP....................................................................................... Simple Mail Transfer Protocol

SOA ......................................................................................... Service Oriented Architecture

SOAP .......................................................................................Simple Object Access Protocol

SQL.............................................................................................. Structured Query Language

SSH.......................................................................................................................Secure SHell

SSID........................................................................................................Service Set IDentifier

SSII ....................................................... Société de Service et d’Ingénierie de l’Informatique

SVN .......................................................................................................................SubVersioN

UDDI ........................................................ Universal Description, Discovery and Integration

UML ............................................................................................ Unified Modeling Language

URI ............................................................................................. Uniform Resource Identifier

URL ............................................................................................... Uniform Resource Locator

WS ...................................................................................................................... Web Service

WSDL ............................................................................. Web Services Description Language

WS-I .........................................................................................Web Services Interoperability

XML...........................................................................................eXtensible Markup Language

XSD .................................................................................................... XML Schema Definition

XSLT ........................................................... eXtensible Stylesheet Language Transformation

YAML........................................................................................ Yaml Ain’ t Markup Language

Page 109: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Rapport PFE Urbanisation d’un SI universitaire SOA & BPM Walid KARRAY | 2009 - 2010 Bibliographie

ISET Djerba | TriTux PAGE 108

6. Bibliographie

SOA and WS-BPEL par Yuli Vasiliev et packt publishing - ISBN 13 978-1-847192-70-7

Architecture Orientée Services : Démystification – Khaled BEN DRISS

http://www.tritux.com/index.php?option=com_content&task=view&id=21

http://www.softwareagility.gr/index.php?q=node/22

http://www.developer.com/services/article.php/3609381/An-Introduction-to-BPEL.htm

http://fr.wikipedia.org/wiki/XML-RPC

http://es.wikipedia.org/wiki/WS-BPEL

http://en.wikipedia.org/wiki/Web_service

http://en.wikipedia.org/wiki/Web_Services_Description_Language

http://fr.wikipedia.org/wiki/Urbanisation_(système_d'information)

http://en.wikipedia.org/wiki/System_integration

http://fr.wikipedia.org/wiki/Soa

http://fr.wikipedia.org/wiki/SOAP

http://fr.wikipedia.org/wiki/Proc%C3%A9dure_d%27entreprise

http://fr.wikipedia.org/wiki/Middlewares

Page 110: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources
Page 111: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Urbanisation d’un système d’information universitaire

SOA & BPM

M. WALID KARRAY

RRééssuumméé :: Ce rapport s'inscrit dans la préparation du Projet de Fin d' Etudes à l’Institut Supérieur

des Etudes Technologiques - ISET Djerba - 2009/2010. Le Projet a été réalisée dans la Société

''Tritux''- Tunis et vise à urbaniser les systèmes d'information académique et la gestion des données

sous les architectures de S.O.A et du B.P.M.

La migration vers l'Architecture Orientée Services ainsi qu'avec Business Process Management

permet la réorganisation des systèmes d'information de l'entreprise et la conformité rapide et

constante avec l'environnement évolutif.

Le projet est consacré totalement aux axes de l'architecture S.O.A pour générer une

fonctionnalité d'un ensemble de fonctions de base (Services) avec des composants afin de créer un

schéma d'interactions entre ces services.

Avec S.O.A et B.P.M, des efforts considérables ont été déployés pour garantir enfin un système

évolutif de l'information basée sur des composants connectés, sécurisé, facile à maintenir et à se

conformer aux normes standards.

MMoottss ccllééss :: Urbanisation, intergiciel, AOS, BPM, Services web, BPEL, orchestration.

AAbbssttrraacctt :: The present report comes within the preparation of the Final Project Studies at the

Higher Institute of Technological Studies - I.S.E.T Djerba - 2009/2010. It was carried at Tritux

Company - Tunis and aims at urbanizing the academic information systems and data management

under S.O.A architecture and B.P.M.

The migration to Service Oriented Architecture altogether with Business Process Management

helps reorganize the information systems of the company and enable for quick and constant

conformity with the changing environment.

The project makes total use of S.O.A paradigms to generate functionality into a set of basic

functions, called Services with definite components to finally create pattern of interactions between

those services. Within S.O.A and B.P.M, considerable attempts have been made to finally guarantee a

scalable Information System based on connected components, secure, easy to maintain and conform

to standards norms.

KKeeyywwoorrddss :: Urbanization, middleware, SOA, BPM, Web services, BPEL, orchestration.

Page 112: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

DOCUMENTATION TECHNIQUE

Fichiers de configuration

Codes sources

Captures d’écran

Intitulé du rapport PFE :

Urbanisation d’un Système d’information universitaire SOA & BPM (AU. 2009/2010)

Effectué à : Tritux Réaliser par : Walid Karray

Page 113: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources
Page 114: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Table des matières TABLE DES MATIERES....................................................................................................................................................... 2

1. FICHIERS DE CONFIGURATION.................................................................................................................. 3

1.1. ETC/HOSTS (RESOLUTION D'ADRESSE) ................................................................................................................. 4

1.2. ETC/POSTFIX/MAIN.CF (CONFIGURATION DE POSTFIX - SMTP SERVER)............................................................... 5

1.3. ETC/APACHE2/APACHE2.CONF (CONFIGURATION D’APACHE) ............................................................................. 6

1.4. ETC/PHP5/APACHE2/PHP.INI (CONFIGURATION DE PHP) .................................................................................. 8

2. CODES SOURCES ........................................................................................................................................ 12

2.1. SCRIPTS SQL ................................................................................................................................................... 13

2.1.1. Création (create.sql) ............................................................................................................................. 13

2.1.2. Insertion (insert.sql) .............................................................................................................................. 15

2.2. CODES SOURCES DES CONNECTEURS PODBRIDGE 1.2........................................................................................ 16

2.2.1. Classe du connecteur : APACLManager ............................................................................................ 16

2.2.2. Classe du connecteur : BDetu.............................................................................................................. 18

2.2.3. Classe du connecteur : pbFTPAccountConnector ............................................................................ 24

2.2.4. Classe du connecteur : pbIPPServiceConnector ............................................................................... 34

2.2.5. Classe du connecteur : pbMailA ccountConnector........................................................................... 37

2.2.6. Classe du connecteur : pbSMSServiceConnector ............................................................................. 49

2.2.7. Classe du connecteur : pbwwwsubscrConnector............................................................................. 50

2.3. FICHIERS WSDL .............................................................................................................................................. 53

2.3.1. WSDL exposé par PodBridge1.2 sur « podbridge.intranet.demo » .............................................. 53

2.3.2. WSDL exposé par PodBridge1.2 sur « ws.rnu.edu.demo » ............................................................ 74

2.3.3. WSDL du service « ProcessRUById » .................................................................................................. 85

2.3.4. WSDL du service « BatchProcessRU » ............................................................................................... 86

2.4. FICHIER XSD (DEFINITION DES PARAMETRES D’E/S DU PROCESSUS BATCHPROCESSRU).................................... 87

2.5. FICHIERS BPEL ................................................................................................................................................ 88

2.5.1. Fichier source : ProcessRUById.bpel .................................................................................................. 88

2.5.2. Fichier Source : BatchProcessRU.bpel .............................................................................................. 110

2.6. CODE SOURCE DE L’APPLICATION PHP (FORMULAIRE INFO ETUDIANT) ............................................................. 116

3. CAPTURES D’ECRAN ................................................................................................................................ 119

3.1. SQUIRRELMAIL (HTTP://WEBMAIL.RNU.EDU.DEMO) ...................................................................................... 120

3.2. CUPS WEB ADMINISTRATION (HTTP://CUPS.INTRANET.DEMO:631) .............................................................. 120

3.3. SITE WEB D’INSCRIPTION UNIV. EN LIGNE - (HTTP://INSCRIPTION.EDU.DEMO) .................................................. 121

3.4. SOAPUI 3.0.1............................................................................................................................................... 121

3.5. PODBRIDGE 1.2 (INTERFACES D’ADMINISTRATION)......................................................................................... 122

3.6. PROJET PROCESSRUBYID (QUELQUES CAPTURES D’ECRANS)........................................................................... 128

3.7. PROJET BATCHPROCESSRU (QUELQUES CAPTURES D’ECRANS) ........................................................................ 132

3.8. APPLICATION WEB PHP (FORMULAIRE INFO ETUDIANT) .................................................................................. 133

Page 115: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 3

1. FICHIERS DE

CONFIGURATION

Page 116: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 4

1.1. /etc/hosts (résolution d'adresse)

#Par défaut

127.0.0.1 localhost.localdomain localhost

# ~~~~~~~ LAN de l'établissement

#Serveur FTP

127.0.0.1 etu-ftp.intranet.demo

#Serveur PostgreSQL

127.0.0.1 postgres-83.intranet.demo

#Point d'accès sans fil

127.0.0.1 ap21.intranet.demo

#Middleware SOA : PodBridge

127.0.0.1 podbridge.intranet.demo

#Glassfish ESB 2.1 Server

127.0.0.1 sun-bpel-engine.intranet.demo

#Serveur Cups

127.0.0.1 cups.intranet.demo

#SMS

127.0.0.1 sms.intranet.demo

#Formulaire (App PHP)

formulaire.intranet.demo

# ~~~~~~~ WAN - RNU (Réseau National Universitaire)

#Site web d'inscription en ligne

127.0.0.1 inscription.edu.demo

#SMTP & POP3

127.0.0.1 rnu.edu.demo

#Webmail (client mail)

127.0.0.1 webmail.rnu.edu.demo

Page 117: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 5

#Middleware SOA : PodBridge

127.0.0.1 ws.rnu.edu.demo

1.2. /etc/postfix/main.cf (Configuration de Postfix - SMTP Server)

myhostname = rnu.edu.demo

mydomain = rnu.edu.demo

mydestination = $mydomain $myhostname localhost.$mydomain

masquerade_domains = $mydomain

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific: Specifying a file name will cause the first

# line of that file to be used as the name. The Debian default

# is /etc/mailname.

myorigin = rnu.edu.demo

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)

biff = no

# appending .domain is the MUA's job.

# Uncomment the next line to generate "delayed mail" warnings

#delay_warning_time = 4h

readme_directory = no

# TLS parameters

smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem

smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

smtpd_use_tls = yes

smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for

# information on enabling SSL in the smtp client.

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

mailbox_size_limit = 0

Page 118: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 6

recipient_delimiter = +

default_transport = error

relay_transport = error

home_mailbox = Maildir/

smtpd_sasl_auth_enable = yes

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/dovecot-auth

smtpd_sasl_authenticated_header = yes

smtpd_sasl_local_domain = $myhostname

broken_sasl_auth_clients = yes

smtpd_recipient_restrictions = reject_unknown_sender_domain reject_unknown_recipient_domain reject_unauth_pipelining permit_mynetworks permit_sasl_authenticated reject_unauth_destination

smtpd_sender_restrictions = reject_unknown_sender_domain

mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot-postfix.conf -n -m "${EXTENSION}"

smtp_use_tls = yes

smtpd_tls_received_header = yes

smtpd_tls_mandatory_protocols = SSLv3, TLSv1

smtpd_tls_mandatory_ciphers = medium, high

smtpd_tls_auth_only = yes

tls_random_source = dev:/dev/urandom

1.3. /etc/apache2/apache2.conf (Configuration d’Apache)

ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

<IfModule mpm_prefork_module>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

Page 119: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 7

</IfModule>

<IfModule mpm_worker_module>

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>

User ${APACHE_RUN_USER}

Group ${APACHE_RUN_GROUP}

AccessFileName .htaccess

<Files ~ "^\.ht">

Order allow,deny

Deny from all

</Files>

DefaultType text/plain

HostnameLookups Off

ErrorLog /var/log/apache2/error.log

LogLevel warn

Include /etc/apache2/mods-enabled/*.load

Include /etc/apache2/mods-enabled/*.conf

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

Page 120: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 8

Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

1.4. /etc/php5/apache2/php.ini (Configuration de PHP)

engine = On

zend.ze1_compatibility_mode = Off

short_open_tag = On

asp_tags = Off

precision = 12

y2k_compliance = On

output_buffering = Off

zlib.output_compression = Off

implicit_flush = Off

unserialize_callback_func=

serialize_precision = 100

allow_call_time_pass_reference = On

safe_mode = Off

safe_mode_gid = Off

safe_mode_include_dir =

safe_mode_exec_dir =

safe_mode_allowed_env_vars = PHP_

safe_mode_protected_env_vars = LD_LIBRARY_PATH

disable_functions =

disable_classes =

expose_php = On

max_execution_time = 30 ; Maximum execution time of each script, in seconds

max_input_time = 60 ; Maximum amount of time each script may spend parsing request data

memory_limit = 128M

error_reporting = E_ALL & ~E_NOTICE

display_errors = On

display_startup_errors = Off

log_errors = Off

log_errors_max_len = 1024

ignore_repeated_errors = Off

ignore_repeated_source = Off

report_memleaks = On

track_errors = Off

variables_order = "EGPCS"

register_globals = Off

Page 121: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 9

register_long_arrays = On

register_argc_argv = On

auto_globals_jit = On

post_max_size = 8M

magic_quotes_gpc = Off

magic_quotes_runtime = Off

magic_quotes_sybase = Off

auto_prepend_file =

auto_append_file =

default_mimetype = "text/html"

doc_root =

user_dir =

enable_dl = Off

file_uploads = On

upload_max_filesize = 2M

allow_url_fopen = On

allow_url_include = Off

default_socket_timeout = 60

define_syslog_variables = Off

SMTP = localhost

smtp_port = 25

sql.safe_mode = Off

odbc.allow_persistent = On

odbc.check_persistent = On

odbc.max_persistent = -1

odbc.max_links = -1

odbc.defaultlrl = 4096

odbc.defaultbinmode = 1

mysql.allow_persistent = On

mysql.max_persistent = -1

mysql.max_links = -1

mysql.default_port =

mysql.default_socket =

mysql.default_host =

mysql.default_user =

mysql.default_password =

mysql.connect_timeout = 60

mysql.trace_mode = Off

mysqli.max_links = -1

mysqli.default_port = 3306

mysqli.default_socket =

mysqli.default_host =

mysqli.default_user =

mysqli.default_pw =

Page 122: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 10

mysqli.reconnect = Off

msql.allow_persistent = On

msql.max_persistent = -1

msql.max_links = -1

pgsql.allow_persistent = On

pgsql.auto_reset_persistent = Off

pgsql.max_persistent = -1

pgsql.max_links = -1

pgsql.ignore_notice = 0

pgsql.log_notice = 0

sybase.allow_persistent = On

sybase.max_persistent = -1

sybase.max_links = -1

sybase.min_error_severity = 10

sybase.min_message_severity = 10

sybase.compatability_mode = Off

sybct.allow_persistent = On

sybct.max_persistent = -1

sybct.max_links = -1

sybct.min_server_severity = 10

sybct.min_client_severity = 10

bcmath.scale = 0

ifx.default_host =

ifx.default_user =

ifx.default_password =

ifx.allow_persistent = On

ifx.max_persistent = -1

ifx.max_links = -1

ifx.textasvarchar = 0

ifx.byteasvarchar = 0

ifx.charasvarchar = 0

ifx.blobinfile = 0

ifx.nullformat = 0

session.save_handler = files

session.use_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.cookie_httponly =

session.serialize_handler = php

session.gc_divisor = 100

session.gc_maxlifetime = 1440

Page 123: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 11

session.bug_compat_42 = 1

session.bug_compat_warn = 1

session.referer_check =

session.entropy_length = 0

session.entropy_file =

session.cache_limiter = nocache

session.cache_expire = 180

session.use_trans_sid = 0

session.hash_function = 0

session.hash_bits_per_character = 4

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

mssql.allow_persistent = On

mssql.max_persistent = -1

mssql.max_links = -1

mssql.min_error_severity = 10

mssql.min_message_severity = 10

mssql.compatability_mode = Off

mssql.secure_connection = Off

tidy.clean_output = Off

soap.wsdl_cache_enabled=1

soap.wsdl_cache_dir="/tmp"

soap.wsdl_cache_ttl=86400

Page 124: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 12

2. CODES SOURCES

Page 125: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 13

2.1. Scripts SQL

2.1.1. Création (create.sql)

--

-- PostgreSQL database dump

--

SET client_encoding = 'UTF8';

SET standard_conforming_strings = off;

SET check_function_bodies = false;

SET client_min_messages = warning;

SET escape_string_warning = off;

SET search_path = public, pg_catalog;

ALTER TABLE ONLY public.etudiant DROP CONSTRAINT tel_uniq;

ALTER TABLE ONLY public.etudiant DROP CONSTRAINT refrecu_uniq;

ALTER TABLE ONLY public.etudiant DROP CONSTRAINT loginftp_uniq;

ALTER TABLE ONLY public.etudiant DROP CONSTRAINT id_primary;

ALTER TABLE ONLY public.etudiant DROP CONSTRAINT email_uniq;

ALTER TABLE ONLY public.etudiant DROP CONSTRAINT adrmac_uniq;

DROP TABLE public.etudiant;

SET search_path = public, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

--

-- Name: etudiant; Type: TABLE; Schema: public; Owner: bdetuadmin; Tablespace:

--

CREATE TABLE etudiant (

id character varying(8) NOT NULL,

nom character varying(25) NOT NULL,

prenom character varying(25) NOT NULL,

dep character varying(5) NOT NULL,

spec character varying(5) NOT NULL,

niveau integer NOT NULL,

tel character varying(8) DEFAULT NULL::character varying,

email character varying(255) DEFAULT NULL::character varying,

Page 126: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 14

loginftp character varying(255) DEFAULT NULL::character varying,

adrmac character(17) DEFAULT NULL::bpchar,

refrecu character varying(16) DEFAULT NULL::character varying,

process character varying(3) NOT NULL

);

ALTER TABLE public.etudiant OWNER TO bdetuadmin;

--

-- Name: adrmac_uniq; Type: CONSTRAINT; Schema: public; Owner: bdetuadmin; Tablespace:

--

ALTER TABLE ONLY etudiant

ADD CONSTRAINT adrmac_uniq UNIQUE (adrmac);

--

-- Name: email_uniq; Type: CONSTRAINT; Schema: public; Owner: bdetuadmin; Tablespace:

--

ALTER TABLE ONLY etudiant

ADD CONSTRAINT email_uniq UNIQUE (email);

--

-- Name: id_primary; Type: CONSTRAINT; Schema: public; Owner: bdetuadmin; Tablespace:

--

ALTER TABLE ONLY etudiant

ADD CONSTRAINT id_primary PRIMARY KEY (id);

--

-- Name: loginftp_uniq; Type: CONSTRAINT; Schema: public; Owner: bdetuadmin; Tablespace:

--

ALTER TABLE ONLY etudiant

ADD CONSTRAINT loginftp_uniq UNIQUE (loginftp);

Page 127: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 15

--

-- Name: refrecu_uniq; Type: CONSTRAINT; Schema: public; Owner: bdetuadmin; Tablespace:

--

ALTER TABLE ONLY etudiant

ADD CONSTRAINT refrecu_uniq UNIQUE (refrecu);

--

-- Name: tel_uniq; Type: CONSTRAINT; Schema: public; Owner: bdetuadmin; Tablespace:

--

ALTER TABLE ONLY etudiant

ADD CONSTRAINT tel_uniq UNIQUE (tel);

--

-- PostgreSQL database dump complete

--

2.1.2. Insertion (insert.sql)

--

-- PostgreSQL database dump

--

SET client_encoding = 'UTF8';

SET standard_conforming_strings = off;

SET check_function_bodies = false;

SET client_min_messages = warning;

SET escape_string_warning = off;

SET search_path = public, pg_catalog;

--

-- Data for Name: etudiant; Type: TABLE DATA; Schema: public; Owner: bdetuadmin

--

delete from etudiant ;

Page 128: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 16

insert into etudiant values ('12345678','Ben Salah','Mohamed','TI','IR',3,'99999999',NULL::character varying,NULL::character varying,'00:16:44:a0:f9:50',NULL::character varying,'ATT');

insert into etudiant values ('11111111','Ayari','Imed', 'TI','TI',1,NULL,NULL::character varying,NULL::character varying,'b9:aa:28:20:00:f7',NULL::character varying,'ATT');

insert into etudiant values ('22222222','El mehdi','Youssef','TI','IR',2,NULL,NULL::character varying,NULL::character varying,NULL::character varying,NULL::character varying,'ATT');

insert into etudiant values ('33333333','Tounsi','Eya', 'TI','IG',3,NULL,'[email protected]',NULL::character varying, NULL::character varying,NULL::character varying,'ATT');

insert into etudiant values ('44444444','Mhamdi','Nozha','GM','GM',1,NULL,NULL::character varying,NULL::character varying,'12:11:5a:3e:88:72', NULL::character varying,'ATT');

insert into etudiant values ('55555555','Ben Abdallah','Sonda','GE','GE',1,NULL,NULL::character varying,NULL::character varying,NULL::character varying,NULL::character varying,'ATT');

insert into etudiant values ('66666666','Ben Yahia','Sami','TI','II',2,NULL,NULL::character varying,NULL::character varying,'a4:f5:c0:81:23:e1',NULL::character varying,'ATT');

2.2. Codes sources des connecteurs PodBridge 1.2

2.2.1. Classe du connecteur : APACLManager

Code source : APACLManager.connector.php

1 <?php

2 class APACLManager extends PodBridgeConnector implements PodBridgeConnectorInterface {

3

4 private $regexValidator = array (

5 'macaddr'=>'/^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$/');

6

7 /**

8 * Add adress to MAC filter (forwording) // Method not yet implemented

9 *

10 * @service

11 * @cacheable false

12 *

13 * @param string macaddr address

Page 129: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 17

14 *

15 * @type (ssid:string,auth_key:string) doForwardMACaddrOut

16 * @return doForwardMACaddrOut information about the Wireless AP

17 */

18 public function doForwardMACaddr($macaddr) {

19

20 if ( ! preg_match($this->regexValidator['macaddr'],$macaddr))

21 Throw new Exception('Wrong Mac address format !', 805);

22

23

24 // Method not yet implemented

25

26 $doForwardMACaddrOut = array();

27 $doForwardMACaddrOut['ssid']=$this->params['ssid'];

28 $doForwardMACaddrOut['auth_key']=$this->params['auth_key'];

29 return $doForwardMACaddrOut;

30 }

31

32 /**

33 * Remove adress from MAC filter // Method not yet implemented

34 *

35 * @service

36 * @cacheable false

37 *

38 * @param string macaddr address

39 *

40 * @return boolean true if MAC address was removed from ACL

41 */

42 public function doRomoveForwordedMACaddr($macaddr) {

43

44 if ( ! preg_match($this->regexValidator['macaddr'],$macaddr))

45 Throw new Exception('Wrong Mac address format !', 805);

46

47 // Method not yet implemented

48

49 return true;

50 }

51

52 /*

53 * Make connection to the Server and authenticate

54 *

55 * @return bool true on connection success, false if not

56 */

57 public function connect() {

Page 130: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 18

58 return true;

59 }

60

61 /*

62 * Disconnect from the server by executing a logout command

63 *

64 * @return bool true (allways)

65 */

66 public function disconnect() {

67 return true;

68 }

69

70 }

71

2.2.2. Classe du connecteur : BDetu

Code source : BDetu.connector.php

1 <?php

2 class BDetu extends PodBridgeConnector implements PodBridgeConnectorInterface {

3

4 private $conn=null;

5

6 /**

7 * Returns all information about a student by his id

8 *

9 * @service

10 * @cacheable false

11 *

12 * @param string id student identifier

13 *

14 * @type (id:string,nom:string,prenom:string,dep:string,spec:string,niveau:integer,tel:string,email:string,loginftp:string,adrmac:string,refrecu:string,process:string) getStudentByIdOut

15 * @return getStudentByIdOut information a student

16 */

17 public function getStudentById($id) {

18

19 if (! preg_match("/^[0-9]{8}$/", $id) )

20 throw new Exception ("Student id should be 8 digit number", 800

);

Page 131: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 19

21

22 $res = $this->executeSQL("select * from etudiant where id='".$id."' limit 1",$numrows);

23

24 if (! $numrows)

25 throw new Exception ("This identifier (".$id.") seems inexistant in database !", 820 );

26

27 $getStudentByIdOut['id']=$res['id'];

28 $getStudentByIdOut['nom']=$res['nom'];

29 $getStudentByIdOut['prenom']=$res['prenom'];

30 $getStudentByIdOut['dep']=$res['dep'];

31 $getStudentByIdOut['spec']=$res['spec'];

32 $getStudentByIdOut['niveau']=$res['niveau'];

33 $getStudentByIdOut['tel']=$res['tel'];

34 $getStudentByIdOut['email']=$res['email'];

35 $getStudentByIdOut['loginftp']=$res['loginftp'];

36 $getStudentByIdOut['adrmac']=$res['adrmac'];

37 $getStudentByIdOut['refrecu']=$res['refrecu'];

38 $getStudentByIdOut['process']=$res['process'];

39

40 return $getStudentByIdOut;

41 }

42

43

44 /**

45 * Update information about a Student in the database

46 *

47 * @service

48 * @cacheable false

49 *

50 * @param string id student identifier

51 * @param string* tel personal phone number

52 * @param string* email email address

53 * @param string* loginftp ftp login (user name)

54 * @param string* adrmac mac address

55 * @param string* refrecu receipt identifier

56 * @param string* process process execution out state

57 *

58 * @return boolean true always

59 */

60 public function updateStudentById($id,$tel,$email,$loginftp,$adrmac,$refrecu,$process) {

61

62 //Validate phone number

Page 132: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 20

63 if ($tel!=null) {

64 if (! preg_match("/^[0-9]{8}$/", $tel) )

65 throw new Exception ("Wrong phone number - should be 8 char length", 821 );

66

67 $rows['tel']=$tel;

68 }

69

70 //Validate identifier

71 if (! preg_match("/^[0-9]{8}$/", $id) )

72 throw new Exception ("Student id should be 8 digit number", 822 );

73

74 //Validate Mac address

75 if ($email!=null) {

76 if (! preg_match("/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/", $email) )

77 throw new Exception ("Wrong email address !", 823 );

78

79 $rows['email']=$email;

80 }

81

82 //Validate ftp login

83 if ($loginftp!=null) {

84 if (! preg_match("/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*$/", $loginftp) )

85 throw new Exception ("Wrong ftp login !", 824 );

86

87 $rows['loginftp']=$loginftp;

88 }

89

90 //Validate mac address

91 if ($adrmac!=null) {

92 if (! preg_match("/^[0-9a-fA-F]{2}[:-][0-9a-fA-F]{2}[:-][0-9a-fA-F]{2}[:-][0-9a-fA-F]{2}[:-][0-9a-fA-F]{2}[:-][0-9a-fA-F]{2}$/", $adrmac) )

93 throw new Exception ("Wrong mac address !", 825 );

94

95 $rows['adrmac']=$adrmac;

96 }

97

98 //Validate receipt identifier

99 if ($refrecu!=null) {

100 if (! preg_match("/^[0-9]{16}$/", $refrecu) )

101 throw new Exception ("Receipt identifier should be a 16 digit number", 826 );

102

Page 133: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 21

103 $rows['refrecu']=$refrecu;

104 }

105

106 //Validate process state code

107 if ($process!=null) {

108 if (! preg_match("/^[A-Z]{2,3}$/", $process) )

109 throw new Exception ("Process state value should be composed from 2 to 3 capital letters", 827 );

110

111 $rows['process']=$process;

112 }

113

114

115 $cols_to_update=null;

116 foreach ($rows as $rowname=>$value) {

117 if ($cols_to_update!='') $cols_to_update.=',';

118 $cols_to_update.=$rowname."='".$value."'";

119 }

120

121 if (!$cols_to_update)

122 throw new Exception ("Null value not permitted !", 828 );

123

124 //Check if the id exists

125 $this->executeSQL("select id from etudiant where id ='".$id."'",$numrows);

126 if (! $numrows)

127 throw new Exception ("This identifier (".$id.") seems inexistant in database !", 820 );

128

129 //Execute update statement

130 if ($this->executeSQL("UPDATE etudiant SET ".$cols_to_update." WHERE id='".$id."'"))

131 return true;

132 }

133

134

135

136

137

138 /**

139 * Returns the next identifier of the given one (if exists)

140 * If $id param is set to null this method will return the first identifier

141 *

142 * @service

Page 134: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 22

143 * @cacheable false

144 *

145 * @param string* id identifier

146 * @param string filter filter

147 *

148 * @type (nextid:string,last:boolean) retArray

149 * @return retArray blabla

150 */

151 public function getNextId($id,$filter) {

152

153 if ( !preg_match("/^(ATT|PAI|\*)$/", $filter) )

154 throw new Exception ("Filter value should be ATT or PAI (*)", 851 );

155

156 if ( !preg_match("/^[0-9]{8}$/", $id) && $id!=null )

157 throw new Exception ("id should be either an 8 digit number OR EMPTY (no value)", 852 );

158

159 if ($filter!='*')

160 $filter_sql="and process in ('".$filter."') ";

161

162 $res = $this->executeSQL("select id from etudiant where id > '".$id."' ".$filter_sql." order by id asc limit 2",$numrows);

163 if (!$numrows)

164 throw new Exception ("No result" , 853 );

165

166 $retArray = array();

167 $retArray['nextid']=$res['id'];

168 //$numrows can be 1 or 2

169 $retArray['last']=($numrows==1);

170

171 return $retArray;

172

173 }

174

175

176

177

178

179 /*

180 * Executes an sql statement in pgsql server

181 * and returns results as array

182 *

183 * @param string sql sql query

184 *

Page 135: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 23

185 * @return Array

186 */

187 private function executeSQL($sql,&$numrows) {

188

189 $result = pg_query($this->conn, $sql);

190 if (!$result)

191 throw new Exception ("Error in SQL query: " . pg_last_error(), 870 );

192 $numrows = pg_numrows($result);

193

194 $resultArray = pg_fetch_array($result);

195 pg_free_result($result);

196 return $resultArray;

197

198 }

199

200

201

202

203 /*

204 * Make connection to the Server and authenticate

205 *

206 * @return boolean true on connection success, false if not

207 */

208 public function connect() {

209 try {

210 $connect="host=".$this->params['host']." port=".$this->params['port']." dbname=".$this->params['dbname']." user=".$this->params['username'];

211

212 if (!empty($this->params['password']))

213 $connect.=" password=".$this->params['password'];

214

215 $this->conn=pg_connect ($connect);

216

217 if (!$this->conn)

218 throw new Exception ( "Cannot connect to database: " . $this->params ['dbname'], 201 );

219

220 return true;

221 } catch ( Exception $e ) {

222 $this->setLastError ( $e->getCode (), $e->getMessage() );

223 return false;

224 }

225 }

Page 136: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 24

226

227 /*

228 * Disconnect from the server by executing a logout command

229 *

230 * @return boolean true (allways)

231 */

232 public function disconnect() {

233 pg_close($this->conn);

234 $this->conn=null;

235 return true;

236 }

237

238

239 }

240

2.2.3. Classe du connecteur : pbFTPAccountConnector

Code source : FTPAccount.connector.php

1 <?php

2

3 class FTPAccount extends PodBridgeConnector implements PodBridgeConnectorInterface {

4

5

6 private $sshCon = null;

7 private $authenticated = false;

8 private $regexValidator = array (

9 'username'=>'/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*$/');

10

11 /*

12 * Generate random password from a set of chars ($pool)

13 *

14 * @param integer $len Password length

15 * @return string Rand password

16 */

17 private function generateRandomPasswd ( $len = 10 ) {

18 $string = '';

19 $pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

20 for($i = 1; $i <= $len; $i ++) {

21 $string .= substr ( $pool, rand ( 0, 61 ), 1 );

Page 137: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 25

22 }

23

24 return $string;

25 }

26

27 /*

28 * Check if the user exists in host

29 *

30 * @param string user User name

31 * @return boolean True if user exist

32 */

33 private function ifUserExists($user) {

34 $this->ssh2Exec ( 'grep "^'.$user.':" /etc/passwd',true,true,$response);

35 if ($response==null)

36 return false;

37 return true;

38 }

39

40

41 /*

42 * Convert dd/mm/yyyy format dates to unix date format

43 *

44 * @param string date

45 *

46 * @throws Exception 770 Date error

47 *

48 * @return string Unix date

49 */

50 private function getUnixDate($date) {

51

52 $datearray=explode('/',$date);

53 $dd=$datearray[0];

54 $mm=$datearray[1];

55 $yyyy=$datearray[2];

56

57 if ( ! checkdate($mm, $dd, $yyyy) )

58 Throw new Exception('Date error ('.$date.')', 770);

59

60 //Convert to unix date format mm/dd/yyyy

61 $unixdate=$mm.'/'.$dd.'/'.$yyyy;

62 return $unixdate;

63 }

64

65 /**

Page 138: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 26

66 * Create a new FTP account

67 *

68 * @service

69 * @cacheable false

70 *

71 * @param string user The FTP user login

72 * @param string expiry_date Expiry date

73 * @param boolean use_welcome If use welcome message when user connect

74 *

75 * @throws Exception 803 Pattern matching error in user name

76 * @throws Exception 804 User already exists

77 *

78 * @type (UserLogin:string,Password:string,ServerDomain:string,FTPPort:integer) doCreateFTPUserAccountOut

79 * @return doCreateFTPUserAccountOut information about the created ftp account

80 */

81 public function doCreateFTPUserAccount($user,$expiry_date,$use_welcome=true) {

82

83 if ( ! preg_match($this->regexValidator['username'],$user))

84 Throw new Exception('Pattern matching error in user name', 803);

85

86 if ( $this->ifUserExists($user) )

87 Throw new Exception('User ('.$user.') already exists', 804);

88

89 //Convert dd/mm/yyyy expiry date to unix date

90 if ( $expiry_date != 0 )

91 $unix_expdate = $this->getUnixDate($expiry_date);

92

93 $userhome = $this->params ['ftp_users_path'].'/'.$user;

94 // Generate a random password

95 $password = $this->generateRandomPasswd ( $this->params ['autogen_pswd_length'] );

96

97 $cryptedPassword = crypt ( strip_tags ( $password ) );

98

99 // Create the user

100 $this->ssh2Exec ( 'useradd -d '.$userhome.' -m -g '.$this->params ['ftp_group_name'].' -e '.$unix_expdate.' -s /bin/false -p \''.$cryptedPassword.'\' '.$user);

101

102 if ($use_welcome) {

103 //Set default welcome message

Page 139: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 27

104 $this->setFTPUserWelcomeMsg($user,$this->params ['welcome_message']);

105 }

106

107 $doCreateFTPUserAccountOut = array ();

108 $doCreateFTPUserAccountOut ['UserLogin'] = $user;

109 $doCreateFTPUserAccountOut ['Password'] = $password;

110 $doCreateFTPUserAccountOut ['ServerDomain'] = $this->params ['domain'];

111 $doCreateFTPUserAccountOut ['FTPPort'] = $this->params ['ftp_port'];

112 return $doCreateFTPUserAccountOut;

113 }

114

115 /**

116 * Set Ftp account expiry date

117 *

118 * @service

119 * @cacheable false

120 *

121 * @param string user The FTP user login

122 * @param string expiry_date Expiry date

123 *

124 * @throws Exception 850 User seems inexistant

125 *

126 * @return boolean True when the expiry dates is updated

127 */

128 public function setFTPUserAccountExpiryDate($user,$expiry_date) {

129

130 if ( ! $this->ifUserExists($user) )

131 Throw new Exception('User ('.$user.') seems inexistant', 850);

132 //Convert dd/mm/yyyy expiry date to unix date

133 if ( $expiry_date != 0 )

134 $unix_expdate = $this->getUnixDate($expiry_date);

135

136 $this->ssh2Exec ( 'usermod -e '.$unix_expdate.' '. $user );

137 return true;

138

139 }

140

141

142

143 /**

144 * Set or Update user login welcome message

145 *

Page 140: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 28

146 * @service

147 * @cacheable false

148 *

149 * @param string user user name

150 * @param string message message to display

151 *

152 * @throws Exception 850 User seems inexistant

153 * @throws Exception 849 Cannot set empty message

154 *

155 * @return boolean True when the message is set

156 */

157 public function setFTPUserWelcomeMsg($user,$message) {

158

159 if ( ! $this->ifUserExists($user) )

160 Throw new Exception('User ('.$user.') seems inexistant', 850);

161

162 if ($message==null)

163 Throw new Exception('Cannot set an empty message !', 849);

164

165 $userhome = $this->params ['ftp_users_path'].'/'.$user;

166 $this->ssh2Exec ( 'echo -e "'.$message.'">' . $userhome . '/welcome.msg');

167

168

169 return true;

170

171 }

172

173

174 /**

175 * Disable user welcome message while ftp connection

176 *

177 * @service

178 * @cacheable false

179 *

180 * @param string user user name

181 *

182 * @throws Exception 850 User seems inexistant

183 *

184 * @return boolean True when the message is set

185 */

186 public function doDisableFTPUserWelcomeMsg($user) {

187

188 if ( ! $this->ifUserExists($user) )

189 Throw new Exception('User ('.$user.') seems inexistant', 850);

Page 141: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 29

190

191 $userhome = $this->params ['ftp_users_path'].'/'.$user;

192 $this->ssh2Exec ( 'rm -f ' . $userhome . '/welcome.msg');

193

194 return true;

195 }

196

197

198 /**

199 * Change an FTP User account password

200 *

201 * @service

202 * @cacheable false

203 * @param string user User name

204 * @param string oldpassword The old user password

205 * @param string newpassword The new user password

206 *

207 * @throws Exception 840 Password verification failed

208 * @throws Exception 841 Your password must be between {RANGE} characters in length

209 * @throws Exception 842 Password should be different from the old one

210 *

211 * @return boolean True when password changed

212 */

213 public function doChangeFTPUserPassword($user,$password,$new_password) {

214

215 if ( ! $this->doCheckPassword($user,$password) )

216 Throw new Exception("Password verification failed", 840);

217

218 if ( strlen($new_password) < $this->params ['minimum_pswd_length'] || strlen($new_password) > $this->params ['maximum_pswd_length'])

219 Throw new Exception("Your password must be between ".$this->params ['minimum_pswd_length']."-".$this->params ['maximum_pswd_length']." characters in length", 841);

220

221 if ($password == $new_password)

222 Throw new Exception("New password should be different from the old one", 842);

223

224 $cryptedNewPassword = crypt ( strip_tags ( $new_password ) );

225 //Change the user password

226 $this->ssh2Exec ( 'usermod -p \''.$cryptedNewPassword.'\' '.$user);

227

228 return true;

Page 142: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 30

229 }

230

231

232 /*

233 * Check if the user password is correct

234 *

235 * @param string user User name

236 * @param string password User password

237 *

238 * @throws Exception 850 Entered user name seems inexistant

239 * @throws Exception 851 Unexpected error while checking password

240 *

241 * @return boolean True If password check success and False otherwise

242 */

243 private function doCheckPassword($user,$password) {

244

245 //Check if the user exist

246 if ( ! $this->ifUserExists($user) )

247 Throw new Exception('User ('.$user.') seems inexistant', 850);

248

249 //Retrieve crypted user password from /etc/shadow

250 $this->ssh2Exec ( 'grep ^'.$user.': /etc/shadow | cut -d":" -f2',true,true,$refpswd);

251 if ($refpswd==null)

252 Throw new Exception("Unexpected error while checking password", 851);

253

254 $cryptedReferencePassword = trim($refpswd);

255 //Comparing passwords

256 if ( crypt( strip_tags ( $password ),$cryptedReferencePassword ) != $cryptedReferencePassword )

257 return false;

258

259 return true;

260 }

261

262

263 /**

264 * Delete FTP user account

265 *

266 * @service

267 * @cacheable false

268 * @param string user FTP user name

269 * @throws Exception 850 Entered user name seems inexistant

Page 143: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 31

270 * @throws Exception 860 Cannot do such operation on a non ftp user

271 * @return boolean True When user is deleted

272 */

273 public function doDeleteFTPUserAccount($user) {

274

275 //Check if the user exist

276 if ( ! $this->ifUserExists($user) )

277 Throw new Exception('User ('.$user.') seems inexistant', 850);

278

279 //Verify if FTP user

280 $this->ssh2Exec ( 'groups '.$user,true,true,$groupname);

281 if (trim($groupname)!=$this->params ['ftp_group_name'])

282 Throw new Exception("Cannot do such operation on a non FTP user", 860);

283

284 // Delete the user

285 $this->ssh2Exec ( 'userdel -r '.$user);

286 return true;

287 }

288

289

290

291 /**

292 * Transfer files/directories to an FTP account root directory

293 *

294 * @service

295 * @cacheable false

296 *

297 * @param string file Source file or directory inside {files_source_root}

298 * @param string user FTP user name

299 *

300 * @return boolean True copy complete

301 */

302 public function doFTPsendFile($file,$user) {

303

304 $recursive=null;

305 $dest=$this->params ['ftp_users_path'].'/'.$user.'/'.$file;

306

307 $srcfile = $this->params ['files_source_root'].'/'.$file;

308

309 if ( ! is_file($srcfile) ) {

310 if (! is_dir($srcfile) ) {

311 Throw new Exception("File not found !", 860);

Page 144: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 32

312 } else {

313 $recursive='-R';

314 }

315 }

316

317 $this->ssh2Exec ( 'cp '.$recursive.' '.$srcfile.' '.$dest);

318 $this->ssh2Exec ( 'chown '.$recursive.' '.$user.':'.$this->params ['ftp_group_name'].' '.$dest);

319

320 return true;

321 }

322

323

324 /*

325 * Executes a $cmd on the SSH connection and return $readable response on-demand

326 *

327 * @param string $cmd Command to execute

328 * @param bool $exception Whether to throw exception on error or return false

329 * @param bool $readResponse Whether to return a readable response or not

330 * @param pointer $response The readable response if requested will be here

331 * @throws Exception 200 If ($exception) AND we got an error while executing the command

332 * @return ressource The ssh2_exec return

333 */

334 private function ssh2Exec($cmd, $exception = true, $readResponse = false, &$response = null) {

335 $this->setSessionLog ( 'sent', $cmd );

336 $stream = ssh2_exec ( $this->sshCon, $cmd );

337

338 //get the content of ssh2 stderr

339 $stderr = ssh2_fetch_stream ( $stream, SSH2_STREAM_STDERR );

340 stream_set_blocking ( $stderr, true );

341 $response_stderr = stream_get_contents ( $stderr );

342 fclose ( $stderr );

343

344 if ($response_stderr) {

345 if ($exception) {

346 $this->setSessionLog ( 'received', $response_stderr );

347 throw new Exception ( "Error executing cmd: [$cmd]", 200 );

348 } else {

349 $this->setSessionLog ( 'received', $response_stderr );

350 return false;

Page 145: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 33

351 }

352 }

353

354 if ($readResponse) {

355 stream_set_blocking ( $stream, true );

356 $response = stream_get_contents ( $stream );

357 fclose ( $stream );

358 $this->setSessionLog ( 'received', $response );

359 } else {

360 $this->setSessionLog ( 'received', '[PB:noerror]' );

361 }

362

363 return $stream;

364 }

365

366

367 /*

368 * Make connection to the Server and authenticate

369 *

370 * @return bool true on connection success, false if not

371 */

372 public function connect() {

373 try {

374 $this->sshCon = ssh2_connect ( $this->params ['host'] );

375 if (! $this->sshCon)

376 throw new Exception ( "SSH Connection failure To the Host", 200 );

377

378 if (! ssh2_auth_password ( $this->sshCon, $this->params ['login'], $this->params ['password'] ))

379 throw new Exception ( "Authentication failure To the host using username: " . $this->params ['login'], 201 );

380

381 $this->authenticated = true;

382 return true;

383 } catch ( Exception $e ) {

384 $this->setLastError ( $e->getCode (), $e->getMessage () );

385 return false;

386 }

387 }

388

389 /*

390 * Disconnect from the server by executing a logout command

391 *

392 * @return bool true (allways)

Page 146: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 34

393 */

394 public function disconnect() {

395 if ($this->sshCon) {

396 if ($this->authenticated) {

397 ssh2_exec ( $this->sshCon, "logout" );

398 } else

399 $this->sshCon = null;

400 }

401

402 return true;

403 }

404

405

406

407

408 }

409

2.2.4. Classe du connecteur : pbIPPServiceConnector

Code source : IPPService.connector.php

1 <?php

2 class IPPService extends PodBridgeConnector implements PodBridgeConnectorInterface {

3

4 private $ipp = null;

5

6 /**

7 * Print Web pages

8 *

9 * @service

10 * @cacheable false

11 *

12 * @param string url web page location exemple: http://mydomain/mypage

13 * @param string* jobname new job name

14 *

15 * @return boolean always true

16 */

17 public function doPrintWebPage($url,$jobname=null) {

18 if ( ! file_get_contents($url,null,null,null,1))

19 Throw new Exception('Cannot get page contents from ('.$url.')', 700);

20 $tmpPSdoc = '/tmp/'.md5(uniqid());

Page 147: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 35

21 //Convert web page to a PS document

22 system ( 'html2ps '.$url.'>'.$tmpPSdoc);

23 $this->doPrintInternalDocument($tmpPSdoc,$jobname);

24 //Cleaning

25 system ( 'rm -f '.$tmpPSdoc);

26 return true;

27 }

28

29 /**

30 *

31 * Print documents located in server

32 *

33 * @service

34 * @cacheable false

35 *

36 * @param string filepath path to file

37 * @param string* jobname new job name

38 *

39 * @return boolean always true

40 */

41 public function doPrintInternalDocument($filepath,$jobname=null) {

42

43 if ( ! file_exists($filepath))

44 Throw new Exception('File does not exists !', 705);

45

46 if ( !$jobname )

47 $jobname=$filepath;

48

49 $this->ipp->setJobName($jobname);

50

51 $this->ipp->setData($filepath); // Path to file.

52 $this->ipp->printJob();

53 return true;

54 }

55

56 /**

57 * Returns all available printers

58 *

59 * @service

60 * @cacheable false

61 *

62 *

63 * @return string Liste all printers uri delimited by ";"

64 */

Page 148: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 36

65 public function getPrinters() {

66

67 $this->ipp->getPrinters();

68 $printers=null;

69 foreach( $this->ipp->available_printers as $printer) {

70 if ( $printers ) $printers.=";";

71 $printers.=$printer;

72 }

73

74 return $printers;

75 }

76

77 // Method not yet implemented

78 public function getAllJobs() {

79

80 return true;

81 }

82

83 // Method not yet implemented

84 public function killJobById($jobid) {

85

86 return true;

87 }

88

89 // Method not yet implemented

90 public function killAllJobs() {

91

92 return true;

93 }

94

95

96 // Method not yet implemented

97 public function getLastJob() {

98 //return $this->ipp->last_job;

99 }

100

101 /*

102 * Make connection to the Server and authenticate

103 *

104 * @return bool true on connection success, false if not

105 */

106 public function connect() {

107

108 // For documentation refer to ==> http://www.nongnu.org/phpprintipp/tiny_usage

Page 149: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 37

109 require_once("PrintIPPclasses/CupsPrintIPP.php");

110 $this->ipp = new CupsPrintIPP;

111

112 $this->ipp->setUserName($this->params['user']);

113 $this->ipp->setAuthentication($this->params['user'],$this->params['password']); // username & password

114

115 $this->ipp->setHost($this->params['ipp_host']);

116 $this->ipp->setPort($this->params['ipp_port']);

117

118 $this->ipp->setPrinterURI($this->params['printer_uri']);

119

120 return true;

121 }

122

123 /*

124 * Disconnect from the server by executing a logout command

125 *

126 * @return bool true (allways)

127 */

128 public function disconnect() {

129 unset ($this->ipp);

130 return true;

131 }

132

133 }

134

2.2.5. Classe du connecteur : pbMailAccountConnector

Code source : MailAccount.connector.php

1 <?php

2

3 class MailAccount extends PodBridgeConnector implements PodBridgeConnectorInterface {

4

5 private $sshCon = null;

6 private $authenticated = false;

7 private $regexValidator = array (

8 'fstname_lstname'=>'/^[A-z]{2,24}$/',

9 'username'=>'/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*$/',

Page 150: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 38

10 'emailaddress'=>'/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/');

11 /*

12 * Generate random password from a set of chars ($pool)

13 *

14 * @param integer $len Password length

15 * @return string Rand password

16 */

17 private function generateRandomPasswd($len = 10) {

18 $string = '';

19 $pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

20 for($i = 1; $i <= $len; $i ++) {

21 $string .= substr ( $pool, rand ( 0, 61 ), 1 );

22 }

23

24 return $string;

25 }

26

27 /*

28 * Check if the user exists in host

29 *

30 * @param string user User name

31 * @return boolean True if user exist

32 */

33 private function ifUserExists($user) {

34 $this->ssh2Exec ( 'grep "^'.$user.':" /etc/passwd',true,true,$response);

35 if ($response==null)

36 return false;

37 return true;

38 }

39

40

41 /*

42 * Generate an unique user name by fstname and lstname

43 *

44 * @param string fstname The user first name

45 * @param string lstname The user last name

46 *

47 * @throws Exception 895 Invalid first name

48 * @throws Exception 896 Invalid last name

49 *

50 * @return string user name

51 */

Page 151: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 39

52 private function generateUserName($fstname,$lstname) {

53

54

55 $fstname = strtolower(trim($fstname));

56 $lstname = strtolower(trim($lstname));

57 $fstname=str_replace(' ', '_', $fstname);

58 $lstname=str_replace(' ', '_', $lstname);

59

60 //Check the first name

61 if ( ! preg_match($this->regexValidator['fstname_lstname'],$fstname))

62 Throw new Exception('Invalid first name', 895);

63 //Check the last name

64 if ( ! preg_match($this->regexValidator['fstname_lstname'],$lstname))

65 Throw new Exception('Invalid last name', 896);

66

67 $username=$fstname.'.'.$lstname ;

68 $suffix=null;

69

70 while ($this->ifUserExists($username.$suffix)) {

71 if (! $suffix ) $suffix=0 ;

72 $suffix++;

73 }

74

75 return ($username.$suffix);

76 }

77

78

79 /*

80 * Retrieve user name from an email address

81 *

82 * @param string emailaddr address

83 *

84 * @throws Exception 870 Invalid email address

85 * @throws Exception 890 Cannot do this operation on [domain]

86 *

87 * @return string user name

88 */

89 private function doStripAtDomain($emailaddr) {

90

91 //Check email address to local user name

92 if ( ! preg_match($this->regexValidator['emailaddress'],$emailaddr))

Page 152: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 40

93 Throw new Exception('Invalid address: ('.$emailaddr.')', 870);

94

95

96 //Convert user email address to user name

97 $part=explode('@',trim(strtolower($emailaddr)));

98 $domain=$part[1];

99

100 //Check the domaine name

101 if ( $domain != $this->params['domain'] )

102 Throw new Exception('This email is not registered at '.$this->params['domain'] , 890);

103

104 $user=$part[0];

105

106 return $user;

107

108 }

109

110

111

112 /**

113 * Create new mail user Version 2

114 *

115 * @service

116 * @cacheable false

117 *

118 * @param string fstname The user first name

119 * @param string lstname The user last name

120 * @param boolean genpswd For auto generated password

121 * @param string password User defined password

122 *

123 * @type (EmailAdress:string,Password:string,WebMailUrl:string) retMailAccount2

124 * @return retMailAccount2 information about the created mail account

125 */

126 public function doCreateMailUserAccount2($fstname,$lstname,$genpswd,$password) {

127

128 $genusername=$this->generateUserName($fstname, $lstname);

129 $retMailAccount2 = $this->doCreateMailUserAccount($genusername,$genpswd,$password);

130

131 return $retMailAccount2;

132 }

133

Page 153: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 41

134

135

136 /**

137 * Create new mail user Version 1

138 *

139 * @service

140 * @cacheable false

141 * @param string user The mail user logins

142 * @param boolean genpswd For auto generated password

143 * @param string password User defined password

144 *

145 * @throws Exception 803 Password verification failed

146 * @throws Exception 804 User already exists

147 * @throws Exception 841 Your password must be between {RANGE} characters in length

148 *

149 * @type (EmailAdress:string,Password:string,POP3Port:integer,SMTPPort:integer,WebMailUrl:string) retMailAccount

150 * @return retMailAccount information about the created mail account

151 */

152 public function doCreateMailUserAccount($user,$genpswd,$password) {

153

154 if ( ! preg_match($this->regexValidator['username'],$user))

155 Throw new Exception('Pattern matching error in user name', 803);

156

157 if ( $this->ifUserExists($user) )

158 Throw new Exception('User ('.$user.') already exists', 804);

159

160 $UserHomeDir = $this->params ['mail_users_path'].'/'.$user;

161

162 // Generate a random password

163 if ($genpswd) {

164 $password = $this->generateRandomPasswd ( $this->params ['autogen_pswd_length'] );

165 } else {

166 if ( strlen($password) < $this->params ['minimum_pswd_length'] || strlen($password) > $this->params ['maximum_pswd_length'])

167 Throw new Exception("Your password must be between ".$this->params ['minimum_pswd_length']."-".$this->params ['maximum_pswd_length']." characters in length", 841);

168

169 }

170

171 $cryptedPassword = crypt ( strip_tags ( $password ) );

Page 154: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 42

172

173 // Create the user

174 $this->ssh2Exec ( 'useradd -d '.$UserHomeDir.' -m -g '.$this->params ['mail_group_name'].' -s /bin/false -p \''.$cryptedPassword.'\' '.$user);

175

176 $retMailAccount = array();

177 $retMailAccount ['EmailAdress'] = $user.'@'.$this->params['domain'] ;

178 $retMailAccount ['Password'] = $password;

179 $retMailAccount ['POP3Port'] = $this->params ['pop3_port'];

180 $retMailAccount ['SMTPPort'] = $this->params ['smtp_port'];

181 $retMailAccount ['WebMailUrl'] = $this->params ['web_mail_url'];

182

183 return $retMailAccount;

184

185 }

186

187

188 /**

189 * Cahnge a user password

190 *

191 * @service

192 * @cacheable false

193 * @param string emailaddr user email address

194 * @param string oldpassword The old user password

195 * @param string newpassword The new user password

196 *

197 * @throws Exception 840 Password verification failed

198 * @throws Exception 841 Your password must be between {RANGE} characters in length

199 * @throws Exception 842 Password should be different from the old one

200 *

201 * @return boolean True when password changed

202 */

203 public function doChangeMailUserPassword($emailaddr,$password,$new_password) {

204

205 //Convert user email address to user name

206 $user = $this->doStripAtDomain($emailaddr);

207

208 if ( ! $this->doCheckPassword($user,$password) )

209 Throw new Exception("Password verification failed", 840);

210

211 if ( strlen($new_password) < $this->params ['minimum_pswd_length']

|| strlen($new_password) > $this->params ['maximum_pswd_length'])

Page 155: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 43

212 Throw new Exception("Your password must be between ".$this->params ['minimum_pswd_length']."-".$this->params ['maximum_pswd_length']." characters in length", 841);

213

214 if ($password == $new_password)

215 Throw new Exception("New password should be different from the old one", 842);

216

217 $cryptedNewPassword = crypt ( strip_tags ( $new_password ) );

218 //Change the user password

219 $this->ssh2Exec ( 'usermod -p \''.$cryptedNewPassword.'\' '.$user);

220

221 return true;

222 }

223

224 /*

225 * Check if the user password is correct

226 *

227 * @param string emailaddr user user login

228 * @param string password user password

229 *

230 * @throws Exception 850 Entered user name seems inexistant

231 * @throws Exception 851 Unexpected error while checking password

232 *

233 * @return boolean True If password check success and False otherwise

234 */

235 private function doCheckPassword($user,$password) {

236

237

238 //Check if the user exist

239 if ( ! $this->ifUserExists($user) )

240 Throw new Exception('User ('.$user.') seems inexistant', 850);

241

242 //Retrieve crypted user password from /etc/shadow

243 $this->ssh2Exec ( 'grep ^'.$user.': /etc/shadow | cut -d":" -f2',true,true,$refpswd);

244 if ($refpswd==null)

245 Throw new Exception("Unexpected error while checking password", 851);

246

247 $cryptedReferencePassword = trim($refpswd);

248 //Comparing passwords

249 if ( crypt( strip_tags ( $password ),$cryptedReferencePassword ) != $cryptedReferencePassword )

250 return false;

Page 156: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 44

251

252 return true;

253 }

254

255 /**

256 * Delete a mail user account

257 *

258 * @service

259 * @cacheable false

260 * @param string emailaddr mail user name or full email adress

261 * @throws Exception 850 Entered user name seems inexistant

262 * @throws Exception 860 Cannot do such operation on a non mail user

263 * @return boolean True When user is deleted

264 */

265 public function doDeleteMailUserAccount($emailaddr) {

266

267 //Convert user email address to user name

268 $user = $this->doStripAtDomain($emailaddr);

269

270 //Check if the user exist

271 if ( ! $this->ifUserExists($user) )

272 Throw new Exception('User ('.$user.') seems inexistant', 850);

273

274 //Verify if mail user

275 $this->ssh2Exec ( 'groups '.$user,true,true,$groupname);

276 if (trim($groupname)!=$this->params ['mail_group_name'])

277 Throw new Exception("Cannot do such operation on a non mail user", 860);

278

279 // Delete the user

280 $this->ssh2Exec ( 'userdel -r '.$user);

281 return true;

282 }

283

284

285 /**

286 * Unlock a mail user account

287 *

288 * @service

289 * @cacheable false

290 * @param string emailaddr mail user name or full email adress

291 * @throws Exception 850 Entered user name seems inexistant

292 * @throws Exception 860 Cannot do such operation on a non mail user

Page 157: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 45

293 * @return boolean True When user account is unlocked

294 */

295 public function doUnlockMailUserAccount($emailaddr) {

296

297 //Convert user email address to user name

298 $user = $this->doStripAtDomain($emailaddr);

299

300 //Check if the user exist

301 if ( ! $this->ifUserExists($user) )

302 Throw new Exception('User ('.$user.') seems inexistant', 850);

303

304 //Verify if mail user

305 $this->ssh2Exec ( 'groups '.$user,true,true,$groupname);

306 if (trim($groupname)!=$this->params ['mail_group_name'])

307 Throw new Exception("Cannot do such operation on a non mail user", 860);

308

309 // Activate the user account

310 $this->ssh2Exec ( 'passwd -u '.$user);

311 return true;

312 }

313

314 /**

315 * Lock a mail user account

316 *

317 * @service

318 * @cacheable false

319 * @param string emailaddr mail user name or full email adress

320 * @throws Exception 850 Entered user name seems inexistant

321 * @throws Exception 860 Cannot do such operation on a non mail user

322 * @return boolean True When user account is locked

323 */

324 public function doLockMailUserAccount($emailaddr) {

325

326 //Convert user email address to user name

327 $user = $this->doStripAtDomain($emailaddr);

328

329 //Check if the user exist

330 if ( ! $this->ifUserExists($user) )

331 Throw new Exception('User ('.$user.') seems inexistant', 850);

332

333 //Verify if mail user

Page 158: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 46

334 $this->ssh2Exec ( 'groups '.$user,true,true,$groupname);

335 if (trim($groupname)!=$this->params ['mail_group_name'])

336 Throw new Exception("Cannot do such operation on a non mail user", 860);

337

338 // Disable the user account

339 $this->ssh2Exec ( 'passwd -l '.$user);

340 return true;

341 }

342

343

344 /**

345 * Send email (internal)

346 *

347 * @service

348 * @cacheable false

349 * @param string from Sender email address or user name

350 * @param string to Receiver email address

351 * @param string message Message body

352 * @param string subject The subject of the message

353 *

354 * @throws Exception 850 Entered user name seems inexistant

355 * @throws Exception 870 Invalid receiver email address

356 * @throws Exception 871 Cannot send empty message

357 *

358 *

359 * @return boolean True when message sent

360 */

361 public function doSendMail($from,$to,$message,$subject=null) {

362

363 //Convert sender email address to user name

364 $user_sender = $this->doStripAtDomain($from);

365

366

367 //Check if the sender user exist

368 if ( ! $this->ifUserExists($user_sender) )

369 Throw new Exception('User ('.$user_sender.') seems inexistant', 850);

370

371 if ( ! preg_match($this->regexValidator['emailaddress'],$to))

372 Throw new Exception('Invalid address: ('.$to.')', 870);

373

374 if ( $message==null )

375 Throw new Exception('Cannot send empty message', 871);

376

Page 159: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 47

377 //Send a message

378 $this->ssh2Exec ( 'echo -e "'.$message.'" | sudo -u '.$user_sender.' mail -s "'.$subject.'" '.$to);

379 return true;

380 }

381

382

383

384 /*

385 * Executes a $cmd on the SSH connection and return $readable response on-demand

386 *

387 * @param string $cmd Command to execute

388 * @param bool $exception Whether to throw exception on error or return false

389 * @param bool $readResponse Whether to return a readable response or not

390 * @param pointer $response The readable response if requested will be here

391 * @throws Exception 200 If ($exception) AND we got an error while executing the command

392 * @return ressource The ssh2_exec return

393 */

394 private function ssh2Exec($cmd, $exception = true, $readResponse = false, &$response = null) {

395 $this->setSessionLog ( 'sent', $cmd );

396 $stream = ssh2_exec ( $this->sshCon, $cmd );

397

398 //get the content of ssh2 stderr

399 $stderr = ssh2_fetch_stream ( $stream, SSH2_STREAM_STDERR );

400 stream_set_blocking ( $stderr, true );

401 $response_stderr = stream_get_contents ( $stderr );

402 fclose ( $stderr );

403

404 if ($response_stderr) {

405 if ($exception) {

406 $this->setSessionLog ( 'received', $response_stderr );

407 throw new Exception ( "Error executing cmd: [$cmd]", 200 );

408 } else {

409 $this->setSessionLog ( 'received', $response_stderr );

410 return false;

411 }

412 }

413

414 if ($readResponse) {

415 stream_set_blocking ( $stream, true );

Page 160: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 48

416 $response = stream_get_contents ( $stream );

417 fclose ( $stream );

418 $this->setSessionLog ( 'received', $response );

419 } else {

420 $this->setSessionLog ( 'received', '[PB:noerror]' );

421 }

422

423 return $stream;

424 }

425

426

427 /*

428 * Make connection to the Server and authenticate

429 *

430 * @return bool true on connection success, false if not

431 */

432 public function connect() {

433 try {

434 $this->sshCon = ssh2_connect ( $this->params ['host'] );

435 if (! $this->sshCon)

436 throw new Exception ( "SSH Connection failure To the Host", 200 );

437

438 if (! ssh2_auth_password ( $this->sshCon, $this->params ['login'], $this->params ['password'] ))

439 throw new Exception ( "Authentication failure To the host using username: " . $this->params ['login'], 201 );

440

441 $this->authenticated = true;

442 return true;

443 } catch ( Exception $e ) {

444 $this->setLastError ( $e->getCode (), $e->getMessage () );

445 return false;

446 }

447 }

448

449 /*

450 * Disconnect from the server by executing a logout command

451 *

452 * @return bool true (allways)

453 */

454 public function disconnect() {

455 if ($this->sshCon) {

456 if ($this->authenticated) {

457 ssh2_exec ( $this->sshCon, "logout" );

Page 161: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 49

458 } else

459 $this->sshCon = null;

460 }

461

462 return true;

463 }

464

465

466

467

468 }

469

470

2.2.6. Classe du connecteur : pbSMSServiceConnector

Code source : SMSService.connector.php

1 <?php

2

3 class SMSService extends PodBridgeConnector implements PodBridgeConnectorInterface {

4

5 //cannot be delivered

6

7 private $regexValidator = array (

8 'sn_regex'=>'/^(00|\+|[0-9])[0-9]{7}$/');

9

10 /**

11 * doSendSMS

12 *

13 * @service

14 * @cacheable false

15 *

16 * @param string destinataire Destination Phone number

17 * @param string message Message Text

18 *

19 * @return boolean true if message successfully sent

20 */

21 public function doSendSMS($destinataire,$message) {

22

23 //cannot be delivered

24

Page 162: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 50

25 return true;

26 }

27

28

29 private function stripSpaces($phonenumber) {

30 $fixed=str_replace(' ', '',$phonenumber);

31 if ( ! preg_match($this->regexValidator['sn_regex'],$fixed))

32 Throw new Exception('Phone number format error', 808);

33

34 return $fixed;

35 }

36

37 /*

38 * Make connection to the Server and authenticate

39 *

40 * @return bool true on connection success, false if not

41 */

42 public function connect() {

43 //cannot be delivered

44 return true;

45

46 }

47

48 /*

49 * Disconnect from the server by executing a logout command

50 *

51 * @return bool true (allways)

52 */

53 public function disconnect() {

54 //cannot be delivered

55 return true;

56 }

57

58

59

60

61 }

62

63

2.2.7. Classe du connecteur : pbwwwsubscrConnector

Code source : wwwsubscr.connector.php

Page 163: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 51

1 <?php

2

3 class wwwsubscr extends PodBridgeConnector implements PodBridgeConnectorInterface {

4

5 private $curl_handle = null;

6

7 /**

8 * Returns the receipt identifier and URL for the web site

9 *

10 * @service

11 * @cacheable false

12 *

13 * @param string studentident Identifiant de l'étudiant

14 * @param string au AU format exp: 2009/2010

15 *

16 * @type (refaccuse:string,urlaccuse:string) getAccuseOut

17 * @return getAccuseOut Return refaccuse & urlaccuse

18 */

19 public function getAccuse($studentident,$au) {

20

21 $ref=$this->getAccuseRef($studentident,$au);

22 $url='http://inscription.edu.demo/recu.php?ref='.$ref;

23

24 $getAccuseOut = array ();

25 $getAccuseOut['refaccuse']=$ref;

26 $getAccuseOut['urlaccuse']=$url;

27

28 return $getAccuseOut;

29

30 }

31

32

33 /*

34 * @param string studentident Student identifier

35 * @param string au AU format exp: 2009/2010

36 *

37 * @return string Référence du reçu

38 */

39 private function getAccuseRef($studentident,$au) {

40

41 if ( ! preg_match('/^[0-9]{8}$/',$studentident) )

42 Throw new Exception('L\'identifiant de l\'étudiant doit être compsé de 8 chiffres', 805);

43

Page 164: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 52

44 if ( ! preg_match('/^20[0-9][0-9]\/20[0-9][0-9]$/',$au) )

45 Throw new Exception('L\'année universitaire doit être en ce format AAAA/AAAA', 806);

46

47 curl_setopt($this->curl_handle,CURLOPT_POST,1);

48 curl_setopt($this->curl_handle,CURLOPT_POSTFIELDS,'ident='.$studentident);

49 $buffer = curl_exec($this->curl_handle);

50

51 preg_match('/Nom:/', (string)$buffer,$matches0);

52 preg_match('/20[0-9][0-9]\/20[0-9][0-9]/', (string)$buffer,$matches1 );

53 preg_match('/[0-9]{16}/', (string)$buffer,$matches2);

54

55 if ( ! $matches0[0])

56 Throw new Exception('Identifiant de l\'étudiant est non reconnu' , 807);

57

58 if ( $matches1[0]!=$au)

59 Throw new Exception('Payement non effectué !', 809);

60

61 $ref=$matches2[0];

62

63 return $ref;

64 }

65

66

67 /*

68 * Make connection to the Server and authenticate

69 *

70 * @return bool true on connection success, false if not

71 */

72 public function connect() {

73

74 try {

75

76 $this->curl_handle = curl_init();

77 curl_setopt($this->curl_handle,CURLOPT_URL,"inscription.edu.demo");

78 curl_setopt($this->curl_handle,CURLOPT_CONNECTTIMEOUT,2);

79 curl_setopt($this->curl_handle,CURLOPT_RETURNTRANSFER,1);

80

81 return true;

82

83 } catch ( Exception $e ) {

Page 165: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 53

84 $this->setLastError ( $e->getCode (), $e->getMessage () );

85 return false;

86 }

87

88 }

89

90 /*

91 * Disconnect from the server by executing a logout command

92 *

93 * @return bool true (allways)

94 */

95 public function disconnect() {

96

97 curl_close($this->curl_handle);

98

99 return true;

100 }

101

102 }

103

104

2.3. Fichiers WSDL

2.3.1. WSDL exposé par PodBridge1.2 sur

« podbridge.intranet.demo »

Source :

http://podbridge.intranet.demo/projects/unstable/podbridge/web/frontend_dev.php/wsdl/all

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" name="PodBridge" targetNamespace="urn:pbns" xmlns:pbns="urn:pbns" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ippservicens="urn:ippservicens" xmlns:ftpacntns="urn:ftpacntns" xmlns:bdetuns="urn:bdetuns" xmlns:SMSServicens="urn:SMSServicens" xmlns:apaclmanns="urn:apaclmanns" xmlns:wwwsubscrns="urn:wwwsubscrns">

<types>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:pbns" elementFormDefault="qualified" attributeFormDefault="qualified">

Page 166: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 54

<xsd:complexType name="Tstatus">

<xsd:sequence>

<xsd:element name="msg" type="xsd:string"/>

<xsd:element name="code" type="xsd:integer"/>

</xsd:sequence>

</xsd:complexType>

<element name="ping">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="pingResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ippservicens" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:pbns"/>

<element name="doPrintWebPage">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0"

maxOccurs="1"/>

Page 167: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 55

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="url" type="xsd:string"/>

<xsd:element name="jobname" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doPrintWebPageResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doPrintInternalDocument">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="filepath" type="xsd:string"/>

<xsd:element name="jobname" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doPrintInternalDocumentResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

Page 168: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 56

</xsd:sequence>

</xsd:complexType>

</element>

<element name="getPrinters">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="getPrintersResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:string" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ftpacntns" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:pbns"/>

<xsd:complexType name="doCreateFTPUserAccountOut">

<xsd:sequence>

<xsd:element name="UserLogin" type="xsd:string"/>

<xsd:element name="Password" type="xsd:string"/>

<xsd:element name="ServerDomain" type="xsd:string"/>

<xsd:element name="FTPPort" type="xsd:integer"/>

</xsd:sequence>

</xsd:complexType>

<element name="doCreateFTPUserAccount">

<xsd:complexType>

<xsd:sequence>

Page 169: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 57

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="user" type="xsd:string"/>

<xsd:element name="expiry_date" type="xsd:string"/>

<xsd:element name="use_welcome" type="xsd:boolean"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doCreateFTPUserAccountResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="ftpacntns:doCreateFTPUserAccountOut" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="setFTPUserAccountExpiryDate">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="user" type="xsd:string"/>

<xsd:element name="expiry_date" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="setFTPUserAccountExpiryDateResponse">

<xsd:complexType>

Page 170: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 58

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="setFTPUserWelcomeMsg">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="user" type="xsd:string"/>

<xsd:element name="message" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="setFTPUserWelcomeMsgResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doDisableFTPUserWelcomeMsg">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

Page 171: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 59

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="user" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doDisableFTPUserWelcomeMsgResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doChangeFTPUserPassword">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="user" type="xsd:string"/>

<xsd:element name="oldpassword" type="xsd:string"/>

<xsd:element name="newpassword" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doChangeFTPUserPasswordResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

Page 172: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 60

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doDeleteFTPUserAccount">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="user" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doDeleteFTPUserAccountResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doFTPsendFile">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

Page 173: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 61

<xsd:element name="file" type="xsd:string"/>

<xsd:element name="user" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doFTPsendFileResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:bdetuns" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:pbns"/>

<xsd:complexType name="getStudentByIdOut">

<xsd:sequence>

<xsd:element name="id" type="xsd:string"/>

<xsd:element name="nom" type="xsd:string"/>

<xsd:element name="prenom" type="xsd:string"/>

<xsd:element name="dep" type="xsd:string"/>

<xsd:element name="spec" type="xsd:string"/>

<xsd:element name="niveau" type="xsd:integer"/>

<xsd:element name="tel" type="xsd:string"/>

<xsd:element name="email" type="xsd:string"/>

<xsd:element name="loginftp" type="xsd:string"/>

<xsd:element name="adrmac" type="xsd:string"/>

<xsd:element name="refrecu" type="xsd:string"/>

<xsd:element name="process" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<element name="getStudentById">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0"

maxOccurs="1"/>

Page 174: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 62

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="id" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="getStudentByIdResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="bdetuns:getStudentByIdOut" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="updateStudentById">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="id" type="xsd:string"/>

<xsd:element name="tel" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="email" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="loginftp" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="adrmac" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="refrecu" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="process" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

Page 175: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 63

</element>

<element name="updateStudentByIdResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<xsd:complexType name="retArray">

<xsd:sequence>

<xsd:element name="nextid" type="xsd:string"/>

<xsd:element name="last" type="xsd:boolean"/>

</xsd:sequence>

</xsd:complexType>

<element name="getNextId">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="id" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element name="filter" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="getNextIdResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="bdetuns:retArray" minOccurs="0"

maxOccurs="1"/>

Page 176: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 64

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:SMSServicens" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:pbns"/>

<element name="doSendSMS">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="destinataire" type="xsd:string"/>

<xsd:element name="message" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doSendSMSResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:apaclmanns" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:pbns"/>

<xsd:complexType name="doForwardMACaddrOut">

<xsd:sequence>

<xsd:element name="ssid" type="xsd:string"/>

<xsd:element name="auth_key" type="xsd:string"/>

Page 177: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 65

</xsd:sequence>

</xsd:complexType>

<element name="doForwardMACaddr">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="macaddr" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doForwardMACaddrResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="apaclmanns:doForwardMACaddrOut" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doRomoveForwordedMACaddr">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="macaddr" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

Page 178: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 66

<element name="doRomoveForwordedMACaddrResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:wwwsubscrns" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:pbns"/>

<xsd:complexType name="getAccuseOut">

<xsd:sequence>

<xsd:element name="refaccuse" type="xsd:string"/>

<xsd:element name="urlaccuse" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<element name="getAccuse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="studentident" type="xsd:string"/>

<xsd:element name="au" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="getAccuseResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

Page 179: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 67

<xsd:element name="status" type="pbns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="wwwsubscrns:getAccuseOut" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

</types>

<portType name="PodBridgePortType">

<operation name="ping">

<input message="pbns:PingRequest"/>

<output message="pbns:PingResponse"/>

</operation>

<operation name="doPrintWebPage">

<input message="pbns:DoPrintWebPageRequest"/>

<output message="pbns:DoPrintWebPageResponse"/>

</operation>

<operation name="doPrintInternalDocument">

<input message="pbns:DoPrintInternalDocumentRequest"/>

<output message="pbns:DoPrintInternalDocumentResponse"/>

</operation>

<operation name="getPrinters">

<input message="pbns:GetPrintersRequest"/>

<output message="pbns:GetPrintersResponse"/>

</operation>

<operation name="doCreateFTPUserAccount">

<input message="pbns:DoCreateFTPUserAccountRequest"/>

<output message="pbns:DoCreateFTPUserAccountResponse"/>

</operation>

<operation name="setFTPUserAccountExpiryDate">

<input message="pbns:SetFTPUserAccountExpiryDateRequest"/>

<output message="pbns:SetFTPUserAccountExpiryDateResponse"/>

</operation>

<operation name="setFTPUserWelcomeMsg">

<input message="pbns:SetFTPUserWelcomeMsgRequest"/>

<output message="pbns:SetFTPUserWelcomeMsgResponse"/>

</operation>

<operation name="doDisableFTPUserWelcomeMsg">

<input message="pbns:DoDisableFTPUserWelcomeMsgRequest"/>

<output message="pbns:DoDisableFTPUserWelcomeMsgResponse"/>

</operation>

<operation name="doChangeFTPUserPassword">

<input message="pbns:DoChangeFTPUserPasswordRequest"/>

<output message="pbns:DoChangeFTPUserPasswordResponse"/>

Page 180: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 68

</operation>

<operation name="doDeleteFTPUserAccount">

<input message="pbns:DoDeleteFTPUserAccountRequest"/>

<output message="pbns:DoDeleteFTPUserAccountResponse"/>

</operation>

<operation name="doFTPsendFile">

<input message="pbns:DoFTPsendFileRequest"/>

<output message="pbns:DoFTPsendFileResponse"/>

</operation>

<operation name="getStudentById">

<input message="pbns:GetStudentByIdRequest"/>

<output message="pbns:GetStudentByIdResponse"/>

</operation>

<operation name="updateStudentById">

<input message="pbns:UpdateStudentByIdRequest"/>

<output message="pbns:UpdateStudentByIdResponse"/>

</operation>

<operation name="getNextId">

<input message="pbns:GetNextIdRequest"/>

<output message="pbns:GetNextIdResponse"/>

</operation>

<operation name="doSendSMS">

<input message="pbns:DoSendSMSRequest"/>

<output message="pbns:DoSendSMSResponse"/>

</operation>

<operation name="doForwardMACaddr">

<input message="pbns:DoForwardMACaddrRequest"/>

<output message="pbns:DoForwardMACaddrResponse"/>

</operation>

<operation name="doRomoveForwordedMACaddr">

<input message="pbns:DoRomoveForwordedMACaddrRequest"/>

<output message="pbns:DoRomoveForwordedMACaddrResponse"/>

</operation>

<operation name="getAccuse">

<input message="pbns:GetAccuseRequest"/>

<output message="pbns:GetAccuseResponse"/>

</operation>

</portType>

<binding name="PodBridgeBinding" type="pbns:PodBridgePortType">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="ping">

<input>

<soap:body use="literal"/>

</input>

Page 181: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 69

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doPrintWebPage">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doPrintInternalDocument">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="getPrinters">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doCreateFTPUserAccount">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="setFTPUserAccountExpiryDate">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

Page 182: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 70

<operation name="setFTPUserWelcomeMsg">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doDisableFTPUserWelcomeMsg">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doChangeFTPUserPassword">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doDeleteFTPUserAccount">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doFTPsendFile">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="getStudentById">

<input>

<soap:body use="literal"/>

</input>

Page 183: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 71

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="updateStudentById">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="getNextId">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doSendSMS">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doForwardMACaddr">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doRomoveForwordedMACaddr">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

Page 184: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 72

<operation name="getAccuse">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

</binding>

<message name="PingRequest">

<part name="body" element="pbns:ping"/>

</message>

<message name="PingResponse">

<part name="body" element="pbns:pingResponse"/>

</message>

<message name="DoPrintWebPageRequest">

<part name="body" element="ippservicens:doPrintWebPage"/>

</message>

<message name="DoPrintWebPageResponse">

<part name="body" element="ippservicens:doPrintWebPageResponse"/>

</message>

<message name="DoPrintInternalDocumentRequest">

<part name="body" element="ippservicens:doPrintInternalDocument"/>

</message>

<message name="DoPrintInternalDocumentResponse">

<part name="body" element="ippservicens:doPrintInternalDocumentResponse"/>

</message>

<message name="GetPrintersRequest">

<part name="body" element="ippservicens:getPrinters"/>

</message>

<message name="GetPrintersResponse">

<part name="body" element="ippservicens:getPrintersResponse"/>

</message>

<message name="DoCreateFTPUserAccountRequest">

<part name="body" element="ftpacntns:doCreateFTPUserAccount"/>

</message>

<message name="DoCreateFTPUserAccountResponse">

<part name="body" element="ftpacntns:doCreateFTPUserAccountResponse"/>

</message>

<message name="SetFTPUserAccountExpiryDateRequest">

<part name="body" element="ftpacntns:setFTPUserAccountExpiryDate"/>

</message>

<message name="SetFTPUserAccountExpiryDateResponse">

<part name="body" element="ftpacntns:setFTPUserAccountExpiryDateResponse"/>

Page 185: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 73

</message>

<message name="SetFTPUserWelcomeMsgRequest">

<part name="body" element="ftpacntns:setFTPUserWelcomeMsg"/>

</message>

<message name="SetFTPUserWelcomeMsgResponse">

<part name="body" element="ftpacntns:setFTPUserWelcomeMsgResponse"/>

</message>

<message name="DoDisableFTPUserWelcomeMsgRequest">

<part name="body" element="ftpacntns:doDisableFTPUserWelcomeMsg"/>

</message>

<message name="DoDisableFTPUserWelcomeMsgResponse">

<part name="body" element="ftpacntns:doDisableFTPUserWelcomeMsgResponse"/>

</message>

<message name="DoChangeFTPUserPasswordRequest">

<part name="body" element="ftpacntns:doChangeFTPUserPassword"/>

</message>

<message name="DoChangeFTPUserPasswordResponse">

<part name="body" element="ftpacntns:doChangeFTPUserPasswordResponse"/>

</message>

<message name="DoDeleteFTPUserAccountRequest">

<part name="body" element="ftpacntns:doDeleteFTPUserAccount"/>

</message>

<message name="DoDeleteFTPUserAccountResponse">

<part name="body" element="ftpacntns:doDeleteFTPUserAccountResponse"/>

</message>

<message name="DoFTPsendFileRequest">

<part name="body" element="ftpacntns:doFTPsendFile"/>

</message>

<message name="DoFTPsendFileResponse">

<part name="body" element="ftpacntns:doFTPsendFileResponse"/>

</message>

<message name="GetStudentByIdRequest">

<part name="body" element="bdetuns:getStudentById"/>

</message>

<message name="GetStudentByIdResponse">

<part name="body" element="bdetuns:getStudentByIdResponse"/>

</message>

<message name="UpdateStudentByIdRequest">

<part name="body" element="bdetuns:updateStudentById"/>

</message>

<message name="UpdateStudentByIdResponse">

<part name="body" element="bdetuns:updateStudentByIdResponse"/>

</message>

<message name="GetNextIdRequest">

Page 186: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 74

<part name="body" element="bdetuns:getNextId"/>

</message>

<message name="GetNextIdResponse">

<part name="body" element="bdetuns:getNextIdResponse"/>

</message>

<message name="DoSendSMSRequest">

<part name="body" element="SMSServicens:doSendSMS"/>

</message>

<message name="DoSendSMSResponse">

<part name="body" element="SMSServicens:doSendSMSResponse"/>

</message>

<message name="DoForwardMACaddrRequest">

<part name="body" element="apaclmanns:doForwardMACaddr"/>

</message>

<message name="DoForwardMACaddrResponse">

<part name="body" element="apaclmanns:doForwardMACaddrResponse"/>

</message>

<message name="DoRomoveForwordedMACaddrRequest">

<part name="body" element="apaclmanns:doRomoveForwordedMACaddr"/>

</message>

<message name="DoRomoveForwordedMACaddrResponse">

<part name="body" element="apaclmanns:doRomoveForwordedMACaddrResponse"/>

</message>

<message name="GetAccuseRequest">

<part name="body" element="wwwsubscrns:getAccuse"/>

</message>

<message name="GetAccuseResponse">

<part name="body" element="wwwsubscrns:getAccuseResponse"/>

</message>

<service name="PodBridgeService">

<port name="PodBridgePort" binding="pbns:PodBridgeBinding">

<soap:address location="http://podbridge.intranet.demo/projects/unstable/podbridge/web/api/index.php"/>

</port>

</service>

</definitions>

2.3.2. WSDL exposé par PodBridge1.2 sur « ws.rnu.edu.demo »

Source : http://ws.rnu.edu.demo/projects/unstable/podbridge1.2/web/frontend_dev.php/wsdl/all

Page 187: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 75

<?xml version="1.0" encoding="UTF-8"?>

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" name="PodBridge" targetNamespace="urn:tns" xmlns:tns="urn:tns" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:pbns="urn:pbns" xmlns:mailacntns="urn:mailacntns">

<types>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:tns" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:complexType name="Tstatus">

<xsd:sequence>

<xsd:element name="msg" type="xsd:string"/>

<xsd:element name="code" type="xsd:integer"/>

</xsd:sequence>

</xsd:complexType>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:pbns" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:tns"/>

<element name="ping">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="pingResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

Page 188: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 76

</xsd:complexType>

</element>

</schema>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:mailacntns" elementFormDefault="qualified" attributeFormDefault="qualified">

<xsd:import namespace="urn:tns"/>

<xsd:complexType name="retMailAccount2">

<xsd:sequence>

<xsd:element name="EmailAdress" type="xsd:string"/>

<xsd:element name="Password" type="xsd:string"/>

<xsd:element name="WebMailUrl" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<element name="doCreateMailUserAccount2">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="fstname" type="xsd:string"/>

<xsd:element name="lstname" type="xsd:string"/>

<xsd:element name="genpswd" type="xsd:boolean"/>

<xsd:element name="password" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doCreateMailUserAccount2Response">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="mailacntns:retMailAccount2"

minOccurs="0" maxOccurs="1"/>

Page 189: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 77

</xsd:sequence>

</xsd:complexType>

</element>

<xsd:complexType name="retMailAccount">

<xsd:sequence>

<xsd:element name="EmailAdress" type="xsd:string"/>

<xsd:element name="Password" type="xsd:string"/>

<xsd:element name="POP3Port" type="xsd:integer"/>

<xsd:element name="SMTPPort" type="xsd:integer"/>

<xsd:element name="WebMailUrl" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<element name="doCreateMailUserAccount">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="user" type="xsd:string"/>

<xsd:element name="genpswd" type="xsd:boolean"/>

<xsd:element name="password" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doCreateMailUserAccountResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="mailacntns:retMailAccount" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

Page 190: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 78

<element name="doChangeMailUserPassword">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="emailaddr" type="xsd:string"/>

<xsd:element name="oldpassword" type="xsd:string"/>

<xsd:element name="newpassword" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doChangeMailUserPasswordResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doDeleteMailUserAccount">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="emailaddr" type="xsd:string"/>

Page 191: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 79

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doDeleteMailUserAccountResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doUnlockMailUserAccount">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="emailaddr" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doUnlockMailUserAccountResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

Page 192: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 80

</element>

<element name="doLockMailUserAccount">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="emailaddr" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doLockMailUserAccountResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doSendMail">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="key" type="xsd:string"/>

<xsd:element name="sync" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="notify" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="transId" type="xsd:string" minOccurs="0" maxOccurs="1"/>

<xsd:element name="abort" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

<xsd:element name="from" type="xsd:string"/>

Page 193: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 81

<xsd:element name="to" type="xsd:string"/>

<xsd:element name="message" type="xsd:string"/>

<xsd:element name="subject" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</element>

<element name="doSendMailResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="transId" type="xsd:string"/>

<xsd:element name="transDate" type="xsd:string"/>

<xsd:element name="status" type="tns:Tstatus" minOccurs="0" maxOccurs="1"/>

<xsd:element name="response" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>

</xsd:sequence>

</xsd:complexType>

</element>

</schema>

</types>

<portType name="PodBridgePortType">

<operation name="ping">

<input message="tns:PingRequest"/>

<output message="tns:PingResponse"/>

</operation>

<operation name="doCreateMailUserAccount2">

<input message="tns:DoCreateMailUserAccount2Request"/>

<output message="tns:DoCreateMailUserAccount2Response"/>

</operation>

<operation name="doCreateMailUserAccount">

<input message="tns:DoCreateMailUserAccountRequest"/>

<output message="tns:DoCreateMailUserAccountResponse"/>

</operation>

<operation name="doChangeMailUserPassword">

<input message="tns:DoChangeMailUserPasswordRequest"/>

<output message="tns:DoChangeMailUserPasswordResponse"/>

</operation>

<operation name="doDeleteMailUserAccount">

<input message="tns:DoDeleteMailUserAccountRequest"/>

<output message="tns:DoDeleteMailUserAccountResponse"/>

</operation>

Page 194: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 82

<operation name="doUnlockMailUserAccount">

<input message="tns:DoUnlockMailUserAccountRequest"/>

<output message="tns:DoUnlockMailUserAccountResponse"/>

</operation>

<operation name="doLockMailUserAccount">

<input message="tns:DoLockMailUserAccountRequest"/>

<output message="tns:DoLockMailUserAccountResponse"/>

</operation>

<operation name="doSendMail">

<input message="tns:DoSendMailRequest"/>

<output message="tns:DoSendMailResponse"/>

</operation>

</portType>

<binding name="PodBridgeBinding" type="tns:PodBridgePortType">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

<operation name="ping">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doCreateMailUserAccount2">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doCreateMailUserAccount">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doChangeMailUserPassword">

Page 195: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 83

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doDeleteMailUserAccount">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doUnlockMailUserAccount">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doLockMailUserAccount">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

<operation name="doSendMail">

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

Page 196: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 84

</binding>

<message name="PingRequest">

<part name="body" element="pbns:ping"/>

</message>

<message name="PingResponse">

<part name="body" element="pbns:pingResponse"/>

</message>

<message name="DoCreateMailUserAccount2Request">

<part name="body" element="mailacntns:doCreateMailUserAccount2"/>

</message>

<message name="DoCreateMailUserAccount2Response">

<part name="body" element="mailacntns:doCreateMailUserAccount2Response"/>

</message>

<message name="DoCreateMailUserAccountRequest">

<part name="body" element="mailacntns:doCreateMailUserAccount"/>

</message>

<message name="DoCreateMailUserAccountResponse">

<part name="body" element="mailacntns:doCreateMailUserAccountResponse"/>

</message>

<message name="DoChangeMailUserPasswordRequest">

<part name="body" element="mailacntns:doChangeMailUserPassword"/>

</message>

<message name="DoChangeMailUserPasswordResponse">

<part name="body" element="mailacntns:doChangeMailUserPasswordResponse"/>

</message>

<message name="DoDeleteMailUserAccountRequest">

<part name="body" element="mailacntns:doDeleteMailUserAccount"/>

</message>

<message name="DoDeleteMailUserAccountResponse">

<part name="body" element="mailacntns:doDeleteMailUserAccountResponse"/>

</message>

<message name="DoUnlockMailUserAccountRequest">

<part name="body" element="mailacntns:doUnlockMailUserAccount"/>

</message>

<message name="DoUnlockMailUserAccountResponse">

<part name="body" element="mailacntns:doUnlockMailUserAccountResponse"/>

</message>

<message name="DoLockMailUserAccountRequest">

<part name="body" element="mailacntns:doLockMailUserAccount"/>

</message>

Page 197: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 85

<message name="DoLockMailUserAccountResponse">

<part name="body" element="mailacntns:doLockMailUserAccountResponse"/>

</message>

<message name="DoSendMailRequest">

<part name="body" element="mailacntns:doSendMail"/>

</message>

<message name="DoSendMailResponse">

<part name="body" element="mailacntns:doSendMailResponse"/>

</message>

<service name="PodBridgeService">

<port name="PodBridgePort" binding="tns:PodBridgeBinding">

<soap:address location="http://ws.rnu.edu.demo/projects/unstable/podbridge1.2/web/api/index.php"/>

</port>

</service>

</definitions>

2.3.3. WSDL du service « ProcessRUById »

Source : processRUById.wsdl

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="processRUById" targetNamespace="http://j2ee.netbeans.org/wsdl/processRUById/processRUById"

xmlns="http://schemas.xmlsoap.org/wsdl/"

xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">

<types/>

<message name="processRUByIdOperationRequest">

<part name="identifiant" type="xsd:string"/>

</message>

<message name="processRUByIdOperationResponse">

<part name="statut" type="xsd:string"/>

</message>

<portType name="processRUByIdPortType">

<operation name="processRUByIdOperation">

<input name="processRUByIdRequest"

message="tns:processRUByIdOperationRequest"/>

Page 198: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 86

<output name="processRUByIdResponse" message="tns:processRUByIdOperationResponse"/>

</operation>

</portType>

<plnk:partnerLinkType name="processRUById">

<!-- A partner link type is automatically generated when a new port type is added. Partner link types are used by BPEL processes.

In a BPEL process, a partner link represents the interaction between the BPEL process and a partner service. Each partner link is associated with a partner link type.

A partner link type characterizes the conversational relationship between two services. The partner link type can have one or two roles.-->

<plnk:role name="processRUByIdPortTypeRole" portType="tns:processRUByIdPortType"/>

</plnk:partnerLinkType>

</definitions>

2.3.4. WSDL du service « BatchProcessRU »

<?xml version="1.0" encoding="UTF-8"?>

2 <definitions name="BatchProcessRU" targetNamespace="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU"

3 xmlns="http://schemas.xmlsoap.org/wsdl/"

4 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

5 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU" xmlns:ns="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">

6 <types>

7 <xsd:schema targetNamespace="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU">

8 <xsd:import namespace="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd" schemaLocation="BatchProcessRUTypes.xsd"/>

9 </xsd:schema>

10 </types>

11 <message name="BatchProcessRUOperationRequest">

12 <part name="part1" type="ns:input"/>

13 </message>

14 <message name="BatchProcessRUOperationResponse">

15 <part name="part1" type="ns:output"/>

16 </message>

17 <portType name="BatchProcessRUPortType">

18 <operation name="BatchProcessRUOperation">

19 <input name="input1"

message="tns:BatchProcessRUOperationRequest"/>

Page 199: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 87

20 <output name="output1" message="tns:BatchProcessRUOperationResponse"/>

21 </operation>

22 </portType>

23 <plnk:partnerLinkType name="BatchProcessRU">

24 <!-- A partner link type is automatically generated when a new port type is added. Partner link types are used by BPEL processes.

25 In a BPEL process, a partner link represents the interaction between the BPEL process and a partner service. Each partner link is associated with a partner link type.

26 A partner link type characterizes the conversational relationship between two services. The partner link type can have one or two roles.-->

27 <plnk:role name="BatchProcessRUPortTypeRole" portType="tns:BatchProcessRUPortType"/>

28 </plnk:partnerLinkType>

29 </definitions>

30

31

2.4. Fichier XSD (Définition des paramètres d’E/S du processus

BatchProcessRU)

Source : BatchProcessRUTypes.xsd

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd"

xmlns:tns="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd"

elementFormDefault="qualified">

<xsd:complexType name="input">

<xsd:sequence>

<xsd:element name="filter" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:complexType name="output">

<xsd:sequence>

<xsd:element name="message" type="xsd:string"/>

<xsd:element name="statecode" type="xsd:integer"/>

<xsd:element name="date">

<xsd:complexType>

Page 200: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 88

<xsd:sequence>

<xsd:element name="start" type="xsd:string"/>

<xsd:element name="end" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:schema>

2.5. Fichiers BPEL

2.5.1. Fichier source : ProcessRUById.bpel

<?xml version="1.0" encoding="UTF-8"?>

<process

name="processRUById"

targetNamespace="http://enterprise.netbeans.org/bpel/processRUById/processRUById"

xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace"

xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor"

xmlns:sxat="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Attachment"

xmlns:sxeh="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling"

xmlns:tns="http://enterprise.netbeans.org/bpel/processRUById/processRUById" xmlns:sxed2="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor2" xmlns:ns0="urn:wwwsubscrns" xmlns:ns1="urn:bdetuns" xmlns:ns2="urn:lprintns" xmlns:pbns="urn:pbns" xmlns:ns3="urn:ftpacntns" xmlns:ns4="urn:mailacntns" xmlns:sxxf="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/XPathFunctions" xmlns:ns5="urn:apaclmanns" xmlns:sxtx="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Transaction" sxtx:atomic="no" xmlns:ns6="urn:ippservicens" xmlns:ns7="urn:SMSServicens" xmlns:ns8="urn:tns">

<import namespace="http://j2ee.netbeans.org/wsdl/processRUById/processRUById"

location="processRUById.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

Page 201: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 89

<import namespace="http://enterprise.netbeans.org/bpel/servicesWrapper" location="servicesWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="urn:pbns" location="services.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="http://enterprise.netbeans.org/bpel/services_rnuWrapper" location="services_rnuWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="urn:tns" location="services_rnu.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<partnerLinks>

<partnerLink name="pbServicesLocalPL" xmlns:tns="http://enterprise.netbeans.org/bpel/servicesWrapper" partnerLinkType="tns:PodBridgeLinkType" partnerRole="PodBridgeRole"/>

<partnerLink name="pbServicesRNUPL" xmlns:tns="http://enterprise.netbeans.org/bpel/services_rnuWrapper" partnerLinkType="tns:PodBridgeLinkType" partnerRole="PodBridgeRole"/>

<partnerLink name="processRUByIdPL" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" partnerLinkType="tns:processRUById" myRole="processRUByIdPortTypeRole"/>

</partnerLinks>

<variables>

<variable name="DoSendSMS_bienvenue_Out" messageType="pbns:DoSendSMSResponse"/>

<variable name="DoSendSMS_bienvenue_In" messageType="pbns:DoSendSMSRequest"/>

<variable name="MSG_BIENVENUE" type="xsd:string"/>

<variable name="DoSendMail_bienvenue_Out" messageType="ns8:DoSendMailResponse"/>

<variable name="DoSendMail_bienvenue_In" messageType="ns8:DoSendMailRequest"/>

<variable name="DoSendMail_wifi_Out" messageType="ns8:DoSendMailResponse"/>

<variable name="DoSendMail_wifi_In" messageType="ns8:DoSendMailRequest"/>

<variable name="DoSendMail_ftp_Out" messageType="ns8:DoSendMailResponse"/>

<variable name="DoSendMail_ftp_In" messageType="ns8:DoSendMailRequest"/>

<variable name="MSG_PARAM_WIFI" type="xsd:string"/>

<variable name="MSG_PARAM_FTP" type="xsd:string"/>

<variable name="MSG_PARAM_MAIL" type="xsd:string"/>

<variable name="DoSendMail_mail_Out" messageType="ns8:DoSendMailResponse"/>

<variable name="DoSendMail_mail_In" messageType="ns8:DoSendMailRequest"/>

<variable name="DoCreateMailUserAccount2Out" messageType="ns8:DoCreateMailUserAccount2Response"/>

<variable name="DoCreateMailUserAccount2In"

messageType="ns8:DoCreateMailUserAccount2Request"/>

Page 202: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 90

<variable name="DoSendSMSOut_wifi" messageType="pbns:DoSendSMSResponse"/>

<variable name="DoSendSMSIn_wifi" messageType="pbns:DoSendSMSRequest"/>

<variable name="DoSendSMSOut_mail" messageType="pbns:DoSendSMSResponse"/>

<variable name="DoSendSMSIn_mail" messageType="pbns:DoSendSMSRequest"/>

<variable name="DoSendSMSOut_ftp" messageType="pbns:DoSendSMSResponse"/>

<variable name="DoSendSMSIn_ftp" messageType="pbns:DoSendSMSRequest"/>

<variable name="GetAccuseOut" messageType="pbns:GetAccuseResponse"/>

<variable name="GetAccuseIn" messageType="pbns:GetAccuseRequest"/>

<variable name="UpdateStudentByIdOut" messageType="pbns:UpdateStudentByIdResponse"/>

<variable name="UpdateStudentByIdIn" messageType="pbns:UpdateStudentByIdRequest"/>

<variable name="SetFTPUserWelcomeMsgOut" messageType="pbns:SetFTPUserWelcomeMsgResponse"/>

<variable name="SetFTPUserWelcomeMsgIn" messageType="pbns:SetFTPUserWelcomeMsgRequest"/>

<variable name="DoFTPsendFileOut1" messageType="pbns:DoFTPsendFileResponse"/>

<variable name="DoFTPsendFileIn1" messageType="pbns:DoFTPsendFileRequest"/>

<variable name="DoForwardMACaddrOut" messageType="pbns:DoForwardMACaddrResponse"/>

<variable name="DoForwardMACaddrIn" messageType="pbns:DoForwardMACaddrRequest"/>

<variable name="SetFTPUserAccountExpiryDateOut" messageType="pbns:SetFTPUserAccountExpiryDateResponse"/>

<variable name="SetFTPUserAccountExpiryDateIn" messageType="pbns:SetFTPUserAccountExpiryDateRequest"/>

<variable name="DoFTPsendFileOut" messageType="pbns:DoFTPsendFileResponse"/>

<variable name="DoFTPsendFileIn" messageType="pbns:DoFTPsendFileRequest"/>

<variable name="processRUByIdOperationOut1" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" messageType="tns:processRUByIdOperationResponse"/>

<variable name="DoCreateFTPUserAccountOut" messageType="pbns:DoCreateFTPUserAccountResponse"/>

<variable name="DoCreateFTPUserAccountIn" messageType="pbns:DoCreateFTPUserAccountRequest"/>

<variable name="GetStudentByIdOut" messageType="pbns:GetStudentByIdResponse"/>

<variable name="GetStudentByIdIn" messageType="pbns:GetStudentByIdRequest"/>

<variable name="DoPrintWebPageOut" xmlns:pbns="urn:pbns"

messageType="pbns:DoPrintWebPageResponse"/>

Page 203: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 91

<variable name="DoPrintWebPageIn" xmlns:pbns="urn:pbns" messageType="pbns:DoPrintWebPageRequest"/>

<variable name="processRUByIdOperationOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" messageType="tns:processRUByIdOperationResponse"/>

<variable name="processRUByIdOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" messageType="tns:processRUByIdOperationRequest"/>

<variable name="SYNC" type="xsd:boolean"/>

<variable name="KEY" type="xsd:string"/>

<variable name="KEY_EMAIL" type="xsd:string"/>

<variable name="FTP_CREATED" type="xsd:boolean"/>

<variable name="MAC_FRWD" type="xsd:boolean"/>

<variable name="MAIL_SENDER" type="xsd:string"/>

</variables>

<sequence name="main_seq">

<receive name="Receive" createInstance="yes" partnerLink="processRUByIdPL" operation="processRUByIdOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" portType="tns:processRUByIdPortType" variable="processRUByIdOperationIn"/>

<assign name="initialisation">

<copy>

<from>true()</from>

<to variable="SYNC"/>

</copy>

<copy>

<from>'9818549272864b45c730'</from>

<to variable="KEY"/>

</copy>

<copy>

<from>false()</from>

<to variable="FTP_CREATED"/>

</copy>

<copy>

<from>'[email protected]'</from>

<to variable="MAIL_SENDER"/>

</copy>

<copy>

<from>'691292877050480f54b5'</from>

<to variable="KEY_EMAIL"/>

</copy>

<copy>

<from>false()</from>

<to variable="MAC_FRWD"/>

</copy>

</assign>

Page 204: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 92

<sequence name="Sequence1">

<sequence name="Sequence6">

<flow name="Flow22">

<sequence name="FlowSequence11">

<assign name="get_etudiant">

<copy>

<from variable="KEY"/>

<to>$GetStudentByIdIn.body/ns1:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$GetStudentByIdIn.body/ns1:sync</to>

</copy>

<copy>

<from variable="processRUByIdOperationIn" part="identifiant"/>

<to>$GetStudentByIdIn.body/ns1:id</to>

</copy>

</assign>

<invoke name="GET_ETUDIANT" partnerLink="pbServicesLocalPL" operation="getStudentById" portType="pbns:PodBridgePortType" inputVariable="GetStudentByIdIn" outputVariable="GetStudentByIdOut"/>

</sequence>

<sequence name="FlowSequence22">

<assign name="gataccuse">

<copy>

<from variable="KEY"/>

<to>$GetAccuseIn.body/ns0:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$GetAccuseIn.body/ns0:sync</to>

</copy>

<copy>

<from variable="processRUByIdOperationIn" part="identifiant"/>

<to>$GetAccuseIn.body/ns0:studentident</to>

</copy>

<copy>

<from>'2009/2010'</from>

<to>$GetAccuseIn.body/ns0:au</to>

</copy>

</assign>

<invoke name="GETACCUSE" partnerLink="pbServicesLocalPL" operation="getAccuse"

Page 205: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 93

portType="pbns:PodBridgePortType" inputVariable="GetAccuseIn" outputVariable="GetAccuseOut"/>

</sequence>

</flow>

<if name="if_pai_check" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById">

<condition>0 = $GetAccuseOut.body/ns0:status/pbns:code</condition>

<sequence name="Sequence7">

<assign name="acc_updatedb">

<copy>

<from variable="KEY"/>

<to>$UpdateStudentByIdIn.body/ns1:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$UpdateStudentByIdIn.body/ns1:sync</to>

</copy>

<copy>

<from>$GetAccuseOut.body/ns0:response/ns0:refaccuse</from>

<to>$UpdateStudentByIdIn.body/ns1:refrecu</to>

</copy>

</assign>

<assign name="imprimer">

<copy>

<from variable="KEY"/>

<to>$DoPrintWebPageIn.body/ns6:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoPrintWebPageIn.body/ns6:sync</to>

</copy>

<copy>

<from>$GetAccuseOut.body/ns0:response/ns0:urlaccuse</from>

<to>$DoPrintWebPageIn.body/ns6:url</to>

</copy>

<copy>

<from>concat('ACCUSE-', $processRUByIdOperationIn.identifiant)</from>

<to>$DoPrintWebPageIn.body/ns6:jobname</to>

</copy>

</assign>

Page 206: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 94

<invoke name="IMPRIMER" partnerLink="pbServicesLocalPL" operation="doPrintWebPage" portType="pbns:PodBridgePortType" inputVariable="DoPrintWebPageIn" outputVariable="DoPrintWebPageOut"/>

<sequence name="compte_e-mail">

<if name="If_email">

<condition>'' = $GetStudentByIdOut.body/ns1:response/ns1:email</condition>

<sequence name="Sequence3">

<assign name="create_email2">

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:nom</from>

<to>$DoCreateMailUserAccount2In.body/ns4:lstname</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:prenom</from>

<to>$DoCreateMailUserAccount2In.body/ns4:fstname</to>

</copy>

<copy>

<from variable="KEY_EMAIL"/>

<to>$DoCreateMailUserAccount2In.body/ns4:key</to>

</copy>

<copy>

<from>false()</from>

<to>$DoCreateMailUserAccount2In.body/ns4:genpswd</to>

</copy>

<copy>

<from variable="processRUByIdOperationIn" part="identifiant"/>

<to>$DoCreateMailUserAccount2In.body/ns4:password</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoCreateMailUserAccount2In.body/ns4:sync</to>

</copy>

</assign>

<invoke name="CREATE_EMAIL2" partnerLink="pbServicesRNUPL" operation="doCreateMailUserAccount2"

Page 207: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 95

portType="ns8:PodBridgePortType" inputVariable="DoCreateMailUserAccount2In" outputVariable="DoCreateMailUserAccount2Out"/>

<assign name="bd_email">

<copy>

<from variable="SYNC"/>

<to>$UpdateStudentByIdIn.body/ns1:sync</to>

</copy>

<copy>

<from variable="KEY"/>

<to>$UpdateStudentByIdIn.body/ns1:key</to>

</copy>

<copy>

<from>$DoCreateMailUserAccount2Out.body/ns4:response/ns4:EmailAdress</from>

<to>$UpdateStudentByIdIn.body/ns1:email</to>

</copy>

<copy>

<from>$DoCreateMailUserAccount2Out.body/ns4:response/ns4:EmailAdress</from>

<to>$GetStudentByIdOut.body/ns1:response/ns1:email</to>

</copy>

</assign>

<assign name="message_mail">

<copy>

<from>concat('Parametres de votre nouveau compte mail ', '* login: ', $DoCreateMailUserAccount2Out.body/ns4:response/ns4:EmailAdress, ' * password: ', $DoCreateMailUserAccount2Out.body/ns4:response/ns4:Password, ' * Port POP: ', $DoCreateMailUserAccount2Out.body/ns4:response/ns4:POP3Port, $DoCreateMailUserAccount2Out.body/ns4:response/ns4:SMTPPort, " * Port SMTP: '", ' * Consulter vos mails sur http://', $DoCreateMailUserAccount2Out.body/ns4:response/ns4:WebMailUrl)</from>

<to variable="MSG_PARAM_MAIL"/>

</copy>

</assign>

<flow name="mail_notifier">

<sequence name="mail_mail_seq">

<assign name="sendmailmail">

<copy>

<from

variable="KEY_EMAIL"/>

Page 208: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 96

<to>$DoSendMail_mail_In.body/ns4:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoSendMail_mail_In.body/ns4:sync</to>

</copy>

<copy>

<from variable="MAIL_SENDER"/>

<to>$DoSendMail_mail_In.body/ns4:from</to>

</copy>

<copy>

<from>$DoCreateMailUserAccount2Out.body/ns4:response/ns4:EmailAdress</from>

<to>$DoSendMail_mail_In.body/ns4:to</to>

</copy>

<copy>

<from>'Parametres de votre nouveau compte mail '</from>

<to>$DoSendMail_mail_In.body/ns4:subject</to>

</copy>

<copy>

<from variable="MSG_PARAM_MAIL"/>

<to>$DoSendMail_mail_In.body/ns4:message</to>

</copy>

</assign>

<invoke name="SENDMAILMAIL" partnerLink="pbServicesRNUPL" operation="doSendMail" portType="ns8:PodBridgePortType" inputVariable="DoSendMail_mail_In" outputVariable="DoSendMail_mail_Out"/>

</sequence>

<sequence name="mail_sms_seq">

<if name="ifhastel_mail">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:tel != ''</condition>

<sequence name="Sequence14">

Page 209: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 97

<assign name="smsmail">

<copy>

<from variable="KEY"/>

<to>$DoSendSMSIn_mail.body/ns7:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoSendSMSIn_mail.body/ns7:sync</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:tel</from>

<to>$DoSendSMSIn_mail.body/ns7:destinataire</to>

</copy>

<copy>

<from variable="MSG_PARAM_MAIL"/>

<to>$DoSendSMSIn_mail.body/ns7:message</to>

</copy>

</assign>

<invoke name="SMSMAIL" partnerLink="pbServicesLocalPL" operation="doSendSMS" portType="pbns:PodBridgePortType" inputVariable="DoSendSMSIn_mail" outputVariable="DoSendSMSOut_mail"/>

</sequence>

</if>

</sequence>

</flow>

</sequence>

</if>

</sequence>

<flow name="Flow1">

<sequence name="compte_FTP">

Page 210: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 98

<if name="If_TI">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:dep = 'TI'</condition>

<sequence name="Sequence2">

<if name="If_existe_ftp">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:loginftp = ''</condition>

<sequence name="Sequence10">

<assign name="create_ftp">

<copy>

<from variable="KEY"/>

<to>$DoCreateFTPUserAccountIn.body/ns3:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoCreateFTPUserAccountIn.body/ns3:sync</to>

</copy>

<copy>

<from>'31/12/2019'</from>

<to>$DoCreateFTPUserAccountIn.body/ns3:expiry_date</to>

</copy>

<copy>

<from>concat('etu_', $processRUByIdOperationIn.identifiant)</from>

<to>$DoCreateFTPUserAccountIn.body/ns3:user</to>

</copy>

<copy>

<from>false()</from>

<to>$DoCreateFTPUserAccountIn.body/ns3:use_welcome</to>

</copy>

</assign>

<invoke name="CREATE_FTP" partnerLink="pbServicesLocalPL" operation="doCreateFTPUserAccount" portType="pbns:PodBridgePortType" inputVariable="DoCreateFTPUserAccountIn" outputVariable="DoCreateFTPUserAccountOut"/>

<assign name="bd_loginftp">

<copy>

<from>$DoCreateFTPUserAccountOut.body/ns3:response/ns3:UserLogin</from>

<to>$UpdateStudentByIdIn.body/ns1:loginftp</to>

Page 211: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 99

</copy>

<copy>

<from>$DoCreateFTPUserAccountOut.body/ns3:response/ns3:UserLogin</from>

<to>$GetStudentByIdOut.body/ns1:response/ns1:loginftp</to>

</copy>

<copy>

<from>true()</from>

<to variable="FTP_CREATED"/>

</copy>

</assign>

<assign name="ftp_msg_bienvenu">

<copy>

<from variable="KEY"/>

<to>$SetFTPUserWelcomeMsgIn.body/ns3:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$SetFTPUserWelcomeMsgIn.body/ns3:sync</to>

</copy>

<copy>

<from>concat(sxxf:current-dateTime(), 'Bienvenu ', $GetStudentByIdOut.body/ns1:response/ns1:nom, ' ', $GetStudentByIdOut.body/ns1:response/ns1:prenom, ', AVERTISSEMENT: VOUS ETES LE SEUL RESPONSABLE DU CONTENU DE VOTRE COMPTE OU COMPTE DE PLUS VOUS ETES LIMITE A SON USAGE UNIQUEMENT POUR VOS BESOINS EDUCATIFS !')</from>

<to>$SetFTPUserWelcomeMsgIn.body/ns3:message</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:loginftp</from>

<to>$SetFTPUserWelcomeMsgIn.body/ns3:user</to>

</copy>

</assign>

<invoke name="FTP_MSG_BIENVENU" partnerLink="pbServicesLocalPL" operation="setFTPUserWelcomeMsg" portType="pbns:PodBridgePortType" inputVariable="SetFTPUserWelcomeMsgIn"

outputVariable="SetFTPUserWelcomeMsgOut"/>

Page 212: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 100

<assign name="message_ftp">

<copy>

<from>concat('Parametres de votre nouveau compte FTP ', ' * Login : ', $DoCreateFTPUserAccountOut.body/ns3:response/ns3:UserLogin, ' * Password : ', $DoCreateFTPUserAccountOut.body/ns3:response/ns3:Password, ' * FTP Port : ', $DoCreateFTPUserAccountOut.body/ns3:response/ns3:FTPPort, ' * Address : ', $DoCreateFTPUserAccountOut.body/ns3:response/ns3:ServerDomain)</from>

<to variable="MSG_PARAM_FTP"/>

</copy>

</assign>

<flow name="ftp_notifier">

<sequence name="mail_ftp_seq">

<assign name="sendmailftp">

<copy>

<from variable="SYNC"/>

<to>$DoSendMail_ftp_In.body/ns4:sync</to>

</copy>

<copy>

<from variable="MAIL_SENDER"/>

<to>$DoSendMail_ftp_In.body/ns4:from</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:email</from>

<to>$DoSendMail_ftp_In.body/ns4:to</to>

</copy>

<copy>

<from>'Parametres de votre nouveau compte FTP'</from>

<to>$DoSendMail_ftp_In.body/ns4:subject</to>

</copy>

<copy>

<from variable="MSG_PARAM_FTP"/>

<to>$DoSendMail_ftp_In.body/ns4:message</to>

</copy>

<copy>

Page 213: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 101

<from variable="KEY_EMAIL"/>

<to>$DoSendMail_ftp_In.body/ns4:key</to>

</copy>

</assign>

<invoke name="SENDMAILFTP" partnerLink="pbServicesRNUPL" operation="doSendMail" portType="ns8:PodBridgePortType" inputVariable="DoSendMail_ftp_In" outputVariable="DoSendMail_ftp_Out"/>

</sequence>

<sequence name="ftp_sms_seq">

<if name="ifhastel_ftp">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:tel != ''</condition>

<sequence name="Sequence16">

<assign name="smsftp">

<copy>

<from variable="KEY"/>

<to>$DoSendSMSIn_ftp.body/ns7:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoSendSMSIn_ftp.body/ns7:sync</to>

</copy>

<copy>

<from variable="MSG_PARAM_FTP"/>

<to>$DoSendSMSIn_ftp.body/ns7:message</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:tel</from>

Page 214: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 102

<to>$DoSendSMSIn_ftp.body/ns7:destinataire</to>

</copy>

</assign>

<invoke name="SMSFTP" partnerLink="pbServicesLocalPL" operation="doSendSMS" portType="pbns:PodBridgePortType" inputVariable="DoSendSMSIn_ftp" outputVariable="DoSendSMSOut_ftp"/>

</sequence>

</if>

</sequence>

</flow>

</sequence>

<else>

<sequence name="Sequence11">

<assign name="etendre_date_expiration">

<copy>

<from variable="KEY"/>

<to>$SetFTPUserAccountExpiryDateIn.body/ns3:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$SetFTPUserAccountExpiryDateIn.body/ns3:sync</to>

</copy>

<copy>

<from>'31/12/2020'</from>

<to>$SetFTPUserAccountExpiryDateIn.body/ns3:expiry_date</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:loginftp</from>

<to>$SetFTPUserAccountExpiryDateIn.body/ns3:user</to>

</copy>

</assign>

<invoke name="ETENDRE_DATE_EXPIRATION" partnerLink="pbServicesLocalPL" operation="setFTPUserAccountExpiryDate" portType="pbns:PodBridgePortType" inputVariable="SetFTPUserAccountExpiryDateIn"

outputVariable="SetFTPUserAccountExpiryDateOut"/>

Page 215: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 103

</sequence>

</else>

</if>

<flow name="Flow3">

<sequence name="cours">

<assign name="envoyer_cours">

<copy>

<from variable="KEY"/>

<to>$DoFTPsendFileIn1.body/ns3:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoFTPsendFileIn1.body/ns3:sync</to>

</copy>

<copy>

<from>concat('cours_', $GetStudentByIdOut.body/ns1:response/ns1:spec, $GetStudentByIdOut.body/ns1:response/ns1:niveau)</from>

<to>$DoFTPsendFileIn1.body/ns3:file</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:loginftp</from>

<to>$DoFTPsendFileIn1.body/ns3:user</to>

</copy>

</assign>

<invoke name="ENVOYER_COURS" partnerLink="pbServicesLocalPL" operation="doFTPsendFile" portType="pbns:PodBridgePortType" inputVariable="DoFTPsendFileIn1" outputVariable="DoFTPsendFileOut1"/>

</sequence>

<if name="If_niv2_ou_plus">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:niveau &gt; 2</condition>

<sequence name="Sequence9">

<assign name="envoyer_cours_uml">

<copy>

<from variable="KEY"/>

<to>$DoFTPsendFileIn.body/ns3:key</to>

</copy>

Page 216: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 104

<copy>

<from variable="SYNC"/>

<to>$DoFTPsendFileIn.body/ns3:sync</to>

</copy>

<copy>

<from>'Cours-UML.pdf'</from>

<to>$DoFTPsendFileIn.body/ns3:file</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:loginftp</from>

<to>$DoFTPsendFileIn.body/ns3:user</to>

</copy>

</assign>

<invoke name="ENVOYER_COURS_UML" partnerLink="pbServicesLocalPL" operation="doFTPsendFile" portType="pbns:PodBridgePortType" inputVariable="DoFTPsendFileIn" outputVariable="DoFTPsendFileOut"/>

</sequence>

</if>

</flow>

</sequence>

</if>

</sequence>

<sequence name="filtrage_mac">

<if name="if_adrmac">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:adrmac != ''</condition>

<sequence name="Sequence13">

<assign name="autorise_mac">

<copy>

<from variable="KEY"/>

<to>$DoForwardMACaddrIn.body/ns5:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoForwardMACaddrIn.body/ns5:sync</to>

</copy>

<copy>

Page 217: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 105

<from>$GetStudentByIdOut.body/ns1:response/ns1:adrmac</from>

<to>$DoForwardMACaddrIn.body/ns5:macaddr</to>

</copy>

</assign>

<invoke name="AUTORISE_MAC" partnerLink="pbServicesLocalPL" operation="doForwardMACaddr" portType="pbns:PodBridgePortType" inputVariable="DoForwardMACaddrIn" outputVariable="DoForwardMACaddrOut"/>

<assign name="settrue">

<copy>

<from>true()</from>

<to variable="MAC_FRWD"/>

</copy>

</assign>

<assign name="message_wifi">

<copy>

<from>concat("Dès maintenant Vous etes autorisé à se connecter au réseau sans fil d'ISET Jerba ", ' * SSID : ', $DoForwardMACaddrOut.body/ns5:response/ns5:ssid, ' * Clé : ', $DoForwardMACaddrOut.body/ns5:response/ns5:auth_key)</from>

<to variable="MSG_PARAM_WIFI"/>

</copy>

</assign>

<flow name="wifi_notifier">

<sequence name="mail_wifi_seq">

<assign name="sendmailwifi">

<copy>

<from variable="SYNC"/>

<to>$DoSendMail_wifi_In.body/ns4:sync</to>

</copy>

<copy>

<from variable="MAIL_SENDER"/>

<to>$DoSendMail_wifi_In.body/ns4:from</to>

</copy>

<copy>

<from variable="MSG_PARAM_WIFI"/>

<to>$DoSendMail_wifi_In.body/ns4:message</to>

Page 218: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 106

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:email</from>

<to>$DoSendMail_wifi_In.body/ns4:to</to>

</copy>

<copy>

<from>"Vous etes autoriser à se connecté au réseau sans Fil d'ISET Jerba"</from>

<to>$DoSendMail_wifi_In.body/ns4:subject</to>

</copy>

<copy>

<from variable="KEY_EMAIL"/>

<to>$DoSendMail_wifi_In.body/ns4:key</to>

</copy>

</assign>

<invoke name="SENDMAILWIFI" partnerLink="pbServicesRNUPL" operation="doSendMail" portType="ns8:PodBridgePortType" inputVariable="DoSendMail_wifi_In" outputVariable="DoSendMail_wifi_Out"/>

</sequence>

<sequence name="wifi_sms_seq">

<if name="ifhastel_wifi">

<condition>$GetStudentByIdOut.body/ns1:response/ns1:tel != ''</condition>

<sequence name="Sequence15">

<assign name="smswifi">

<copy>

<from variable="KEY"/>

<to>$DoSendSMSIn_wifi.body/ns7:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoSendSMSIn_wifi.body/ns7:sync</to>

</copy>

<copy>

Page 219: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 107

<from>$GetStudentByIdOut.body/ns1:response/ns1:tel</from>

<to>$DoSendSMSIn_wifi.body/ns7:destinataire</to>

</copy>

<copy>

<from variable="MSG_PARAM_WIFI"/>

<to>$DoSendSMSIn_wifi.body/ns7:message</to>

</copy>

</assign>

<invoke name="SMSWIFI" partnerLink="pbServicesLocalPL" operation="doSendSMS" portType="pbns:PodBridgePortType" inputVariable="DoSendSMSIn_wifi" outputVariable="DoSendSMSOut_wifi"/>

</sequence>

</if>

</sequence>

</flow>

</sequence>

</if>

</sequence>

</flow>

<assign name="message_bienvenue">

<copy>

<from>concat('Bienvenu ', $GetStudentByIdOut.body/ns1:response/ns1:nom, ' ', $GetStudentByIdOut.body/ns1:response/ns1:prenom, ' ISET Djerba vous souhaite une bonne rentrée universiaire 2009/2010.')</from>

<to variable="MSG_BIENVENUE"/>

</copy>

</assign>

<flow name="Flow23">

<sequence name="FlowSequence">

<assign name="sendmailbienvenue">

<copy>

<from variable="SYNC"/>

<to>$DoSendMail_bienvenue_In.body/ns4:sync</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:email</from>

<to>$DoSendMail_bienvenue_In.body/ns4:to</to>

</copy>

Page 220: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 108

<copy>

<from variable="MAIL_SENDER"/>

<to>$DoSendMail_bienvenue_In.body/ns4:from</to>

</copy>

<copy>

<from variable="MSG_BIENVENUE"/>

<to>$DoSendMail_bienvenue_In.body/ns4:message</to>

</copy>

<copy>

<from>'bienvenue'</from>

<to>$DoSendMail_bienvenue_In.body/ns4:subject</to>

</copy>

<copy>

<from variable="KEY_EMAIL"/>

<to>$DoSendMail_bienvenue_In.body/ns4:key</to>

</copy>

</assign>

<invoke name="SENDMAILBIENVENUE" partnerLink="pbServicesRNUPL" operation="doSendMail" portType="ns8:PodBridgePortType" inputVariable="DoSendMail_bienvenue_In" outputVariable="DoSendMail_bienvenue_Out"/>

</sequence>

<sequence name="FlowSequence1">

<assign name="smsbienvenue">

<copy>

<from variable="KEY"/>

<to>$DoSendSMS_bienvenue_In.body/ns7:key</to>

</copy>

<copy>

<from variable="SYNC"/>

<to>$DoSendSMS_bienvenue_In.body/ns7:sync</to>

</copy>

<copy>

<from>$GetStudentByIdOut.body/ns1:response/ns1:tel</from>

<to>$DoSendSMS_bienvenue_In.body/ns7:destinataire</to>

</copy>

<copy>

<from variable="MSG_BIENVENUE"/>

Page 221: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 109

<to>$DoSendSMS_bienvenue_In.body/ns7:message</to>

</copy>

</assign>

<invoke name="SMSBIENVENUE" partnerLink="pbServicesLocalPL" operation="doSendSMS" portType="pbns:PodBridgePortType" inputVariable="DoSendSMS_bienvenue_In" outputVariable="DoSendSMS_bienvenue_Out"/>

</sequence>

</flow>

<assign name="reply_bdetu_ok">

<copy>

<from>'OK'</from>

<to variable="processRUByIdOperationOut" part="statut"/>

</copy>

<copy>

<from>'OK'</from>

<to>$UpdateStudentByIdIn.body/ns1:process</to>

</copy>

</assign>

</sequence>

<else>

<sequence>

<assign name="reply_bdetu_pai">

<copy>

<from>'PAI'</from>

<to variable="processRUByIdOperationOut" part="statut"/>

</copy>

<copy>

<from>'PAI'</from>

<to>$UpdateStudentByIdIn.body/ns1:process</to>

</copy>

</assign>

</sequence>

</else>

</if>

</sequence>

</sequence>

<assign name="mettre_a_jour_bdetu">

<copy>

<from variable="KEY"/>

<to>$UpdateStudentByIdIn.body/ns1:key</to>

</copy>

Page 222: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 110

<copy>

<from variable="SYNC"/>

<to>$UpdateStudentByIdIn.body/ns1:sync</to>

</copy>

<copy>

<from variable="processRUByIdOperationIn" part="identifiant"/>

<to>$UpdateStudentByIdIn.body/ns1:id</to>

</copy>

</assign>

<invoke name="METTRE_A_JOUR_BDETU" partnerLink="pbServicesLocalPL" operation="updateStudentById" xmlns:pbns="urn:pbns" portType="pbns:PodBridgePortType" inputVariable="UpdateStudentByIdIn" outputVariable="UpdateStudentByIdOut"/>

<reply name="Reply" partnerLink="processRUByIdPL" operation="processRUByIdOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" portType="tns:processRUByIdPortType" variable="processRUByIdOperationOut"/>

</sequence>

</process>

2.5.2. Fichier Source : BatchProcessRU.bpel

<?xml version="1.0" encoding="UTF-8"?>

<process

name="batchProcessRU"

targetNamespace="http://enterprise.netbeans.org/bpel/BatchProcessRU/batchProcessRU"

xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace"

xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor"

xmlns:sxat="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Attachment"

xmlns:sxeh="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling"

xmlns:tns="http://enterprise.netbeans.org/bpel/BatchProcessRU/batchProcessRU" xmlns:sxed2="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor2" xmlns:ns0="http://xml.netbeans.org/schema/BatchProcessRUTypes.xsd" xmlns:sxxf="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/XPathFun

Page 223: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 111

ctions" xmlns:ns1="urn:bdetuns" xmlns:ns2="urn:pbns" xmlns:ns3="urn:tns" xmlns:ns4="urn:mailacntns" xmlns:ns5="urn:SMSServicens">

<import namespace="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU" location="BatchProcessRU.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="http://enterprise.netbeans.org/bpel/getNextIdWrapper" location="getNextIdWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="urn:pbns" location="getNextId.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="http://enterprise.netbeans.org/bpel/doSendMailWrapper" location="doSendMailWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="urn:tns" location="doSendMail.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="http://enterprise.netbeans.org/bpel/doSendSMSWrapper" location="doSendSMSWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="urn:pbns" location="doSendSMS.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<import namespace="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" location="http://walid-laptop:9080/processRUByIdCA-sun-http-binding/processRUById/processRUById.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>

<partnerLinks>

<partnerLink name="BatchProcessRUPL" xmlns:tns="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU" partnerLinkType="tns:BatchProcessRU" myRole="BatchProcessRUPortTypeRole"/>

<partnerLink name="getNextIdPL" xmlns:tns="http://enterprise.netbeans.org/bpel/getNextIdWrapper" partnerLinkType="tns:PodBridgeGetNextIdLinkType" partnerRole="PodBridgeGetNextIdRole"/>

<partnerLink name="doSendMailPL" xmlns:tns="http://enterprise.netbeans.org/bpel/doSendMailWrapper" partnerLinkType="tns:PodBridgeDoSendMailLinkType" partnerRole="PodBridgeDoSendMailRole"/>

<partnerLink name="doSendSMSPL" xmlns:tns="http://enterprise.netbeans.org/bpel/doSendSMSWrapper" partnerLinkType="tns:PodBridgeDoSendSMSLinkType" partnerRole="PodBridgeDoSendSMSRole"/>

<partnerLink name="processByIdPL" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" partnerLinkType="tns:processRUById" partnerRole="processRUByIdPortTypeRole"/>

</partnerLinks>

<variables>

<variable name="MSG" type="xsd:string"/>

<variable name="DoSendSMSOut" messageType="ns2:DoSendSMSResponse"/>

<variable name="DoSendSMSIn" messageType="ns2:DoSendSMSRequest"/>

<variable name="DoSendMailOut" messageType="ns3:DoSendMailResponse"/>

<variable name="DoSendMailIn" messageType="ns3:DoSendMailRequest"/>

<variable name="KEY_RNU" type="xsd:string"/>

<variable name="KEY_LOCAL" type="xsd:string"/>

Page 224: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 112

<variable name="GetNextIdOut" xmlns:pbns="urn:pbns" messageType="pbns:GetNextIdResponse"/>

<variable name="GetNextIdIn" xmlns:pbns="urn:pbns" messageType="pbns:GetNextIdRequest"/>

<variable name="BatchProcessRUOperationOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU" messageType="tns:BatchProcessRUOperationResponse"/>

<variable name="BatchProcessRUOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU" messageType="tns:BatchProcessRUOperationRequest"/>

<variable name="ProcessRUByIdOperationOut" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" messageType="tns:processRUByIdOperationResponse"/>

<variable name="ProcessRUByIdOperationIn" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" messageType="tns:processRUByIdOperationRequest"/>

</variables>

<sequence>

<receive name="RECEIVE" createInstance="yes" partnerLink="BatchProcessRUPL" operation="BatchProcessRUOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU" portType="tns:BatchProcessRUPortType" variable="BatchProcessRUOperationIn"/>

<assign name="init">

<copy>

<from>'691292877050480f54b5'</from>

<to variable="KEY_RNU"/>

</copy>

<copy>

<from>'691292877050480f54b5'</from>

<to variable="KEY_LOCAL"/>

</copy>

<copy>

<from>sxxf:current-dateTime()</from>

<to>$BatchProcessRUOperationOut.part1/ns0:date/ns0:start</to>

</copy>

</assign>

<assign name="getnextid_init">

<copy>

<from variable="KEY_LOCAL"/>

<to>$GetNextIdIn.body/ns1:key</to>

</copy>

<copy>

<from>true()</from>

<to>$GetNextIdIn.body/ns1:sync</to>

</copy>

<copy>

<from>$BatchProcessRUOperationIn.part1/ns0:filter</from>

Page 225: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 113

<to>$GetNextIdIn.body/ns1:filter</to>

</copy>

</assign>

<repeatUntil name="RepeatUntil_lastid">

<sequence name="Sequence1">

<invoke name="GETNEXTID" partnerLink="getNextIdPL" operation="getNextId" xmlns:pbns="urn:pbns" portType="pbns:PodBridgeGetNextIdPortType" inputVariable="GetNextIdIn" outputVariable="GetNextIdOut"/>

<if name="ifexist">

<condition>$GetNextIdOut.body/ns1:status/ns2:code = 0</condition>

<sequence name="Sequence2">

<assign name="getnextid">

<copy>

<from>$GetNextIdOut.body/ns1:response/ns1:nextid</from>

<to>$GetNextIdIn.body/ns1:id</to>

</copy>

<copy>

<from variable="KEY_LOCAL"/>

<to>$GetNextIdIn.body/ns1:key</to>

</copy>

<copy>

<from>true()</from>

<to>$GetNextIdIn.body/ns1:sync</to>

</copy>

<copy>

<from>$BatchProcessRUOperationIn.part1/ns0:filter</from>

<to>$GetNextIdIn.body/ns1:filter</to>

</copy>

</assign>

<assign name="processrubyid">

<copy>

<from>$GetNextIdOut.body/ns1:response/ns1:nextid</from>

<to variable="ProcessRUByIdOperationIn" part="identifiant"/>

</copy>

</assign>

<invoke name="PROCESSRUBYID" partnerLink="processByIdPL" operation="processRUByIdOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/processRUById/processRUById" portType="tns:processRUByIdPortType" inputVariable="ProcessRUByIdOperationIn" outputVariable="ProcessRUByIdOperationOut"/>

</sequence>

Page 226: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 114

</if>

</sequence>

<condition>$GetNextIdOut.body/ns1:response/ns1:last = true() or $GetNextIdOut.body/ns1:status/ns2:code != 0</condition>

</repeatUntil>

<assign name="message">

<copy>

<from>concat('Exécution de ProcessRUById est Terminée avec succès !', '* Démarré : ', $BatchProcessRUOperationOut.part1/ns0:date/ns0:start, ' * Fin : ', sxxf:current-dateTime())</from>

<to variable="MSG"/>

</copy>

</assign>

<flow name="notify_admin">

<sequence name="FlowSequence">

<assign name="mail">

<copy>

<from variable="KEY_RNU"/>

<to>$DoSendMailIn.body/ns4:key</to>

</copy>

<copy>

<from>true()</from>

<to>$DoSendMailIn.body/ns4:sync</to>

</copy>

<copy>

<from>'[email protected]'</from>

<to>$DoSendMailIn.body/ns4:from</to>

</copy>

<copy>

<from>'[email protected]'</from>

<to>$DoSendMailIn.body/ns4:to</to>

</copy>

<copy>

<from>'Exéction de BatchProcessRU terminée !'</from>

<to>$DoSendMailIn.body/ns4:subject</to>

</copy>

<copy>

<from variable="MSG"/>

<to>$DoSendMailIn.body/ns4:message</to>

</copy>

</assign>

<invoke name="MAIL" partnerLink="doSendMailPL" operation="doSendMail" portType="ns3:PodBridgeDoSendMailPortType" inputVariable="DoSendMailIn" outputVariable="DoSendMailOut"/>

</sequence>

Page 227: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 115

<sequence name="FlowSequence1">

<assign name="sms">

<copy>

<from variable="KEY_LOCAL"/>

<to>$DoSendSMSIn.body/ns5:key</to>

</copy>

<copy>

<from>true()</from>

<to>$DoSendSMSIn.body/ns5:sync</to>

</copy>

<copy>

<from>'22939968'</from>

<to>$DoSendSMSIn.body/ns5:destinataire</to>

</copy>

<copy>

<from variable="MSG"/>

<to>$DoSendSMSIn.body/ns5:message</to>

</copy>

</assign>

<invoke name="SMS" partnerLink="doSendSMSPL" operation="doSendSMS" portType="ns2:PodBridgeDoSendSMSPortType" inputVariable="DoSendSMSIn" outputVariable="DoSendSMSOut"/>

</sequence>

</flow>

<assign name="reply">

<copy>

<from>'success'</from>

<to>$BatchProcessRUOperationOut.part1/ns0:message</to>

</copy>

<copy>

<from>0</from>

<to>$BatchProcessRUOperationOut.part1/ns0:statecode</to>

</copy>

<copy>

<from>sxxf:current-dateTime()</from>

<to>$BatchProcessRUOperationOut.part1/ns0:date/ns0:end</to>

</copy>

</assign>

<reply name="REPLY" partnerLink="BatchProcessRUPL" operation="BatchProcessRUOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/BatchProcessRU/BatchProcessRU" portType="tns:BatchProcessRUPortType" variable="BatchProcessRUOperationOut"/>

</sequence>

</process>

Page 228: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 116

2.6. Code source de l’application PHP (formulaire info etudiant)

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

2 <html>

3 <head>

4 <link rel="stylesheet" type="text/css" href="main.css" />

5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

6 <title>:: Remplir ce formulaire ::</title>

7 </head>

8 <body>

9 <center>

10 <?php

11 // init client

12 $client = new SoapClient("http://podbridge.intranet.demo/projects/unstable/podbridge/web/index.php/wsdl/all");

13 $key="691292877050480f54b5";

14

15 if (isset ($_POST['submit']) && $_POST['id']!=null ) {

16

17 try {

18

19 //Arguements

20 $arguments=array(

21 'key'=>$key,

22 'sync'=>'1',

23 'notify'=>'',

24 'abort'=>'',

25 'id'=>$_POST['id']

26 ) ;

27

28 $getStudentById_out = $client->getStudentById($arguments);

29

30 if ($getStudentById_out->status->code=='0')

31 $connected=true;

32

33 if ($_POST['tel']!=null || $_POST['mail']!=null || $_POST['mac']!=null ) {

34

35 //Arguements

36 $arguments=array(

37 'key'=>$key,

Page 229: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 117

38 'sync'=>'1',

39 'notify'=>'',

40 'abort'=>'',

41 'id'=>$_POST['id'],

42 'tel'=>$_POST['tel'],

43 'email'=>$_POST['mail'],

44 'loginftp'=>'',

45 'adrmac'=>$_POST['mac'],

46 'refrecu'=>'',

47 'process'=>''

48 ) ;

49

50 $updateStudentById_out = $client->updateStudentById($arguments);

51

52 if ($updateStudentById_out->status->code=='0') {

53 $updated=true;

54 }else {

55 if ($updateStudentById_out->status->code=='2')

56 ?><h3><?php echo ($updateStudentById_out->status->msg); ?></h3><?php

57 }

58

59

60 }

61

62 }

63 catch (SoapFault $e) {

64 print $e->getMessage();

65 }

66 }

67

68 ?>

69 <form id="formulaire" method="post" >

70 <h2>

71 <?php if ( $connected ) { ?>Bienvenu <?php echo $getStudentById_out->response->nom.' '.$getStudentById_out->response->prenom.' !' ;

72 } ?>

73 </h2>

74 <h1>

75 <?php if (! $connected) { ?>Authentification<?php } else { ?>Remplir le formulaire<?php } ?>

76 </h1>

77 <table>

Page 230: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 118

78 <tr align="right"><td>Votre identifiant:</td><td align="left" >

79 <input name="id" maxlength="8" value="<?php echo $_POST['id']; ?>">

80

81 </td></tr>

82 <tr align="right"><td id="exemple" colspan="2">Identifiant 8 chiffres</td></tr>

83 <?php if ( $connected ) { ?>

84 <tr align="right"><td>Adresse e-mail:</td><td><input name="mail" maxlength="50" value="<?php if (isset ($_POST['mail'])): echo $_POST['mail']; else: echo $getStudentById_out->response->email;

85 endif; ?>"></td></tr>

86 <tr align="right"><td id="exemple" colspan="2">[email protected]</td></tr>

87 <tr align="right"><td>Numéro de tél. perso:</td><td><input name="tel" maxlength="8" value="<?php if (isset ($_POST['tel'])): echo $_POST['tel']; else: echo $getStudentById_out->response->tel;

88 endif; ?>"></td></tr>

89 <tr align="right"><td id="exemple" colspan="2">8 chiffres</td></tr>

90 <tr align="right"><td>Votre adresse MAC:</td><td><input name="mac" maxlength="17" value="<?php if (isset ($_POST['mac'])): echo $_POST['mac']; else: echo $getStudentById_out->response->adrmac;

91 endif; ?>"></td></tr>

92 <tr align="right"><td id="exemple" colspan="2">format: XX:XX:XX:XX:XX:XX</td></tr>

93 <?php } ?>

94

95

96 </table>

97 <center>

98 <input id="bouton" name="submit" type="submit" value="OK"/>

99 </center>

100 <br>

101 <div align="left" id="exemple" >Vous serez notifier par mail et SMS, dès que nous traitons votre demande.</div>

102 </form>

103

104 </center>

105 </body>

106 </html>

107

Page 231: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 119

3. CAPTURES D’ECRAN

Page 232: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 120

3.1. SquirrelMail (http://webmail.rnu.edu.demo)

3.2. CUPS Web administration (http://cups.intranet.demo:631)

Page 233: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 121

3.3. Site web d’inscription univ. en ligne -

(http://inscription.edu.demo)

3.4. SoapUI 3.0.1

Page 234: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 122

3.5. PodBridge 1.2 (Interfaces d’administration)

Page 235: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 123

Page 236: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 124

Page 237: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 125

Page 238: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 126

Page 239: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 127

Page 240: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 128

3.6. Projet ProcessRUById (Quelques captures d’écrans)

Page 241: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 129

Page 242: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 130

Page 243: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 131

Page 244: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 132

3.7. Projet BatchProcessRU (Quelques captures d’écrans)

Page 245: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 133

3.8. Application web PHP (formulaire info etudiant)

Page 246: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 134

Page 247: Rapport PFE : (1) Urbanisation d’un système d’information universitaire SOA & BPM + (2) Documentation technique + Codes Sources