renovation du systeme informatique de gestion des travaux de la
Transcription
renovation du systeme informatique de gestion des travaux de la
République de Côte d’Ivoire Ministère de L’Enseignement Supérieur et de la Recherche Scientifique Union – Discipline - Travail ESI Ecole Supérieure d’Industrie N° d’ordre : 05/10/ESI/ING TLC/2011 G 2 E Direction de l’Orientation et des Bourses MEMOIRE DE FIN DE CYCLE Pour l’obtention du diplôme d’ingénieur de conception Option Télécommunications THEME : RENOVATION DU SYSTEME INFORMATIQUE DE GESTION DES TRAVAUX DE LA COMMISSION NATIONALE D’ORIENTATION (CNO) ET DE LA COMMISSION NATIONALE DES BOURSES (CNB) Période du stage : du 27 Juin 2011 au 27 Septembre 2011 Présenté par : KOUAKOU Kouamé Valentin, élève ingénieur en Télécommunications ENCADREUR PEDAGOGIQUE M. TETY Pierre Enseignant-chercheur à l’INP-HB MAITRE DE STAGE M. AYEKOE Kobon Jérôme Directeur de l’Orientation et des Bourses Année académique 2010 - 2011 République de Côte d’Ivoire Ministère de L’Enseignement Supérieur et de la Recherche Scientifique Union – Discipline - Travail ESI Ecole Supérieure d’Industrie N° d’ordre : 05/10/ESI/ING TLC/2011 G 2 E Direction de l’Orientation et des Bourses MEMOIRE DE FIN DE CYCLE Pour l’obtention du diplôme d’ingénieur de conception Option Télécommunications THEME : RENOVATION DU SYSTEME INFORMATIQUE DE GESTION DES TRAVAUX DE LA COMMISSION NATIONALE D’ORIENTATION (CNO) ET DE LA COMMISSION NATIONALE DES BOURSES (CNB) Période du stage : du 27 Juin 2011 au 27 Septembre 2011 Présenté par : KOUAKOU Kouamé Valentin, élève ingénieur en Télécommunications JURY MEMBRES N° 3 M. Bla Kouamé, M. Adama Koné, M. Edi Mousso, Mme Siaka, Année académique 2010 - 2011 DEDICACES A Dieu Tout-Puissant qui m’a accordé la santé le long de mon cursus, L’Etat de Côte d’Ivoire qui a financé ma formation, Mes parents qui ont su me soutenir dans les moments difficiles de la vie, Merci ! REMERCIEMENTS Nous tenons à manifester notre gratitude à des personnes particulières qui ont permis la réalisation de ce travail et grâce à qui nous sommes parvenus à la fin de notre formation. Sans être exhaustifs, nous aimerions citer : M. AYEKOE Kobon Jérôme, directeur de l’orientation et des bourses, notre maître de stage, pour l’intérêt qu’il a su nous accorder et qu’il a accordé à notre travail. Mme EHILE, sous-directrice de l’orientation et du suivi des élèves, pour sa disponibilité et tous les efforts consentis à la fourniture des éléments nécessaires à la réalisation du projet. Mme SEGUI, sous-directrice des bourses, pour nous avoir fourni les informations relatives aux bourses de l’enseignement secondaire général. M. TIECOURA Kouamé, directeur de Centre d’Information et d’Orientation (CIO), dont la connaissance du système opérant nous a été d’une utilité indéniable. M. KOUAKOU Marcelin, notre encadreur technique, dont l’expertise dans l’environnement WINDEV et la collaboration nous ont été d’un apport considérable. Tout le personnel de la Direction de l’Orientation et des Bourses, principalement messieurs KONAN et YAPO du Service Suivi des programmes, Communication et Archives, et le Service Informatique et Statistiques de la DOB pour leur entière collaboration et leur grande sociabilité. M. TETY Pierre, enseignant-chercheur au DFR-GEE de l’INP-HB, notre encadreur pédagogique, coordinateur de la filière Ingénieur Télécoms, pour sa disponibilité et tous les efforts consentis à la mise en forme du présent mémoire. Tout le corps professoral et administratif de l’INP-HB, Ceux qui nous ont soutenus et continuent de nous soutenir par leurs prières et leurs pensées. III SOMMAIRE INTRODUCTION .......................................................................................................................................... 13 PREMIERE PARTIE : CONTEXTE DU STAGE ET ETUDE DE L’EXISTANT ................................ 14 CHAPITRE 1 : CADRE DE REFERENCE ................................................................................................. 15 1.1 Présentation de la structure d’accueil ........................................................................................ 15 1.2 Présentation du thème de stage .................................................................................................. 17 CHAPITRE 2 : ETUDE DE L’EXISTANT ................................................................................................. 20 2.1 Description des processus d’affectation en sixième, d’orientation en seconde, d’attribution et de renouvellement de bourses .................................................................................................................. 20 2.2 Description du système informatique de la DOB ....................................................................... 26 2.3 Nécessité d’amélioration ............................................................................................................ 27 DEUXIEME PARTIE : ETUDE TECHNIQUE ......................................................................................... 30 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION ......................................................... 31 3.1 Approche de la conception de système d’information ................................................................ 31 3.2 Proposition de solutions ............................................................................................................. 34 3.3 Choix d’une solution ................................................................................................................... 37 CHAPITRE 4 : MODELISATION DU SYSTEME D’INFORMATION .................................................... 40 4.1 Concepts généraux ..................................................................................................................... 40 4.2 Modélisation de l’application ..................................................................................................... 54 4.3 Modélisation de la base de données ........................................................................................... 61 TROISIEME PARTIE : DEPLOIEMENT DE LA SOLUTION .............................................................. 63 CHAPITRE 5 : DEPLOIEMENT MATERIEL............................................................................................ 64 5.1 Pour le service informatique de la DOB .................................................................................... 64 5.2 Pour les services informatiques des structures éloignées .......................................................... 65 5.3 Sécurité matérielle ...................................................................................................................... 66 CHAPITRE 6 : DEPLOIEMENT LOGICIEL ............................................................................................. 68 6.1 Pour le service informatique de la DOB .................................................................................... 68 6.2 Pour les services informatiques des structures éloignées .......................................................... 68 6.3 Sécurité logicielle ....................................................................................................................... 68 CONCLUSION ............................................................................................................................................... 70 REFERENCES WEBOGRAPHIQUES ....................................................................................................... 71 REFERENCES BIBLIOGRAPHIQUES ..................................................................................................... 71 ANNEXES ............................................................................................................................................... LXXII GLOSSAIRE............................................................................................................................................ CVIII IV LISTE DES FIGURES LISTE DES FIGURES Figure 1.1 : Localisation de la DOB ..................................................................................................15 Figure 1.2 : Organigramme de la DOB .............................................................................................. 17 Figure 2.1 : Processus d’affectation en sixième .................................................................................21 Figure 2.2 : Processus d’orientation en seconde ................................................................................23 Figure 2.3 : Processus global de gestion des bourses .........................................................................25 Figure 3.1 : Système d’Information (SI) ............................................................................................ 31 Figure 3.2 : Schéma générale d’une architecture centralisée ............................................................. 32 Figure 3.3 : Schéma générale d’une architecture décentralisée .........................................................33 Figure 3.4 : Schéma d’échange dans une architecture monoposte .....................................................34 Figure 3.5 : Architecture distribuée via internet ................................................................................36 Figure 3.6 : Architecture distribuée via un réseau étendu national ....................................................37 Figure 3.7 : Architecture distribuée dans un réseau local ..................................................................39 Figure 4.1 : Structure hiérarchique d’une base de données hiérarchique ...........................................41 Figure 4.2 : Maillage dans une base de données réseau .....................................................................41 Figure 4.3 : Cycle d'abstraction pour la conception des systèmes d'information............................... 45 Figure 4.4.a : Exemple de certificat numérique sous Mozilla Firefox ...............................................52 Figure 4.4.b : Contenu d’un certificat numérique ..............................................................................53 Figure 4.4.c : Exemple de clé publique dans un certificat numérique ...............................................53 Figure 4.5 : Diagramme UML des cas d’utilisation d’APPLIDOB ...................................................55 Figure 4.6 : Procédure de communication avec une base de données dans une architecture distribuée de type client/serveur .........................................................................................................................56 Figure 4.7 : Diagramme UML de séquence relatif à la connexion au système ..................................57 Figure 4.8 : Diagramme UML de séquence relatif à la mise à jour de la BD ....................................58 Figure 4.9 : Diagramme UML de séquence relatif à la consultation d’information .......................... 58 Figure 4.10 : Diagramme UML d’activité relatif à l’affectation automatique en sixième et à l’orientation automatique en seconde .................................................................................................60 Figure 5.1 : Serveur de base de données ............................................................................................ 64 Figure 5.2 : Ordinateur personnel ......................................................................................................64 Figure 5.3 : Câble à paires torsadées blindé .......................................................................................65 Figure 5.4 : Switch Dlink 24 Ports .....................................................................................................65 Figure 5.5 : Carte réseau Ethernet - RJ45 .......................................................................................... 65 Figure A.1 : MCD du sous-système Indentification ..................................................................... lxxix LISTE DES FIGURES Figure A.2 : MCD du sous-système Evaluation Cadre ..................................................................lxxx Figure A.3 : MCD du sous-système Evaluation Notes ................................................................. lxxxi Figure A.4 : MCD du sous-système Vœux ................................................................................... lxxxii Figure A.5 : MCD du sous-système Authentification ................................................................. lxxxiii Figure A.6 : MCD du sous-système Bourses .............................................................................. lxxxiv Figure A.7 : MCD du sous-système Cartographie .......................................................................lxxxv Figure A.8 : MCD du sous-système Collaboration .................................................................... lxxxvi Figure A.17 : Arborescence des structures dans APPLIDOB ................................................... lxxxviii Figure A.18 : Table de détail dans APPLIDOB ........................................................................ lxxxviii Figure A.19 : Formulaire d’enregistrement d’élève de troisième – Onglet Identification .......... lxxxix Figure A.20 : Formulaire d’enregistrement d’élève de troisième – Onglet Evaluation .............. lxxxix Figure A.21 : Formulaire d’enregistrement d’élève de troisième – Onglet Orientation.................... xc Figure A.22 : Formulaire d’enregistrement d’élève de CM2 – Onglet Identification ....................... xc Figure A.23 : Formulaire d’enregistrement d’élève de CM2 – Onglet Evaluation .......................... xci Figure A.24 : Formulaire d’enregistrement d’élève de CM2 – Onglet Affectation .......................... xci Figure A.25 : Vue générale de MD5 ................................................................................................ xcii Figure A.26 : Une opération de MD5 .............................................................................................xciii Figure A.27 : Une itération de SHA-1 ............................................................................................. xcv Figure A.28 : Centre de contrôle HyperFileSQL ...........................................................................xcvii Figure A.29 : Les ports nécessaires à l'utilisation de HyperFileSQL Cluster ................................. xcix Figure A.30 : HyperFileSQL Client/Serveur via Internet ..................................................................cii Figure A.31 : Protocoles de communication en HyperFileSQL Client/Serveur ............................... civ Figure A.32 : Principe de fonctionnement de HyperFileSQL Client/Serveur ................................... cv Figure A.33 : Principe de fonctionnement de HyperFileSQL classic réseau .................................... cvi VI LISTE DES TABLEAUX Tableau 2.1 : Nombre d’enfants d’une même famille pouvant prétendre à une bourse d’Enseignement général secondaire en fonction des ressources ........................................................24 Tableau 2.2 : Tableau récapitulatif d’attribution de bourses en 6ème..................................................25 Tableau 2.3 : Tableau récapitulatif d’attribution de bourses en 2nde ..................................................25 Tableau A.1 : Tableau récapitulatif du choix de base de données à effectuer en fonction de la situation .............................................................................................................................................ciii TABLE DES ABREVIATIONS TABLE DES ABREVIATIONS AGL Atelier de Génie Logiciel AOO Analyse Orientée Objet BEPC Brevet d'Etude du Premier Cycle CA Certification Authority CD Compact Disc CEPE Certificat d'Etude Primaire et Elémentaire CIO Centre d’Information et d’Orientation CNB Commission Nationale des Bourses CNO Commission Nationale de l’Orientation COO Conception Orientée Objet CRCMO Commission Régionale de Calcul de Moyenne d’Orientation DDEN Direction Départementale de l’Education Nationale DECO Direction des Examens et Concours DOB Direction de l’Orientation et des Bourses DREN Direction Régionale de l’Education Nationale HTTP HyperText Transfer Protocol IEP Inspection de l’Enseignement Primaire LDD Langage de Définition de Données LMD Langage de Manipulation de Données MCD Modèle Conceptuel de Données MCT Modèle Conceptuel des Traitements MD5 Message Digest 5 MEN Ministère de l’Education Nationale VIII TABLE DES ABREVIATIONS MGA Moyenne Générale Annelle MLD - R Modèle Logique de Données – Relationnel MO Moyenne d’Orientation MOT Modèle Organisationnel des Traitements MPD Modèle Physique de Données POO Programmation Orientée Objet RAD Rapid Application Development SHA Secure Harsh Algorithm SIS Service Informatique et Statistiques (de la DOB) SQL Structured Query Language TGP Total Général Pondéré TIC Technologies de l’Information et de la Communication UML Unified Modeling Language IX AVANT-PROPOS AVANT-PROPOS Actes de création de l’INP-HB L'Institut National Polytechnique Félix HOUPHOUËT-BOIGNY, en abrégé INP–HB, est né, par Décret 96–678 du 04/09/96, de la fusion de l'École Nationale Supérieure d'Agronomie (ENSA), l'École Nationale Supérieure des Travaux Publics (ENSTP), l'Institut Agricole de Bouaké (IAB) et de l'Institut National Supérieur de l'Enseignement Technique (INSET), quatre établissements que l'on désignait communément sous le vocable Grandes Écoles de Yamoussoukro. Missions de l’INP-HB Définies par le décret 96-678 du 04/09/96, les missions de l’INP-HB sont : > La formation initiale et la formation continue : formations diplômantes et qualifiantes de techniciens supérieurs, d’ingénieurs (des techniques ou de conception) dans les domaines de l’industrie, du commerce, de l’administration, du génie civil, des mines et de l'agronomie; > La recherche appliquée dans les domaines précédemment cités ; > L’assistance et la production au profit des entreprises et administrations. Ambitions de l’INP-HB Ses ambitions sont à la mesure des espoirs que la nation ivoirienne place en lui pour la formation des élites qui lui assureront une présence digne dans le concert des nations du troisième millénaire. Il ambitionne aussi de développer son leadership tant au plan national qu’à l’échelle sous-régionale dans le domaine de la formation et de la recherche technique et technologique. L’Ecole Supérieure d'Industrie L’INP-HB est constitué à ce jour de sept (07) Ecoles dont une école préparatoire. Celle à laquelle nous appartenons est l’Ecole Supérieure d’Industrie (ESI), chargée de former des cadres de haut niveau capables de promouvoir et d'accompagner les évolutions techniques et technologiques au sein des entreprises industrielles et d'accroître leur compétitivité. Elle est organisée aujourd’hui en plusieurs filières dont le Cycle Ingénieur de Conception en Télécommunications. Le Cycle Ingénieur de Conception en Télécommunications Conscient des besoins du marché et constatant la volonté du gouvernement de faire de la Côte d’Ivoire un point de référence en matière de télécoms, l'INP-HB, a eu la lourde mission d’ouvrir depuis 2002 au sein de l’ESI la filière Ingénieur Télécoms en partenariat avec les X AVANT-PROPOS opérateurs du monde des nouvelles technologies, de l’industrie et de la recherche « … L’ingénieur Télécoms et Réseaux INP-HB est appelé à répondre aux besoins du marché des télécoms en pleine croissance. Son intégration sera donc possible chez un constructeur, un opérateur du secteur des Télécoms ou dans une société qui offre des services de télécoms. » [1] La formation intègre le développement d'un esprit d'initiative et s'appuie sur un partenariat très actif avec les milieux socioprofessionnels. Cette étroite collaboration avec les entreprises se matérialise au niveau des étudiants par des stages qu’ils doivent effectuer durant le cycle. De plus, la validation de cette formation nécessite d’effectuer un stage qui revêt un caractère assez particulier. En effet, au cours de ce stage (qui est le dernier du cycle), l’étudiant aura à mener des études dans le cadre de son mémoire de fin de cycle. C’est dans ce cadre que nous avons intégré le Service Informatique et Statistiques de la Direction de l’Orientation et des Bourses (DOB) où nous avons œuvré à la « rénovation du système informatique de gestion des travaux de la Commission Nationale d’Orientation (CNO) et de la Commission Nationale des Bourses (CNB)». XI RESUME Ce mémoire de fin de cycle détaille la mise en place d’un système de gestion automatisée des affectations en sixième (6ième) et des orientations en seconde (2nde) en Côte d’Ivoire. L’objectif du projet est la réduction au strict minimum des opérations, jusqu’ici presque manuelles, effectuées par la Commission Nationale d’Orientation (CNO) et la Commission Nationale des Bourses (CNB) en concevant une application opérationnelle et fiable à même d’automatiser celles-ci. L’étude globale du processus d’affectation en sixième (6ième) et d’orientation en seconde (2nde) nous a permis de faire des propositions visant, en partie, des changements notables au sein du système éducatif ivoirien. Ces changements devront permettre un fonctionnement optimal de l’application que nous avons mise au point par une meilleure rationalisation des opérations qui influencent la CNO et la CNB. En outre, les diverses solutions proposées sont toutes basées sur l’architecture du système informatique de la Direction de l’Orientation et des Bourses (DOB) et sur le processus d’identification des élèves. C’est d’ailleurs ce qui nous a amenés à une analyse technique de l’existant pour proposer des solutions viables centrées sur différentes architectures matérielles. La solution retenue pour le très court terme exige une architecture distribuée de type Client/Serveur. Mots-clés : Base de données, modélisation, réseau, sécurité, système d’information… XII INTRODUCTION Après l’indépendance, la Côte d’Ivoire a connu près de deux décennies de croissance économique soutenue. Cas singulier, ce « miracle ivoirien » s'explique par la volonté des dirigeants d'asseoir, dès 1960, le développement sur l'agriculture, principalement les plantations de caféiers et de cacaoyers. Si l'agriculture occupe une place de choix dans le développement économique, les secteurs secondaire et tertiaire ne sont pas négligés pour autant. Avec l'industrie naissante et l'administration qui réclament des cadres compétents, se pose rapidement la question des ressources humaines. La nécessité de former des cadres nationaux, trop peu nombreux à l'indépendance, détermine la politique du gouvernement en matière d'éducation et de formation. Ainsi, l’instauration d’un mécanisme d’orientation et d’attribution de bourses, géré par une structure sous tutelle du Ministère de l’Education Nationale (MEN), s’impose, afin de permettre une insertion socioprofessionnelle adéquate pour chaque futur cadre. C’est dans cette vision qu’est née la Direction de l’Orientation et des Bourses (DOB). Animée du désir de suivre le développement prodigieux des Technologies de l’Information et de la Communication (TIC) et de profiter des avantages indéniables qu’elles offrent à l’automatisation des systèmes opérants, la DOB a opté pour la mise en place d’un système de gestion automatisée des affectations en sixième (6ième) et des orientations en seconde (2nde). Mais, conçue au mépris des règles de la modélisation, l’application présente des anomalies qui, au regard des nombreuses réclamations formulées par les parents d’élèves, affectent la qualité des résultats issus de la Commission Nationale d’Orientation (CNO) et de la Commission Nationale des Bourses (CNB). C’est pour pallier à ces problèmes, par la rénovation de son système informatique, que nous avons été accueillis au sein du Service Informatique et Statistiques (SIS) de la DOB. Le présent mémoire, dont l’objectif est d’expliquer le travail effectué, est structuré en trois (03) parties. La première partie présente l’étude de l’existant, en exposant ses différents points faibles qui nourrissent la nécessité de concevoir un nouveau système plus stable. Dans la deuxième partie, nous procédons à l’étude technique des solutions viables par l’explication de leurs avantages et inconvénients en vue d’aider la DOB au choix d’une solution adéquate. Enfin, le déploiement du système d’information conçu est l’objet de la troisième partie, en détaillant la répartition géographique, matérielle, logicielle et humaine des différentes entités composantes. 13 PREMIERE PARTIE : CONTEXTE DU STAGE ET ETUDE DE L’EXISTANT Nous décrivons, dans cette partie, l’environnement de travail dans lequel nous avons évolué et l’ensemble des méthodes et matériels de travail utilisés par la DOB avant, pendant et après les travaux de la CNO et de la CNB. Nous expliquons aussi l’intérêt du thème étudié. 14 CHAPITRE 1 : CADRE DE REFERENCE CHAPITRE 1 : CADRE DE REFERENCE 1.1 Présentation de la structure d’accueil 1.1.1 Généralités En 1972, l'office du Baccalauréat est détaché de l'Université, compte tenu de l'ampleur de l'organisation de cet examen. Les choses évoluant, il devient une direction centrale de l'éducation nationale. En 1978, on lui adjoint les examens pédagogiques (CAPES, CAPCEG). La fusion des deux services (le service des examens et concours (qui s'occupait de l'organisation du BEPC et de l'entrée en sixième) et l'office du baccalauréat) donne la Direction des Examens et Concours (D.EX.C). En 1994, le service de l'orientation est fusionné à la D.EX.C pour donner la Direction des Examens, des Concours et de l'Orientation (D.E.CO). En 1996, le service de l'orientation est détaché de la DECO, qui devient la Direction des Examens et Concours (DEC) pour être rattaché à la Direction de l'Enseignement Secondaire (DES). En avril 2000, le service de l'orientation et des bourses revient à la DEC qui devient ainsi la Direction des Examens, des Concours, de l'Orientation et des Bourses (DECOB). Depuis l'année 2005, la Sous Direction de l'Orientation et des Bourses (DOB) est devenue une direction [2] située à Abidjan (Plateau), précisément au quatrième (04ème) étage de l’immeuble alpha 2000. Elle compte dix-neuf (19) bureaux et une (01) salle de conférence. Figure 1.1 : Localisation de la DOB 15 CHAPITRE 1 : CADRE DE REFERENCE 1.1.2 Mission de la DOB Conformément aux dispositions du décret n° 2010-32/1391 du 18 mars 2010 modifiant et complétant le décret n° 2004-564 du 07 Octobre 2004 portant organisation du Ministère de l’Education Nationale, la DOB est chargée : 1. de L’élaboration d’une politique nationale d’orientation et de suivi des élèves à partir du préscolaire et primaire ; 2. de la préparation et de l’organisation de la commission nationale d’orientation en seconde et d’affectation en sixième en liaison avec les structures concernées ; 3. de l’élaboration, en liaison avec les établissements concernés des états nominatifs des élèves boursiers et de leur transmission à la Direction des affaires Financières ; 4. de l’élaboration et du suivi de l’application des textes réglementaires relatifs à l’information, à l’orientation et à l’attribution des bourses du secondaire ; 5. de l’octroi, du renouvellement et du transfert des bourses aux élèves de l’enseignement secondaire ; 6. du suivi du cursus et de l’encadrement psychologique rapproché de l’élève. 1.1.3 Organisation de la DOB Pour mener ses missions, la DOB dispose de : A. deux sous-directions : 1. La sous-direction de l’Orientation et du Suivi des Elèves avec quatre (04) services ; 2. La sous-direction des Bourses avec trois (03) services B. trente-trois (33) structures déconcentrées : les Centres d’Information et d’Orientation (CIO). C. six (06) services rattachés: 1. Le Service Comptabilité et Logistique 2. Le Service Gestion Administrative 3. Le Service Courier 4. Le Service Etudes et Projets 5. Le Service Suivi des Programmes, Communication et Archives 6. Le Service Informatique et Statistiques (portes 13 et 14), au sein duquel nous avons travaillé. Ce service a pour missions : > La mise en place d’un programme d’équipement en matériel informatique de la DOB et de tous les services d’orientations et des bourses ; > La gestion du parc informatique de la DOB; 16 CHAPITRE 1 : CADRE DE REFERENCE > La conception et le suivi des programmes informatiques de la DOB ; > La saisie et le traitement des données statistiques relatives à l’orientation en 2nde, à l’affectation en 6ième et aux bourses ; > L’archivage électronique au sein de la DOB ; > L’identification des besoins de la DOB en matériel informatique ; > La maintenance du matériel informatique de la DOB ; > La création d’un site internet ; > La gestion de la salle informatique de la DOB. Figure 1.2 : Organigramme de la DOB 1.2 Présentation du thème de stage 1.2.1 Positionnement du sujet L’opération d’affectation en sixième et d’orientation en seconde est une activité sensible et très pénible lorsqu’elle est faite de façon manuelle. Elle nécessite, dans cette configuration, une importante ressource humaine et donc une plus grande ressource financière. En plus, l’idée de tenir les délais imposés en minimisant les erreurs et les dépenses financières liées au surcroît de 17 CHAPITRE 1 : CADRE DE REFERENCE personnel, justifie le choix pour la DOB de nous soumettre le thème ainsi libellé « rénovation du système informatique des travaux de la Commission Nationale d’Orientation (CNO) et de la Commission Nationale des Bourses (CNB) ». Mais, fort des problèmes que pourrait engendrer un système informatique de qualité médiocre, la DOB se donne les moyens de mettre en place un système fiable, stable et viable en exigeant une modélisation conforme aux règles de l’art. 1.2.2 Cahier des charges 1.2.2.1 Centre d’intérêt Optimiser les travaux de la CNO et ceux de la CNB. 1.2.2.2 Contraintes générales La rénovation du système informatique de gestion des travaux de la CNO et de la CNB se déroulera sur trois (03) mois et se fera avec l’Atelier de Génie Logiciel (AGL) WINDEV. 1.2.2.3 Objectifs 1. Concevoir un nouveau système informatique de gestion des travaux de la CNO et de la CNB ; 2. Maîtriser l’environnement WINDEV; 3. Former les gestionnaires à l’utilisation de l’application. 1.2.2.4 Méthodologie La rénovation du système informatique de gestion des travaux de la CNO et de la CNB sera consacrée aux opérations suivantes : 1. Analyse et conception de l’application ; 2. Expérimentation de l’application ; 3. Atelier de validation Composante 1 : Analyse et conception de l’application Cette composante s’articulera autour de 4 phases essentielles. Phase 1 : Etude fonctionnelle Il s’agit de faire l’état des fonctionnalités existantes et proposition de nouvelles fonctions : 1. Etude technique (définition de l’architecture cible), 2. Etude conceptuelle (la modélisation de la solution envisagée). 18 CHAPITRE 1 : CADRE DE REFERENCE Phase 2 : Réalisation Conception d’une application de gestion des travaux de la CNO et de la CNB. Phase 3 : Déploiement 1. Déploiement sur le site de la DOB et sur des sites pilotes en région, 2. Déploiement sur les autres sites (33 CIO) Phase 4 : Renforcement des capacités des utilisateurs Formation des gestionnaires de la DOB et des sites pilotes en région, Composante 2 : Expérimentation de l’application. Cette composante consiste à l’utilisation de l’application dans des CIO et établissements pilotes pour une période d’essai aux fins de détecter ses imperfections. Composante 3 : Validation de l’application. La validation de l’application va réunir un ensemble d’experts et de cabinets en WINDEV. Le cabinet LA FAYETTE représentation nationale des produits PC SOFT fournisseur du produit WINDEV, les experts en environnement WINDEV du MEN et de l’Institut National Polytechnique Félix Houphouët Boigny donneront leur avis pour la validation de l’application. 19 CHAPITRE 2 : ETUDE DE L’EXISTANT CHAPITRE 2 : ETUDE DE L’EXISTANT L’existant est l’ensemble des moyens matériels, humains et des méthodes utilisés au sein du système à modéliser. Cette étude se ramène, en l’occurrence, à l’ensemble des méthodes et matériels déployés par la DOB pour l’affectation en sixième et l’orientation en seconde des élèves dans le cadre de la CNO, puis pour l’attribution et le renouvellement des bourses dans le cadre de la CNB, en Côte d’Ivoire. Une description détaillée de ces différents processus s’avère, par conséquent, indispensable. 2.1 Description des processus d’affectation en sixième, d’orientation en seconde, d’attribution et de renouvellement de bourses Le processus qui conduit à l’organisation de la CNO et de la CNB débute dès la rentrée scolaire. Il faut signaler qu’au niveau de cette activité, la DOB est fortement tributaire de la Direction de l'Informatique, de la Planification, de l’Evaluation et des Statistiques (DIPES) et surtout de la Direction des Examens et Concours (DECO). En effet, la DECO est la structure de l’Education Nationale qui organise les examens de fin d’année et qui, par conséquent, fournit les notes des candidats à la DOB pour les affectations-orientations et attributions de bourses. Quant à la DIPES, elle se charge d’immatriculer les candidats admis à l’entrée en sixième. 2.1.1 Description du processus d’affectation en sixième Le processus d’affectation en sixième se déroule en trois (03) grandes étapes : avant les assises de la CNO (pré CNO), pendant les assises de la CNO (assises CNO) et après les assises de la CNO (Post CNO). 2.1.1.1 Pré CNO Cette étape concerne essentiellement l’enregistrement des candidats au CEPE et à l’entrée en sixième et la récupération des notes obtenues par ces candidats à l’examen. Il y a huit (08) niveaux d’opérations qu’on peut ranger en deux (02) grandes étapes : avant et après les examens du CEPE. Avant les examens du CEPE 1. Installation de l’application de saisie des candidats dans les IEP. 2. Saisie de l’identité des candidats et de leurs vœux d’établissements. 3. Correction des anomalies et fusion des fichiers provenant des IEP par DREN. Après les résultats des examens du CEPE 4. Installation de l’application de saisie des TGP dans les IEP. 20 CHAPITRE 2 : ETUDE DE L’EXISTANT 5. Enregistrement des TGP dans les IEP en fonction de la barre fixée par le Directeur de la DOB. 6. Correction et fusion nationale des données provenant des IEP à la DOB. 7. Transmission d’un état cumulatif par tranches de TGP au MEN pour aider à fixer la barre d’admission en sixième 8. Arrêté du MEN fixant la barre d’admission en sixième. 2.1.1.2 Assises de la CNO C’est le lieu d’effectuer les affectations proprement dites. Nous avons trois (03) niveaux d’action. Cette étape se déroule après les examens du CEPE. 1. Vérifications de la conformité des informations relatives aux élèves de la base de données (notes d’examens, identité…) avec ceux des PV (procès-verbaux) des résultats d’examen récupérés auprès de la DECO. 2. Affectation automatique : les candidats sont affectés par ordre de mérite en fonction des capacités d’accueil des établissements par l’application Epervier. 3. Affectation manuelle : les élèves battus durant l’affectation automatique sont affectés manuellement dans les établissements non saturés proches (géographiquement) des établissements visés par leurs vœux d’établissements. 2.1.1.3 Post CNO Il s’agit de recueillir et de traiter les dossiers de réclamations introduits par les candidats non satisfaits des résultats d’affectation publiés après les assises la CNO. IEP DOB MEN In iti al Sa is ir c a nd id ats e t vo eu x Fou rn ir l og ic ie l p ou r I nfo _ ca n d_ Co ns ol id er fic hi er na ti on al Fou rn ir l og ic ie l p ou r T GP Sa is ir T GP Faire co nt rôl es e t fu s ion n er do nn é es Fixer ba rre 6 iè m e T e ni r a ss is es CN O T e ni r p os t C NO Fina l Ac tivi té_ 1 Ac tivi té_ 2 Ava nt exa m en d u CEPE Ac tivi té_ 3 Ac tivi té_ 4 Ap rè s e xa me n du CE PE Figure 2.1 : Processus d’affectation en sixième 21 CHAPITRE 2 : ETUDE DE L’EXISTANT 2.1.2 Description du processus d’orientation en seconde (2nde) Le processus d’orientation en seconde se déroule, à l’instar du processus d’affectation en sixième, en trois (03) grandes étapes : avant les assises de la CNO (pré CNO), pendant les assises de la CNO (assises CNO) et après les assises de la CNO (Post CNO). 2.1.2.1 Pré CNO Avant les examens du BEPC 1. Saisie des candidats dans les DREN 2. Consolidation du fichier national des candidats officiels au BEPC 3. Installation de l’application de saisie des moyennes trimestrielles dans les établissements. 4. Saisie des moyennes trimestrielles dans les établissements (la saisie se fait trimestre après trimestre) 5. Transmission du fichier des moyennes trimestrielles aux CIO qui les envoient à la DOB. (Cette opération se fait trimestre après trimestre) 6. Correction des erreurs provenant des fichiers réceptionnés. 7. Renvoie dans les CIO à la fin du dernier trimestre du fichier des moyennes trimestrielles. Après les résultats du BEPC 1. Constitution dans les DREN des Commissions Régionales de Calcul de la Moyenne d’Orientation (CRCMO), installation du logiciel de saisie des notes du BEPC. 2. Enregistrement des notes (notes sur 20) du BEPC dans les matières d’orientation (notes sur 20 en composition française, mathématiques, anglais et en sciences physiques) dans le logiciel pour l’obtention des moyennes d’orientation. 3. Constitution de l’état cumulatif des élèves par tranches de MO pour aider à la fixation de la barre d’orientation en seconde (MO limite). 4. Fixation de la barre d’orientation par le MEN 2.1.2.2 Assises CNO 1. Correction des fichiers provenant des CRCMO, fusion et constitution du fichier national. 2. Vérifications de la conformité des informations relatives aux élèves de la base de données avec ceux des PV de la DECO. 3. Orientation automatique et manuelle. 22 CHAPITRE 2 : ETUDE DE L’EXISTANT 2.1.2.3 Post CNO Gestion des dossiers de réclamations émis par les élèves et parents d’élèves non satisfaits des résultats publiés après les assises. DREN DOB MEN ETABLISSEMENT I nitial Saisir candidat s et voeux Fournir Masque de saisie Consolider f ichier nat ional I nitial_1 Fournir logiciel de saisie de moyennes Saisir moyennes t rimest rielles Par TRI MESTRE Faire cont rôles et calculer MO (CRCMO) Dét erminer MO limite Tenir assises CNO Tenir post CNO Final Act ivité_1 Act ivité_2 Avant examen du BEPC Act ivité_3 Act ivité_4 Après examen du BEPC Figure 2.2 : Processus d’orientation en seconde 2.1.3 Description du processus d’attribution et de renouvellement de bourses La sous-direction des bourses est l’une des deux sous-directions qui composent la DOB. Elle a pour missions essentielles : 1. l’attribution de bourses aux élèves de 6ème et de 2nde ; 2. le renouvellement des bourses ; 3. la gestion et le suivi des états servant au paiement des bourses. L’Etat ivoirien, soucieux de l’avenir de sa jeunesse, a institué la bourse scolaire dans son système éducatif dès son accession à l’indépendance. Ainsi, dans les années soixante (1960), il suffisait de réussir l’examen d’entrée en 6ème pour bénéficier d’une bourse. On disait à l’époque non pas « je suis admis à l’examen d’entrée en 6ème» mais plutôt « j’ai eu ma bourse ». A cette époque, Les seules conditions d’octroi de bourse étaient celles d’être élève et de nationalité ivoirienne selon l’article 2 du décret n° 60-310 du 21 Septembre 1960. Plus tard, en 1984, le décret n°84-1024 du 22 Août ajoutera aux critères mentionnés plus haut ceux des résultats scolaires, du niveau de revenu des parents et de l’âge (être âgé de 15 ans au plus pour la 6ème et de 18 ans au plus pour la 2nde). 23 CHAPITRE 2 : ETUDE DE L’EXISTANT Tableau 2.1 : Nombre d’enfants d’une même famille pouvant prétendre à une bourse d’Enseignement général secondaire en fonction des ressources Nombre d’enfants à Groupe I Groupe II Groupe III Groupe IV charge 100.000 F CFA de 100.000 F à de 200.000 F à 300.000 F CFA et 200.000 F CFA 300.000 F CFA plus 1 1 1 0 0 2 2 1 1 0 3 3 2 1 0 4 4 2 1 0 5 5 3 2 0 6 6 3 2 0 7 7 4 2 0 8 8 4 3 0 9 9 5 3 0 10 10 5 3 0 11 11 6 4 0 12 12 6 4 0 13 13 7 4 0 14 14 7 5 0 15 15 8 5 0 16 16 8 5 0 17 17 9 6 0 18 18 9 6 0 19 19 10 6 0 20 20 10 7 0 Ce tableau s’explique simplement : un parent qui a un revenu mensuel de cent mille francs CFA (100.000 F CFA) voit tous ses enfants obtenir la bourse (à condition bien sûr d’avoir les moyennes, l’âge et la nationalité requis). Par contre, un parent de revenu mensuel supérieur à cent mille francs CFA (100.000 F CFA) a droit à un nombre limité de boursiers parmi ses enfants, jusqu’à ne plus bénéficier de la bourse quand il dépasse trois cent mille francs CFA (300.000 F CFA) de revenu mensuel. Aujourd’hui, les seuls critères retenus sont la nationalité ivoirienne et les résultats scolaires. Dans les deux cas (attribution et renouvellement de bourse), le processus global se présente comme suit : 1. La DOB met, en cours d’année scolaire, la liste des élèves boursiers et demi-boursiers (pour le renouvellement seulement ; il n’y a pas de demi-boursiers en attribution) à la 24 CHAPITRE 2 : ETUDE DE L’EXISTANT disposition des établissements (les économes sont les acteurs clés de la sous-direction des bourses dans les établissements) ; L’économe imprime les états de bourse et fait émarger les élèves concernés pour 2. signaler leur présence au sein de l’établissement ; 3. Les fiches signées sont transférées à la DOB ; 4. Ces fiches sont transférées à la Direction des Affaires Financières (DAF) après contrôle et gestion des omis et retardataires ; 5. La DAF met, après approbation, la liste des élèves mandatés à la disposition du Trésor public pour le paiement effectif des bourses. ETABLISSEMENT DOB DAF TRESOR PUBLIC Initial F aire signer états de bourse F ournir liste boursiers et demi-boursiers F aire contrôles et gérer les omis F aire contrôles et définir élèves mandatés Payer élèves mandatés F inal Figure 2.3 : Processus global de gestion des bourses 2.1.3.1 Description du processus d’attribution de bourses Chaque année scolaire, des barres d’attribution de bourses pour la sixième et la seconde sont fixées par rapport au budget restant après le renouvellement de bourses. Ainsi, la bourse est accordée aux élèves ivoiriens remplissant les conditions de résultats scolaires définies par la CNB. Pour exemple, voici les tableaux récapitulatifs d’attribution de bourses des classes de 6ème et de 2nde des trois dernières années. Tableau 2.2 : Tableau récapitulatif d’attribution de bourses en 6ème Pourcentage des Année scolaire TGP exigé pour Equivalent du TGP en Total des élèves Nombre boursiers par être boursier termes de moyenne affectés d’affectés rapport aux Boursiers affectés (TGP/8,5) 2007-2008 147,32 17,33 142 450 1901 01,33 2008-2009 143,30 16,85 165 198 6456 03,90 2009-2010 142,30 16,74 162 272 6225 03,83 Tableau 2.3 : Tableau récapitulatif d’attribution de bourses en 2nde 25 CHAPITRE 2 : ETUDE DE L’EXISTANT 2.1.3.2 Description du processus de renouvellement de bourses Pourcentage des Année scolaire Moyenne d’orientation exigée Total des élèves Nombre boursiers par orientés d’orientés rapport aux Boursiers orientés 2007-2008 14,30 50 000 1732 03,46 2008-2009 13,20 50 194 2922 05,82 2009-2010 12,72 46 615 3212 06,67 Les textes qui régissent les bourses sont ceux de 1984. Ils déterminent les critères suivants pour le renouvellement de la bourse : Pour le premier cycle > être de nationalité ivoirienne ; > avoir une moyenne générale annuelle supérieure ou égale à douze (12) sur vingt (20) pour la bourse entière ; > une moyenne générale annuelle comprise entre onze (11) sur vingt (20) et onze virgule quatre-vingt-dix-neuf (11,99) sur vingt (20) donne droit à une demi bourse. Pour le second cycle > être de nationalité ivoirienne ; > avoir une moyenne générale annuelle supérieure ou égale à onze (11) sur vingt (20) pour la bourse entière ; > une moyenne générale annuelle comprise entre dix (10) sur vingt (20) et dix virgule quatrevingt-dix-neuf (10,99) sur vingt (20) donne droit à une demi bourse. Mais dans la pratique, les critères de moyennes du premier cycle sont appliqués aux deux cycles vu la réduction de l’enveloppe budgétaire due aux difficultés économiques (deux milliard (2.000.000.000) de F CFA en 1994, puis huit cent million (800.000.000) de F CFA depuis 2007). Une fiche de demande de renouvellement de bourse pour l’année académique prochaine est remplie par l’économe de l’établissement pour chaque élève boursier ou demi-boursier et transférée à la DOB pour analyse. Elle contient principalement les performances scolaire du concerné et est dûment signée par ce dernier. 2.2 Description du système informatique de la DOB Un système informatique est un ensemble d’entités matérielles et logicielles qui interagissent selon des algorithmes. Pour optimiser le rendement d’un tel système, une architecture soigneusement pensée doit être définie aux niveaux matériel et logiciel. 26 CHAPITRE 2 : ETUDE DE L’EXISTANT 2.2.1 Architecture matérielle La DOB dispose d’un réseau local connecté à internet. Ce réseau local, est un élément clé dans les échanges de données numériques au sein de la direction et de ses services. Il pourra, en outre être exploité pour le déploiement du nouveau système d’information. Elle possède aussi des ordinateurs au sein de chaque service, très utiles pour le déploiement déjà évoqué. 2.2.2 Architecture logicielle La DOB dispose de la licence d’utilisation de l’AGL WINDEV. WINDEV est un produit de PC SOFT, et est à sa version 16 à l’heure où ces lignes sont écrites. La société PC SOFT est une société française, spécialisée dans la conception de logiciels de haute technologie comme les environnements de développement professionnels pour Internet, Intranet, Windows, Linux, Unix, les mobiles,… A l’aide de cet AGL, une application dénommée « Epervier » a été conçue pour automatiser les travaux de la CNO ; une autre application « GESTBOURSE » a été écrite pour ceux de la CNB. Ces applications utilisent des bases de données HyperFileSQL classic réseau. Elles sont déployées au sein des différentes structures de la DOB pour les préparatifs de la CNO et de la CNB. 2.3 Nécessité d’amélioration La procédure de gestion des orientations et des affectations, dans sa configuration actuelle, est trop lourde et porte fortement atteinte à la qualité des résultats (au regard des nombreuses réclamations formulées par les parents d’élèves). Les méthodes de collectes des données sont peu fiables (des va-et-vient des CD). En outre, une trop grande intervention de l’homme sur la chaîne de production des résultats est à signaler. L’application de gestion informatisée des orientations et affectations connaît quelques limites qui obèrent la qualité du travail de la CNO et occasionne d’énormes pertes de temps. Cela nous amène à cibler les différentes failles aux niveaux matériel, logiciel et de la main d’œuvre en vue de proposer des solutions fiables et viables. 2.3.1 Les failles matérielles Le système actuel de gestion automatisée des actes de la CNO et de la CNB ne fonctionne pas en mode réseau. Il n’y a pas de serveur dédié pour la base de données, toutes les opérations étant effectuées sur des ordinateurs personnels. Cela constitue un problème essentiel dans la mesure où la synchronisation des données est pénible. En outre, les ordinateurs personnels, servant aux activités de tierces personnes en dehors des actes de la CNO et de la CNB, peuvent subir des dégâts pouvant entraîner une perte compromettante de données essentielles. Le piratage des données 27 CHAPITRE 2 : ETUDE DE L’EXISTANT sensibles en est aussi facilité. L’utilisation de CD pour le transfert de l’information entre les différentes structures est à revoir. En effet, le temps d’accès mémoire sur les CD est très élevé et les CD se détériorent très facilement (il suffit d’une égratignure sur la surface réfléchissante), entrainant des vas-et-viens répétés entre la DOB et des structures éloignées, sinon des temps de ressaisie supplémentaires. On assiste alors au ralentissement du processus de fusion des données. 2.3.2 Les failles logicielles Le développement de l’application existante, essentiellement basé sur le RAD (Rapid Application Development), pourrait occasionner la non maitrise du code source, ce qui pourrait exacerber les difficultés de détection et de correction des erreurs de fonctionnement du logiciel. En effet, le RAD est une technique de génération automatique d’interfaces graphiques et de codes nécessaires à l’exécution de tâches plus ou moins complexes à partir d’un schéma de données appelé « analyse » dans l’environnent WINDEV. Ainsi, le développeur se contente de créer l’analyse et par clic sur une suite de boutons, tout le code qu’il est sensé écrire est automatiquement généré. Bien que cette technique présente des avantages en terme de rapidité de développement, elle peut complexifier les diagnostiques d’erreurs, puisque le développeur ne dispose pas nécessairement des compétences requises pour comprendre le code généré. En outre cette technique est difficile à implémenter lorsque l’analyse a une structure relationnelle, raison pour laquelle les différents « fichiers » (appelés tables dans les autres SGBD comme Oracle, MySQL, Access…) n’ont pas été liés, occasionnant des redondances d’information, voire de sérieuses anomalies de mise à jour de la base de données. Aussi, HyperFileSQL est un SGBD relationnel (Voir Annexe A.6). Par conséquent, la gestion d’une base de données non relationnelle à l’aide de ce SGBD constitue une erreur d’exploitation assez importante qui alourdit les interactions avec la base de données. En outre, n’ayant pas été développée selon un « modèle soigneusement conçu », l’application existante exige des modifications fréquentes basées sur des déductions empiriques ; cela présente l’inconvénient majeur de créer des redondances de données au sein de la base de données pouvant alourdir, pour sûr, les échanges avec celle-ci. Le déploiement du logiciel est très difficile dans la mesure où une copie des composants à installer doit être envoyée par CD aux différentes structures éloignées autorisées à l’utiliser. Cela rend pénible les mises à jour de l’application lorsqu’il y a nécessité de modifier certaines de ses fonctionnalités. Enfin, après la saisie de données, l’application offre la possibilité à l’opérateur de saisie d’exporter les données dans un fichier au format xsl non chiffré (fichier éditable par le logiciel Microsoft Excel) qu’il grave 28 CHAPITRE 2 : ETUDE DE L’EXISTANT sur un CD et le transfère à la DOB. Ce moyen est très fragile puisque le fichier peut être modifié sans l’application fournie par la DOB. Il faut aussi préciser que malgré la puissance supposée du moteur d’HyperFileSQL, ce SGBD, peu connu dans le monde des « experts », mérite une étude approfondie pour décider de sa validité pour le projet d’envergure qui nous est soumis. 2.3.3 Les failles de main d’œuvre Conçue et administrée au mépris des règles de gestion de système d’information, l’application ne respecte pas la grande majorité des techniques de modélisation de système d’information. Cela fragilise énormément la sécurité dont doit jouir une application traitant des données aussi sensibles que l’orientation et l’attribution de bourses aux élèves. Un autre problème se situe au niveau des collaborateurs informaticiens des structures éloignées qui ne maîtrisent pas toujours les connaissances nécessaires à la bonne marche de l’application ; ce qui donne leu à des programmes de formation coûteux en temps et en moyen financier. Nous notons aussi les récurrentes erreurs de saisie faites par les opérateurs de saisie qui imposent un surplus de travail au SIS. Enfin, le transport des CD vers la DOB nécessite de solliciter des personnes fiables, choix plus ou moins difficile à faire, pouvant compromettre l’authenticité des informations transmises. Tous ces problèmes ont donné leu à des situations plus ou moins regrettables : > Double orientation d’élèves ; > Elèves affectés dans la base de données mais absents sur les listings ; > Elèves affectés sans établissement d’accueil ; 29 DEUXIEME PARTIE : ETUDE TECHNIQUE Nous allons dans cette partie expliquer les différents choix effectués pour la réalisation du projet qui nous a été soumis. Il s’agira en effet d’exposer de façon explicite les éléments techniques utilisés, allant de la généralité sur la conception de système d’information à la réalisation pratique du projet. 30 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION 3.1 Approche de la conception de système d’information Un Système d’Information (SI) est un système constitué des ressources humaines, des ressources informatiques (équipement, logiciel, données) et des procédures permettant d’acquérir, de stocker, de traiter et de diffuser les éléments d’information pertinents au fonctionnement d’une entreprise ou d’une organisation (Management Information System, en Anglais) [3] . En ce qui nous concerne, la partie à gérer est l’ensemble des ressources informatiques que la DOB utilise lors des différentes commissions nationales d’orientation et des bourses. En effet, les autres parties ont fait l’objet de propositions visant une reforme du système éducatif et donc nécessitant l’intervention préalable des décideurs. Le développement des TIC étant essentiellement axé sur la réduction au strict minimum de l’effort humain, différentes organisations d’équipements ont été Figure 3.1 : Système d’Information (SI) mises au point au cours des décennies en vue de fédérer les opérations des divers acteurs et permettre l’accès partagé à des ressources. Deux architectures de base nous intéressent ici : l’architecture centralisée et l’architecture décentralisée. 3.1.1 Architecture centralisée Une architecture est dite centralisée si toutes les ressources se trouvent au même endroit ou sur la même machine. Toutes les machines de l’architecture qui désirent accéder à des données interrogent les ressources distantes. 31 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION Figure 3.2 : Schéma générale d’une architecture centralisée 3.1.1.1 Avantages de l’architecture centralisée Une architecture centralisée permet de concentrer toute l'intelligence au sein d'un même matériel, et de n'avoir qu'un seul point à administrer, à configurer, et à surveiller, car c'est le seul point exposé au piratage. Cela simplifie les contrôles de sécurité et la mise à jour des données et des logiciels. Toute la complexité et la puissance peut être déportée sur le ou les serveur(s), les utilisateurs utilisant simplement un client léger sur un ordinateur terminal qui peut être simplifié au maximum. Les serveurs étant centralisés, cette architecture est particulièrement adaptée et véloce pour retrouver et comparer de vaste quantité d'information 3.1.1.2 Inconvénients de l’architecture centralisée Lorsque plusieurs demandes de communication simultanée parviennent au serveur, ce dernier risque de ne pas supporter la charge. Il doit donc être très performant, très résistant et surveillé de très près, ce qui contribue à en hausser le prix. En plus, toute indisponibilité du serveur occasionne le disfonctionnement systématique de ses clients. Aussi, les clients ne peuvent, en aucun cas, communiquer entre eux, entrainant une asymétrie de l'information au profit des serveurs. 3.1.2 Architecture décentralisée Une architecture est dite décentralisée si les ressources se trouvent à différents endroits, sur des machines éparses. Toutes les machines de l’architecture qui désirent accéder à des données interrogent les ressources distantes. Plusieurs serveurs peuvent aussi bien héberger les mêmes données que des données différentes et complémentaires. 32 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION Figure 3.3 : Schéma générale d’une architecture décentralisée 3.1.2.1 Avantages de l’architecture décentralisée Ce type d'architecture est facilement extensible pour faire face à de nouveaux besoins fonctionnels. Les architectures distribuées offrent une grande souplesse pour faire face aux problèmes de montée en charge (réplication, répartition de charges...) car le seul fait de distribuer les traitements sur les ordinateurs d'un réseau augmente les ressources disponibles. En outre, elles sont très modulaires et offrent de nombreuses possibilités de déploiement. Elles permettent en plus de mettre en place une très forte tolérance aux pannes, des nœuds complets pouvant être indisponibles sans que le service soit interrompu. Une architecture distribuée courante est l'architecture trois tiers à la base de la plupart des applications distribuées de commerce électronique. Cette architecture permet d'interroger et de mettre à jour des sources de données réparties, des services web (programmes hébergés sur des serveurs spécifiques d’internet) permettant de faire appel à différents serveurs pour enrichir une prestation. En effet, l'achat d'un séjour touristique peut comprendre l'achat d'un billet d'avion, d'un séjour hôtelier et d'une assurance d’annulation auprès de différents vendeurs par l'intermédiaire de services web, donc d'objets distribués sur le réseau et dialoguant par des messages. 3.1.2.2 Inconvénients de l’architecture décentralisée La répartition des ressources sur plusieurs serveurs est une source de complexité des applications déployées qui doivent exploiter ces données. En plus, elle nécessite un déploiement de moyen financier plus élevé du fait de la multiplicité des nœuds actifs. Enfin, Il y a ici plusieurs nœuds susceptibles de subir des attaques de la part d’entités malveillantes, ce qui complexifie les techniques de sécurisation du système. 33 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION 3.2 Proposition de solutions Dans les paragraphes précédents, nous avons exposé les avantages et inconvénients de deux types d’architectures de systèmes d’information : les architectures distribuée et centralisée. L’architecture matérielle d’un système d’information étant indispensable à une productivité optimale, nous proposons dans ce qui suit deux architectures inspirées des deux familles d’architectures déjà expliquées. Ces architectures sont bien sûr adaptées au niveau technologique du pays (Côte d’Ivoire) et aux contraintes sécuritaires liées aux données sensibles que l’application doit gérer. Nous verrons en premier lieu une architecture monoposte qui ne nécessite pas de réseau informatique pour fonctionner, et en second lieu une architecture distribuée de type client/serveur qui exige l’interconnexion des machines de production et qui donc procure une rentabilité optimale par la synchronisation automatique des données. 3.2.1 L’architecture monoposte Nous désignons par architecture monoposte, une architecture dans laquelle aucun réseau informatique n’est nécessaire. Ici les ordinateurs sont isolés les uns des autres et communiquent par des opérations manuelles. En effet, dans cette architecture, les différents ordinateurs reçoivent une copie de l’application et traite les données de manière autonome, sous la conduite d’un opérateur humain. Une fois le travail réalisé sur l’un des ordinateurs, les données sont copiées sur une mémoire de masse (CD, DVD, Clé USB, Disque dur externe…) pour les passer à un autre Figure 3.4 : Schéma d’échange dans une ordinateur. Ainsi, nous voyons bien les problèmes architecture monoposte que peut générer une telle architecture. La synchronisation s’avère pénible (c’est d’ailleurs un des problèmes qui tourmentent l’application existante) dans la mesure où l’arrivée des supports amovibles, depuis plusieurs ordinateurs, est très souvent difficile à synchroniser. Dans l’architecture monoposte (c’est d’ailleurs l’architecture utilisée actuellement par le SIS pour la gestion de la CNO et de la CNB), seule l’application sera notre centre d’attention. Il faudra concevoir une application plus stable et la déployer sur les différents sites éloignés de la DOB en y implémentant le maximum d’éléments de sécurité. Contrairement à ce qui existe déjà, la nouvelle application devra exiger un mot de passe avant toute utilisation. Un super utilisateur (utilisateur qui a tous les droits sur l’application) sera 34 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION automatiquement créé à l’installation de l’application. Ce dernier, et lui seul, pourra créer d’autres utilisateurs pour la réalisation de tâches données en limitant leurs droits sur l’application. Toute opération effectuée par chaque utilisateur sera automatiquement enregistrée pour la génération des statistiques d’utilisation de l’application et pour la gestion d’éventuels contentieux. Une fois les saisies et les contrôles faites au niveau de chaque structure éloignée (IEP, Etablissement, CIO…), les données seront transférées au SIS par les moyens habituels (CD, Message électronique,…) pour fusion et préparation de la CNO et de la CNB. Un mécanisme d’authentification par clés asymétrique sera mis en œuvre pour fiabiliser le transfert des données. C’est une architecture qui nécessite des moyens financiers relativement faibles. En effet, seule la fourniture des structures éloignées en matériels informatiques (ordinateur, CD…) est exigée. 3.2.2 L’architecture distribuée de type client/serveur Dans une architecture distribuée, les ressources sont déployées sur différents sites. Les utilisateurs y accèdent pour récupérer ce qui leur est nécessaire. Cela nécessite par conséquent la présence d’un réseau informatique pour l’échange des données, « faisant croitre les dépenses financières », tandis que la sécurité du système d’information globale diminue. Notre proposition, au vue du niveau technologique du pays, se présente sous deux formes : l’interconnexion des différents sites via internet ou via un réseau étendu national à l’aide du réseau des opérateurs de télécommunications. 3.2.2.1 Interconnexion via internet Internet est un vaste réseau à l’échelle mondiale. Il fédère une multitude de réseaux à travers le monde et constitue un outil d’échange très prisé des ivoiriens par la pluralité et la quasi gratuité des services offerts (messagerie électronique, échange sur des réseaux sociaux comme facebook, netlog, twitter…). Il constitue ainsi un réseau largement accessible à toutes les structures décentralisées de la DOB et peut être utilisé pour centraliser les ressources utiles à la CNO et à la CNB sur de puissants serveurs entièrement contrôlés par la DOB. La centralisation des données sur des serveurs contrôlés par la DOB à l’avantage de renforcer la sécurité des ressources et aussi d’éliminer la dispendieuse (en terme de temps et de ressource humaine) opération de fusion jusqu’ici effectuée par le SIS. En effet, cette architecture sous-tend la création d’un site web dynamique constituant un masque de saisie à distance pour chaque structure décentralisée. Les données saisies sont automatiquement enregistrées sur les serveurs de la DOB continuellement connectés au serveur web (le serveur web peut aussi bien être la propriété de la DOB que celle d’un hébergeur de sites web). Les structures décentralisées n’ont pas besoin d’installer une quelconque 35 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION application (à condition de disposer déjà d’un navigateur web); il leur suffit de se connecter au site web par les moyens habituels (cybercafé, accès ADSL à domicile ou au bureau, clé internet des opérateurs de télécommunication…) pour profiter pleinement des fonctionnalités offertes. Des techniques de redondance et réplication seront appliquées au niveau des serveurs de la DOB de sorte à rediriger automatiquement et de façon transparente l’application vers le serveur le plus disponible à un instant donné et à pallier à d’éventuels problèmes de perte de données suite à l’endommagement d’un serveur. Mais un problème majeur pourrait survenir du fait de l’insécurité sur internet. En effet, une personne avertie pourrait injecter des données dans la base de données et corrompre la sauvegarde. Ces problèmes ont tellement inquiété les informaticiens que divers protocoles de sécurité réseau ont été conçus. Leur utilisation est une assurance en termes de sécurisation de nos ressources. Nous pouvons entre autres citer les tunnels chiffrés de niveau 2 et 3, aussi appelés Réseaux Privés Virtuels ou Virtual Private Networks (VPN en Anglais), IPsec, SSL…, les techniques de chiffrement comme le RSA qui assure une confidentialité indéniable des données. Cette architecture pourrait nécessiter assez de moyens financiers du fait de l’achat des serveurs. Figure 3.5 : Architecture distribuée via internet 3.2.2.2 Interconnexion via un réseau étendu national Les réseaux étendus, ou WAN (Wide Area Network), sont destinés à transporter des données numériques sur des distances à l’échelle d’un pays, voire d’un continent ou de plusieurs continents. Le réseau est soit terrestre, et il utilise dans ce cas des infrastructures au niveau du sol, essentiellement de grands réseaux de fibre optique, soit hertzien, comme les réseaux de satellites [4]. 36 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION Cette solution est envisageable si nous voulons éviter les problèmes de sécurité et de disponibilité liés à internet. En effet, ici, un accord est pris avec un opérateur de télécommunication national qui fournit des services supports. L’opérateur donne la garantit de la disponibilité du réseau sur la quasi-totalité du temps négocié. La sécurisation des données circulant sur son réseau peuvent bien être de son ressort si l’accord signé en tient compte. Ce qui change dans cette architecture par rapport à la précédente, c’est le fait que le système d’information soit isolé du réseau public et que le réseau de transport soit sous le contrôle d’une structure connue et repérable en cas d’insatisfaction dans la transmission des données. Cela confère une sécurité accrue au système informatique en le rendant plus stable. Cependant, le forfait versé au fournisseur du service support pourrait rendre cette solution plus coûteuse que la précédente. Dans les deux cas, le fait que toute l’intelligence du système d’information soit concentrée sur le site web qui est « unique » et sous le contrôle de la DOB rendrait l’évolutivité des services offerts plus souple. Figure 3.6 : Architecture distribuée via un réseau étendu national 3.3 Choix d’une solution Les différentes architectures ci-dessus exposées nous incitent à choisir une architecture distribuée de type client/serveur. En effet, l’observation du processus de gestion des orientations en seconde et des affectations en sixième, révèle que la plupart des opérations donnant lieu à des doublons dans la base de données provient de la pluralité des sources de données non synchronisées (un CD par IEP, voire par établissement). En plus, le transport manuel de l’information est très coûteux en temps et en ressource humaine ; un ensemble de problèmes aisément surmontables par l’utilisation d’une architecture distribuée de type client/serveur à l’échelle nationale. Néanmoins, un 37 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION certain nombre de considérations doit être pris en compte pour rendre le projet viable au regard des contraintes exprimées. 3.3.1 Les contraintes Une contrainte est une entrave à la liberté d’action, une règle obligatoire à appliquer [5] . Les contraintes constituent donc une part importante dans la réalisation de notre projet. C’est d’ailleurs l’élément essentiel qui nous permettra de percevoir les véritables besoins de l’utilisateur et de fournir en conséquence une solution adaptée. Elles se situent à différents niveaux, allant du temps de réalisation à la flexibilité de la solution. En effet : 1. Le temps de réalisation est fixé à trois (03) mois et prend en compte la formation des utilisateurs et l’atelier de validation, 2. Le budget alloué au projet est relativement réduit (deux millions (2.000.000) FCFA) et la solution doit impérativement en tenir compte. Cela impose d’ailleurs l’AGL à utiliser pour développer l’application. Il s’agit de WINDEV, la DOB disposant déjà d’une licence d’utilisation, 3. La solution doit être facile d’utilisation afin de permettre à tous les acteurs autorisés de l’utiliser de façon conviviale, 4. L’administration de la solution doit être aisément accessible à toute personne autorisée pour faciliter d’éventuelles maintenances et évolutions de l’application, 5. Les problèmes de sécurité, d’intégrité des données et de lourdeur liés à l’application existante doivent être résolus. Le respect de ces contraintes nous permettra de choisir une solution basée éventuellement sur une des architectures présentées plus haut. 3.3.2 La solution retenue Le choix d’une solution parmi plusieurs est le résultat d’un exercice intellectuel qui obéit à certains critères. En effet, la solution retenue doit obligatoirement répondre aux besoins de l’utilisateur en tenant compte des contraintes auxquelles ce dernier pourrait être soumis. Ainsi, les contraintes exposées dans les paragraphes précédents nous ont permis de faire un choix optimal pour la DOB. Alors l’architecture distribuée de type client/serveur à l’échelle nationale s’avère très peu viable pour son coût relativement élevé. Elle est donc inadaptée, bien qu’elle aurait procuré une solution indéniable aux problèmes de sécurité et d’intégrité des données de la CNO et de la CNB. Elle cède par conséquent la place à une architecture monoposte qui est bien celle jusqu’ici utilisée par la CNO et la CNB. Néanmoins, fort des inconvénients que présente une telle architecture et qui 38 CHAPITRE 3 : CONCEPTION DE SYSTEME D’INFORMATION d’ailleurs justifie notre présence au sein du SIS, nous avons mis en place une variante de l’architecture distribuée de type client/serveur à une échelle réduite. Ainsi, l’architecture nécessite moins de moyen financier tout en fournissant une grande partie des avantages d’une architecture distribuée de type client/serveur à l’échelle nationale. Il s’agit ici de déployer les équipements sur un réseau local au sein de chaque structure de la DOB intervenant dans le processus menant à la CNO et à la CNB. Dès lors, le travail en réseau facilitera les opérations de contrôle et de correction qui pourront être effectuées en même temps que les opérations de saisie. En outre, plusieurs opérateurs de saisie pourraient travailler simultanément sur la même base de données en éliminant les fastidieuses opérations de fusion de données dues à une architecture monoposte, ce qui aboutira à une réduction considérable du temps de saisie de données. Le réseau peut bien être limité à un seul ordinateur, donnant ainsi lieu à une architecture monoposte. Cette variante incorpore, par conséquent, les deux architectures déjà proposées et bénéficie donc des avantages de chacune d’entre elles, en présentant moins d’inconvénients que chacune d’entre elles. Un avantage non négligeable pour cette architecture est la facilité de la migration vers une architecture distribuée de type client/serveur à l’échelle nationale que nous avons fortement conseillée à la DOB pour le moyen terme. Figure 3.7 : Architecture distribuée dans un réseau local Pour ce qui est du SGBD, nous utiliserons HyperFileSQL, les moyens à notre disposition ne nous permettant pas de nous procurer la licence d’utilisation d’un autre SGBD. En effet, la DOB dispose déjà de la licence d’utilisation de WINDEV et donc de HyperFileSQL (qui vient en complément à WINDEV). Néanmoins, nous recommandons vivement à la DOB d’effectuer une étude approfondie de ce SGBD pour juger sa validité, sinon de se procurer la licence d’exploitation d’un SGBD connu, qui a déjà fait ses preuves dans diverses entreprises. Nous pouvons, entre autres, citer Oracle et SQL Serveur (utilisé, par exemple, par l’INP-HB pour la gestion de ses concours). Mais le coût relativement élevé d’Oracle pourrait le disqualifier et faire de SQL Serveur, dont le coût est relativement accessible, un SGBD viable et adapté au projet ; là encore, une étude préalable doit être faite pour un choix objectif tenant surtout compte des fonctionnalités offertes. 39 CHAPITRE 4 : MODELISATION DU SYSTEME D’INFORMATION 4.1 Concepts généraux Une gestion efficiente des données nécessite la mise en place d’une base de données déployée sur un ou plusieurs serveurs de base de données. Cette base de données devra être interrogée par des applications soigneusement conçues pour éviter au mieux les anomalies de mise à jour observées dans certains systèmes de conception médiocre. Dans ce qui suit, nous présentons les concepts généraux utiles, voire indispensables à la conception d’un système d’information fiable et viable, dans le but de permettre au lecteur de comprendre les différents choix effectués pendant la réalisation du projet. 4.1.1 Bases de données et SGBD Les bases de données sont partout dans la vie quotidienne et se présentent sous diverses formes. En effet une base de données n’est rien d’autre qu’un ensemble de données structurées et sauvegardées qui qualifie le fonctionnement d’une entité organisée. Cela peut aller d’une pile d’assiettes soigneusement rangée dans une étagère à un ensemble de données numériques sauvegardées sur un ordinateur de capacité relativement grande appelé serveur de base de données. Dans notre cas, le traitement doit être fait sur des données numériques, d’où la nécessité de concevoir une base de données numérique au moyen d’un SGBD puissant et fiable. Un Système de Gestion de Base de Données (SGBD ou Data Base Management System (DBMS), en Anglais) est un ensemble de logiciels informatiques qui sert à la manipulation des bases de données. Il sert à effectuer des opérations ordinaires telles que consulter, modifier, construire, organiser, transformer, copier, sauvegarder ou restaurer des bases de données. Il est souvent utilisé par d'autres logiciels ainsi que les administrateurs ou les développeurs. L'ensemble, dont le composant central est le moteur de base de données, peut être sous forme de composant logiciel, de serveur, de logiciel applicatif ou d'environnement de programmation. Il permet généralement à plusieurs utilisateurs et plusieurs logiciels de manipuler plusieurs bases de données en même temps et ceci quel que soit le contenu et l'organisation des bases de données. La majorité des SGBD du marché manipulent des bases de données relationnelles. Il est néanmoins important de préciser qu’il existe des bases de données hiérarchiques, réseaux et orientées objets. 40 4.1.1.1 Les bases de données hiérarchiques Une première génération de SGBD est née de travaux de recherche menés dans les années 1960 pour le compte de la NASA (National Aeronautics and Space Administration, agence aéronautique et spatiale des USA) dans le cadre du projet Apollo et commercialisés dans les années 1970 par la société IBM sous le nom IMS (Information Management System) [6] . Le SGBD était basé sur le principe que les enregistrements conservés dans divers fichiers pouvaient être liés selon une certaine hiérarchie et constituer un assemblage arborescent. On a appelé structure hiérarchique cette forme de liaison entre des enregistrements de fichiers distincts. En vertu de ce modèle d’organisation des données, un enregistrement peut être le père de plusieurs enregistrements qui à leur tour peuvent avoir des fils. Par exemple un fichier appelé Étudiants contenant des données sur les étudiants peut être lié à un autre fichier Cours contenant des données sur les cours suivis par les étudiants. A l’aide d’un langage dit de navigation entre les fichiers, le programmeur accédant à un enregistrement du fichier Étudiants peut repérer automatiquement les enregistrements fils du fichier Cours. Un SGBD hiérarchique possède un avantage indéniable sur les systèmes basés sur des fichiers. Il permet en effet d’établir des liens un à plusieurs Figure 4.1 : Structure hiérarchique d’une entre les fichiers d’une base de données ; un base de données hiérarchique enregistrement père peut être lié à plusieurs enregistrements fils. 4.1.1.2 Les bases de données réseaux Suite aux nombreux problèmes suscités par les SGBD hiérarchiques, des chercheurs de la société américaine General Electric eurent l’idée de généraliser l’approche de ces SGBD en proposant un modèle d’organisation des données permettant des liens plusieurs à plusieurs entre les fichiers. La hiérarchie père-fils n’existe pas dans ce modèle car un enregistrement peut avoir plusieurs Figure 4.2 : Maillage dans une base de données réseau 41 successeurs de même que plusieurs prédécesseurs. Les fichiers sont liés en réseau maillé à la manière des réseaux d’égout où à un point du réseau convergent des connecteurs effluents et des connecteurs affluents. Ces SGBD sont dits de type réseau (ou simplement SGBD réseau) et permettent de représenter des associations complexes entre les fichiers. Cette catégorie de SGBD a suscité beaucoup d’intérêt dans la communauté des chercheurs et des utilisateurs intéressés par les bases de données. Cela a donné lieu, à la fin des années 1960, à la création d’un groupe de travail visant à définir des normes pour le SGBD de type réseau portant sur les caractéristiques requises pour assurer la création des bases de données ainsi que la manipulation de données. Ces normes, connues sous le vocable CODASYL, décrivent en quelque sorte l’environnement requis pour la conception et l’exploitation des bases de données réseaux. Elles reconnaissaient pour la première fois de manière formelle l’importance du schéma physique de la base de données, le rôle clé de la personne responsable de sa construction et de son entretien, c’est-à-dire l’administrateur de base de données (ABD). La norme met en évidence la nécessité de mettre à la disposition de l’ABD un langage pour la construction de schéma physique appelé le Langage de Définition de Données (LDD, ou Data Definition Language (DDL) en Anglais) ainsi que d’offrir au programmeur un langage pour exploiter les données, le Langage de Manipulation de Données (LMD, ou Data Manipulation Language (DML) en Anglais). 4.1.1.3 Les bases de données relationnelles Les SGBD hiérarchiques et réseaux constituent la première génération de SGBD. Malheureusement ils comportaient certaines lacunes notamment au plan des fondements théoriques. De plus ils ne permettaient pas en pratique d’assurer l’indépendance tant souhaitée entre les applications et les données. En effet, comme le lien entre deux enregistrements était implanté à l’aide d’un pointeur, soit une sorte d’adresse permettant de repérer un enregistrement associé, cela donnait lieu à des programmes complexes même pour des requêtes simples. Le début des années 1970 a été marqué par une avancée importante dans le domaine des SGBD. Edgar Frank Codd, chercheur au laboratoire de recherche d’IBM (International Business Machines) de San Jose en Californie, s’inspirant de l’algèbre relationnelle, proposa un mode d’organisation des données ne nécessitant pas de pointeurs pour lier les enregistrements. Non seulement ce modèle avait ses fondements théoriques solidement établis dans l’algèbre relationnelle, mais il était aussi d’une grande simplicité. La structure d’un fichier est définie comme une relation entre des données provenant d’un nombre fini de domaines. Les enregistrement sont des tuples, et constituent des occurrences de la relation. Les liens sont assurés entre deux enregistrements sur la base d’un champ 42 de même type, commun aux deux enregistrements. Si les champs communs possèdent la même valeur, les enregistrements sont logiquement liés. Il n’est dès lors plus nécessaire de gérer des pointeurs physiques pour assurer ces liens. De physiques qu’étaient les liens dans les SGBD hiérarchiques ou réseaux, les liens sont dorénavant logiques, basés sur les valeurs des champs, ce qui rend la navigation entre les enregistrements beaucoup plus souple. Ce mode d’organisation des données a donné naissance à une pléthore de SGBD relationnels commerciaux et non commerciaux dont DB2, Oracle, Microsoft Access, MySQL, pour ne nommer que les mieux connus. Les SGBD relationnels sont de deuxième génération et ils ont tous en commun intrinsèquement un langage appelé SQL (Structured Query Language) agissant à la fois comme langage de définition et langage de manipulation de données. Malgré leurs nombreuses qualités, les SGBD relationnels ont un certain nombre de lacunes pour l’expression de modèles de données à un haut niveau d’abstraction, ce que nous définirons à la partie 4.3, comme le Modèle Conceptuel de Données. 4.1.1.4 Les bases de données orientées objets et autres Le développement de langages orientés objets tels que Java et Smalltalk a conduit à la mise au point de SGBD devant assurer la persistance des objets, soit le stockage permanent sur un support de mémoire auxiliaire des objets créés à l’aide de tels langages. Ce SGBD dit orienté objet ou simplement SGBD objet appartient à la troisième génération. Le SGBD Gemstone par exemple est une extension du langage Smalltalk. Le développement des SGBD objet a été freiné par des SGBD hybrides incorporant le modèle relationnel et le stockage d’objets. Les objets peuvent être soit de type structuré comme ceux créés par un langage orienté objet ou de type non structuré telles que des images, de la vidéo, des trames sonores. Le type non structuré est aussi appelé BLOB (Binary Large Object). On donne le nom SGBD relationnel-objet à cette forme hybride car il combine les propriétés du SGBD relationnel et du SGBD objet. L’éditeur américain Informix a été un précurseur en matière de SGBD relationnel-objet pour être suivi et vite dépassé par Oracle et IBM avec leur produit Oracle8 et DB2 Universal Database System respectivement. A l’aube du XXIe siècle on parle d’une quatrième génération de SGBD. Il s’agit d’une catégorie hétérogène de SGBD conçus avant tout pour des applications spécialisées, comme par exemple et non exclusivement, les SGBD OLAP (On Line Analytical Processing) largement utilisés pour l’entreposage des données et l’exploration des données, les SGBD XML pour les applications Web, ou enfin les SGBD de contraintes pour les applications d’optimisation. 43 4.1.2 Merise, POO et UML La conception d'un système d'information n'est pas toujours évidente dans la mesure où il faut réfléchir à l'ensemble de l'organisation que l'on doit mettre en place. La phase de conception nécessite par conséquent des méthodes permettant de mettre en place un modèle sur lequel l’on va s'appuyer. Il existe plusieurs méthodes d'analyse dont Merise et UML qui utilise principalement l’approche objet. 4.1.2.1 Merise Issue de l'analyse systémique, la méthode Merise est le résultat des travaux menés par Hubert Tardieu, un ingénieur français diplômé de l’Ecole Supérieure d’Electricité (Supélec) en France, dans les années 1970 et qui s'inséraient dans le cadre d'une réflexion internationale, autour notamment du modèle relationnel d'Edgar Frank Codd. Elle est devenue un projet opérationnel au début des années 1980 à la demande du ministère de l'industrie, et a surtout été utilisée en France, pour les projets d'envergure, notamment des grandes administrations publiques ou privées. De l'aveu même d'un de ses fondateurs, le nom Merise vient de l'analogie faite avec le merisier "qui ne peut porter de beaux fruits que si on lui greffe une branche de cerisier : ainsi en va-t-il des méthodes informatiques bien conçues, qui ne produisent de bons résultats que si la greffe sur l'organisation réussit", même si beaucoup de gens ont voulu y voir un acronyme comme par exemple Méthode d'Étude et de Réalisation Informatique par les Sous-Ensembles ou pour les Systèmes d'Entreprises. La méthode Merise d'analyse et de conception propose une démarche articulée simultanément selon trois (03) axes pour hiérarchiser les préoccupations et les questions auxquelles répondre lors de la conduite d'un projet: 1. Cycle de vie : phases de conception, de réalisation, de maintenance puis nouveau cycle de projet. 2. Cycle de décision : des grands choix (GO - NO GO : Étude préalable), la définition du projet (étude détaillée) jusqu'aux petites décisions des détails de la réalisation et de la mise en œuvre du système d'information. Chaque étape est documentée et marquée par une prise de décision. 3. Cycle d'abstraction : niveaux conceptuels, logique/organisationnel et physique/opérationnel (du plus abstrait au plus concret). L’objectif est de prendre d'abord les grandes décisions métier, pour les principales activités (Conceptuel) sans rentrer dans le détail de questions d'ordre organisationnel ou technique. 44 La méthode Merise distingue nettement les données et les traitements, même si les interactions entre les deux sont profondes et s'enrichissent mutuellement, la validation des données étant effectuée par les traitements et réciproquement. Aujourd'hui, avec les SGBD Relationnel, l'objet, les notions de données et de traitements sont de plus en plus imbriquées. La conception du système d'information se fait par étapes, afin d'aboutir à un système d'information fonctionnel reflétant une réalité physique. Il s'agit donc de valider une à une chacune des étapes en prenant en compte les résultats de la phase précédente. D'autre part, les données étant séparées des traitements, il faut vérifier la concordance entre données et traitement afin de vérifier que toutes les données nécessaires aux traitements sont présentes et qu'il n'y a pas de données superflues. Cette succession d'étapes est appelée cycle d'abstraction pour la conception des systèmes d'information: L'expression des besoins est une étape consistant à définir ce que l'on attend du système d'information automatisé, il faut pour cela faire l'inventaire des éléments nécessaires et délimiter le système en s'informant auprès des futurs utilisateurs. Cela va permettre de créer le MCC (Modèle Communication) Conceptuel qui de définit les la flux d'informations à prendre en compte. L'étape suivante consiste à mettre au point le MCD (Modèle Conceptuel des Données) et le MCT (Modèle Conceptuel des Traitements) décrivant les règles et les contraintes à prendre en compte. Le modèle organisationnel consiste quant à lui à définir le MOT (Modèle Organisationnel des Traitements) décrivant les contraintes Figure 4.3 : Cycle d'abstraction pour la conception des systèmes d'information organisationnelles, spatiales et temporelles dues à l'environnement. Le modèle logique représente un choix logiciel pour le système d'information tandis que le modèle physique reflète un choix matériel pour le système d'information. 45 4.1.2.2 Programmation Orientée Objet (POO) La Programmation Orientée Objet (POO), ou programmation par objet, est un paradigme de programmation informatique élaboré par un informaticien américain nommé Alan Kay dans les années 1970. Il consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait communiquer avec ses pairs. Il s'agit donc de représenter ces objets et leurs relations ; la communication entre les objets via leurs relations permet de réaliser les fonctionnalités attendues, de résoudre le ou les problèmes. À partir des années 1980, commence l'effervescence des langages à objets : Objective C (début des années 1980), C++ (C avec classes) en 1983, Eiffel en 1984, Common Lisp Object System dans les années 1980, etc. Les années 1990 voient l'âge d'or de l'extension de la programmation par objet dans les différents secteurs du développement logiciel. Depuis, la programmation par objet n'a cessé d'évoluer aussi bien dans son aspect théorique que pratique et différents métiers et discours mercatiques à son sujet ont vu le jour : 1. l’analyse objet (AOO pour Analyse Orientée Objet ou OOA en Anglais pour Object Oriented Analysis), 2. la conception objet (COO pour Conception Orientée Objet ou OOD en Anglais (Object Oriented Design)), 3. les bases de données objet (SGBDOO), 4. les langages objet avec les langages à prototypes, 5. ou encore la méthodologie avec MDA (Model Driven Architecture). Aujourd’hui, la programmation par objet est vue davantage comme un paradigme, le paradigme objet, que comme une simple technique de programmation. C'est pourquoi, lorsque l'on parle de nos jours de programmation par objets, on désigne avant tout la partie codage d’un modèle à objets obtenu par AOO et COO. Elle ne renie pas la programmation structurée ; elle se fonde sur elle. Elle contribue à la fiabilité des logiciels et facilite la réutilisation de code existant. Elle introduit de nouveaux concepts, en particulier ceux d’objets, d’encapsulation, de classe et d’héritage. 46 4.1.2.2.1 Les concepts d’objet et d’encapsulation En programmation structurée, un programme est formé de la réunion de différentes procédures et de différentes structures de données généralement indépendantes de ces procédures. En POO, un programme met en œuvre différents objets. Chaque objet associe des données et des méthodes agissant exclusivement sur les données de l’objet. Mais cette association est plus qu’une simple juxtaposition. En effet, dans ce que l’on pourrait qualifier de POO « pure », on réalise ce que l’on nomme une encapsulation des données. Cela signifie qu’il n’est pas possible d’agir directement sur les données d’un objet; il est nécessaire de passer par ses méthodes, qui jouent ainsi le rôle d’interface obligatoire. On traduit parfois cela en disant que l’appel d’une méthode est en fait l’envoi d’un message à l’objet. Le grand mérite de l’encapsulation est que, vu de l’extérieur, un objet se caractérise uniquement par les spécifications de ses méthodes, la manière dont sont réellement implantées les données étant sans importance. On décrit souvent une telle situation en disant qu’elle réalise une abstraction des données, ce qui exprime bien que les détails concrets d’implémentation sont cachés. A ce propos, on peut remarquer qu’en programmation structurée, une procédure pouvait également être caractérisée, de l’extérieur, par ses spécifications, mais que, faute d’encapsulation, l’abstraction des données n’était pas réalisée. L’encapsulation des données présente un intérêt manifeste en matière de qualité de logiciel. Elle facilite considérablement la maintenance : une modification éventuelle de la structure des données d’un objet n’a d’incidence que sur l’objet lui-même ; les utilisateurs de l’objet ne seront pas concernés par la teneur de cette modification, ce qui n’était bien sûr pas le cas avec la programmation structurée. De la même manière, l’encapsulation des données facilite grandement la réutilisation d’un objet. 4.1.2.2.2 Le concept de classe Le concept de classe correspond simplement à la généralisation de la notion de type que l’on rencontre dans les langages classiques. En effet, une classe n’est rien d’autre que la description d’un ensemble d’objets ayant une structure de données commune et disposant des mêmes méthodes. Les objets apparaissent alors comme des variables d’un tel type classe, on dit aussi qu’un objet est une instance de sa classe. Bien entendu, seule la structure est commune, les valeurs des champs étant propres à chaque objet. En revanche, les méthodes sont effectivement communes à l’ensemble des objets d’une même classe. Lorsque, comme cela arrive parfois dans l’écriture d’interfaces graphiques, on est amené à ne créer qu’un seul objet d’une classe donnée, la distinction entre les notions d’objet et de classe n’est pas toujours très évidente. En revanche, lorsque l’on dispose de 47 plusieurs objets d’une même classe, le principe d’encapsulation s’appliquera à la classe et non à chacune de ses instances. 4.1.2.2.3 L’héritage Un autre concept important en POO est celui d’héritage. Il permet de définir une nouvelle classe à partir d’une classe existante (qu’on réutilise en bloc), à laquelle on ajoute de nouvelles données et de nouvelles méthodes. La conception de la nouvelle classe, qui hérite des propriétés et des aptitudes de l’ancienne, peut ainsi s’appuyer sur des réalisations antérieures parfaitement au point et les spécialiser à volonté. Comme on peut s’en douter, l’héritage facilite largement la réutilisation de produits existants, d’autant plus qu’il peut être réitéré autant de fois que nécessaire (la classe C peut hériter de B, qui elle-même hérite de A). 4.1.2.2.4 Le polymorphisme En POO, une classe peut "redéfinir", c’est-à-dire modifier, certaines des méthodes héritées de sa classe de base. Cette possibilité est la clé de ce que l’on nomme le "polymorphisme", c’est-àdire la possibilité de traiter de la même manière des objets de types différents, pour peu qu’ils soient issus de classes dérivées d’une même classe de base. Plus précisément, on utilise chaque objet comme s’il était de cette classe de base, mais son comportement effectif dépend de sa classe effective qui est dérivée de la classe de base, en particulier de la manière dont ses propres méthodes ont été redéfinies. Le polymorphisme permet d’ajouter de nouveaux objets dans un scénario préétabli et, éventuellement, écrit avant d’avoir connaissance du type exact de ces objets [7] . 4.1.2.3 Unified Modeling Language (UML) La première moitié des années quatre-vingt-dix (1990) a vu fleurir une cinquantaine de méthodes objet utilisées dans la conception des programmes informatiques orientés objet. Un tri effectué sur les différents concepts proposés par les méthodes existantes a donné lieu à l’unification des méthodes de modélisations objet. Partant de la constatation que les différences entres les méthodes s’amenuisent et que la guerre des méthodes ne fait plus progresser la technologie objet, Jim Rumbaugh et Grady Booch décident fin quatre-vingt-quatorze (1994) d’unifier leurs travaux au sein d’une méthode unique : la méthode unifiée (The Unified Method, en Anglais). Une année plus tard, ils sont rejoints par Ivar Jacobson, le créateur des cas d’utilisation (use cases, en Anglais), une technique très efficace pour la détermination des besoins. Ils se fixent quatre objectifs : 1. Représenter des systèmes entiers (au-delà du seul logiciel) par des concepts objets, 2. Etablir un couplage explicite entre les concepts et les artefacts exécutables, 48 3. Prendre en compte les facteurs d’échelle inhérents aux systèmes complexes et critiques, 4. Créer un langage de modélisation utilisable à la fois par les humains et les machines. Les auteurs de la méthode unifiée atteignent très rapidement un consensus sur les concepts fondamentaux de l’objet. En revanche, la convergence sur les éléments de notation est plus difficile à obtenir et la représentation graphique retenue pour les différents éléments de modélisation connaîtra plusieurs modifications. UML est à sa version 2.4 beta en Mars 2011 et comprend treize (13) diagrammes dont les diagrammes de cas d’utilisation, de séquence, d’activité et de déploiement que nous verrons de façon détaillée dans les sections qui suivent. UML n’est pas une notation propriétaire : elle est accessible à tous les fabricants d’outils ainsi que les entreprises de formation. La volonté d’ouverture, la richesse de la modélisation font d’UML une notation générale et simple, sans être simpliste. En français, UML pourrait se traduire par langage unifié pour la modélisation objet, mais il est plus que probable qu’UML se traduise plutôt par notation unifiée, voire notation UML, sur le même schéma que méthode OMT. 4.1.3 La sécurité informatique En cryptographie numérique, chiffrer une information consiste à modifier la suite d'octets qui constituent cette information au moyen d'un algorithme mathématique. L'algorithme étant normalisé, il peut être connu de tout le monde. Ainsi, pour que le secret soit assuré, il faudra que cet algorithme utilise un paramètre supplémentaire appelé « clé ». Une information chiffrée avec un algorithme connu restera déchiffrable par les seuls possesseurs de la clé appropriée, même si l'algorithme est connu de tous. Les clés de chiffrement sont donc les éléments essentiels dans la garantie du secret souhaité. Une fois le procédé mis en place, quelques services peuvent être fournis. 4.1.3.1 Confidentialité L'usage auquel on pense en premier est naturellement la confidentialité des données. Le premier désir est bien que les messages ne soient lisibles que par les seules personnes autorisées, mais c'est loin de suffire, pour assurer une totale relation de confiance. Il faut un contrôle d’intégrité et une authentification préalables des interlocuteurs. 49 4.1.3.2 Contrôle d'intégrité et authentification 4.1.3.2.1 Intégrité Dans certains cas, il peut être nécessaire d'assurer simplement que les données sont intègres, c'est à dire qu'elles n'ont pas été au passage falsifiées par un intrus. Ces données restent « claires », au sens où elles ne sont pas secrètes. Un exemple simple serait le cas du partage en téléchargement d’un fichier contenant une application informatique. L’auteur voulant éviter la dénaturation de son application par injection post-conception de code nuisible, tout en rendant le code source de l’application, sous licences GPL, accessible au grand public , réalise un « résumé concis » du fichier, typiquement une somme MD5 ou SHA suffisamment précise pour mettre en évidence toute modification ultérieure du fichier (ces deux techniques de hachage sont expliquées dans l’annexe A.4). Mais sans précautions supplémentaires, cela ne sera pas une protection infaillible, dans la mesure où celui qui corrompt le fichier en téléchargement, peut sans doute modifier aussi l'empreinte, pour qu'elle soit celle du fichier corrompu. Il faudra donc trouver en plus, un moyen pour certifier l'authenticité de cette empreinte. 4.1.3.2.2 Authentification Il s'agit d'apporter par la cryptographie la preuve que le message est bien authentique. Compte tenu de ce que nous venons de voir, il suffira dans la plupart des cas de pouvoir assurer que l'auteur de l'empreinte du message est bien celui qu'il prétend être. Il s'agit en quelque sorte d'une lettre manuscrite, non raturée et signée. Cela permet aussi d’assurer la non-répudiation. En effet, celui qui a rédigé une lettre manuscrite, non raturée et signée de sa main, ne pourra en aucun cas prétendre par la suite qu'il n'en est pas l'auteur ; il en va de même pour l'authentification numérique faite au moyen de clés numériques et d’algorithmes soigneusement conçus. 4.1.3.2.2.1 Les clés, leurs types et leurs utilités Il y a deux types de clés : 1. les clés dites symétriques, on chiffre et déchiffre avec la même clé. 2. les clés dites asymétriques, avec une clé publique et une clé privée, ce qui est chiffré avec l'une ne peut être déchiffré qu'avec l'autre. Les deux clés sont uniques et sont liées l'une à l'autre ; mais si la clé privée est confidentielle, la clé publique peut, quant à elle, être copiée à volonté. 50 Il s'agit en fait d'un abus de langage. Les clés ne sont pas symétriques ni asymétriques, ce sont les procédés de chiffrement qui le sont. 4.1.3.2.2.2 Chiffrement symétrique C'est le plus « facile à comprendre », c'est aussi la méthode de chiffrement la plus facile à réaliser et qui consomme le moins de ressources de calcul et de bande passante. Les deux hôtes qui doivent échanger des données confidentielles disposent tous les deux d'une clé identique. L'émetteur chiffre les données avec cette clé, puis les envoie au récepteur. Ce dernier déchiffre avec la même clé pour récupérer des données lisibles. Cette méthode assure la confidentialité des données car quiconque intercepterait la communication ne pourrait pas lire les données échangées tant qu'il ne se serrait pas procurer la clé. Il n'y a aucune authentification de faite sur l'émetteur comme sur le récepteur, sauf si deux personnes seulement disposent de la clé. Le principal souci avec cette méthode, c'est qu'il faut s'échanger la clé et lors de cet échange, sans précautions particulières, n'importe quoi peut se produire. Un exemple de cette technique cryptographique est le chiffrement WEP (Wired Equivalent Privacy) utilisé dans les réseaux WI-FI où seuls les terminaux disposant de la clé WEP peuvent avoir accès au réseau sans fil. 4.1.3.2.2.3 Chiffrement asymétrique Cette méthode permet de faire aussi bien l'authentification que la confidentialité des données. Il est évidemment possible de combiner les deux. Chaque personne dispose d'un jeu de clés comportant : 1. une clé privée : elle est unique et confidentielle, elle appartient exclusivement à l'hôte concerné, aucun double de cette clé ne doit être créé, 2. une clé publique : elle est unique également, mais tout le monde peut s'en procurer une copie, il suffit d'aller la chercher chez un dépositaire, dit « tiers de confiance ». Il s'agit en quelque sorte d'un concierge qui garde ces clés publiques et certifie qu'elles appartiennent bien à la personne indiquée, Ce qui est chiffré avec une clé publique ne peut être déchiffré qu'avec la clé privée correspondante et réciproquement. Cette technique permet d’effectuer une authentification efficace entre un nombre élevé d’interlocuteurs lorsque le chiffrement se fait avec la clé privée et non le contraire. En effet, lorsqu’un message chiffré est déchiffré avec une clé publique, il ne peut avoir été chiffré qu’avec la clé privée de celui à qui appartient cette clé publique ; et comme l’unicité des clés est assurée dans le système, le tour est bien joué. 51 Il existe dans le monde plusieurs organismes à but lucratif qui fournissent les services d’autorité de certification (Certification Authority (CA), en Anglais). Lorsque l’on s'adresse à un tel organisme pour récupérer une clé publique, il l'envoi avec un certificat. Il s'agit, pour ledit organisme, de chiffrer la clé publique demandée, ainsi que quelques informations supplémentaires sur le propriétaire de cette clé, avec sa propre clé privée, pour authentifier son envoi. Il ne reste plus qu’à disposer de la clé publique de cet organisme dit tiers de confiance, par un moyen sûr pour déchiffrer le message et récupérer la clé envoyée. Les certificats sont à la norme X.509. Par exemple, les navigateurs installent, généralement à l’insu de l’internaute, des certificats de divers organismes de certification, sur son ordinateur. Voyons le cas de Mozilla Firefox : Outils → Options → Avancé → Chiffrement → Afficher les certificats Figure 4.4.a : Exemple de certificat numérique sous Mozilla Firefox Voici un résumé du contenu d'un certificat (remarquons la présence d’une clé publique sur la figure Figure 4.4.c) : 52 Figure 4.4.b : Contenu d’un certificat numérique Figure 4.4.c : Exemple de clé publique dans un certificat numérique 53 Le volume de données chiffrées à l’aide d’une clé privée devenant trop important avec le temps, les chances de découverte de cette clé par un intrus augmente significativement, d’où la nécessité de prévoir une durée de vie à cette clé et donc au certificat. Comme une clé peut se perdre ou être volée, il faudra aussi prévoir un système « d'opposition », une liste de révocation, qui permet de signaler les certificats non encore expirés, mais qui ne sont plus dignes de confiance pour une raison quelconque. Le CA se doit donc de tenir à jour une liste de révocation, et, lorsqu'un utilisateur doit user d'un certificat qui est déjà en sa possession, il devrait commencer par vérifier si celui-ci n'a pas été révoqué entre temps. 4.2 Modélisation de l’application La modélisation consiste à créer une représentation virtuelle d'une réalité de façon à faire ressortir les points auxquels on s'intéresse. Elle a l’avantage indubitable de simplifier la conception de logiciel en la rendant assez rationnelle. Il existe plusieurs méthodes de modélisation dont UML que nous utilisons pour modéliser l’application au moyen de diagrammes de cas d’utilisation, de séquence, d’activité et de déploiement. 4.2.1 Expression des besoins L’observation du système opérant (le processus d’affectation en sixième et d’orientation en seconde et le processus d’attribution et de renouvellement de bourses en Côte d’Ivoire) et l’échange avec des personnes ressources, nous ont permis de définir les besoins éventuels que pourrait manifester un utilisateur de la plateforme et de procéder à leur modélisation pour la conception d’un système informatique convenable et fiable. L’expression des besoins s’est faite à l’aide de l’outil d’analyse et de modélisation UML comme l’illustre la figure 4.5. Ce diagramme de cas d’utilisation nous permet de présenter les besoins de manière graphique pour faciliter leur étude. Nous en déduisons quatre (04) acteurs principaux sur notre système ; à savoir IEP, ETABLISSEMENT, DOB et ADMINISTRATEUR. Ces différents acteurs utilisent le système pour effectuer des actions qui influencent la CNO et la CNB : 1. IEP et ETABLISSEMENT ont la charge de remplir la fiche informatique des candidats aux différents examens. Il s’agit de renseigner la base de données à l’aide du masque de saisie offert par le logiciel. 2. DOB se charge de fusionner les données transmises par les structures éloignées et gère toutes les opérations utiles à la ténue de la CNO et de la CNB. Il peut aussi exécuter les actions de tous les autres acteurs. 54 3. ADMINISTRATEUR quant à lui effectue les configurations nécessaires au fonctionnement du système informatique. Il peut exister un ou plusieurs administrateurs dans chaque structure concernée par le déploiement de l’application. Tous les acteurs ont la possibilité d’imprimer des états relatifs à leurs activités sur le système. Toutefois, l’accès au système n’est possible qu’après identification et authentification de l’acteur. APPLIDOB est le nom de l’application conçue. Appl icati on de gestion automati sée des trav aux de la CNO et CN B IEP Enregis trer élèves et notes Conf igurer s yst ème Admini st rat eur << i nc lude >> << i nc lude >> Etablis sement S'identif ier et s 'aut hent ifier << i nc lude >> Attribuer et renouveler bours es << i nc lude >> Faire affec tations -orient ati ons DOB Figure 4.5 : Diagramme UML des cas d’utilisation d’APPLIDOB 4.2.2 Algorithmes de résolution des besoins Le paragraphe précédent nous montre les différents besoins à combler. Ainsi, nous constatons bien qu’une base de données s’avère indispensable dans la conception de la plateforme demandée. Le concepteur de base de données a la possibilité d’interroger cette dernière en ligne de commande. Néanmoins, la plupart des SGBD modernes offre une interface graphique pour l’administration de ces bases de données. Mais, l’utilisation de ces interfaces nécessite une connaissance informatique plus ou moins poussée. Il s’avère alors nécessaire de créer une interface adaptée au système que l’on cherche à modéliser. Cette interface doit être la plus simple possible pour permettre à l’utilisateur moyen d’utiliser la base de données sans grands efforts. Certains 55 SGBDR modernes tels que Microsoft Access, HyperFileSQL de PC SOFT…, offrent la possibilité de créer des formulaires personnalisés. En outre, la base de données, ayant la vocation de desservir toutes sortes d’applications dans des domaines variés, les concepteurs de SGBD mettent à la disposition des développeurs de logiciels des interfaces appropriées pour faire communiquer leurs applications et la base de données, généralement dans une architecture distribuée de type client/serveur. Figure 4.6 : Procédure de communication avec une base de données dans une architecture distribuée de type client/serveur 4.2.2.1 Connexion au système La sécurité et la confidentialité des données, indispensables au système qui nous est soumis, nous amènent à définir une méthode particulière de connexion à l’application. Le déroulement des opérations est présenté sur le diagramme de séquence de la figure 4.7. L’utilisateur demande la connexion au système en soumettant au serveur un formulaire contenant son identifiant et son mot de passe. Le serveur interroge la base de données pour identifier et authentifier cet utilisateur. Il est important de préciser que les mots de passe sont cryptés au sein de la base de données, ce qui renforce la sécurité du système. Si l’authentification est positive, une connexion à la base de données est ouverte pendant la durée de la session, sinon le 56 formulaire d’authentification est réaffiché. L’utilisateur correctement identifié et authentifié a accès aux interfaces associées à son profile. En effet le serveur de base de données transmet les données du profil de l’utilisateur à l’application en vue de lui adapter l’interface affichée. Appl icati on (AP PLIDOB) Serveur de bas e de données Base de données Uti lis ateur FormaterRequête (Identifiant, Pass word) Exéci terRequête (Identifi ant, Pas sword) DonnerInfo (Identifiant, Pass word) Recevoi rInfo () Recevoi rInfoIntègre () Choi sirOpération () Figure 4.7 : Diagramme UML de séquence relatif à la connexion au système 4.2.2.2 Ajout d’information Le système opérant est dynamique. Cela est pleinement visible à travers les diverses opérations comme l’enregistrement des candidats dans la base de données, l’enregistrement des différentes notes, la précision des barres d’admission… ; il en découle un dynamisme inéluctable de notre système informatique afin de traduire textuellement le système opérant. Ces opérations de mise à jour de la base de données se font selon une logique unique : Après l’indentification et l’authentification de l’utilisateur, les informations fournies par ce dernier sont testées pour voir si toutes les informations obligatoires ont été fournies. Le SGBD HyperFileSQL se charge de vérifier automatiquement les règles d’intégrités exigées par la structure de la base de données. Si toutes les règles sont respectées, la base de données est mise à jour, sinon un message d’erreur adéquat est affiché pour aider à la correction des erreurs. 57 Appl icati on (AP PLIDOB) Serveur de bas e de données Base de données Uti lis ateur FormaterRequêteMA J (paramètres ) ExécuterRequêteMA J (paramètres ) SauvegarderInfo (paramètres ) Recevoi rEtatMA J () Recevoi rEtatMA JIntègre () Recevoi rEtatMA JFormater () Figure 4.8 : Diagramme UML de séquence relatif à la mise à jour de la BD 4.2.2.3 Consultation La consultation du système est réalisable par tout utilisateur authentifié. Il s’agit de la recherche d’information de divers ordres (affichage d’états en général). Tout cela se fait sous l’œil vigilant du serveur qui ne peut permettre à l’utilisateur de visualiser des données non associées à son profile. Appl icati on (A PPLIDOB) Serveur de bas e de données Base de données Uti lis ateur FormaterRequête (paramètres ) ExécuterRequête (paramètres ) DonnerInfo (paramètres) Recevoi rInfo () Recevoi rInfoIntègre () Recevoi rInfoFormater () Figure 4.9 : Diagramme UML de séquence relatif à la consultation d’information 58 4.2.2.4 Algorithme d’affectation et d’orientation automatiques 4.2.2.4.1 Algorithme d’affectation automatique en sixième L’algorithme implémenté pour effectuer l’affectation automatique en sixième se présente comme suit : premièrement, on détermine tous les élèves affectables, c’est-à-dire tous les candidats dont le TGP et l’AGE sont respectivement supérieur ou égal au TGP minimum et inférieur ou égal à l’AGE maximum fixés par le MEN (D’autres critères peuvent être spécifiés par le MEN). Ensuite, ce résultat subit un classement par ordre décroissant des TGP. Les candidats, sont successivement affectés selon leurs vœux d’établissements. Si un candidat n’a pas pu être affecté dans son vœu de prédilection pour cause de saturation des effectifs, le processus est répété pour son vœu de niveau immédiatement inférieur, jusqu’à épuisement éventuel des trois (03) vœux (Le nouveau système prévoit dix (10) vœux maximum). Dans ce dernier cas, l’on considère un établissement proche de la localité du candidat qui n’est pas encore saturé et l’y affecte. Une liste des candidats affectés hors de leurs vœux est délivrée par le programme pour les opérations post affectation automatique. 4.2.2.4.2 Algorithme d’orientation automatique en seconde Pour l’orientation en seconde, plusieurs algorithmes ont été proposés. Néanmoins, la base de tous ces algorithmes est pratiquement identique à celle de l’affection en sixième, à la seule grande différence qu’en plus des établissements, les candidats formulent des vœux de séries. Par conséquent, la vérification de la disponibilité de places se fait sur le quota des séries : Si la série demandée par le candidat dans son établissement de prédilection est déjà saturée, on réitère le même processus pour le vœu d’établissement suivant. A l’épuisement infructueux de tous les vœux d’établissements du candidat, on considère un établissement proche de sa localité qui n’est pas encore saturé et on l’y oriente. La barre pour l’orientation en seconde est fixée par rapport à la Moyenne d’Orientation (MO) par le MEN. Il est aussi important de préciser que l’accès à une série obéit à des critères de profil. En effet, lorsque le candidat affectable a une MO inférieure à douze (12) (une autre moyenne pourra être utilisée) sur vingt (20) (sinon, il est absolument affecté dans sa série de prédilection), un calcul de moyenne de profil est fait. Il s’agit du profil Littéraire avec les moyennes en Anglais et Français (d’autres matières pourront être prises en compte), et du profil Scientifique comprenant les moyennes de Mathématiques et Sciences Physiques (d’autres matières pourront être prises en compte). La moyenne de profil la plus élevée définit la série à attribuer au candidat. Toutefois, la liste des candidats orientés de cette manière est fournie pour facilité d’éventuelles prises de décision. Le diagramme ci-dessous présente les grandes lignes de l’algorithme de base dans les deux cas (affectation et orientation). 59 Figure 4.10 : Diagramme UML d’activité relatif à l’affectation automatique en sixième et à l’orientation automatique en seconde 60 4.3 Modélisation de la base de données Une base de données est une collection d’informations ou de données structurées qui qualifient les activités d’une organisation appelée système opérant. Ces données doivent pouvoir être utilisées par des programmes et par des utilisateurs différents [8] . Un serveur est un équipement ou une application disposant de services qu’il met à la disposition d’autres systèmes appelés clients. Dans cette section, nous allons nous pencher essentiellement sur la modélisation de la base de données, élément clé du projet. La modélisation est faite selon le formalisme entité-association avec les notations de Merise. Un modèle est une représentation simplifiée de la réalité. Un modèle de données est une représentation abstraite des données d’un système d’information. Une entité est un objet concret ou abstrait du monde réel au sujet duquel une organisation est susceptible de conserver des données (Entity en Anglais). Une association est un lien sémantique qui existe entre deux entités ou plus. Elle représente souvent la mémoire d’un événement qui a permis d’établir un lien logique entre ces entités (Relationship en Anglais) [9] . 4.3.1 Le Modèle Conceptuel de Données (MCD) Un MCD (Conceptual Data Model en Anglais) est une représentation des besoins en matière de données pour un système d’information. Il met en évidence les entités, leurs attributs, les associations et contraintes entre ces entités pour un domaine donné. Cette représentation, de nature sémantique, ne comporte aucune indication concernant la structure de mémorisation des données associées aux entités [10] . Pour effectuer une modélisation efficiente, nous avons subdivisé notre système en huit (08) sous-systèmes relativement indépendants. Il s’agit des sous-systèmes : 1. Identification qui concerne les informations qui permettent d’identifier et de localiser un candidat, 2. Evaluation notes qui prend en compte les différentes notes des candidats, 3. Evaluation cadres qui définit les cadres d’évaluation des candidats, 4. Vœux qui contient les vœux d’établissements et de séries des candidats 5. Authentification pour l’authentification des données transmises par CD, 6. Bourses pour les données relatives à la bourse. 7. Cartographie pour l’interconnexion des différentes structures, 8. Collaboration pour les informations relatives aux différents collaborateurs. Les différents MCD sont présentés dans l’annexe A.1. 61 4.3.2 Le Modèle Logique de Données Relationnel (MLDR) Maintenant que le MCD est établi (voir l’annexe A.1 pour les règles de normalisation), on peut le traduire en différents systèmes logiques et notamment les bases de données relationnelles qui proposent une vision plus concrète pour modéliser la situation. Cela se fait par passage au MLDR. Un MLD (Logical Data Model en Anglais) est un modèle de données découlant d’un modèle conceptuel mais qui le raffine pour tenir compte des caractéristiques du type de SGBD utilisé pour la réalisation de la base de données [11] . Toutefois cette « mutation » se fait selon des règles qui sont spécifiées dans l’annexe A.3. 4.3.3 Le Modèle Physique de Données (MPD) Un MPD (Physical Data Model en Anglais) est un modèle de données découlant d’un modèle logique qui spécifie les détails d’implantation du modèle logique dans un SGBD, habituellement formulés grâce à un script de définition de données [12] . Pour la réalisation de la plateforme, nous avons trouvé avantageux d’utiliser une base de données HyperFileSQL étant donné que la DOB dispose déjà de la licence d’utilisation de WINDEV. Le mode client/serveur est utilisé, contrairement à ce qui se faisait déjà, pour suivre l’architecture déjà exposée dans les parties précédentes ; à savoir l’architecture distribuée de type client/serveur à échelle réduite. Quelques informations sur les performances d’HyperFileSQL sont données dans l’annexe A.6. 62 TROISIEME PARTIE : DEPLOIEMENT DE LA SOLUTION Cette dernière partie du mémoire expose les différentes techniques à mettre en œuvre pour déployer le nouveau système informatique et profiter pleinement de ses fonctionnalités. 63 CHAPITRE 5 : DEPLOIEMENT MATERIEL CHAPITRE 5 : DEPLOIEMENT MATERIEL Le matériel, c’est l’ensemble des équipements physiques utilisés dans un système informatique. L’étude technique nous a permis, dans le chapitre 3, de définir une architecture optimale pour le projet qui nous a été soumis : l’architecture distribuée de type client/serveur à échelle réduite. Mais, pour atteindre l’objectif fixé, les équipements doivent être de bonne qualité tend bien au niveau de la robustesse physique, de la puissance d’action, qu’au niveau de leur aptitude à être interconnectés. 5.1 Pour le service informatique de la DOB Le SIS est le nœud central du processus automatisé menant aux différentes commissions nationales. Il a la charge de fédérer toutes les données issues des autres sites dans une base de données commune, en vue d’effectuer un traitement global. Il est par conséquent évident que les caractéristiques du matériel utilisé à ce niveau doivent obéir aux « normes internationales » de système d’information de la taille du système traité. Les capacités sont spécifiées au prorata de l’effectif annuel moyen de candidats (environ trois cent mille (300.000)). 5.1.1 Nœuds de l’architecture Les nœuds, ce sont le ou les serveurs de base de données et les ordinateurs clients qui interagissent avec la base de données via le réseau local. Pour ce qui est du serveur, il faudrait pour une rentabilité optimale, utiliser un serveur de grande capacité mémoire (au moins cinq cents Giga-octets (500 Go)). L’accès Figure 5.1 : Serveur de base de disque doit être très rapide. Il doit surtout avoir une très grande données mémoire vive (RAM, Random Access Memory) (huit Gigaoctets (08 Go) pourrait suffire), et un ou plusieurs processeurs rapides (plus de quatre Gigahertz (04 GHz)), pour l’exécution simultanée de requêtes et procédures stockées. Néanmoins, des ordinateurs personnels entièrement dédiés, pourront jouer (à l’extrême), en partie, le rôle de serveur, pour minimiser le coût de réalisation. Les ordinateurs serveurs devraient avoir les caractéristiques minimales Figure 5.2 : Ordinateur personnel 64 CHAPITRE 5 : DEPLOIEMENT MATERIEL suivantes : > Deux Giga-octets (02 Go) de RAM > Deux Gigahertz (02 GHz) de vitesse de processeur > Un disque dur de plus de cent Giga-octets (100 Go) pour stocker les données au cours des années. 5.1.2 Equipements d’interconnexion Les équipements d’interconnexion sont l’ensemble des éléments matériels utilisés pour interconnecter les différents nœuds ; ce sont les éléments de base d’un réseau informatique. Il y a nécessité d’avoir au moins : > Du câble à paire torsadée de catégorie cinq (05) (non) blindé (UTP/STP 5, Unshielded Twisted Twisted Pair), comme lien Pair/Shielded correctement d’interconnexion Figure 5.3 : Câble à paires torsadées blindé serti, des nœuds, > Un switch (avec dix (10) ports Ethernet) comme concentrateur, > Figure 5.4 : Switch Dlink 24 Ports Une carte réseau Ethernet fonctionnelle par nœud. Figure 5.5 : Carte réseau Ethernet - RJ45 5.2 Pour les services informatiques des structures éloignées Les structures éloignées (IEP, ETABLISSSEMENTS…) qui ont droit au logiciel, pourront, dans la mesure du possible, implémenter la même architecture que celle qui a été définie pour le SIS. Néanmoins, pour minimiser les coûts de réalisation, il est possible, comme nous l’avons spécifié dans le paragraphe 3.3.2, de ramener le réseau entier à un seul ordinateur. En effet tout 65 CHAPITRE 5 : DEPLOIEMENT MATERIEL ordinateur sur lequel est installé un système d’exploitation valide et fonctionnel, est en réseau avec lui-même : ce réseau s’appelle boucle locale (local loop, en Anglais). Dans ce réseau, l’ordinateur est identifié par l’adresse universelle 127.0.0.1 ou le nom localhost. Cette solution monoposte présentera bien sûr l’inconvénient majeur de ne permettre que des opérations séquentielles. On ne pourra, en effet, pas faire de véritable contrôle pendant la saisie de données. En plus, et pire, plusieurs opérateurs de saisies ne pourront pas travailler simultanément sur la même base de données ; ce qui augmentera surement le temps de saisie de données. Si ces structures veulent garder l’architecture réseau, elles pourront utiliser, comme serveur, un ordinateur « personnel » de plus de deux (02) Giga-octets de RAM et de plus de deux (02) Gigahertz de vitesse de processeur. Un disque dur de plus de cent (100) Giga-octets sera parfait pour stocker les données au cours des années. Les ordinateurs clients n’ont pas nécessairement besoin d’avoir des caractéristiques impressionnantes : cinq-cent-douze (512) Kilo-octets de RAM et un (01) Gigahertz de vitesse de processeur. La taille du disque dur est sans importance. Néanmoins, il faudra un minimum de dix (10) Méga-octets libre sur le disque pour stocker les informations temporaires générées par le logiciel. 5.3 Sécurité matérielle La sécurité matérielle concerne essentiellement tout ce qui contribue, d’une part, à garder les équipements hors de la portée de personnes malveillantes, et d’autre part à la protection contre les variations de niveaux d’alimentation en électricité. 5.3.1 Protection contre les vols Dans une société, où la criminalité est sans cesse galopante, des personnes mal intentionnées ne se gêneraient pas à dépouiller une structures publique de son patrimoine informatique ; raison pour laquelle, différentes mesures de sécurités doivent être mise en œuvre en guise de prévention contre les vols. Les équipements devront être installés dans des salles closes. En outre, l’accès à ces salles devra être interdit aux personnes étrangères au service en charge du système. Enfin, les portes et les fenêtres devront être recouvertes de grilles métalliques protectrices. 5.3.2 Protection contre les pannes électriques La Côte d’Ivoire a connu environ cinq (05) mois de crise d’électricité en 2011 donnant lieu à des temps de délestage, plus ou moins nuisibles aux systèmes de production à base d’électricité. De cette expérience nous gardons la leçon de la nécessité de se procurer des onduleurs capables d’allonger la fourniture d’électricité pendant un temps suffisant pour éteindre convenablement tous 66 CHAPITRE 5 : DEPLOIEMENT MATERIEL les équipements du système matériel, voire pour continuer le travail entamé. En effet, les ordinateurs, n’étant, en général, pas équipés de batterie, ils n’ont aucune autonomie propre en électricité et toute rupture de la fourniture en électricité de l’opérateur national d’électricité entraîne automatiquement l’arrêt des équipements. Cela peut sans doute occasionner des pertes d’information, voire des pannes au niveau du matériel. Par ailleurs, les différentes structures pourront même se procurer des groupes électrogènes pour ne pas entièrement dépendre de l’opérateur national d’électricité. Les salles « serveur » devront être dotées d’équipements de conditionnement d’air fonctionnels, pour réguler la température à un maximum de vingt-cinq degré Celsius (25°C), en vue protéger les composants électroniques contre la surchauffe. 67 CHAPITRE 6 : DEPLOIEMENT LOGICIEL CHAPITRE 6 : DEPLOIEMENT LOGICIEL Dans le chapitre précédent, nous avons défini les différents éléments matériels à fournir pour rentabiliser le système de production. Cependant, nous sommes sans ignorer qu’en informatique, le matériel sans le logiciel est d’une vile utilité. C’est pourquoi nous détaillons dans ce chapitre, la répartition des différents composants logiciels conçus sur l’architecture matérielle précédemment présentée. 6.1 Pour le service informatique de la DOB Nous avons développé une application de base de données, c’est-à-dire une application qui exige l’existence d’une base de données pour fonctionner. La base de données devra être déployée sur les différents serveurs matériels (ou ordinateurs jouant le rôle de serveur). Il faudra au préalable installer sur ces serveurs physiques le logiciel serveur HyperFileSQL Client/Serveur de PC SOFT, compatible avec la plus récente version de WINDEV (Version 16). Une fois la base de données correctement déployée, il faudra installer l’application cliente sur les ordinateurs clients. Aucun pré requis logiciel n’est exigé sauf qu’il faudra disposer d’un système d’exploitation issu du monde Microsoft (Microsoft XP, VISTA ou SEVEN). En effet, tous les éléments logiciels nécessaires à la bonne marche de l’application seront incorporés aux composants d’installation et seront automatiquement installés à l’insertion du CD-ROM d’installation. 6.2 Pour les services informatiques des structures éloignées Les structures éloignées suivront les mêmes procédures de déploiement logiciel que ce qui a été défini pour le SIS. Toutefois, dans le cas où le réseau est ramené à un seul ordinateur, le logiciel serveur pourra être déployé sur le même ordinateur que l’application cliente. 6.3 Sécurité logicielle Parler de sécurité dans un système d’information numérique, revient sans doute à parler de la nécessité d’empêcher l’accès frauduleux à des données sensibles par des programmes malveillants. En effet, de la même manière qu’une personne mal intentionnée peut dépouiller une structure de son patrimoine informatique, un programme habilement conçu peut effectuer des opérations nuisibles au système d’information. Un des problèmes de sécurité généralement rencontré dans les systèmes d’information est l’injection de code SQL dans la base de données à des fins d’espionnage ou de sabotage. Mais, d’après PC SOFT (Concepteur de HyperFileSQL), l’injection de code SQL est impossible avec les bases de données HyperFileSQL (Voir Annexe 68 CHAPITRE 6 : DEPLOIEMENT LOGICIEL A.6). Loin de nous fixer définitivement sur cette assertion, nous avons implémenté des mécanismes de sécurité qui exigent l’identification et l’authentification de toute personne qui accède à la base de données. Tout utilisateur devra fournir un identifiant et un mot de passe avant de pouvoir accéder à la base de données, voire avant d’utiliser l’application. Les utilisateurs ne sont créés que par le super-utilisateur qui est l’utilisateur par défaut à l’installation du logiciel. Ce dernier pourra accorder des droits ou en révoquer à tout utilisateur. La journalisation dans HyperFileSQL pourra nous aider à déterminer automatiquement toute action non autorisée et à prendre les décisions idoines pour ne pas saper la CNO et la CNB. Enfin, le hachage et un mécanisme d’authentification à clés asymétrique nous permettront d’assurer l’intégrité et l’authenticité des données transportées par CD. 69 CONCLUSION La quasi-totalité des organismes de ce 21ième siècle fonctionne avec un système d’information informatisé. La Direction de l’Orientation et des Bourses (DOB), ne voulant pas rester en marge de cette avancée technologique, a mis en place un système d’information automatisé pour gérer ses activités depuis 2005. Mais les applications conçues présentent certaines faiblesses qui obèrent la qualité des résultats issus des différentes commissions nationales. C’est ce qui a justifié notre présence au sein du Service Informatique et Statistiques (SIS) de la DOB, où nous avons travaillé à la mise en place d’un nouveau système d’information pour la gestion des travaux de la Commission Nationale d’Orientation (CNO) et de la Commission Nationale des Bourses (CNB). Il s’agissait pour nous de concevoir, à l’aide de l’AGL WINDEV, un système qui résout les problèmes rencontrés par les applications existantes. Pour nous convaincre de la nécessité de rénover ce système informatique, nous en avons effectué une étude détaillée. Cette étude nous a permis de déceler une gamme de failles au niveau matériel, logiciel et de la main d’œuvre qui ont résolu nos doutes. En outre, animés du souci permanent de concevoir un système qui obéit aux « normes internationales » de conception de système d’information, nous avons procédé à la modélisation du système global au moyen de concepts divers comme UML, Merise et l’Orienté Objet. Bien que le développement du logiciel n’ait pas atteint sa phase finale, du fait du retard d’acquisition de la licence d’utilisation de l’AGL WINDEV et de collaboration du SIS, nous avons expliqué le déploiement matériel et logiciel du système global, tout en spécifiant les techniques sécuritaires à implémenter. Ce stage nous a permis, en plus de la maîtrise de l’AGL WINDEV, de mettre en application nos connaissances en matière de conception de système d’information. Encore mieux, nous en avons tiré l’avantage de tisser des relations durables avec certains acteurs du système éducatif ivoirien. Néanmoins, nous ne pouvons pas nous arrêter en si bon chemin, car l’architecture distribuée de type client/serveur à échelle réduite adoptée présente des inconvénients hérités de l’architecture monoposte, qu’il faudra résoudre dans un futur proche, en l’étendant à l’échelle nationale. Encore, faudrait-il que toutes les structures (SIS, IEP, CIO, ETABLISSEMENTS…) aient des équipements informatiques de bonne qualité et une bonne formation pour exploiter pleinement ce nouveau système d’information. 70 REFERENCES WEBOGRAPHIQUES [1] TETY Pierre, Ingénieur Télécoms & Réseaux de l'INP-HB | Présentation de la Filière, <http://membres.multimania.fr/lenetwork/Pages/presentation.php>, consultée le 13 Juillet 2011 à 09h40 [2] DECO, Historique, < http://deco.ci/historique.php>, consultée le 17 Aout 2011 à 09h26 [15] Wikipedia, MD5, <http://fr.wikipedia.org/wiki/MD5>, consultée le 16 Août 2011 à 10h43 [16] Wikipedia, SHA-1, <http://fr.wikipedia.org/wiki/SHA-1>, consultée le 16 Août 2011 à 10h50 [17] PC SOFT, HyperFileSQL, <http://blogs.pcsoft.fr/rss.awp?blog=hyperfilesql_performances>, consultée le 19 Juillet 2011 à 11h37 REFERENCES BIBLIOGRAPHIQUES [3] [6] [9] [10] , , , et [11] Gilles ROY, 2009. Conception de bases de données avec UML, Presses de L’Université du Québec, P 8, P14, PP33, 32, 144. [4] Guy Pujolle, 2008, Les Réseaux, EYROLLES, P 15 [5] Le Grand Robert de la langue française, 2005, version 2.0, mot-clé : contrainte [6] Gilles ROY, 2009. Conception de bases de données avec UML, Presses de L’Université du Québec, P 14 [7] [8] Claude Delannoy, 5ième édition, Programmer en Java, EYROLLES, P 6 Cours de M. KOFFI Luc, Enseignant à l’INP-HB [12] [13] , et [14] Cyril GRUAU, 2006. Conception d’une base de données, PP 10-14, 15, 24-26 71 ANNEXES A.1 Les règles de normalisation d’un MCD ................................................................................. lxxiii A.2 Résultats de l’atelier d’analyse diagnostique et de validation des applications de gestion des actes de la CNO et de la CNB ....................................................................................................... lxxiii A.3 Les règles de traduction d’un MCD en MLDR ................................................................... lxxxvii A.4 L’interface Homme-Machine (IHM) d’APPLIDOB .......................................................... lxxxviii A.5 Techniques de Hachage .............................................................................................................xcii A.6 HyperFileSQL .......................................................................................................................... xcvi ANNEXES A.1 Les règles de normalisation d’un MCD [12] 1. Normalisation des entités : toutes les entités qui sont remplaçables par une association doivent être remplacées. 2. Normalisation des noms : le nom d’une entité, d’une association ou d’un attribut doit être unique. 3. Normalisation des identifiants : chaque entité doit posséder un identifiant. 4. Normalisation des attributs : remplacer les attributs en plusieurs exemplaires en une association supplémentaire de cardinalité maximales n et ne pas ajouter d’attribut calculable à partir d’autres attributs. 5. Normalisation des attributs des associations : les attributs d’une association doivent dépendre directement des identifiants de toutes les entités en association. 6. Normalisation des associations : il faut éliminer les associations fantômes (associations ayant des cardinalités de type 1-1), redondantes ou en plusieurs exemplaires. 7. Normalisation des cardinalités : une cardinalité minimale est toujours 0 ou 1 (et pas 2, 3, ou n) et une cardinalité maximale est toujours 1 ou n (pas 2, 3…). A.1.1 Les formes normales [13] 1. Première forme normale : à un instant donné dans une entité, pour un individu, un attribut ne peut prendre qu’une valeur et non pas un ensemble ou liste de valeurs. NB : Si un attribut prend plusieurs valeurs, alors ces valeurs doivent faire l’objet d’une entité supplémentaire, en association avec la première. 2. Deuxième forme normale : l’identifiant peut être composé de plusieurs attributs mais les autres attributs de l’entité doivent dépendre de l’identifiant en entier (et non pas une partie de cet identifiant). 3. Troisième forme normale de Boyce-Codd : tous les attributs d’une entité doivent dépendre directement de son identifiant et d’aucun autre attribut. A.2 Résultats de l’atelier d’analyse diagnostique et de validation des applications de gestion des actes de la CNO et de la CNB Dans le souci de réduire au strict minimum le travail manuel, de fiabiliser les résultats de la CNO et réduire le temps de travail, un logiciel de sélection et d’affectation automatique, a été conçu et mis en application depuis l’année 2005. Après six ans de mise en œuvre du logiciel, un atelier regroupant les experts de l’INP-HB, les responsables et les informaticiens de la DOB a été organisé lxxiii ANNEXES du 27 juin au 1er juillet 2011 en vue d’examiner et proposer les améliorations idoines de l’application existante. Pour mener à bien ces travaux l’atelier s’est d’abord attelé à cerner toute la procédure de la CNO depuis les travaux préparatoires jusqu’aux travaux post CNO afin de comprendre et de maîtriser toutes les phases et les mécanismes de fonctionnement. Ensuite, l’atelier s’est évertué à modéliser tous les actes de la CNO pour s’assurer de la prise en compte de tous les éléments indispensables par l’application existante. Enfin, des recommandations ont été faites tant au niveau informatique, des équipements nécessaires qu’au plan administratif en vue d’apporter des améliorations. Cette section des annexes rend compte des résultats obtenus et des recommandations faites. A.2.1 Pour la sixième Opérateur 1000 Centre d'examen (Délibération) Opérateur 1000 Centre d'examen (Délibération) Collecter les notes (Notes classe + notes examen) IEP Collecter les notes (Notes classe + notes examen) IEP Remplir la fiche informatique (PV) IEP IEP Remplir le PV manuellement (Relevé de notes) calculer les TGP (manuel) IEP Saisir les notes IEP reporter les TGP sur les fiches d'affectation (manuel) IEP Contrôler les données saisies IEP Classer les fiches par ordre de mérite (manuel) IEP Traiter les données IEP Etablir les états cumulatifs (manuel) IEP Editions Etablir la liste des admis IEP IEP des TGP IEP des Etats Remplir les relevés de notes individuels IEP statistiques (A définir) IEP des Etats cumulatifs IEP de la Liste des admis Production de CD 2000 IEP D'ORIGINE Réceptionner les fiches d'affectation 2000 IEP D'ORIGINE IEP Réceptionner les listes des admis IEP Réceptionner la fiche Réceptionner les PV d'examen IEP Réceptionner les états cumulatifs vérifier les documents ci-dessus informatique (PV) IEP IEP Réceptionner les éditions : IEP des TGP IEP IEP des Etats Proclamer les résultats IEP statistiques (A définir) IEP des Etats enregistrer les demandes de réclamation IEP cumulatifs IEP de la Liste jury spécial IEP Etablir l'état cumulatif de l'inspection IEP des admis IEP Réceptionner le CD contrôle des CD correction des vérifier les documents ci-dessus données lxxiv ANNEXES Proclamer les résultats fusion enregistrer les demandes de réclamation jury spécial 3000 Direction régionale (DREN) 3000 Direction régionale (DREN) Réceptionner la fiche informatique Réceptionner les fiches d'affectation DREN (PV) DREN Réceptionner les états cumulatifs des Réceptionner les PV DREN IEP DREN vérifier les documents ci-dessus Réceptionner les états cumulatifs des IEP DREN vérifier les documents ci-dessus réceptionnés DREN réceptionnés Etablir l'état cumulatif régional DREN DREN Etablir l'état cumulatif régional DREN Transmettre au CIO DREN Transmettre au CIO DREN un exemplaire de chaque PV un exemplaire de l'état les fiches d'affectation cumulatif de chaque IEP un exemplaire de chaque PV d'examen cumulatif de la DREN un exemplaire de l'état un exemplaire de l'état cumulatif de chaque IEP un exemplaire de l'état cumulatif de la DREN Directeur CIO Directeur CIO réceptionner les documents réceptionner les documents transmis CIO vérifier les documents transmis CIO transmettre à la DOB les documents vérifiés CIO transmis CIO vérifier les documents transmis CIO transmettre à la DOB les 4000 DOB documents ci-dessus vérifiés CIO 4000 DOB Réceptionner DOB Réceptionner les PV les fiches d'affectation d'admission les PV d'examen cumulatifs des IEP les états les états les états cumulatifs des IEP cumulatifs des DREN l es états cumulatifs des DREN Vérifier les PV Vérifier DOB d'admission les états les fiches d'affectation cumulatifs des IEP les PV d'examen cumulatifs des DREN les états les états cumulatifs des IEP Editer les états lxxv ANNEXES l'état cumulatif les états cumulatifs des DREN national les statistiques des Saisir des TGP DOB admis Contrôler DOB DREN /DDEN d'origine corriger DOB IEP d'origine Traiter DOB ordre de mérite DOB DREN /DDEN d'origine par IEP d'origine par par les listes des admis par par Editer les états l'état cumulatif national les statistiques des admis par DREN /DDEN d'origine par IEP d'origine les listes des admis par ordre de mérite par DREN /DDEN d'origine par IEP d'origine A.2.2 Pour la seconde 1000 Collecte des données (Etablissement) Opérateur Etablissement fournisseur Recueillir Opérateur 1000 Collecte des données (Etablissement) Etablissement fournisseur Chef d'etab Recueillir 1 les notes de classe spécifiques à Chef d'etab 1 les notes de classe l'orientation spécifiques à l'orientation 2 les effectifs des candidats à 2 les effectifs des l'orientation candidats à l'orientation 3 les vœux 3 les vœux 4 la langue Vivante 2 4 la langue Vivante 2 (LV2) (LV2) Saisir des notes par trimestre Chef d'etab Saisir des notes par trimestre Chef d'etab Saisir des vœux Chef d'etab Saisir des vœux Chef d'etab Produire un CD Chef d'etab Produire un CD Chef d'etab Etablissement d'accueil Recueillir Etablissement d'accueil Chef d'etab Recueillir Chef d'etab 1 les capacités d'accueil 1 les capacités d'accueil (tenir compte des séries A et C) (tenir compte des séries A et C) du du Privé SAPEP Privé SAPEP du du Public Chef d'etab Public 2 les pyramides Chef d'etab 2 les pyramides 3 la Langue 3 la Langue Vivante 2 (LV2) Vivante 2 (LV2) lxxvi ANNEXES A.2.3 Recommandations Au terme des échanges, les recommandations suivantes ont été arrêtées : Au plan administratif Que la DOB et les directions partenaires (DIPES, DECO, DRH, SAPEP…) s’accordent sur les points suivants: 1. avoir une base de données commune ; 2. tous les candidats à l’entrée en sixième soient saisis et suivis ; 3. tous les élèves de CM2 soient immatriculés ; 4. les IEP soient sensibilisées pour que les TGP soient saisis dans tous les centres de corrections. Au plan matériel, logiciel et humain Que la DOB soit dotée : 1. d’un réseau local performant et sécurisé équipé d’un serveur de grande capacité 2. d’un réseau étendu performant et sécurisé reliant les autres localités (CIO, IEP, DREN…) 3. Un système d’exploitation robuste et un gestionnaire de base de données adéquat, 4. d’une équipe pour la mise en œuvre et le suivi. Au plan des critères de sélection et d’affectation Pour les affectations : 1. Augmenter le nombre de vœux d’établissements distincts (de 3 à 10) 2. Prendre en compte le lieu de résidence de l’élève et faire le rapprochement avec les structures d’accueil de la zone qui n’ont pas encore fait le plein de leur capacité 3. Pour chaque IEP, répertorier les établissements secondaires d’accueil Pour les critères de sélections en seconde A et C : Calculer la moyenne de profil en appliquant les coefficients suivants : Profil scientifique Profil littéraire Matière Coefficient Matière Coefficient Composition Française 1 Composition Française 2 Anglais 1 Anglais 2 Mathématiques 2 Mathématiques 1 Sciences Physiques 2 Sciences Physiques 1 lxxvii ANNEXES 1. Privilégier le vœu de filière exprimé par le candidat lorsque les deux (2) moyennes de profil sont supérieures ou égales à 12 sur 20 2. Choisir automatiquement la série correspondant au profil lorsque les deux (2) moyennes de profil sont inférieures à 12 (moyenne la plus élevée du profil) 3. Choisir automatiquement la série correspondant au profil lorsque l’une des moyennes est supérieure ou égale à 12 code Au plan des documents de travail appelation Fiche d'affectation (Fiche informatique) niveau 6ème Listing d'émargement 6ème Liste générale 6ème Liste générale des admis 6ème Tableau statistique 6ème Liste des admis affectés 6ème Tableau statistique des affectés 6ème description ...sert à collecter les informations produites par la DECO … utilisé pour le contrôle de présence des candidats utilisateur ELEVE IEP remplir collecter pour la saisie valider les résultats ELEVE emmarger DOB traiter par ordre de mérite, sert à déterminer la barre d'admission comment ça s'utilise déterminer la barre DOB d'admission par DREN/DDEN et IEP d'origine et par ordre de mérite par DREN/DDEN et IEP d'origine et par sexe, sert de statistiques de départ par établissement d'accueil et par ordre de mérite par établissement d'accueil DOB DOB DOB DOB décider des capacités d'accueil au privé contrôler le respect des quotas vérifier les taux d'occupation des quotas A.2.4 Le MCD d’APPLIDOB Le nom APPLIDOB est celui donné à l’application que nous avons développée pour l’automatisation des travaux de la CNO et de la CNB. Dans ce qui suit, nous exposons les différents MCD conçus, éléments de base de la base de données, et donc de l’application. Comme dit dans le paragraphe 4.3.1, nous avons huit (08) sous systèmes dont l’objectif majeur est de permettre une meilleure analyse par zoom sur les différents points focaux du système opérant. Il s’agit des soussystèmes Indentification, Evaluation Cadre, Evaluation Notes, Vœux, Authentification, Bourses, Cartographie et Collaboration. Le logiciel qui a été utilisé pour l’élaboration du MCD est WINDESIGN (Version 7). lxxviii ANNEXES Le sous-système Identification présente principalement les informations relatives à l’identification de l’élève, « matière première » du système d’information à concevoir. Il s’agit des informations liées d’un côté à son identité propre : nom, prénoms, genre… ; et d’autre part à sa filiation et sa localisation géographique : parents, quartier… Figure A.1 : MCD du sous-système Indentification lxxix ANNEXES Quant au sous-système Evaluation Cadre, il décrit clairement l’environnement de formation et d’évaluation de l’élève, ainsi que les différentes barres d’admission utiles à l’automatisation des opérations d’affectation, d’orientation, de redoublement, d’attribution et renouvellement de bourse… Figure A.2 : MCD du sous-système Evaluation Cadre lxxx ANNEXES Comme son nom l’évoque, le sous-système Evaluation Notes a pour objectif de modéliser les différentes notes obtenues par l’élève aux évaluations subies. Il y a aussi des informations nécessaires à l’édition des données d’aide à la détermination des différentes barres d’admission, ainsi que les coefficients des différentes moyennes. Certaines moyennes, trop utilisées dans les algorithmes, sont mémorisées, bien qu’elles soient des valeurs calculées. Toutefois, des procédures stockées à déclenchement automatique sont actionnées pour recalculer les moyennes qui utilisent une note donnée, après toute modification de cette dernière. Figure A.3 : MCD du sous-système Evaluation Notes lxxxi ANNEXES Le sous-système Vœux présente les vœux d’établissements et de séries effectués par les candidats à l’entrée en sixième et en seconde. Il permet aussi de sauvegarder les affectationsorientations réalisées pour optimiser les éventuelles consultations. Figure A.4 : MCD du sous-système Vœux lxxxii ANNEXES Ici, au niveau du sous-système Authentification, les différentes clés (mots de passe) utilisées par les différentes structures intervenant sur le système opérant sont mémorisées (de manière cryptée bien sûr). En effet, comme expliqué dans le paragraphe 4.1.3, un mécanisme de chiffrement à clés asymétrique a été choisi pour chiffrer les données transmises par CD et par la même occasion authentifier la source des données inscrites sur le CD. Figure A.5 : MCD du sous-système Authentification lxxxiii ANNEXES Le sous-système Bourse sauvegarde les données relatives à l’attribution et au renouvellement de bourse. Figure A.6 : MCD du sous-système Bourses lxxxiv ANNEXES Le sous-système Cartographie présente l’interconnexion géographique des infrastructures influençant l’automatisation des affectations-orientations. L’existence de ce sous-système se justifie par le fait qu’un des algorithmes d’affection-orientation automatique demande que le candidat affectable/orientable qui n’a été retenu dans aucun de ses vœux, soit automatiquement affecté/orienté dans un établissement proche de son lieu d’habitation. Figure A.7 : MCD du sous-système Cartographie lxxxv ANNEXES Un point très important pour le système d’information conçu est la sécurité des données. Cela implique que les différents utilisateurs de l’application soient correctement identifiés et authentifiés à chaque connexion au système. Ce sous-système Collaboration permet de mémoriser les données utiles à ce principe sécuritaire. Figure A.8 : MCD du sous-système Collaboration lxxxvi ANNEXES A.3 Les règles de traduction d’un MCD en MLDR [14] Pour traduire un MCD en MLDR, il suffit d’appliquer cinq règles. Notations : on dit qu’une association binaire (entre deux entités ou réflexive) est de type : > 1 : 1 (un à un) si aucune des deux cardinalités maximales n’est n ; > 1 : n (un à plusieurs) si une des deux cardinalités maximales est n ; > n : m (plusieurs à plusieurs) si les deux cardinalités maximales sont n. 1. Toute entité devient une table dans laquelle les attributs deviennent les colonnes. L’identifiant de l’entité constitue alors la clé primaire de la table. 2. Une association binaire de type 1 : n disparait, au profit d’une clé étrangère dans la table côté 0-1 ou côté 1-1 qui référence la clé primaire de l’autre table. Cette clé étrangère ne peut pas recevoir la valeur vide si la cardinalité est 1-1. 3. Une association binaire de type n : m devient une table supplémentaire (parfois appelée table de jonction, table de jointure ou table d’association) dont la clé primaire est composée de deux clés étrangères (qui référencent les deux clés primaires des deux tables en association). Les attributs de l’association deviennent des colonnes de cette nouvelle table. 4. Une association binaire de type 1 : 1 est traduite comme une association binaire de type 1 : n sauf que la clé étrangère se voit imposer une contrainte d’unicité en plus d’une éventuelle contrainte de non vacuité (cette contrainte d’unicité impose à la colonne de ne prendre que des valeurs distinctes). 5. Une association non binaire est traduite par une table supplémentaire dont la clé primaire est composée d’autant de clés étrangères que d’entités en association. Les attributs de l’association deviennent des colonnes de cette nouvelle table. lxxxvii ANNEXES A.4 L’interface Homme-Machine (IHM) d’APPLIDOB Figure A.17 : Arborescence des structures dans APPLIDOB Figure A.18 : Table de détail dans APPLIDOB lxxxviii ANNEXES Figure A.19 : Formulaire d’enregistrement d’élève de troisième – Onglet Identification Figure A.20 : Formulaire d’enregistrement d’élève de troisième – Onglet Evaluation lxxxix ANNEXES Figure A.21 : Formulaire d’enregistrement d’élève de troisième – Onglet Orientation Figure A.22 : Formulaire d’enregistrement d’élève de CM2 – Onglet Identification xc ANNEXES Figure A.23 : Formulaire d’enregistrement d’élève de CM2 – Onglet Evaluation Figure A.24 : Formulaire d’enregistrement d’élève de CM2 – Onglet Affectation xci ANNEXES A.5 Techniques de Hachage A.5.1 Message Digest 5 (MD5) [15] MD5 (Message Digest 5) est une fonction de hachage cryptographique qui calcule, à partir d'un fichier numérique, son empreinte numérique (en l'occurrence une séquence de 128 bits ou 32 caractères en notation hexadécimale) avec une probabilité très forte que deux fichiers différents donnent deux empreintes différentes. En 1991, Ronald Rivest, cryptographe américain, améliore l'architecture de MD4 pour contrer des attaques potentielles qui seront confirmées plus tard par les travaux de Hans Dobbertin. Figure A.25 : Vue générale de MD5 Cinq ans plus tard, en 1996, une faille qualifiée de grave (possibilité de créer des collisions (situation dans laquelle deux données ont un résultat identique avec la même fonction de hachage) à la demande) est découverte et indique que MD5 devrait être mis de côté au profit de fonctions plus robustes comme SHA-1. En 2004, une équipe chinoise découvre des collisions complètes. MD5 n'est donc plus considéré comme sûr au sens cryptographique. On suggère maintenant d'utiliser plutôt des algorithmes tels que SHA-256, RIPEMD-160 ou Whirlpool. Cependant, la fonction MD5 reste encore largement utilisée comme outil de vérification lors des téléchargements et l'utilisateur peut valider l'intégrité de la version téléchargée grâce à l'empreinte. Ceci peut se faire avec un programme comme md5sum. MD5 peut aussi être utilisé pour calculer l'empreinte d'un mot de passe ; c'est le système employé dans GNU/Linux avec la présence d'un sel (donnée particulière injecté dans une fonction de hachage, dans le but de compliquer la détermination de la donnée hachée) compliquant le décryptage. Ainsi, plutôt que de stocker les mots de passe dans un fichier, xcii ANNEXES ce sont leurs empreintes MD5 qui sont enregistrées, de sorte que quelqu'un qui lirait ce fichier ne puisse pas découvrir les mots de passe. La commande enable secret des commutateurs et routeurs Cisco, utilise le hachage MD5 pour stocker le mot de passe du mode privilégié dans le fichier de configuration de l’équipement. A.5.1.1 Algorithme MD5 comprend 64 blocs de ce type (voir figure ci-contre), groupés en quatre tours de 16 opérations. F est une fonction non-linéaire, qui varie selon le tour. Mi symbolise un bloc de 32 bits provenant du message à hacher et Ki est une constante de 32 bits, différentes pour chaque opération. Notation > <<<s est une rotation de s bits vers la gauche, s varie pour chaque opération. > + symbolise l'addition modulo 232. > symbolisent respectivement les opérations booléennes XOR, AND, OR et NOT. Figure A.26 : Une opération de MD5 A.5.1.2 Préparation du message MD5 travaille avec un message de taille variable et produit une empreinte de 128 bits. Le message est divisé en blocs de 512 bits, on applique un remplissage de manière à avoir un message dont la longueur est un multiple de 512. Le remplissage se présente comme suit : 1. on ajoute un '1' à la fin du message 2. on ajoute une séquence de '0' (le nombre de zéros dépend de la longueur du remplissage nécessaire) 3. on écrit la taille du message, un entier codé sur 64 bits Ce remplissage est toujours appliqué, même si la longueur du message peut être divisée par 512. Cette méthode de padding est semblable à celle utilisée dans la plupart des algorithmes de xciii ANNEXES Message Digest des familles MD (comme MD5 ou RIPEMD) ou SHA (SHA-1 ou SHA-512) mais différente de celle de l'algorithme Tiger qui utilise une convention dite Little endian d'ordonnancement des bits dans chaque octet. La taille du message est codée en Little endian. Le message a maintenant une taille en bits multiple de 512, c'est-à-dire qu'il contient un multiple de 16 mots de 32 bits. A.5.1.3 Boucle principale L'algorithme principal travaille avec un état sur 128 bits. Il est lui-même divisé en 4 mots de 32 bits : A, B, C et D. Ils sont initialisés au début avec des constantes. L'algorithme utilise ensuite les blocs provenant du message à hacher, ces blocs vont modifier l'état interne. Les opérations sur un bloc se décomposent en quatre rondes (étapes), elles-mêmes subdivisées en 16 opérations similaires basées sur une fonction non-linéaire F qui varie selon la ronde, une addition et une rotation vers la gauche. Les quatre fonctions non-linéaires disponibles sont : A.5.2 Secure Hash Algorithm (SHA) [16] SHA-1 (Secure Hash Algorithm) est une fonction de hachage cryptographique conçue par la National Security Agency des États-Unis (NSA), et publiée par le gouvernement des États-Unis comme un standard fédéral de traitement de l'information (Federal Information Processing Standard du National Institute of Standards and Technology (NIST)). Elle produit un résultat (appelé « hash » ou condensat) de 160 bits. A.5.2.1 Fonctionnement du SHA-1 Le SHA-1 prend un message d'un maximum de 264 bits en entrée. Son fonctionnement est similaire à celui du MD4 ou MD5 de Ronald Rivest. Quatre fonctions booléennes sont définies, elles prennent 3 mots de 32 bits en entrée et calculent un mot de 32 bits. Une fonction spécifique de rotation est également disponible, elle permet de déplacer les bits vers la gauche (le mouvement est circulaire et les bits reviennent à droite). xciv ANNEXES Une de ces rotations n'était pas présente dans le SHA-0, elle permet de casser certaines caractéristiques linéaires dans la structure. Cela permet d'éviter une attaque sur les bits neutres décrite par Eli Biham, technique reprise pour calculer la collision complète sur SHA-0. Deux rotations vers la gauche et une fonction non-linéaire qui dépend du numéro d'itération, deux autres variables interviennent à chaque tour. Figure A.27 : Une itération de SHA-1 Le SHA-1 commence par ajouter à la fin du message un bit à 1 suivi d'une série de bits à 0, puis la longueur du message initial (en bits) codée sur 64 bits. La série de 0 a une longueur telle que la séquence ainsi prolongée a une longueur multiple de 512 bits. L'algorithme travaille ensuite successivement sur des blocs de 512 bits. Pour chaque bloc, l'algorithme calcule 80 tours (ou rondes, « rounds » en anglais) successifs et applique une série de transformations sur l'entrée. La première étape consiste à calculer 80 valeurs sur 32 bits. Les 16 premières valeurs sont obtenues directement à partir du bloc « message » en entrée. Les 64 autres sont calculées successivement. Le SHA-1 les obtient grâce à une rotation (absente dans SHA-0) qui est appliquée sur le résultat d'un XOR, il utilise pour cela 4 mots obtenus dans les itérations précédentes. On définit ensuite 5 variables qui sont initialisées avec des constantes (spécifiées par le standard), le SHA-1 utilise encore 4 autres constantes dans ses calculs. Si un bloc de 512 bits a déjà été calculé auparavant, les variables sont initialisées avec les valeurs obtenues à la fin du calcul sur le bloc précédent. Il s'ensuit 80 tours qui alternent des rotations, des additions entre les variables et les constantes. Selon le numéro du tour, le SHA-1 utilise une des quatre fonctions booléennes. L'une de ces fonctions est appliquée sur 3 des 5 variables disponibles. Les variables sont mises à jour pour le tour suivant grâce à des permutations et une rotation. En résumé, le SHA-1 change sa méthode de calcul tous les 20 tours et utilise les sorties des tours précédents. A la fin des 80 tours, on additionne le résultat avec le vecteur initial. Lorsque tous les blocs ont été traités, les cinq variables concaténées (5 × 32 = 160 bits) représentent la signature. xcv ANNEXES A.6 HyperFileSQL [17] HyperFileSQL est un SGBD relationnel créé par PC SOFT. Il est principalement utilisé dans l’environnement WINDEV ; mais il peut être interrogé avec des langages comme PHP, Java, C#..., des interfaces logicielles ayant été conçues à cet effet par ses auteurs. Les lignes qui suivent présentent certaines de ses fonctionnalités. Néanmoins, une connaissance préalable de la terminologie de base est indispensable pour la compréhension des idées dispensées (Voir le glossaire pour « Analyse, Fichier, WLangage… ») . A.6.1 Optimiser le temps de lancement des applications, en évitant une ouverture systématique de tous les fichiers de la base. L'ouverture d'un fichier de données au niveau du système d'exploitation est coûteuse en temps. En effet, le système doit mettre en place bon nombre de mécanismes pour assurer par la suite les entrées/sorties (allocation, partage réseau, cache ...). Pour optimiser le lancement des applications, il est donc déconseillé d'effectuer une ouverture systématique de tous les fichiers en appelant l'une des fonctions suivantes : HOuvre("*") ou HCréationSiInexistant("*"). Pour cela le moteur HyperFileSQL est doté d'un mécanisme d'ouverture automatique des fichiers. Il permet dès le premier accès à un fichier, d'effectuer son ouverture si elle n'a pas déjà été faite. Le temps nécessaire aux ouvertures des fichiers est ainsi réparti tout au long de l'application, plutôt qu'en une seule fois au lancement. La fonction HPasse permet si besoin de spécifier le mot de passe des fichiers pour le mécanisme d'ouverture automatique. Le gain peut être de plusieurs secondes dans une application ayant des centaines de fichier. Autre avantage de ce mécanisme, seuls les fichiers effectivement utilisés sont ouverts, limitant ainsi les ressources nécessaires sur le serveur de données. Ce mécanisme d'ouverture automatique est disponible pour HyperFileSQL Client/Serveur mais également pour HyperFileSQL Classic. Astuce : Il est recommandé de cocher l'option suivante dans le projet, afin de s'assurer d'avoir en plus de l'ouverture automatique des fichiers, leur création automatique : 1. menu "Projet ... Description du projet", 2. volet "Fichiers", 3. cocher "Créer automatiquement les fichiers de données". xcvi ANNEXES Cette solution évite de conserver dans le programme l'appel suivant, pour les prochains ajouts de fichiers de données dans la base : HCréationSiInexistant("*", hOuvertureDifférée) A.6.2 Suivi des requêtes et traitements du moteur HyperFileSQL Client/Serveur Le moteur HyperFileSQL Client/Serveur dispose de mécanismes de "log" et de suivi d'activité. Ils permettent d'avoir très précisément sur une période donnée, toutes les actions commandées par les différents utilisateurs connectés aux bases de données. Il est donc vivement recommandé d'activer ces mécanismes sur le serveur : 1. ils n'ont pas d'incidence notable sur les performances, 2. il suffit pour les activer de se connecter au serveur via le centre de contrôle HyperFileSQL (Voir figure ci-contre) Une fois l'activation faite, il suffit toujours dans le centre de contrôle HyperFileSQL d'utiliser le volet "Logs et Statistiques" pour accéder à de nombreuses informations primordiales notamment en phase de mise au point, et d'optimisation : 1. les requêtes les plus longues, 2. les appels les plus longs, 3. les requêtes les plus utilisées (pour optimiser en priorité les traitements les plus courants), 4. la liste des commandes appelées (par exemple vérifier les Figure A.28 : Centre de contrôle HyperFileSQL paramètres reçus par une requête d'un utilisateur qui n'a pas le résultat attendu), L'ensemble de ces possibilités permet de répondre à toutes les interrogations pouvant survenir en exploitation : 1. le dimensionnement du réseau est-il suffisant ? xcvii ANNEXES > Les statistiques d'activités montrent le volume des demandes. 2. le dimensionnement du serveur est-il suffisant ? > Les statistiques d'activités montrent l'utilisation de la RAM et du CPU sur le serveur. 3. un résultat ne semble pas conforme ? > Les logs permettent de vérifier les demandes reçues. 4. un arrêt inattendu du moteur survient, ou une erreur du journal des événements de Windows remonte ? > Les logs permettent de voir la demande, ou l'enchainement de traitements à l'origine. Ces possibilités de suivi s'appliquent pour toutes les connexions gérées par le moteur HyperFileSQL Client/Serveur, qu'elles proviennent des stations du réseau local, ou de postes connectés par Internet. A.6.3 Les ports nécessaires à l'utilisation de HyperFileSQL Cluster L'accès aux données d'un Cluster (groupe de serveurs ayant les mêmes ressources afin de partager la charge du serveur au client : le client est redirigé vers le serveur le plus disponible) se fait en donnant un nom DNS de Cluster, un utilisateur et un port de communication. Par exemple dans la connexion : [Code WLangage] Cluster_Support est une Connexion Cluster_Support..Provider = hAccèsHFClientServeur Cluster_Support..Utilisateur = "admin" Cluster_Support..MotDePasse = "" Cluster_Support..Serveur = "Cluster_Support:49015" Cluster_Support..BaseDeDonnées = "CRM" HOuvreConnexion(Cluster_Support) HChangeConnexion("*",Cluster_Support) HCréationSiInexistant("*") "Cluster_Support" correspond au nom DNS du Cluster, et 49015 correspond au port de communication à utiliser. Ce port est paramétrable lors de l'installation du Cluster (4900 par défaut). Il est donc nécessaire que le réseau autorise les communications sur ce port, en faisant si xcviii ANNEXES besoin le nécessaire au niveau du Firewall. Ce principe est strictement identique à celui en place pour HyperFileSQL Client/Serveur. Pour permettre toutes les communications requises par le Cluster, il est également nécessaire d'ouvrir les ports : > TCP/UDP 4997 pour la communication avec le coordinateur (ClusterManager), > TCP 4998 pour la communication entre les noeuds du Cluster, > TCP/UDP 4999 traditionnel pour la gestion des (MantaManager), serveurs Figure A.29 : Les ports nécessaires à l'utilisation de HyperFileSQL Cluster A.6.4 Synchronisation automatique de plusieurs serveurs de données HyperFileSQL Client/Serveur La version Cluster de HyperFileSQL est disponible, permettant d'obtenir une synchronisation en temps réel d'une "ferme de serveurs". L'utilisation d'un Cluster offre de nombreux intérêts : 1. Haute disponibilité, 2. Répartition de charge, 3. Resynchronisation automatique des nœuds défaillants, 4. Modification dynamique de la structure du cluster ... Une présentation complète de HyperFileSQL Cluster est disponible sur le site d'aide en ligne. Il faut souligner que l'exploitation des données en Cluster ne nécessite aucune transformation des données existantes (pas de modification automatique). Les applications doivent simplement modifier leur paramètre de connexion, afin de spécifier non plus l'adresse d'un serveur hébergeant le moteur HyperFileSQL Client/Serveur, mais le nom du Cluster. Le pack d'installation spécifique de HyperFileSQL Cluster est disponible gratuitement pour tout détenteur de licence commerciale en version 15. Il suffit d'en effectuer la demande au Support xcix ANNEXES Technique Gratuit par le menu "? ... Requête au Support Technique" de WINDEV, WEBDEV et WINDEV Mobile. A.6.5 Placer le moteur HyperFileSQL Client/Serveur sur une machine virtualisée La virtualisation est de plus en plus fréquemment retenue pour le déploiement d'applications. Il n'y a aucune contre-indication à l'utilisation d'un système virtualisé pour installer le moteur HyperFileSQL Client/Serveur utilisé par vos applications WINDEV, WINDEV Mobile, ou vos sites WEBDEV. D'autre part, vous n'avez aucune programmation particulière à faire. En effet pour vos applications, et pour le moteur HyperFileSQL Client/Serveur, le fait que le système d'exploitation soit sur une machine virtuelle n'a aucune incidence : votre programmation ou votre méthode d'installation reste la même. Il faut en revanche bien vérifier le dimensionnement et la configuration utilisée pour la virtualisation. Voici les points principaux à vérifier, tout manquement de l'un d'entre eux peut provoquer une chute de performances importante. 1. Mémoire vive : Il est important de supprimer tout risque de "swap" disque, préjudiciable aux performances. Il est donc capital d'avoir pour la machine virtuelle suffisamment de mémoire. Il faut donc bien compter la mémoire nécessaire : > au système d'exploitation hôte, > au système d'exploitation de la machine virtuelle ou des machines virtuelles, > celle utilisée par le moteur HyperFileSQL Client/Serveur, > celle utilisée par d'autres applications... Pour démarrer, il faut compter 1,5 Go de plus que pour la même installation sur un serveur non virtualisé. Par exemple si habituellement le déploiement se fait sur un serveur non virtualisé doté de 4 Go (1 pour le système, 1,5 pour le moteur HyperFileSQL Client/Serveur, le reste pour d'autres applications), il faut prévoir au minimum 5,5 Go. 2. Accès disque : C'est le point le plus important, un moteur de base de données devant par définition faire de très nombreux entrées/sorties disques. Il faut impérativement choisir une configuration dans laquelle le système invité de la machine virtuelle dispose d'un disque physique entier qui lui est dédié. Il ne faut pas que la machine virtuelle travaille sur un espace disque réservé de système hôte. 3. Carte réseau : La bande passante de la carte réseau est partagée entre les machines virtuelles. Il faut donc vérifier avec les logs du moteur HyperFileSQL Client/Serveur, que le débit sera suffisant pour les besoins des applications hébergées. Sur ce point, il est le plus souvent recommandé d'avoir c ANNEXES plusieurs cartes réseaux, afin que la machine virtuelle qui héberge le serveur dispose de sa propre carte et donc de toute la bande passante disponible. 4. Processeur : Les processeurs à privilégier sont ceux disposant de fonctionnalités matérielles dédiées à la virtualisation : Intel-VT (Virtual Technology) ou AMD-V. A.6.6 Protéger vos bases de données du piratage par injection de code SQL L'injection de code SQL est une technique de piratage de base de données consistant à injecter du code SQL dans les paramètres de requêtes, forçant ainsi l'exécution de code SQL non désiré. Lorsque vous utilisez WINDEV, WEBDEV ou WINDEV Mobile, utilisez toujours des objets requêtes. L'objet requête de WINDEV, WEBDEV ou WINDEV Mobile traite les paramètres de requêtes comme des valeurs de recherche et jamais comme du code SQL. L'exécution vérifie par ailleurs le type et la taille des valeurs saisies. Ce qui rend impossible l'injection de code SQL et élimine de nombreux risques de piratage. A.6.7 Accéder à une base HyperFileSQL Client/Serveur par Internet Selon votre configuration par rapport à un accès local à la base de données vous allez avoir principalement trois (03) " portes " à vérifier pour pouvoir accéder à votre base à travers Internet : Rappel : le choix du type de base HyperFileSQL Client/Serveur s'impose pour les raisons suivantes: > le réseau est lent (inférieur à 100 Mbits) > le réseau peut avoir des coupures intempestives > il n'y a pas de partages réseau sur le répertoire des données ci ANNEXES Figure A.30 : HyperFileSQL Client/Serveur via Internet 1. Configuration de vos accès sortant du site sur lequel l'application va fonctionner Cette étape est inutile dans les réseaux qui n'ont pas une sécurité avancée. En effet beaucoup de stratégies réseaux consistent à limiter les entrées tout en laissant un libre accès aux sorties. Toutefois si vos accès sortant sont limités et/ou contrôlés, il s'agit généralement de paramétrer le pare-feu du réseau (aussi appelé firewall) et éventuellement le pare-feu local du poste si vous avez un pare-feu local actif. 2. Vérification des restrictions de votre fournisseur d'accès à Internet Il arrive parfois que les fournisseurs d'accès à Internet n'autorisent l'accès qu'à certains protocoles ou à certains ports. C'est généralement le cas pour les accès Internet depuis une carte SIM (Smartphone...). Dans ce cas contactez votre fournisseur d'accès il faut généralement souscrire à des forfaits spécifiques du type « Data » ou « Professionnel ». cii ANNEXES Parfois également les accès sont autorisés mais dégradés, subissent des coupures afin d'assurer une meilleur Qualité de Service (QoS) pour certains ports et protocoles. Les cas les plus fréquents sont : > Accès Gprs/Edge/3G/3G+ > Accès avec une connexion non dégroupée 3. Configuration des accès entrants du site sur lequel se trouve la base HyperFileSQL Client/Serveur 1. Configuration des pare-feu (réseau et local) Il faut paramétrer les pare-feu pour HyperFileSQL Client/Serveur. 2. Rediriger les accès entrants vers le serveur HyperFileSQL Client/Serveur Pour que les connexions des postes clients soient bien redirigées vers le poste sur lequel est installé HyperFileSQL Client/Serveur, il faut : > soit que le serveur soit directement sur Internet : modem ou box branché sur le port USB > soit l'accès à Internet du serveur se fait par le réseau (le plus fréquent), dans ce cas il faut configurer le " NAT " du routeur du box. A.6.8 HyperFileSQL Client/Serveur ou Classic réseau ? HyperFileSQL propose deux modes : classic réseau et Client/Serveur. Ces deux modes ont des architectures de fonctionnement différentes adaptées à des situations différentes. Dans tous les cas, 95% du code est identique en mode réseau et en mode Client/Serveur, seule la localisation des fichiers changent, leur format reste le même. Il est donc possible de faire une application qui peut basculer d'un mode à l'autre. Tableau A.1 : Tableau récapitulatif du choix de base de données à effectuer en fonction de la situation Base de données HyperFileSQL Classic réseau HyperFileSQL Client/Serveur OK (conseillé) NON Réseau local rapide OK OK Intranet lent ou Internet OK OK Réseau peu fiable NON OK Pas de partage réseau NON OK 1 à 50 utilisateurs NON OK OK si réseau très rapide(Gbps) OK NON OK Situation Mono-utilisateur Plus de 50 utilisateurs Poste à poste sans serveur ciii ANNEXES Base de données HyperFileSQL Classic réseau HyperFileSQL Client/Serveur Données sur un NAS OK NON Serveur Windows OK OK Serveur Linux OK OK Situation ~ (nécessite une installation, mais facile à OK mettre en œuvre) OK en local (embarqué) uniquement OK Installation simplifiée/minimum Accès depuis un Mobile (Smartphone, PocketPC...) A.6.9 HyperFileSQL Client/Serveur communique par sockets TCP et UDP. Les sockets sont des "tubes" de communication entre applications (entre processus pour être plus précis). Cela permet à plusieurs applications (processus) de communiquer à travers un réseau TCP/IP ou sur une même machine. Note : TCP/IP est le protocole d'Internet Figure A.31 : Protocoles de communication en et de la plus part des réseaux locaux). Il y a deux modes de HyperFileSQL Client/Serveur communication : 1. le protocole TCP qui est un mode connecté, comparable à une communication téléphonique. Une connexion stable et bidirectionnelle est établie entre les deux parties. Une fois la connexion établie plusieurs échanges pourront être effectués sans avoir à repréciser l'adresse avec laquelle on communique (lorsque l'on téléphone on ne fait pas le numéro à chaque fois que l'on parle mais uniquement au début). C'est par ce moyen que les applications WINDEV, WINDEV Mobile et les sites WEBDEV se connectent et exécutent leurs requêtes. 2. le protocole UDP qui est un mode non connecté, comparable à une communication par courrier. Un envoi ponctuel est fait à « l'adresse du destinataire », il faut donc préciser l'adresse à chaque envoi, et rien ne garantit que le destinataire reçoit les données (comme un courrier sans accusés de réception). C'est par ce moyen qu'il est possible de rechercher les serveurs installés, de les arrêter, les redémarrer en communiquant avec « MantaManager ». civ ANNEXES A.6.10 Principe de fonctionnement de HyperFileSQL Client/Serveur Lors de l'utilisation de HyperFileSQL Client/Serveur tous les accès aux données sont effectués par le serveur sur lequel le moteur HyperFileSQL Client/Serveur est installé. Les postes clients envoient les ordres au serveur, le serveur les traite localement et renvoie le résultat. Les échanges entre les clients et le serveur sont minimisés, mais la mémoire et les performances du serveur sont fortement sollicitées. Figure A.32 : Principe de fonctionnement de HyperFileSQL Client/Serveur En mode HyperFileSQL Client/Serveur la configuration du serveur est primordiale. La configuration du réseau et des postes clients est moins importante, mais il ne faut toutefois pas totalement les négliger, car même si elles ne peuvent pas provoquer de corruption de données, elles conservent une influence sur les performances globales de l'application. Exemple 1 : Recherche d'un enregistrement (HLitRecherche) : a. Un ordre est envoyé au serveur soit 1 aller sur le réseau b. Le serveur traite localement les accès au fichier c. Le serveur envoie le résultat au poste client, soit un (01) retour sur le réseau > Total : un (01) aller/retour sur le réseau (il s'agit d'une explication schématique pour comprendre le principe, la réalité est un peu plus complexe) Exemple 2 : Requête ou vue (HExécuteRequete) qui retourne une centaine d'enregistrements : a. Un ordre est envoyé au serveur soit un (01) aller sur le réseau cv ANNEXES b. Le serveur traite localement les accès au(x) fichier(s) c. Le serveur envoie le résultat au poste client, soit un (01) retour sur le réseau > Total : un (01) aller/retour sur le réseau (il s'agit d'une explication schématique pour comprendre le principe, la réalité est un peu plus complexe) A.6.11 Principe de fonctionnement de HyperFileSQL Classic réseau Lors de l'utilisation de HyperFileSQL classic réseau, c'est la machine de l'utilisateur qui fait tout le travail. Au niveau du serveur seuls le disque et système d'exploitation sont sollicités. Les échanges entre les clients et le serveur sont très nombreux, le réseau est donc fortement mis à contribution. Lors de l'utilisation de HyperFileSQL classic réseau il est donc important de s'assurer sur le réseau est rapide. Figure A.33 : Principe de fonctionnement de HyperFileSQL classic réseau Les opérations de lectures et d'écritures sont directement effectuées par chaque poste utilisateur, il faut donc également s'assurer que les postes utilisateurs ont leurs systèmes d'exploitation et leurs pilotes (drivers) réseau à jour. Un dysfonctionnement de l'un d'entre eux pourrait provoquer une corruption de données. Exemple 1 : Recherche d'un enregistrement (HLitRecherche): a. Une à plusieurs lectures dans l'index pour rechercher l'index spécifié, approximativement deux (02) ou trois (03) aller/retour sur le réseau b. Lecture de l'enregistrement correspondant dans le fichier de données, soit 1 aller/retour sur le réseau c. Lecture du mémo s'il y en a un dans le fichier mémo, soit un (01) aller/retour sur le réseau > Total : quatre (04) ou cinq (05) aller/retour sur le réseau (il s'agit d'une explication schématique pour comprendre le principe, la réalité est un peu plus complexe) Exemple 2 : Requête ou vue (HExécuteRequete) qui retourne une centaine d'enregistrements : cvi ANNEXES a. Une centaine de lectures dans l'index pour rechercher les valeurs spécifiées, approximativement cent (100) aller/retour sur le réseau b. Lecture des enregistrements correspondants dans le fichier de données, soit 100 aller/retour sur le réseau c. Lecture du mémo s'il y en a un dans le fichier mémo, soit cent (100) aller/retour sur le réseau > Total : deux cents (200) ou trois cents (300) aller/retour sur le réseau (il s'agit d'une explication schématique pour comprendre le principe, la réalité est un peu plus complexe). cvii GLOSSAIRE GLOSSAIRE Affectation Attribution d’établissement à un candidat admis (en l’occurrence à l’entrée en sixième). Affectation Affectation prioritaire d’un candidat admis dans un établissement (et/ou une précise série) à l’appréciation de la CNO. Analyse Schéma de la base de données (Métadonnées définissant la structure de la BD et les contraintes sur celle-ci), dans le SGBDR HyperFileSQL. Application (Voir Logiciel) Base de données Collection de données structurées qui qualifient les activités d’une organisation. Cluster Technique de redondance utilisée dans HyperFileSQL Client/Serveur. Plusieurs serveurs de BD, contenant les mêmes informations, sont fédérés sous un seul nom DNS. Ainsi, la requête du client est automatiquement et de façon transparente, redirigée vers le serveur le plus disponible lorsqu’il interroge ce nom DNS. CNB Commission nationale ténue annuellement, au cours de laquelle sont définis les bénéficiaires de la bourse de l’enseignement secondaire général. CNO Commission nationale ténue annuellement, au cours de laquelle sont réalisées les affectations en sixième et les orientations en seconde dans l’enseignement secondaire général. Les redoublants de la classe de troisième sont aussi définis au cours de cette commission. Fichier Appellation donnée à une « table » dans le SGBDR HyperFileSQL. Hébergeur web Entreprise qui se charge de mettre des serveurs web à la disposition des personnes ou des entreprises pour leur permettre de déployer leur site web sur Internet. HTML Format de document du web (Internet), défini par la RFC 1866. Langage permettant de créer ce type de document. HTTP Protocole de transmission dédié aux applications du web. HyperFileSQL SGBD relationnel conçu par PC SOFT. Internet Interconnexion mondiale de réseaux informatiques. Internet est souvent cviii GLOSSAIRE désigné par Web ou World Wide Web (www). Logiciel Suites d’instructions réfléchies, compréhensibles par un système informatique et offrant des moyens de résolution de problèmes plus ou moins complexes. Un logiciel est généralement fourni sous forme d’entité exécutable. MO Moyenne calculée à l’aide des moyennes annuelles et notes obtenues à l’examen du BEPC en Anglais, Composition Française, Mathématiques et Sciences Physiques d’un candidat. Elle est utilisée pour effectuer les orientations et les attributions de bourses en seconde. Modélisation Représentation virtuelle et simplifiée d'une réalité de façon à en faire ressortir les points auxquels on s'intéresse. Orientation Attribution d’établissement et de série à un candidat admis (en l’occurrence à l’entrée en seconde) conformément à son profile intellectuel. Protocole Ensemble de règles de communication entre entités fonctionnellement équivalentes. Réseau Ensemble d’ordinateurs (y compris les périphériques qui y sont connectés) interconnectés pour l’échange de données. Script Suite d’instructions simples, peu structurées, permettant d’automatiser certaines tâches. Secteur Activités industrielles secondaire Secteur tertiaire Secteur de l’économie comprenant le commerce, les assurances, les banques, l’enseignement, etc. Serveur Ordinateur détenant des ressources particulières qu’il met à la disposition d’autres ordinateurs via un réseau. Il peut s’agir d’une entité fonction comme une application. Session Année académique. Système Système constitué des ressources humaines, des ressources informatiques d’Information (équipement, logiciel, données) et des procédures permettant d’acquérir, de (SI) stocker, de traiter et de diffuser les éléments d’information pertinents au fonctionnement d’une entreprise ou d’une organisation. Système de Ensemble des acteurs d’un système opérant et des processus de gestion de ce pilotage (SP) système. cix GLOSSAIRE Système opérant Système physique de production, qui fait l’objet d’une étude informatique en (SO) vue d’informatiser son fonctionnement. TGP Total de points pondérés obtenus par un candidat à l’examen du CEPE et en classes. Le TGP est utilisé pour déterminer les admis à l’entrée en sixième et les élèves aptes pour l’attribution de bourses. UML Langage de modélisation de troisième (03ième) génération, normalisé par l’OMG début 1997, permettant de décrire une application en fonction des méthodes objet nécessaire à sa conception. WINDEV Atelier de Génie Logiciel conçu par PC SOFT. Il s’agit d’un logiciel qui permet de créer d’autres logiciels. WLangage Langage de cinquième génération (L5G) utilisé par WINDEV. cx