Fichiers de configuration Codes sources - walid.tn fileUrbanisation d’un Système d’information...

136
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

Transcript of Fichiers de configuration Codes sources - walid.tn fileUrbanisation d’un Système d’information...

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

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

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

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

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

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

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

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

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 =

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

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

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 12

2. 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,

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

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 ;

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

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

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

);

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

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

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

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 *

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 }

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

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 /**

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

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 *

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

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;

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

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

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;

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)

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

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 */

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

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_]+)*$/',

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 */

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

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

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

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

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;

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

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

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

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

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

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

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

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

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

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

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"/>

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"/>

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>

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>

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"/>

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"/>

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"/>

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"/>

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>

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"/>

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"/>

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>

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"/>

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"/>

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>

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>

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>

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>

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"/>

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

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

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>

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"/>

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>

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"/>

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>

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"/>

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>

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

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>

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>

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"/>

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"/>

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>

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/"/>

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"/>

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"/>

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>

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"

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>

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"

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"/>

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

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

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>

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"/>

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>

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>

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"/>

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>

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>

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>

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>

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>

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"/>

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>

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

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"/>

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>

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>

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>

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>

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,

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>

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

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

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)

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

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)

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 123

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 124

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 125

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 126

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 127

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)

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 129

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 130

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 131

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)

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)

Documentation Technique du Rapport PFE (Urbanisation d’un SI universitaire - SOA & BPM) Walid KARRAY | 2009 – 2010

ISET Djerba | TriTux PAGE 134