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 > 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
Top Related