Académique Documents
Professionnel Documents
Culture Documents
Documentation Technique
2017
Table des matières
I. Introduction .......................................................................................................... 4
2
TRUSTY - Documentation Technique.
4. Introduction ........................................................................................................ 23
3
TRUSTY - Documentation Technique.
I. Introduction
TRUTSY est l’association de deux applications que sont XPADOC de SenTrust et KAIROS de
SenSoft.
Alors qu’il était auparavant quasiment impossible de distinguer un faux diplôme sauf à appeler
directement l’institution émettrice, Sentrust, propose une solution informatique bien pensée
XPADOC, combinée aux signatures numériques, permettant désormais aux universités d’émettre
des diplômes totalement sécurisés en seulement quelques clics, et à un recruteur de les vérifier en
un seul clic.
KAIROS est une plateforme de gestion intégrée spécialement conçue pour le monde de l’éducation,
de l’enseignement et de la formation.
Il prend en compte tout le fonctionnement d’un établissement scolaire de la phase de recrutement à
la sortie des apprenants.
Dans TRUSTY, KAIROS se charge d’envoyer les informations des diplômes à XPADOC qui de
son côté procédera à la génération, à la signature, à l’impression et à l’authentification des diplômes
des établissements. C’est au niveau de l’ADIE que la plateforme sera hébergée car ils sont garants
de l’exploitation et de la promotion dans le secteur de l’éducation.
4
TRUSTY - Documentation Technique.
Définitions de quelques termes :
QRCODE : Un QR code, c’est un carré, rempli de petits carrés noirs et blancs. On dirait
un dessin. Ces petits carrés forment un code, composé de caractères alphanumériques (des
chiffres et des lettres), qu’un décodeur peut lire. En principe, il lit une adresse internet. Ce
décodeur ou lecteur est une application que vous pouvez trouver dans le catalogue
d’applications de votre smartphone.
Générateur : Le générateur est l’utilisateur responsable de la génération des diplômes au
format PDF.
Signataire : Le signataire est appelé à signer les diplômes le concernant. Il a un niveau de
signature c’est à dire son rang dans la liste des signataires qui doivent signer un type de
diplôme donnée. Il a la possibilité de visualiser et de signer un ou plusieurs diplômes.
Délivreur : Il représente l’imprimeur physique des diplômes. C’est lui qui est chargé
d’imprimer le diplôme dans du papier sécurisé
Papier sécurisé : Le premier niveau de protection de votre document consiste à le
personnaliser pour le rendre exclusif : il porte la griffe infalsifiable de votre marque comme
une véritable empreinte. Cette étape de définition et de fixation de la griffe est rigoureuse :
elle produit une norme immuable qui évite toute confusion lors de la vérification du
document.
5
TRUSTY - Documentation Technique.
Sigles et Abréviations
Nous présentons ici certains sigles et abréviations que nous utiliserons dans le document.
WS Web Services
JS JavaScript
6
TRUSTY - Documentation Technique.
PARTIE I
Application KAIROS
7
TRUSTY - Documentation Technique.
1. Introduction
KAIROS est la solution stratégique au cœur de votre établissement.
C'est une solution intégrée dédiée au monde de l'éducation qui s'adapte facilement à la taille et au
profil de votre établissement.
Solution orientée client avec une accessibilité à travers divers canaux (PC, NoteBook, Tablettes,
SmartPhone, SMS, Email,...).
8
TRUSTY - Documentation Technique.
Pédagogie
Maitrisez vos concours d’entrée et vos processus de
recrutement
Organisez vos concours d’entrée en toute simplicité ; de l’enregistrement du
candidat à la délibération en passant par les notes d’épreuves et les présélections.
KAIROS permet d’avoir une sécurité et une totale transparence en attribuant des
numéros anonymes à chaque candidat pour la correction de leur copie d’examen.
Une parfaite intégration de vos programmes et
enseignements
Intégrez et organisez en un seul endroit tous vos enseignements qu'ils soient en
LMD, classique ou spécifique à votre établissement. Vous pouvez également dédier
des programmes par responsable afin de cloisonner et d’éviter que d’autres
personnes accèdent aux programmes dont ils ne sont pas responsables.
Un suivi des activités de vos enseignants et vacataires
Ayez une visibilité sur les activités de vos enseignants à travers une gestion de leur
contrat et de leur CV, un suivi des enseignements dispensés et de leur décompte en
attente de paiement, un suivi de leurs assiduités et de la qualité de leur prestations.
9
TRUSTY - Documentation Technique.
Scolarité
Le cahier de texte des classes et des professeurs sont pris en compte dans KAIROS.
Chaque responsable de classe pourra saisir après chaque cours le cahier de texte
depuis son portail dédié et permettre à ses camarades de le consulter. De même les
professeurs peuvent lors de émargements des heures de cours effectués, remplir le
cahier de texte mis à leur disposition par l’établissement.
10
TRUSTY - Documentation Technique.
Une gestion de l’infirmerie et du suivi médical des
apprenants
Pour les établissements qui ont un service médical interne, KAIROS permet
d'enregistrer les premiers soins des étudiants malades, de délivrer une ordonnance
ou de suivre la distribution des médicaments générique en stock.
Production automatisée et simplifiée des cartes des
apprenants
Personnalisez et imprimez directement les cartes pour vos apprenants et utilisez la
même carte pour plusieurs services de l’établissement (identification étudiant,
recouvrement, bibliothèque, contrôle examen, etc...).
La gestion des emplois du temps n’a jamais été aussi simple
KAIROS apporte une solution efficace à la gestion des emplois du temps. Définissez
une seule fois un emploi du temps et le système décline en même temps l'emploi du
temps de la classe, du professeur, de la salle et de l'étudiant. Un système expert vous
permet d'identifier les conflits et vous assiste à les résoudre.
Vous pouvez également définir un emploi du temps basé sur la disponibilité des
enseignants. L’enseignant indique sa disponibilité et KAIROS se charge de décliner
automatiquement son emploi du temps en tenant compte des conflits.
Finance
Facturation et fiche d’engagement
Depuis KAIROS, produisez vos factures proforma et vos factures définitives. Le
système produit également à l’inscription, une fiche d’engagement à présenter à
l’apprenant ou au parent pour signature et qui servira de pièce justificative à la
comptabilité.
11
TRUSTY - Documentation Technique.
Règlement des vacations des enseignants
Une fois les émargements des enseignants validés par l’administration et décomptés
depuis KAIROS, le service financier de l’établissement pourra préparer les
paiements des professeurs et les informer de la disponibilité de leur solde par Email
ou SMS. Les décaissements sont enregistrés dans le système et permettent à
l’établissement de connaître à temps réel le niveau de règlement des professeurs.
Communication
Communiquez autrement avec vos différents acteurs
Une plateforme de communication interactive et transversale est disponible pour
tous vos acteurs à travers des emails ou SMS groupés, des affichages dynamiques,
des messages sur les documents administratifs ou des messages sur leur écran à la
connexion au système.
Alertes et SMS+
Vous souhaitez informer votre administration, les parents ou vos apprenants dès
qu’un évènement est enregistré ? Avec KAIROS, envoyez des alertes SMS ou mail
dès que l’événement se produit. Par exemple une alerte peut être envoyé aux parents
après chaque règlement de frais. De même une alerte peut être envoyé aux parents
dès qu’une absence ou une note faible de son enfant est constatée.
12
TRUSTY - Documentation Technique.
3. Considérations techniques
3.1.1 Grails
La version actuelle de KAIROS est développée avec la version 2.4.2 du Framework Grails. En
effet, tenant compte de nos diverses expériences, des besoins du marché ainsi que des contraintes
techniques actuelles nous avons choisi le Framework Grails pour ses multiples avantages :
Grails est basé sur des Frameworks java testés et éprouvés (Spring, Hibernate,
SiteMesh, quartz, etc.). Les technologies sous-jacentes existent depuis plus d’une
décennie et sont largement utilisées.
Grails est basé sur le langage Groovy qui est un langage dynamique : le code Groovy
est beaucoup plus concis, que le code Java. Cela signifie qu'il y a moins de lignes de
code, donc plus de productivité et moins de code à maintenir.
La couche de mapping objet/relationnel GORM qui s’appuie sur Hibernate est très
facile à utiliser et flexible. GORM prend en charge toutes les bases de données
relationnelles qui sont pris en charge par Hibernate (JDBC) : DB2, MySQL, Oracle,
SQL Server, PostGreSQL etc.
Grails s’appuie sur le concept DRY (Don’t Repeat Yourself) / CoC (Convention over
Configuration) / Aucune configuration XML fastidieuse : Les développeurs se
concentrent sur le code plutôt que sur la configuration des composants du Framework.
Une fois que les contrôles nécessaires sont définies sur le modèle, Grails se charge
automatiquement de la validation des données à tous les niveaux de l’application
(modèle, vue, contrôleur etc.)
13
TRUSTY - Documentation Technique.
Le mécanisme des Tag Lib de Grails permet de créer des balises personnalisées
réutilisables dans les pages web.
Grails / Groovy s'intègre facilement avec le code déjà écrit en Java. Par conséquent, on
a accès à tout l’écosystème java, et on peut importer tout code java existant. En fait
Groovy tourne sur une machine virtuelle Java.
Les applications Grails se déploient sur tous les serveurs d’applications Java (Apache
Tomcat, JBOSS, Glassfish, WebSphere, etc.)
Lors de la conception de KAIROS le choix d’une architecture 3-tiers a été adopté pour l’application
au niveau du serveur. Cette architecture permet un découplage entre les différentes couches
logicielles de l’application : couche présentation, couche métier et la couche d’accès aux données.
Cette architecture permet une meilleure évolutivité de l’application et une maintenance plus facile
tout en facilitant la gestion de la sécurité sur les données.
14
TRUSTY - Documentation Technique.
3.2 Architecture Technologique
Navigateur Version
Le Poste client peut tourner sous système d’exploitation Windows, Mac, Linux, IOS ou Android.
Poste Serveurs
L’architecture idéale en installation Onsite impose une séparation du serveur applicatif et du serveur
hébergeant les bases de données (donc 2 serveurs physiques séparés). Pour des exigences moindres,
un seul serveur peut répondre au besoin. Il faudra cependant penser à un plan de sauvegarde
rigoureux.
15
TRUSTY - Documentation Technique.
Type de matériel Matériel certifié Windows Server ou Linux
OS WindowsServer2003+
Linux Ubuntu Server ou équivalent
La robustesse du serveur concernant l’emmagasinage des données s’appuie sur la puissance des
SGBD utilisés. On peut noter ci-dessous les principales caractéristiques :
16
TRUSTY - Documentation Technique.
Haute disponibilité de la base de données en cluster
Vues actualisables
Réplication
Etc.
Considérations de balancement de charge
Le balancement de charge se fait à deux niveaux sur KAIROS :
Opérant 24/7/365
KAIROS est conçue pour tourner 24/7/365.
Opérant sur une architecture Web
KAIROS est un progiciel FULL Web donc fonctionne nativement en mode WEB avec les
navigateurs web les plus courants (Internet Explorer, FireFox, Google Chrome, Apple Safari,
Opéra) et sur les environnements les plus courants (Windows, Linux, Mac).
Opérant sur Windows
KAIROS tourne sous Windows ou Linux en mode serveur. Il est complètement indépendant de
l’OS en mode client puisqu’il suffit d’un navigateur pour l’utiliser. Donc les Clients Windows,
17
TRUSTY - Documentation Technique.
Linux, Mac peuvent se connecter au système via les navigateurs IE, Mozilla Firefox, Chrome,
Safari ou Opera.
Aucune installation n’est nécessaire coté client pour utiliser le progiciel KAIROS.
3.2.7 Données
Pour l’accès aux données KAIROS utilise les pools de connexion JDBC pour une meilleure gestion
des charges liées aux requêtes.
Toutes les opérations de mises à jour sont gérées en mode transactionnel pour assurer l’intégrité des
données.
Notre application est multi bases de données grâce aux technologies que nous utilisons.
Définir un rapport par langue, et puisque la définition du rapport est sauvegardée dans
la base, nous pouvons charger le rapport souhaité en fonction de la langue de
l’utilisateur.
Tous les rapports générés peuvent être exportés sous plusieurs formats (pdf, excel, html, rtf, word,
etc). La réimpression peut se faire à la volée, en régénérant le rapport. La mutuelle peut décider
aussi de sauvegarder en table ou dans un dossier certaines impressions en les indexant, pour une
réimpression future. Concernant le serveur d’intelligence d’affaires, nous utilisons la suite
JasperServer, pour le chargement, la transformation des données, l’analyse et le reporting.
20
TRUSTY - Documentation Technique.
MySQL5.x Base de Données Serveur KAIROS est développé avec HIBERNATE qui fait
ORACLE, abstraction de la Base de Données. Toutes les
MSSQLSERVER, requêtes sont des requêtes objet. Ce qui fait de
PostGresSQL ’KAIROS, un progiciel, multi-base.
Elle fonctionne cependant nativement sous
MySQL5.x et peut fonctionner indifféremment
sous MSSQL SERVER, ORACLE,…
Java6+ Interpréteur Java Serveur KAIROS étant une application J2EE, il lui faut
l’interpréteur JAVA pour fonctionner
Android 4.x, 5.X, 6.X Accès Mobile/PDA Mobile PDA KAIROS mobile
Smartphone
Subversion Gestion du code source Développement Au cas où les codes sources seraient livrés
au CLIENT.
21
TRUSTY - Documentation Technique.
PARTIE II
APPLICATION XPADOC
22
TRUSTY - Documentation Technique.
4. Introduction
Alors qu’il était auparavant quasiment impossible de distinguer un faux diplôme sauf à appeler
directement l’institution émettrice, la plateforme d’authentification de diplômes XPADOC, combinée
aux signatures numériques, permet désormais aux écoles et universités d’émettre des diplômes
totalement sécurisés en seulement quelques clics, et à un recruteur de les vérifier facilement. Elle
permet de faire la génération, la signature, l’impression et l’authentification des diplômes des
établissements.
La plateforme a une interface moderne et ergonomique, permettant de gérer efficacement et
simplement l’ensemble des diplômes des établissements.
5. Description globale
a. L’environnement du produit
L'environnement de développement utilisé est composé de :
MAVEN :
Apache Maven est un outil de gestion et d'automatisation de production des projets logiciels Java en
général et Java EE en particulier. Maven est géré par l'organisation Apache Software Foundation.
L'objectif recherché est de produire un logiciel à partir de ses sources, en optimisant les tâches
réalisées à cette fin et en garantissant le bon ordre de fabrication.
23
TRUSTY - Documentation Technique.
Super Administrateur : Il est responsable de la création des établissements et de leur
administrateur.
Le super Administrateur est aussi chargé de la création des signataires qui sont rattachés à
plusieurs établissements à la fois. Il gère aussi les templates des diplômes de différents
établissements.
24
TRUSTY - Documentation Technique.
cette fonctionnalité, il faut qu’il s’enregistre au niveau du système et paie de l’argent par
mois ou par année pour utiliser le système.
c. Fonctionnalités du produit
- Création établissement.
Le code QR est une sorte de code barre en 2D. Le "QR" signifie Quick Reponse car le
contenu que comporte ce carré noir et blanc peut être décodé rapidement. A la différence
d'un code-barres classique, le code QR peut contenir beaucoup d’informations : 7089
caractères numériques, 4296 caractères alphanumériques, contrairement au code-barres
normal qui ne peut stocker que de 10 à 13 caractères ou 2953 octets ! Le contenu du code
peut ensuite être décodé puis affiché à l'aide d'un Smartphone ou d'une tablette.
25
TRUSTY - Documentation Technique.
Il suffit pour cela de disposer d'un générateur de codes QR. Dans un premier temps, il
convient de définir et de sélectionner la fonction du code à générer. Le contenu à coder est
ensuite saisi puis éventuellement personnalisé par l'apport de couleurs et l'insertion d'un
logo. Pour terminer, il ne reste plus qu'à télécharger le code alors prêt à l'impression.
Dans notre application le QRCODE est fait avec ireport1. C’est au moment de la génération
du diplôme que le numéro du diplôme est ajouté dans le QRCODE.
6. Spécifications détaillées
Dans cette partie nous allons faire une description détaillée des fonctionnalités de la plateforme à
l’aide de cas d’utilisation. Chaque fonctionnalité peut être éclatée en plusieurs cas d’utilisation
(sous fonctionnalité).
authentification
<< include >>
Super_Admin
afficher liste signataires
<< include >>
afficher template
1 iReport est un logiciel de création de modèles de documents pour JasperReports, qui appartient à la catégorie des
moteurs de composition dans la chaîne éditique.
26
TRUSTY - Documentation Technique.
b. Cas d’utilisation « paramétrage »
Authentification
choisir un ou plusieurs diplômes à << include >>
générer
Generateur
<< include >>
générer diplôme
27
TRUSTY - Documentation Technique.
d. Cas d’utilisation « paramétrage »
Authentification
choisir un plusieurs diplômes à signer << include >>
Signataire
Authentification
délivrer le(s) diplôme(s) << include >>
Delivreur
28
TRUSTY - Documentation Technique.
NB : Au lieu de faire la description détaillée de tous les cas d’utilisation nous l’avons
fait seulement pour le cas délivrer diplôme qui est la dernière phase du processus.
5. SIGN demande liste des diplômes à signer. 6. affiche liste des diplômes à signer.
7. SIGN choisit un plusieurs diplômes à signer. 8. Signe les diplômes et passe à la phase de
livraison.
9. DEL demande liste des diplômes à imprimer. 10. affiche la liste des diplômes prêts pour
l’impression physique.
11. DEL effectue l’impression physique des 12. Affiche liste des diplômes délivrés.
diplômes.
29
TRUSTY - Documentation Technique.
II. Environnement technique
1. Architecture Logicielle
Architecture 3-tiers :
30
TRUSTY - Documentation Technique.
2. Technologies utilisées
Java / J2EE (Java 2 Enterprise Edition, Sun)
Servlet
JSP (Java Server Pages de Sun)
Jasper Report
Ajax
JavaScript
JQUERY
CSS
3. Modèles de données
diplôme
- idDiplome : int
utilisateur etablissement
- numDiplome : String
- numDiplomeCrypt : char - idUtilisateur : int
- idEtablissement : int
- libelleUniversite : String - nomUtilisateur : String - libelleEtablissement : String
- descriptionUniversite : String - prenomUtilisateur : String - descriptionEtablissement : String
- villeUniversite : String - emailUtilisateur : int
- villeEtablissement : String
- nomRecteur : String - motDePasseUtilisateur : char - nomRecteur : String
- prenomRecteur : String - profil : String 1..* - prenomRecteur : String
- module : String 1..1
- titreRecteur : String 1..* - sexeRecteur : char
- fonctionRecteur : String 1..* - actif : int - titreRecteur : String
- libelleFaculte : String - entreprise : String
- focntionRecteur : String
- nomEtudiant : String - motDePasseImprimeur : char - nombreNiveauSignataire : int
- prenomEtudiant : String - telephoneUtilisateur : String - codeEtablissement : String
- dateNaissanceEtudiant : String - niveauUtilisateur : int - cheminLogo : String
- lieuNaissanceEtudiant : String - faculteUtilisateur : String
- sexeEtudiant : String - specialiteUtilisateur : String
- civiliteEtudiant : String - gradeUtilisateur : String 1..1
- libelleGrade : String - typeUtilisateur : enum
- libelleTypeDiplome : String
- libelleSpecialite : String 1..1
- dateObtention : Date
- dateDelivrance : Date
template
- anneAcademique : String
- impression : int - idTemplate : int
- niveauSignataire : int - nomTemplate : String
- urlSignataire : String - etablissementTemplate : String
- cheminChargement : String - specialiteTemplate : String
- etatDiplome : String - gradeTemplate : String
- cheminTemplate : String
- faculteTemplate : String
31
TRUSTY - Documentation Technique.
III. API Utilisés
L'API est organisée sur l'architecture REST.
REST, le style d’architecture original du web appliqué aux échanges inter-applications. Reposant
sur HTTP, il promet économie, simplicité et profit des structures réseau en place.
REST est un type d'architecture reposant sur le fonctionnement même du web, qu'il applique aux
services web. Pour concevoir un service REST, il faut bien connaître tout simplement le protocole
HTTP, le principe des URI et respecter quelques règles. Il faut raisonner en termes de ressources.
Dans l'architecture REST, toute information est une ressource et chacune d'elles est désignée par
une URI - généralement un lien sur le Web. Les ressources sont manipulées par un ensemble
d'opérations simples et bien définies. L'architecture client-serveur de REST est conçue pour utiliser
un protocole de communication sans état le plus souvent HTTP. Ces principes encouragent la
simplicité, la légèreté et l'efficacité des applications.
En effet nos services web ont été implémentés avec le framework Jersey. Le développement de
services Web RESTful qui supporte parfaitement l'exposition de vos données dans une variété de
types de médias de représentation et abstraction des détails de bas niveau de la communication
client-serveur n'est pas une tâche facile sans une bonne boîte à outils. Afin de simplifier le
développement des services Web RESTful et de leurs clients en Java, une API JAX-RS standard et
portable a été conçue. Le cadre de services Web RESTful de Jersey est open source, qualité de
production, cadre pour le développement de services Web RESTful en Java qui fournit une
assistance aux API JAX-RS et sert de mise en œuvre de référence JAX-RS.
Le cadre Jersey est supérieur à la mise en œuvre de référence JAX-RS. Jersey fournit sa
propre API qui étend la trousse à outils JAX-RS avec des fonctionnalités et des utilitaires
supplémentaires afin de simplifier davantage le service RESTful et le développement de
clients. Jersey expose également de nombreuses API d'extension afin que les développeurs puissent
étendre Jersey pour mieux répondre à leurs besoins.
L’objectif des projets de Jersey peuvent être résumés ainsi :
Suivre l'API JAX-RS et fournir des versions régulières des implémentations de référence de
qualité de production livrées ;
Fournir des API pour étendre Jersey et construire une communauté d'utilisateurs et de
développeurs ;
Facilitez la création de services Web RESTful utilisant Java et la machine virtuelle Java.
32
TRUSTY - Documentation Technique.
PARTIE III
Interfaçage
XPADOC / KAIROS
33
TRUSTY - Documentation Technique.
IV. Interactions XPADOC / KAIROS (TRUSTY)
WS 1 : soumissionDiplome() [1]
request => Informations attendues : Les informations du diplôme
response => code dossier, code réponse.
Traitement manuel : vérification du dossier, si c’est bon => génération du format électronique et
signature numérique.
WS 2 : demandeDiplomeElectronique() [3]
request => code du dossier
response => diplôme généré (fichier pdf signé)
WS 3 : demandeImpressionDiplome() [4]
request => code du dossier.
response => code réponse (Accepté ou pas).
Traitement manuel : impression physique, remise du diplôme non signé à l'établissement.
Verbes
URI disponibles Effet
Création
Interfacage/soumissionDiplome POST d’un
diplôme.
Demande
Interfacage/demandeDiplomeElectronique/{code_dossier} GET diplôme
électronique
Demande
Interfacage/demandeImpressionDiplome/{code_dossier} GET Impression
34
TRUSTY - Documentation Technique.
d’un
diplôme.
WS 1 : notificationGenerationDiplome() [2]
request => code dossier, statut (OK, NOK), date traitement
response => acquittement
WS 2 : notificationImpressionDiplome() [5]
request => code dossier, statut (OK, NOK), date traitement
response => acquittement.
DiagrammeSequence_Soumission_Diplôme
KAIROS XPADOC
Informations du dossier
Code du dossier
Status Ok ou NOK
35
TRUSTY - Documentation Technique.
DiagrammeSequence_Notification_Génération_Diplôme
XPADOC KAIROS
code du dossier
Status
Date Traitement
Acquitement
DiagrammeSequence_Demande_diplôme_electronique
KAIROS XPADOC
code du dossier
36
TRUSTY - Documentation Technique.
DiagrammeSequence_Demande_impression_diplôme
KAIROS XPADOC
code du dossier
DiagrammeSequence_notification_imression_diplôme
XPADOC KAIROS
code du dossier
Date Traitement
Acquitement
37
TRUSTY - Documentation Technique.