84
RÉPUBLIQUE-TOGOLAISE Travail-Liberté-Patrie Ministère de la Planification du Développement Institut Africain d’Informatique, Représentation du TOGO (IAI-TOGO) 59 Rue de la Kozah Nyékonakpoè 07 BP : 12456 Lomé 07 Togo Tél : 22 20 47 00 / 22 21 27 06 E-mail: [email protected] Site Web: www.iai-togo.com Stage pratique de programmation Rédigé par : AGOTSI Komi Gédéon Cyrille, Etudiant en deuxième 2 ème année Année académique 2015-2016 THEME : MISE EN PLACE D’UN SYSTEME GENERIQUE DE SAUVEGARDE ET RESTAURATION DE BASE DE DONNEES MEDIASOFT Sagbado BP : 1331 Lomé - TOGO Tel : (+228) 22 20 17 29/99 47 06 39 E-mail : [email protected] Site web: www.mediasofthome.com Maitre de stage : M. ABOLO-SEWOVI Komi R. Consultant en informatique Superviseur : M. DAVON Essè Enseignant à l’IAI-TOGO

Projet stage : Mise en place d'un système générique de sauvegarde et de restauration de base de données

Embed Size (px)

Citation preview

Page 1: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

RÉPUBLIQUE-TOGOLAISE Travail-Liberté-Patrie

Ministère de la Planification du Développement

Institut Africain d’Informatique, Représentation du TOGO (IAI-TOGO) 59 Rue de la Kozah Nyékonakpoè 07 BP : 12456 Lomé 07 Togo

Tél : 22 20 47 00 / 22 21 27 06

E-mail: [email protected]

Site Web: www.iai-togo.com

Stage pratique de programmation

Rédigé par :

AGOTSI Komi Gédéon Cyrille, Etudiant en deuxième 2ème année

Année académique 2015-2016

THEME : MISE EN PLACE D’UN SYSTEME GENERIQUE DE SAUVEGARDE ET

RESTAURATION DE BASE DE DONNEES

MEDIASOFT Sagbado BP : 1331 Lomé - TOGO Tel : (+228) 22 20 17 29/99 47 06 39 E-mail : [email protected] Site web: www.mediasofthome.com

Maitre de stage : M. ABOLO-SEWOVI Komi R.

Consultant en informatique

Superviseur : M. DAVON Essè

Enseignant à l’IAI-TOGO

Page 2: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Dédicace

i Rédigé par AGOTSI Komi Gédéon Cyrille

Dédicace

A mon père AGOTSI Tadogbè, Vous êtes pour moi un sujet de fierté. Vous m’avez toujours appris le sens de la responsabilité, la raison, le devoir, et la confiance en soi. Au-delà des mots et des phrases, aucune parole ne saurait exprimer mon éternel attachement, mon profond amour, ma perpétuelle affection et l'infinie gratitude que je vous dois. Je sais que vous étiez toujours fière de moi et j'espère que vous le seriez plus aujourd'hui. Que Dieu vous garde et vous alloue bonne santé, bonheur, prospérité et longue vie. A ma sœur AGOTSI Ruth & à mes frères AGOTSI Dom et Gildas, Avec qui je partage joies et souffrances. Vous n’avez pas cessé de me soutenir et de m’encourager durant toutes les années de mes études, vous avez toujours été présents à mes côtés pour me consoler quand il le faut. Aux autres membres de ma famille, Merci pour tous vos conseils, soutien, prière et toute l’attention que vous m’avez toujours accordés. A tout le reste de ma famille, mes amis, mes camarades, je vous dédie ce travail en signe de reconnaissance et de respect. Qu’il soit preuve de ma sympathie et de mon amour à votre égard.

Page 3: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Remerciements

ii Rédigé par AGOTSI Komi Gédéon Cyrille

Remerciements

Nous remercions tout d’abord Dieu le Tout puissant. Nous tenons ensuite à exprimer nos sincères gratitudes et remerciements, au terme de ce travail : A M. AGBAHE Yaovi, le Directeur General de MEDIASOFT pour nous

avoir accepté et mis à notre disposition les moyens logistiques et administratifs nécessaires à la réalisation de ce stage ;

A M. AGBETI Kodjo, Directeur Général du CENETI et Représentant Résident de l’IAI-TOGO pour sa foi en cet institut et pour tous les efforts qu’il y déploie ;

A M. ABOLO-SEWOVI Komi R., Ingénieur informaticien, consultant

à Médiasoft, pour sa sympathie, sa disponibilité à répondre à nos inquiétudes et sa rigueur dans le suivi de ce rapport ;

A M. DAVON Essè, Ingénieur informaticien à l’IAI-TOGO pour son

attitude de coordonnateur, et toutes ses aides apportés lors de la préparation de ce document ;

A M. AMEYIKPO Nicolas, Directeur des Etudes de l’IAI-TOGO pour

toute l’aide qu’il a su nous apporter quand le besoin s’est fait sentir ; Au corps professoral de l’IAI-TOGO pour la qualité de la formation ;

A nos camarades de promotion, pour l’esprit de partage et de soutien ;

A tous ceux qui ont contribué de près ou de loin à la réalisation de notre

rapport.

Page 4: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Sommaire

iii Rédigé par AGOTSI Komi Gédéon Cyrille

Sommaire

Dédicace .................................................................................................................................................... i

Remerciements ........................................................................................................................................ ii

Sommaire ................................................................................................................................................ iii

Liste des participants au projet ............................................................................................................... iv

Introduction générale ..........................................................................................................................1

PARTIE I : RAPPORT D’INSERTION .......................................................................................................1

Introduction ...........................................................................................................................................2

I. Présentations ...................................................................................................................................3

II. Thème du stage ............................................................................................................................. 10

Conclusion ........................................................................................................................................... 12

PARTIE II : RAPPORT DE PRE-PROGRAMMATION ........................................................................ 13

Introduction ........................................................................................................................................ 14

I. Etude de l’existant ......................................................................................................................... 15

II. Critique de l’existant ..................................................................................................................... 25

III. Propositions de solutions .......................................................................................................... 25

IV. Evaluation financière des solutions........................................................................................... 27

V. Choix de solution ........................................................................................................................... 29

VI. Planning prévisionnel de réalisation ......................................................................................... 30

VII. Présentation de la méthode d’analyse ..................................................................................... 31

VIII. Présentations de l’outil de modélisation .................................................................................. 35

IX. Etude détaillée de la solution .................................................................................................... 37

IX. Etude détaillée de la solution ................................................................................................37

Conclusion ............................................................................................................................................49

PARTIE III : REALISATION ET MISE EN OEUVRE .....................................................................50

Introduction .........................................................................................................................................51

I. Mise en œuvre .............................................................................................................................52

II. Présentation de le la librairie .....................................................................................................58

Conclusion ............................................................................................................................................72

Conclusion générale ..........................................................................................................................73

Bibliographie ........................................................................................................................................74

Page 5: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Participants

iv Rédigé par AGOTSI Komi Gédéon Cyrille

Liste des participants au projet

INTERVENANT

FONCTION

ROLE

M. ABOLO-SEWOVI Komi

Ingénieur Informaticien à

l’UCAO-UUT

Maitre de

stage

M. DAVON Essè Ingénieur Informaticien à

l’IAI-TOGO

Superviseur

du projet

M. AGOTSI Komi Gédéon Cyrille

Etudiant en Deuxième année (2ème) d’Analyse et Programmation (2015-2016)

Réalisateur

M. AGBAHE Yaovi Directeur Général de MEDIASOFT

Utilisateur

Tableau 1 : Tableau Récapitulatif des participants au projet

Page 6: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Introduction générale

1 Rédigé par AGOTSI Komi Gédéon Cyrille

Introduction générale

L'informatique fait aujourd'hui partie intégrante de la majorité des entreprises, à un tel point que le métier d'informaticien s'est diversifié en une multitude de fonctions spécialisées, touchant aux réseaux, à l’ingénierie logicielle, à la sécurité des systèmes informatiques ou encore à l'infographie ou l'ergonomie. La formation aux métiers de l’informatique s’avère cependant une tâche très rude, du fait de la rigueur qu’ils exigent et par rapport aux demandes accrues sur le marché de l’emploi d’informaticiens compétents. Dans l’optique de répondre aux exigences du marché de l’emploi, l’Institut Africain d’Informatique, représentation du Togo (IAI-TOGO) forme des Ingénieurs des Travaux Informatiques depuis plusieurs années déjà. Il a mis en place, pour les étudiants de deuxième (2ème) année, un stage pratique de trois (03) mois en entreprise. Son objectif est la mise en pratique des connaissances en analyse et programmation acquises pendant les deux (02) premières années de formation, et la réalisation d’un projet concret, qui devra aboutir à une application viable et prête à l’emploi. A cet effet nous avons effectué un stage du 27 Juin au 12 Septembre 2016 à Médiasoft. Notre mission consistait à développer une librairie générique de sauvegarde et de restauration de base de données, d’où le thème de notre

projet : « Mise en place d’un système générique de sauvegarde et restauration de base de données : cas de médiasoft ».

Ce document, illustrant tout le travail que nous avons abattu au cours de ce stage, fait office de rapport de notre stage et est partitionné en trois (03) grandes parties, à savoir : le rapport d’insertion, le rapport de pré-programmation et le rapport de réalisation et de mise en œuvre.

Page 7: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

1 Rédigé par AGOTSI Komi Gédéon Cyrille

PARTIE I :

RAPPORT D’INSERTION

Page 8: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

2 Rédigé par AGOTSI Komi Gédéon Cyrille

Introduction

Cette partie sera consacrée en premier à la présentation de l’IAI-TOGO, ensuite à la description du cadre d’accueil dans lequel se déroule le projet, et enfin à la présentation du thème de stage qui nous a été soumis.

Page 9: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

3 Rédigé par AGOTSI Komi Gédéon Cyrille

I. Présentations

1. Brève présentation de l’IAI-TOGO

L’Institut Africain d’informatique (IAI) est une école inter-Etat, créée en 1971 à Fort-Lamy actuelle N’Djamena, au Tchad dont le siège est basé à Libreville au Gabon. Il compte onze (11) Etats membres à savoir le Bénin, le Burkina Faso, le Caméroun, la Centrafrique, la Cote d’Ivoire, la République du Congo, le Niger, Le Sénégal, le Tchad, le Togo et le Gabon. Il forme des Ingénieurs informaticiens, des Maitres (MIAGE), des Analystes-programmeurs. Une représentation nationale pour le cycle d’Analyste Programmeur a été ouverte dans certains pays membres, notamment au Cameroun, au Niger et au Togo. Ces représentations ont été mises en place dans le but de mettre à disposition des Etat membres un centre de formation adéquat et conforme aux normes internationales pour répondre aux besoins des pays. L’Institut Africain d’Informatique, représentation du Togo, qui forme en trois ans des Ingénieurs de Travaux Informatiques en Génie Logiciel depuis 2002, a élargi son programme de formation en y intégrant les Systèmes et Réseaux Informatiques et, depuis l’année dernière, la filière « MultiMedia Technologique Web et Infographie (M-TWI) ».

Figure 1: Plan de localisation IAI-TOGO

Page 10: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

4 Rédigé par AGOTSI Komi Gédéon Cyrille

2. Présentation du centre d’accueil : Médiasoft

2.1 Statut

Opérateur économique N° 1000211052, Médiasoft est créé en Septembre 2003 de la rencontre de professionnels ayant en commun la passion des projets informatiques et ayant choisi d’investir dans les domaines de l’expertise pédagogique et technique pour être au cœur des changements et des nouveautés informatiques dans un monde technologique en constante évolution. Médiasoft était un établissement informatique spécialisé dans le développement de logiciels de gestion, dans la création de sites web et fourniture de matériels et consommables informatiques. Depuis 2012, Médiasoft devient une société de Consulting et Intégration de systèmes, de Développement d’applications, de Formation et de conseil professionnel réunissant plusieurs compétences sous une même entité commerciale afin de focaliser principalement son activité sur le développement et la mise en œuvre de système d’information internet /intranet.

2.2 Mission

Localiser les besoins et y apporter des solutions informatiques ; Doter les entreprises de logiciels performants et qui répondent aux

règles de gestion de ces structures et surtout à prix raisonnables ; Rechercher l’excellence ; Effectuer permanemment des recherches pour anticiper les attentes

du client.

2.3 Activités

Les activités de la société Médiasoft se résument en :

Page 11: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

5 Rédigé par AGOTSI Komi Gédéon Cyrille

Conception et développement d’application informatiques de gestion ;

Conception de sites web ; Distribution de matériels et consommables informatiques ; Câblage et intégration de réseaux informatique ; Formation et audit informatique ; Maintenance.

2.4 Quelques réalisations

Microfina : versions client lourd et web, est une solution intégrée spécialement développée pour les IMF (Institutions de Microfinance) ;

Tontine Mobile : Application de gestion de tontine, à travers les smartphones et des tablettes ;

Caisse Mobile : Utilitaire de caisse, à travers les smartphones et les tablettes ;

E-ecole : Application de gestion des écoles ; Mop : Application de gestion de la main d’œuvre portuaire ; QuickTransport : Application de gestion des transports.

2.5 Organigramme Médiasoft dispose d’un personnel très dynamique qui est au cœur de toutes ses activités et qui se compose comme suit : La Direction : le Directeur Général assisté par une assistante de

Direction ; Le Service Génie Logiciel : composé de onze (11) Ingénieurs

développeurs dont le Chef Projet ; Le Service Marketing et Support : composé de sept (07) personnes ; Le Service Comptabilité : composé d’une (01) personne ; Le Service Maintenance et Réseau : composé de deux (02)

techniciens; Le Service Distribution: composé de deux (02) personnes.

Page 12: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

6 Rédigé par AGOTSI Komi Gédéon Cyrille

Ainsi l’organigramme de Médiasoft se présente comme suit :

2.6 Service d’accueil Afin de nous permettre de mener à bien notre travail Médiasoft nous a offert pour cadre de stage le service génie logiciel. Ce service constitue l'un des plus importants services car il est le pilier de la conception, du développement des applications informatiques et sites web. Il regroupe en son sein deux subdivisions à savoir : Développeurs Java & Android ;

Développeurs Delphi, PHP,…

Il a pour attributions : La conception et développement d’application informatiques de

gestion ; La conception de sites web ;

Figure 2 : Organigramme de Médiasoft

Directeur Général

Service Marketing & Supports

Service Génie Logiciels

Développeurs JAVA & ANDROÏD

Développeurs (Delphi, PHP, ...)

Service Comptabilité

Service Maintenance

Service Distribution

Assistante de Direction

Page 13: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

7 Rédigé par AGOTSI Komi Gédéon Cyrille

La maintenance et l’évolution des applications développées ;

L’assistance technique et intervention aux niveaux des clients.

2.6.1 Architecture matérielle Le parc informatique de Médiasoft comprend les différents types de matériels qui sont consignés dans le tableau ci-dessous :

MATERIEL

MARQUE ou MODELE

CARATERISTIQUES

QUANTITE

Imprimante et

scanner

HP psc 1510

all in one

14 ppp- 600ppp-8Mo et USB-

bac 250feuilles-600 ppp-Photo

< 160, texte<160, dessein<100-

USB-copies, OCR et numérisé

05

PC Desktop HP/DELL 1,8 GHz de fréquence, RAM de

1 à 2 Go disques durs de 120 à

300 Go

10

PC Laptop HP/DELL/TO

SHIBA

Core (TM) 2 ; 2 ,4 GHz ; 2 à 4

Go de RAM

20

Switch D-link 24 ports 01

16 ports 01

Routeur LinkSys,

Cisco

Routeur Wifi, Interface

Ethernet IEEE 802.11b, IEEE

802.11g

02

Serveur Serveur HP

ProLiant

Raid 0,1 et 10 (Raid 5 après

ajout de mémoire cache)

2

Tableau 2 : Récapitulatifs de l'architecture matériel informatique de Médiasoft

Page 14: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

8 Rédigé par AGOTSI Komi Gédéon Cyrille

2.6.2 Architecture logicielle Les principaux outils utilisés par Médiasoft sont les suivantes : Outils de développement :

Netbeans ;

PhpStorn ;

Borland Delphi ;

Adobe Master Collection CS5. Outils de gestion de projet :

Redmine. Outils de gestion de base de données :

SQL Server 2005, 2008, 2014 tournant sur Windows server 2003 et 2008 ;

PostgreSQL. Autres

Suite bureautique (Microsoft Office 2007) pour traitements de textes, calculs, la réalisation de diapositives pour présentation.

2.7 Plan de localisation

Autrefois située sur la rue Radio Bonne Nouvelle (Cassablanca), elle se localise aujourd’hui dans le quartier Sagbado, à côté de la maison du chef canton ou de l’Ecole Primaire Publique d’Aflao Sagbado. Ses contacts sont donnés ci-dessous :

BP : 13331 /Lomé-Togo Téléphone : (+228) 22 20 17 29/99 47 06 39 Email : [email protected]

Page 15: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

9 Rédigé par AGOTSI Komi Gédéon Cyrille

Site web : www.mediasofthome.

Figure 3 : Plan de localisation de Médiasoft

Page 16: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

10 Rédigé par AGOTSI Komi Gédéon Cyrille

II. Thème du stage

1. Présentation du sujet

L’informatique est de plus en plus présente dans notre vie de tous les jours avec l’avènement des Nouvelles Technologies de l’Information et de la Communication (NTIC). Les données informatiques sont au centre de la révolution numérique. A cet effet il s’avère important que les éditeurs de logiciels intègrent des fonctionnalités de sauvegarde et, de restauration dans chacune de leurs applications développées et commercialisées afin de permettre aux clients d’anticiper sur toute éventuelle perte de données. C’est dans ce but que nous avons entrepris le projet : « Mise en place d’un

système générique de sauvegarde et restauration de bases de données » qui consiste à développer une librairie de sauvegarde et, de restauration de bases de données intégrable dans les applications développées par Médiasoft.

2. Problématique du sujet

Les données informatiques nécessaires au fonctionnement de l’activité de l’entreprise sont d’une importance capitale pour l’entreprise. La perte de ces données pourrait la paralyser et même dans les cas extrêmes, lui être fatale. Il faut donc être capable d’anticiper la perte inattendue des données et être en mesure de proposer un plan de récupération de ces données si précieuses. C’est pourquoi, il est nécessaire de les sauvegarder régulièrement. Conscient de l’importance relative des données, MEDIASOFT intègre dans la plupart des applications développées et commercialisées des fonctionnalités pour sauvegarder et restaurer la base de données en guise de mesures préventives pour revenir à l’image existante avant le sinistre sans aucune perte de données et aussi résoudre le problème majeur d’administration de bases de données de ses clients puisque ces derniers n’ont, le plus souvent aucune compétence en la matière .

Page 17: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport d’insertion

11 Rédigé par AGOTSI Komi Gédéon Cyrille

Il se trouve que ces applications développées ne sont pas modularisées .Et donc de telles fonctionnalités communes sont développées à chaque fois et même faite manuellement en utilisant les fonctionnalités par défaut proposées par les SGBD. Cela constitue une perte de temps précieux pour les développeurs ainsi que des problèmes importants de maintenance et de sécurités. La suite de notre travail répondra donc aux interrogations suivantes : Comment normaliser l’implémentation de la sauvegarde et de la

restauration de bases de données par les développeurs indépendamment du SGBD utilisé ?

Comment modulariser les applications développées pour cette fonctionnalité?

Comment faciliter la réutilisabilité du code source d’un module donné?

Comment faciliter la maintenance des applications ? Comment faciliter (au client) la planification de la sauvegarde de sa base de données ainsi que sa restauration en cas de sinistre ?

3. Intérêt du sujet

3.1 Objectifs La librairie permettra :

1) La sauvegarde générique de base de données ; 2) La restauration générique de base de données à partir des

sauvegardes 3) La planification des sauvegardes, pour des exécutions

automatiques.

3.2 Résultats attendus

La librairie devra fournir les fonctionnalités

Sauvegarde manuelle de données effectuée ; Planification de sauvegarde de données effectuée; Restauration de base de données effectuée ; Interface d’intégration des fonctionnalités ci-dessus au d’autre

application.

Page 18: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

12 Rédigé par AGOTSI Komi Gédéon Cyrille

Conclusion

Parvenus au terme du présent rapport d’insertion, nous avons pu recenser

les contours de notre thème de stage portant sur la « Mise en place d’un système générique de sauvegarde et restauration de base de données : cas de médiasoft ».

Ce document a également présenté toutes les informations sur notre centre d’accueil et l’IAI-TOGO. Connaissant ainsi les contours de notre thème de stage, nous allons entamer la prochaine phase (la phase de pré-programmation).

Page 19: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

13 Rédigé par AGOTSI Komi Gédéon Cyrille

PARTIE II : RAPPORT DE PRE-PROGRAMMATION

Page 20: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

14 Rédigé par AGOTSI Komi Gédéon Cyrille

Introduction

Le rapport de pré-programmation fait suite au rapport d’insertion. Cette partie constitue une phase importante dans le développement de notre librairie. Nous allons dans un premier temps faire une étude préalable, ensuite proposer des solutions et retenir celle qui fera l’objet d’une implémentation informatique. Dans un second temps nous aborderons la phase de modélisation et de conception proprement dite en recensant d’abord les fonctionnalités ( besoins) grâce au diagramme de cas d’utilisation, ensuite nous décrirons la structure de notre librairie à travers les diagrammes structurels que sont les diagrammes de composants ,de déploiement et enfin le comportement de la librairie à travers le diagrammes d’activités avec Unified Modeling Language (UML) comme langage de modélisation et Two Track Unified Process (2TUP) comme processus .

Page 21: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

15 Rédigé par AGOTSI Komi Gédéon Cyrille

I. Etude de l’existant

MEDIASOFT utilise divers SGBD tels que MySQL, SQL Server, Postgresql, Oracle pour le stockage des données des applications développées. Ainsi pour sauvegarder et restaurer une base de données, il utilise les fonctionnalités de sauvegarde et de restauration par défaut depuis l’interface d’administration du SGBD. Nous ferons une étude dans cette pratique en se référant au SGBD SQL Server. Nous décrirons les processus de sauvegarde et de restauration.

1. SQL Server

Microsoft SQL Server permet de sauvegarder et restaurer des bases de données. Le composant de sauvegarde et restauration de SQL Server apporte une sécurité importante pour la protection des données cruciales stockées dans les bases de données SQL Server. Une stratégie de sauvegarde et de restauration correctement planifiée permet de protéger les bases de données contre toute perte de données provoquée par différentes défaillances. Nous pouvons donc tester cette stratégie en restaurant un ensemble de sauvegardes, puis en récupérant notre base de données pour nous préparer à réagir efficacement en cas de sinistre. Une copie de données qui peut être utilisée pour restaurer et récupérer des données porte le nom de sauvegarde. Les sauvegardes permettent de restaurer les données après : Une défaillance du support ; Des erreurs utilisateur, telle que la suppression d'une table par

inadvertance ; Des défaillances matérielles, telles qu'un lecteur de disque endommagé

ou la perte d'un serveur ; Des catastrophes naturelles.

Par ailleurs, il peut être utile d'effectuer des sauvegardes d'une base de données afin d'effectuer des tâches administratives de routine, telles que la copie d'une base de données d'un serveur vers un autre, l’archivage.

Page 22: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

16 Rédigé par AGOTSI Komi Gédéon Cyrille

1.1 Sauvegarde de base de données

1.1.1 Sauvegarde avec arrêt de la production Cette solution ne nécessite pas d’outil complémentaire mais nécessite l’arrêt du service « SQL Server (MSSQLSERVER) » qui provoque une interruption de service (dans le cas où aucune base de secours n’est mise en place.

1. Arrêt du service SQL SQLSERVER

Sur le serveur hébergeant la base de données, ouvrez une console des services (menu Démarrer > Outils d’administration > Services). Une fenêtre « Services » apparaît. Cliquez droit sur le service nommé « SQL Server (MSSQLSERVER » et choisissez l’option « Arrêter »

Figure 4 : Arrêt du service SQLServer(MSSQLServer)

Page 23: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

17 Rédigé par AGOTSI Komi Gédéon Cyrille

2. Copie des fichiers

Copiez les fichiers correspondant à votre base de données se trouvant dans le répertoire « C:\Program\Files\Microsoft\SQL Server\MSSQL.1\MSSQL\Data ». Pour chaque des bases de données, deux fichiers sont à copier : un fichier «.mdf » et un fichier « .ldf ».

3. Redémarrage du service SQL SQLSERVER Sur le serveur hébergeant la base de données, ouvrez une console des services (menu Démarrer Outils d’administration Services). Une fenêtre « Services » apparaît. Cliquez droit sur le service nommé « SQL Server (SQLSERVER) » et choisissez l’option « Démarrer ».

Figure 5 : Copie des fichiers <<.mdf>> et <<.ldf>> de la base de données

Figure 6 Démarrage du service SQLServer (MSSQLSERVER)

Page 24: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

18 Rédigé par AGOTSI Komi Gédéon Cyrille

1.1.2 Sauvegarde sans arrêt de la production

Ce type de sauvegarde nécessite un outil complémentaire par l’autre :

1. Lancement de l’outil « Microsoft SQL Server Management Studio Express » et connexion au serveur de base de données hébergeant la base de données à sauvegarder.

2. Dans la fenêtre nommée « Explorateur d’objets » on trouve la base à

sauvegarder et clic droit sur cette dernière. Dans le menu contextuel choisir « Tâches puis Sauvegarder… ».

Figure 7 : Sauvegarde de la base de données : menu contextuel

Page 25: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

19 Rédigé par AGOTSI Komi Gédéon Cyrille

3. Configuration des options de sauvegarde et clique sur « OK » Nous pouvons voir la progression d’exécution de la sauvegarde en bas à gauche :

Figure 8 : Options de sauvegarde

Figure 9 : Progression de la sauvegarde

Page 26: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

20 Rédigé par AGOTSI Komi Gédéon Cyrille

4. A la fin de la sauvegarde, un message apparaît : Par défaut le fichier de backup est créé sous « C:\Program Files\Microsoft SQL Server\MSSQL.12.MSSQLSERVER\MSSQL\Backup » au format .bak. Ce fichier, qui a été généré sans arrêt de la production, contient alors l’ensemble des informations de la base de données.

1.2 Restauration de base de données

1. Tout d’abord, il nous faut arrêter le « service d’administration IIS » (menu

Démarrer > Outils d’administration > Services) sur tous les serveurs d’administration afin de ne plus avoir d’accès vers la base de données (tables verrouillées).

2. Lancement l’outil « Microsoft SQL Server Management Studio Express »

et connexion au serveur de base de données. 3. Dans la fenêtre nommée « Explorateur d’objets » y a la base pour laquelle

nous voulons appliquer une restauration, clic droit sur cette dernière. Dans la fenêtre contextuelle choisir « Tâches > Restaurer > Base de données

Figure 10 : Boite de dialogue

Page 27: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

21 Rédigé par AGOTSI Komi Gédéon Cyrille

4. Une fenêtre « Restaurer la base de données » s’ouvre. Dans cette fenêtre, nous trouvons par défaut dans la page de configuration « Général » (la sélection de page se trouve dans le coin supérieur gauche). Choisir une restauration de type « A partir du périphérique » et clic sur le bouton « ... »

Figure 11 : Interface de restauration de la base de données : menu contextuel

Figure 12 : Restaurer la base de données

Page 28: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

22 Rédigé par AGOTSI Komi Gédéon Cyrille

5 - Une fenêtre « Spécifier la sauvegarde » s’ouvre. Choisir un « Support de sauvegarde » de type « Fichier » puis cliquer sur « Ajouter ». 6 - Une fenêtre « Localiser le fichier de sauvegarde » s’ouvre. Choisir le fichier de sauvegarde de la base de données au format « .bak »que nous voulons restaurer puis cliquer sur « OK ».

Figure 13 : Sélection du support de sauvegarde

Figure 14 : Sélection du fichier de sauvegarde

Page 29: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

23 Rédigé par AGOTSI Komi Gédéon Cyrille

7 - Dans la fenêtre « Spécifier la sauvegarde », cliquer sur « OK ». 8 - Nous sommes à nouveau dans la fenêtre « Restaurer la base de données » et dans la liste nommée « Sélectionner les jeux de sauvegardes à restaurer », la base que nous venons de choisir est apparue, il faut lui cocher l’option « Restaurer ».

Figure 15 : Emplacement de la sauvegarde

Figure 16 : Sélection des jeux de sauvegarde à restaurer

Page 30: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

24 Rédigé par AGOTSI Komi Gédéon Cyrille

9 - Toujours dans la fenêtre « Restaurer la base de données » dans la page de configuration des « Options » (la sélection de page se trouve dans le coin supérieur gauche). Dans la liste « Options de restauration » sélectionner l’option « Remplacer la base de données existante ». Attention: dans la partie « Restaurer les fichiers de base de données en tant que : », se rassurer que les chemins indiqués sous « Restaurer sous » sont valides en cliquant sur le bouton « … » Cliquer sur le bouton « OK » pour lancer la restauration. 10- A la fin de la restauration, un message apparaît. Clic sur « OK »

Figure 17 : Options de restauration

Figure 18 : Boite de dialogue

Page 31: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

25 Rédigé par AGOTSI Komi Gédéon Cyrille

II. Critique de l’existant

Tous les SGBD utilisés par MEDIASOFT offre une interface d’administration pour la réalisation des opérations de sauvegarde et de restauration de base de données. Cependant ces fonctionnalités par défaut proposées par ces SGBD présentent des lacunes à MEDIASOFT dans l’administration des bases de données des applications vendues aux clients. On distingue : Nécessité d’intervention de MEDIASOFT auprès des clients ; La perte de temps : Les développeurs afin d’implémenter ces

fonctionnalités dans une application récrivent à chaque fois les mêmes séquences de code qui sont spécifique à chaque SGBD, ce qui nécessite un temps plus ou moins long ;

Problème de maintenance : Les développeurs de MEDIASOFT ont d’énorme difficultés pour maintenir leur applications dû au fait que ceux-ci ne sont pas modularisées ;

Manque de généricité : Impossibilité de pouvoir restaurer une base de données à partir d’une sauvegarde provenant d’un autre SGBD ,on est obligé d’implémenter ces fonctionnalités suivant le SGBD utilisé ;

Travail d’équipe difficile : Puisque l’implémentation de ces

fonctionnalités n’est pas standardisée.

III. Propositions de solutions

Pour la résolution de la problématique, deux solutions sont proposées :

1. Première solution

Il s’agit de proposer aux clients un des logiciels de sauvegarde, de restauration. Ils sont en vente sur internet. Nous pourrions donc nous informer plus sur les fonctionnalités qu’ont ces différents logiciels et voir s’ils répondent bien aux attentes ou au problème posé. Exemple : Iperius Backup BD qui est un logiciel de sauvegarde, de restauration et de planification automatique de sauvegarde pouvant

Page 32: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

26 Rédigé par AGOTSI Komi Gédéon Cyrille

communiquer avec plusieurs SGBD offrant une console web d’administration.

1.1 Avantage

La mise en œuvre de cette solution nous permettra de gagner considérablement en temps de réalisation du projet.

1.2 Inconvénients

Ces produits sont payants ; Ils ne répondent pas à l’objectif principal de MEDIASOFT de mettre à

disposition de l’équipe de développement une librairie normalisée et générique utilisable pour implémenter ces fonctionnalités ;

Les clients de MEDIASOFT n’accepteraient pas aussi acheter un autre

produit logiciel juste pour la sauvegarde de leurs bases de données, toujours la raison du coût financier de cette solution.

Figure 19 : Interface de l'application Iperius backup

Page 33: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

27 Rédigé par AGOTSI Komi Gédéon Cyrille

2. Deuxième solution

Cette solution consiste à développer une librairie générique (indépendante des SGBD) de sauvegarde, de restauration et de planification automatique de sauvegarde utilisable directement dans les projets de développement d’application de MEDIASOFT.

2.1 Avantages

La mise en place de cette librairie partira d’une analyse donc comportera les fonctionnalités nécessaires et suffisantes pour la mise en place du système de sauvegarde, de restauration et de planification de sauvegarde de base de données ;

Cette librairie sera générique, donc il est possible de pouvoir faire la sauvegarde et la, restauration de base de données sans se préoccuper du SGBD utilisé ;

Cette librairie permettra de pouvoir restaurer une sauvegarde de base de données provenant d’un SGBD sur un autre ;

La librairie présentera une documentation sur les différentes classes et méthodes d’implémentation. Elle disposera de même une interface web facile à utiliser, accessible depuis un navigateur.

2.2 Inconvénients

La librairie n’est pas encore développée; La librairie n’est pas encore développée.

IV. Evaluation financière des solutions

1. Première solution

Notre première solution consiste à proposer pour chaque client de Médiasoft Iperius Backup, un logiciel de sauvegarde, de restauration et de planification de sauvegarde de base de données.

Page 34: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

28 Rédigé par AGOTSI Komi Gédéon Cyrille

Désignation Montant (F CFA)

Licence à vie de la version complète d’Iperius Backup

210 000

Coût d’intégration

150 000

Formations des utilisateurs 100 000

Total 460 000

Tableau 3 : Evaluation financière de la première solution

2. Deuxième solution

La deuxième solution consiste à développer une librairie générique de sauvegarde, de restauration et de planification de sauvegarde de base de données. Puisque c’est une librairie nous n’aurons qu’à estimer les couts humains et de formation. Désignation

Rôle

Coût Unitaire

(FCFA)

Nombre

d’heures

Prix Total

Un Ingénieur des travaux Informatique

Conception de la librairie

5000 300 2 000 000

Formations des utilisateurs

Formation 3000 30 180000

Total - - - 2 180 000

Tableau 4 : Evaluation financière de la deuxième solution

43 heures à raison de 03 heures par semaine du 27 Juin 2013 au 11 Juillet 2013 et 40 heures par semaine du 12 Juillet au 12 Septembre.

** : référencehttp://www.lejustesalaire.com/salaire-par-poste/salaires-stagiaire-informatique.php

Page 35: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

29 Rédigé par AGOTSI Komi Gédéon Cyrille

V. Choix de solution

Le choix de solution de Médiasoft s’est alors porté sur la deuxième.

SPECIFICATIONS TECHNIQUES

Méthode d’analyse Approche Objet (UML + 2TUP)

Outils de modélisation Sybase Power AMC 15.1

Langage de programmation JEE

Environnement de Développement Intégré (EDI) Netbeans 8.0.2

Tableau 5 : Spécifications techniques du projet

Page 36: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

30 Rédigé par AGOTSI Komi Gédéon Cyrille

VI. Planning prévisionnel de réalisation

Figure 20 : Diagramme de GANTT illustrant le planning prévisionnel de ré

Page 37: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

31 Rédigé par AGOTSI Komi Gédéon Cyrille

VII. Présentation de la méthode d’analyse

1. Langage UML

Le langage de modélisation unifié, en anglais Unified Modeling Langage est un langage de modélisation graphique à base de pictogrammes (dessins figuratifs stylisés ayant fonction de signe) conçu pour fournir une méthode normalisée pour visualiser la conception d’un système. Il est couramment utilisé en développement logiciel et en conception orientée objet. UML est le résultat de la fusion de précédents langages de modélisation objet : Booch, OMT, OOSE. Principalement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML est à présent un standard adopté par l'Object Management Group (OMG).

1.1 Les diagrammes UML

Figure 21 : Logo d’UML

Page 38: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

32 Rédigé par AGOTSI Komi Gédéon Cyrille

UML 2.3 propose 14 types de diagrammes (contre 9 en UML 1.3). Ces diagrammes sont dépendants hiérarchiquement et se complètent, de façon à permettre la modélisation d’un projet tout au long de son cycle de vie. On a : Les diagrammes structurels ou statiques (07) qui rassemblent : le diagramme de classes (intervenant dans le système), le diagramme d’objets (instances de classes), le diagramme de composants (du point de vue physique), le diagramme de déploiement, le diagramme des paquetages (ensembles de définitions), le diagramme de structure composite (relations entre les composants) et le diagramme de profils ; Les diagrammes comportementaux (03) qui rassemblent : le diagramme des cas d’utilisation (acteurs et interactions avec le système), le diagramme d’états-transitions (description sous forme de machine à états finis du comportement du système et ses composants), le diagramme d’activité (description sous forme d’activités du comportement du système et ses composants) ; Les diagrammes d’interaction ou dynamiques (04) qui rassemblent : le diagramme de séquences, le diagramme de communication (échange de messages entre les objets), le diagramme global d’interaction (variante du diagramme d’activité), diagramme de temps (variation d’une donnée au cours du temps).

1.2 UML est un formalisme

UML est un langage de conception objet qui permet de modéliser les solutions informatiques par des diagrammes (cités ci-dessus). Pourtant, le langage ne propose pas l’ordre qui doit régir ces diagrammes. C’est ainsi que les méthodes viennent appuyer le langage pour rendre totale et parfaite l’approche objet. Les méthodes imposent au langage l’ordre et la démarche. Il existe une multitude de méthodes de conception objet telles que : 2TUP (Two Track Unified Process), XP (ExtremeProgramming), Scrum, RUP (Rational Unified Process). La méthode retenue pour notre projet est le 2TUP

Page 39: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

33 Rédigé par AGOTSI Komi Gédéon Cyrille

2. Processus 2TUP

2 Track Unified Process (2TUP), à prononcer "toutiyoupi" est un processus de développement Logiciel qui implémente le Processus Unifié.

Le 2TUP propose un cycle de développement en Y, qui dissocie les aspects techniques des aspects fonctionnels. Il commence par une étude préliminaire qui consiste essentiellement à identifier les acteurs qui vont interagir avec le système à construire, les messages qu’échangent les acteurs et le système.

Ensuite à produire le cahier des charges et à modéliser le contexte (le système est une boîte) noire, les acteurs l’entourent et sont reliés à lui, sur l’axe qui lie un acteur au système on met les messages que les deux s’échangent avec le sens).

Le processus s’articule ensuite autour de 3 phases essentielles :

Une branche technique ; Une branche fonctionnelle ; Une phase de réalisation.

Figure 22 : Illustration du 2TUP

Page 40: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

34 Rédigé par AGOTSI Komi Gédéon Cyrille

La branche technique (droite)

La capture des besoins techniques qui recense toutes les contraintes sur les choix de dimensionnement et la conception du système. Les outils et les matériels sélectionnés ainsi que la prise en compte des contraintes d’intégration avec l’existant (prérequis d’architecture technique) ;

La conception générique, qui définit ensuite les composants nécessaires à la construction de l’architecture technique. Cette conception est complètement indépendante des aspects fonctionnels. Elle a pour objectif d’uniformiser et de réutiliser les mêmes mécanismes pour tout un système. L’architecture technique construit le squelette du système, son importance est telle qu’il est conseillé de réaliser un prototype.

La branche fonctionnelle (gauche)

Elle capture des besoins fonctionnels qui produisent le modèle des besoins focalisés sur le métier des utilisateurs. Elle qualifie au plus tôt le risque de produire un système inadapté aux utilisateurs ;

L’analyse qui consiste à étudier précisément la spécification fonctionnelle de manière à obtenir une idée de ce que va réaliser le système en terme de métier

La phase de réalisation (milieu) Elle correspond à :

Une conception préliminaire qui représente une étape délicate car elle intègre le modèle d’analyse fonctionnelle dans l’architecture technique de manière à tracer la cartographie des composants du système à développer ;

La conception détaillée qui étudie comment réaliser chaque composant ;

L’étape de codage qui produit ses composants et teste au fur et à mesure les unités de code réalisées ;

L’étape de recette, qui consiste à valider les fonctionnalités du système développé.

Page 41: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

35 Rédigé par AGOTSI Komi Gédéon Cyrille

VIII. Présentations de l’outil de modélisation

L’outil retenu pour la modélisation est Sybase PowerAMC version 15.1

1. Qu’est-ce que PowerAMC ?

Figure 23 : Logo PowerAMC

PowerAMC est un environnement graphique de modélisation d'entreprise très simple d'emploi qui permet d'effectuer les tâches suivantes :

Modélisation intégrée via l'utilisation de méthodologies et de notation standards :

Données (E/R, Merise) ;

Métiers (BPMN, BPEL, ebXML) ;

Application (UML).

Génération automatique de code via des Template personnalisables :

SQL (avec plus de 50 SGBD) ;

Java ;

.NET.

Fonctionnalités de reverse engineering pour documenter et mettre à jour des systèmes existants ;

Page 42: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

36 Rédigé par AGOTSI Komi Gédéon Cyrille

Une solution de référentiel d'entreprise avec des fonctionnalités de sécurité et de gestion des versions très complètes pour permettre un développement multiutilisateur ;

Fonctionnalités de génération et de gestion de rapports automatisés et personnalisables ;

Un environnement extensible, qui vous permet d'ajouter des règles, des commandes, des concepts et des attributs à vos méthodologies de modélisation et de codage.

2. Modéliser avec PowerAMC

PowerAMC fournit un jeu unique d'outils de modélisation professionnels qui associent les techniques et notations standard de la modélisation de processus métiers, de la modélisation des données et de la modélisation des diagrammes UML et d'autres fonctionnalités puissantes afin d’aider à analyser, concevoir, construire et maintenir des applications, en utilisant les techniques les plus élaborées d'ingénierie logicielle. La solution de modélisation PowerAMC permet d'intégrer étroitement la conception et la maintenance des couches de données centrales de l'application et exigences de projet, processus métiers, code orienté objet, vocabulaires XML et informations de réplication de base de données.

Page 43: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

37 Rédigé par AGOTSI Komi Gédéon Cyrille

IX. Etude détaillée de la solution

1. Le diagramme de cas d’utilisation

Un diagramme de cas d’utilisation traduit tout ce que l’utilisateur exprime comme action sur le logiciel ou le système à modéliser. C’est une représentation faisant intervenir les acteurs et les cas d’utilisation. Il traduit les besoins des utilisateurs vis-à-vis du système développé.

1.1 Les acteurs

Un acteur est une personne ou un système qui interagit avec le système en en échangeant des informations en entrée comme en sortie. Le diagramme de cas d’utilisation d’UML distingue deux acteurs à savoir :

Les acteurs principaux (qui modifient l’état du système ou qui consultent cet état)

Les acteurs secondaires (acteurs auxquels le système fait appel pour répondre aux sollicitations d’un acteur principal) Dans notre projet, nous avons décelé :

Un acteur principal (L’operateur de maintenance) ;

Deux acteurs secondaires : o Système de gestion de base de données (SGBD)) ; o Planificateur de tâche.

1.2 Cas d’utilisation

Un cas d’utilisation (Use Case) représente un ensemble de séquences d’actions réalisées par le système et produisant un résultat observable intéressant pour un acteur particulier. Un cas d’utilisation modélise un service rendu par le système. Il exprime les interactions acteurs/système et apporte une valeur ajoutée «notable » à l’acteur concerné. Nous avons décelé comme cas d’utilisation :

Sauvegarder manuellement une base de données ; Planifier une sauvegarde ; Restaurer une base de données ; Modifier le dossier de sauvegarde.

Page 44: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

38 Rédigé par AGOTSI Komi Gédéon Cyrille

1.3 Modèle du diagramme de cas d’utilisation

de la librairie (du point de vue de

l’utilisateur final)

Figure 24 : Diagramme de cas d'utilisation de la librairie

Page 45: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

39 Rédigé par AGOTSI Komi Gédéon Cyrille

1.4 Description textuelle de certain cas

d’utilisation

1.4.1 Sauvegarder une base de données

Sommaire d’identification Titre : Sauvegarder une base de données Résumé : Permet de sauvegarder une base de données afin de se prémunir contre d’éventuels sinistre Acteurs : Operateur de sauvegarde (principal), SGBD (secondaire) Date de création : 15/07/2016 Date de mise à jour : 15/07/2016 Version : 1.0 Responsable : AGOTSI Komi Gédéon Cyrille Description des scénarios : Précondition

Le serveur de base de données est en service ; Le système est fonctionnel ;

Scénario nominal : 1. L’utilisateur saisit le nom du fichier de sauvegarde (E1) ; 2. L’utilisateur choisit le format et l’encodage du fichier ; 3. L’utilisateur saisit le dossier de sauvegarde ; 4. L’utilisateur choisit la méthode de compression et l’algorithme de

chiffrage ; 5. L’utilisateur valide les informations ; 6. Le système vérifie les informations saisies (A1) ;

Page 46: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

40 Rédigé par AGOTSI Komi Gédéon Cyrille

7. Le système notifie à l’utilisateur que la sauvegarde a été créé avec succès.

Scénario alternatif : A1 : Champ obligatoire non renseigné Ce scénario démarre au point (5) lorsque l’utilisateur n’a pas renseigné tous les champs obligatoires.

1. L’application envoie un message d’information signalant l’information manquante et met le curseur au niveau de cette dernière ;

2. L’utilisateur renseigne l’information manquante et valide. Le scénario nominal est repris au point 4. Scénario d’exceptions : E1 : L’utilisateur annule l’opération

Ce scénario débute au point 1 du scénario nominal lorsque l'utilisateur quitte la page. 1. Le scénario nominal est interrompu. Post conditions : La sauvegarde de la base de données est effectuée ; Journal mis à jour ; Le système est toujours fonctionnel.

1.4.2 Restaurer une base de données

Sommaire d’identification Titre : Restaurer une base de données Résumé : Permet de restaurer une base de données Acteurs : Operateur de sauvegarde (principal), SGBD (secondaire) Date de création : 15/07/2016 Date de mise à jour : 15/07/2016

Page 47: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

41 Rédigé par AGOTSI Komi Gédéon Cyrille

Version : 1.0 Responsable : AGOTSI Komi Gédéon Cyrille Description des scénarios : Précondition

Le serveur de base de données est en service ; Le système est fonctionnel ; Le fichier de sauvegarde existe.

Scénario nominal :

1. L’utilisateur saisit le nom de l’unité de persistence (E1) ; 2. L’utilisateur choisit le fichier de sauvegarde ; 3. L’utilisateur valide les informations ; 4. Le système vérifie les informations saisies (A1) ; 5. Le système notifie à l’utilisateur que la restauration a été créé

effectué avec succès.

Scénario alternatif : A1 : Champ obligatoire non renseigné Ce scénario démarre au point (5) lorsque l’utilisateur n’a pas renseigné tous les champs obligatoires.

1. L’application envoie un message d’information signalant l’information manquante et met le curseur au niveau de cette dernière ;

2. L’utilisateur renseigne l’information manquante et valide. Le scénario nominal est repris au point 4. Scénario d’exceptions : E1 : L’utilisateur annule l’opération

Ce scénario débute au point 1 du scénario nominal lorsque l'utilisateur quitte la page. 1. Le scénario nominal est interrompu. Postconditions : La base de données est restaurée ; Journal mis à jour ;

Page 48: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

42 Rédigé par AGOTSI Komi Gédéon Cyrille

Le système est toujours fonctionnel.

2. Diagramme de classes

Le diagramme des classes est un diagramme central dans un processus de développement orienté objet. Il met en œuvre des classes comprenant des attributs et des opérations reliées par des associations ou généralisations. Une classe est une représentation abstraite d’un ensemble d’objets possédant la même caractéristique.

Figure 25 : Diagramme de classes de la librairie

Page 49: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

43 Rédigé par AGOTSI Komi Gédéon Cyrille

3. Diagramme d’activité

3.1 Généralités

Le diagramme d’activités est un diagramme comportemental d’UML, permettant de représenter le déclenchement d’événements en fonction des états du système et de modéliser des comportements parallélisables. Il se présente comme un organigramme qui décrit les enchainements dans le déroulement d’un cas d’utilisation ou d’un ensemble de cas d’utilisation. Conceptuellement, il décrit un algorithme. Un diagramme d’activités permet de modéliser un processus interactif, global ou partiel pour un système donné (logiciel, système d’information). Il est recommandable pour exprimer une dimension temporelle sur une partie du modèle, à partir de diagrammes de classes ou de cas d’utilisation, par exemple. La description d’un cas d’utilisation par un diagramme d’activités correspond à sa traduction algorithmique. Une activité est l’exécution d’une partie du cas d’utilisation, elle est représentée par un rectangle aux bords arrondis. Le diagramme d’activité est sémantiquement proche des diagrammes de communication (appelés diagramme de collaboration en UML 1), ou d’état-transitions, ces derniers offrant une vision microscopique des objets du système. Le diagramme d’activités présente une vision macroscopique et temporelle du système modélisé.

Page 50: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

44 Rédigé par AGOTSI Komi Gédéon Cyrille

3.2 Quelques diagrammes d’activités de

notre projet

Figure 26 : Diagramme d'activité de «sauvegarder manuellement »

Page 51: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

45 Rédigé par AGOTSI Komi Gédéon Cyrille

Figure 27 : Diagramme d'activité « Restaurer une base de données »

Page 52: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

46 Rédigé par AGOTSI Komi Gédéon Cyrille

4. Diagramme de composants

4.1 Généralités

Le diagramme de composants fait partie des diagrammes structuraux (statiques) d’UML. Il décrit l’organisation du système du point de vue des éléments logiciels (composants) comme les modules (paquetages, fichiers, sources, bibliothèques, exécutables), des données (fichiers, base de données) ou encore d’éléments de configuration (paramètres, scripts, fichiers de commandes). Un composant est un élément logiciel remplaçable et réutilisable qui fournit ou reçoit un service bien précis. Il peut être vu comme une pièce détachée du logiciel. Les plugins, les drivers, les codecs, les bibliothèques sont des composants. Il fournit des services via des interfaces.

Il existe deux types d’interface : Les interfaces requise : Ce sont des interfaces qui fournissent un

service au composant et dont il a besoin pour fonctionner ; Les interfaces fournies : Ce sont des interfaces par lesquels le

composant fourni lui-même un service.

4.2 Diagramme de composants de la librairie

Figure 28 : Diagramme de composants de la libraire

Page 53: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

47 Rédigé par AGOTSI Komi Gédéon Cyrille

5. Diagramme de déploiement

Les diagrammes de déploiement montrent la disposition physique des matériels qui composent le système et la répartition des composants sur ces matériels.

Les ressources matérielles sont représentées sous forme de nœuds Les nœuds sont connectés entre eux, à l’aide d’un support de

communication ; La nature des lignes de communication et leurs caractéristiques peuvent être précisées ;

Les diagrammes de déploiement peuvent montrer des instances de nœuds ; (un matériel précis), ou des classes de nœuds;

Les diagrammes de déploiement correspondent à la vue de déploiement d’une architecture logicielle.

Puisque notre projet consiste à développer une libraire intégrable dans

les projets JEE afin de faire la sauvegarder et restauration de bases de

données. La librairie ne dispose pas de diagramme de déploiement.

Cependant nous allons modéliser le diagramme de déploiement d’un

projet utilisant notre librairie.

Page 54: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

48 Rédigé par AGOTSI Komi Gédéon Cyrille

Figure 29 : Diagramme de déploiement d’une application utilisant notre librairie

Page 55: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de pré-programmation

49 Rédigé par AGOTSI Komi Gédéon Cyrille

Conclusion

L’étude menée dans ce rapport de pré-programmation par rapport au thème de notre stage nous permis de réaliser une analyse complète et de spécifier les fonctionnalités de la future librairie .En outre, elle nous a permis de mettre en place de diagrammes UML en nous basant sur le processus 2TUP. Le sujet étant bien analysé, nous pouvons passer à l’étape de réalisation.

Page 56: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

50 Rédigé par AGOTSI Komi Gédéon Cyrille

PARTIE III : REALISATION ET MISE EN OEUVRE

Page 57: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

51 Rédigé par AGOTSI Komi Gédéon Cyrille

Introduction

Apres la présentation du rapport d’insertion et du rapport de pré-programmation qui nous ont respectivement conduits à déterminer les données à utiliser dans le domaine d’étude et les traitements qui y sont effectués, nous entamerons la troisième et dernière étape de la mise en place de notre librairie : le rapport de mise en œuvre et de réalisation. Dans cette partie nous présenterons le choix des matériels de travail, les outils de développement et l’architecture de la libraire à concevoir. De coutume, une librairie se doit d’avoir un nom et nous avons appelé la nôtre « ms-Backup »

Page 58: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

52 Rédigé par AGOTSI Komi Gédéon Cyrille

I. Mise en œuvre

1. Choix matériels

Notre matériel de développement durant notre stage est un ordinateur portable qui présente les caractéristiques suivantes : Marques : Hewlett-Packard (HP)

Modèle : HP-Notebook 2200

Processeur : Intel(R) Pentium(R) CPU 2020M @ 2,40GHz

Mémoire RAM : 4,00 Go

Disque dur : 500 Go

Vitesse de la carte réseau : 100 Mb/s

Lecteur : DVD-RW

Page 59: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

53 Rédigé par AGOTSI Komi Gédéon Cyrille

2. Choix logiciels

2.1 L’EDI (Environnement de développement )

NetBeans

NetBeans est un environnement de développement intégré (EDI), placé en open source par Sun en Juin 2000 sous licence CDDL (Common Development and Distribution Licence) et GPLv2. Il comprend toutes les caractéristiques d’un IDE moderne (éditeur en couleur, projets multi-langage, refactoring, éditeur graphiques d’interfaces et de pages web). Conçu en Java (qui est multiplateforme), NetBeans est disponible sous Windows, Linux, Solaris (sur x86 et SPARC), MAC OS X ou sous une version indépendante des systèmes d’exploitation (requérant la machine virtuelle de Java, la JVM). Pour notre librairie, nous avons utilisé la version 8.0.2 de NetBeans et la version 1.8 de la JDK (Java Development Kit) car ce sont les dernières versions les plus stables pour le moment.

Figure 30 : Logo NetBeans

Page 60: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

54 Rédigé par AGOTSI Komi Gédéon Cyrille

2.2 Base de données

L’objectif de notre projet est de réaliser une librairie indépendante des SGBD. Dans le cadre de réalisation de test, nous avions utilisé les SGBD MySQL et Postgresql. Une base de données est un ensemble structuré et organisé qui permet le stockage d’informations en quantité importante afin d’en faciliter l’exploitation. Physiquement, elle se traduit par un ensemble de fichiers bien organisés sur le disque. Un Système de Gestion de bases de données (SGBD) est un logiciel qui prend en charge la structuration, le stockage, la mise à jour et la maintenance des données ; c’est l’interface entre la base de données et les utilisateurs ou leurs programmes.

2.3 Présentation du langage utilisé

2.3.1 Java Entreprise Edition (JEE) Java EE (Java Enterprise Edition) est une spécification pour la technique Java d’Oracle plus particulièrement destinée aux applications d’entreprise. Ces applications sont considérées dans une approche multi-niveaux. Dans ce but, toute implémentation de cette spécification contient un ensemble d’extensions au Framework Java standard (JSE, Java Standard Edition) afin de faciliter notamment la création d’applications reparties. A l’heure où ces lignes sont écrites, Java EE est officiellement dans sa version 7. La version 8 est en cours d’édition. Notre librairie a été programmée en suivant la spécification Java EE 7.

Figure 31 : Logo JEE

Page 61: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

55 Rédigé par AGOTSI Komi Gédéon Cyrille

2.3.2 Le Framework JSF/PrimeFaces

JavaServer Faces (abrégé JSF) est un Framework basé sur la notion de composants et destiné au développement d’applications WEB. JSF est techniquement comparable à Swing ou SWT sauf qu’ils sont utilisés pour le développement d’applications de bureau. En JSF et en Swing, l’état d’un composant (représenté par un objet java) est enregistré lors du rendu de la page, pour être ensuite restauré au retour de la requête. L’objectif de JSF est de faciliter le développement des interfaces utilisateurs des applications WEB, or les deux composants standards de JSF (html et core) s’avèrent limités et insuffisants pour le développement d’applications d’entreprise. Des jeux de composants additionnels qui offrent de nouveaux composants plus riches sont indispensables pour le développement en JSF, PrimeFaces en offre un qui a prouvé son efficacité. L’implémentation de la technologie JSF que nous avons utilisé pour notre application est donc PrimeFaces (version 6.0).

Figure 32 : Logo de PrimeFaces

Page 62: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

56 Rédigé par AGOTSI Komi Gédéon Cyrille

2.3.3 l’API Java Persistence (JPA)

La Java Persistence API (JPA), est une interface de programmation Java permettant aux développeurs d'organiser des données relationnelles dans des applications utilisant la plateforme Java.

Elle est une spécification Java pour accéder, persister, et gérer les données entre les objets Java / classes et une base de données relationnelle. C’est une interface d'ORM (Object/Relationnal Mapping) ; il appartient donc à des fournisseurs tierces d'en fournir les implémentations. EclipseLink, TopLink, Hibernate sont les implémentations de JPA sur le marché les plus utilisé. JPA se repose essentiellement sur l'utilisation des annotations, introduites dans Java 5 permettant de définir facilement des objets métier, qui pourront servir d'interface entre la base de données et l'application, dans le cadre d'un mapping objet-relationnel. Elle définit une API EntityManager d'exécution pour le traitement des requêtes et des transactions sur les objets de la base de données. JPA définit aussi un langage de requête de niveau objet, JPQL, pour permettre l'interrogation des objets à partir de la base de données.

Figure 33 : Architecture des Classes de JPA

Page 63: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

57 Rédigé par AGOTSI Komi Gédéon Cyrille

2.3.4 JAXB

JAXB (Java Architecture for XML Binding) est une spécification qui permet de faire correspondre un document XML à un ensemble de classes et vice versa au moyen d'opérations de sérialisation/désérialisation nommées marshalling/unmarshalling. JAXB permet aux développeurs de manipuler un document XML sans avoir à connaître XML ou la façon dont un document XML est traité comme cela est le cas avec SAX, DOM ou StAX. L'utilisation de JAXB met en œuvre plusieurs éléments : Une ou plusieurs classes annotées qui vont encapsuler des données du

document XML (optionnel) un schéma XML ; (optionnel) un outil qui génère les classes annotées à partir d'un

schéma avec éventuellement un fichier de configuration pour les classes à générer ;

Une API utilisée à l'exécution pour transformer un document XML en un ensemble d'objets du type des classes annotées ou vice versa et permettre des validations.

Les avantages d’utiliser JAXB : •Facilite la manipulation de documents XML dans une application Java Manipulation du document XML au travers d'objets : aucune connaissance de XML ou de la manière de traiter un document n'est requise ; •Un document XML peut être créé en utilisant les classes générées •Les traitements de JAXB peuvent être configurés ; • Les ressources requises par le graphe d'objets utilisé par JAXB sont moins importantes qu'avec DOM.

Page 64: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

58 Rédigé par AGOTSI Komi Gédéon Cyrille

II. Présentation de le la librairie

1. Présentation

Une librairie est une collection de classes définies. Ces classes et les méthodes qu’elle fournit proposent des services dans un domaine précis. L’utilisation d’une libraire permet :

la réutilisation du code par les développeurs ; D’économiser en temps de développement ; Modulariser les applications.

La librairie que nous avons développée est nommée ms-backup

Elle est utilisable via l’interface web d’administration ou par l’appel des méthodes. Elle permet d’implémenter les fonctionnalités de sauvegarde et de restauration de base de données dans les applications dans lesquelles elle sera intégrée .Ceci permettra un gain de temps dans le développement des applications.

2. Architecture de la libraire

La libraire développée est utilisable via une interface web ou soit en console par l’appel des méthodes qu’elle fournit.

2.1 Présentation de l’architecture console.

Pour utiliser la librairie en mode console, l’on doit intégrer les sous module backup-api et backup-impl dans un projet sollicitant la librairie. Backup-api fournit une interface offrant les méthodes pour sauvegarder et restaurer une base de données.

Page 65: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

59 Rédigé par AGOTSI Komi Gédéon Cyrille

2.2 Diagramme de classe du sous-module

backup-api

Figure 34 : Composants intégrable pour une utilisation console

Figure 35 : Diagramme de classe du composant backup-api

Page 66: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

60 Rédigé par AGOTSI Komi Gédéon Cyrille

2.3 Présentation de l’architecture web

Afin de pouvoir utiliser l’interface web le développeur doit intégrer tous les composants (Backup-api, backup-impl et backup-web) ou créer son propre interface web pour effectuer la sauvegarde et la restauration dans son projet en utilisant les interfaces offerte par backup-api. Ainsi nous n’avons pas une architecture définie pour notre projet mais nous allons présentez l’architecture d’une application hôte.

i

Figure 36 : Architecture de l’interface web d’une application hôte utilisant la librairie

Acceuil de l'application hôte

Sauvegarder une base de données

Planifié une sauvegarde

Restaurer une base de données

Modifier le dossier de

sauvegarde

Page 67: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

61 Rédigé par AGOTSI Komi Gédéon Cyrille

3. Quelques masques de saisies et codes

sources de la libraire

3.1 Quelques masques de saisies

3.1.1 Page sauvegarder une base de données

Sur cette page l’utilisateur peut sauvegarder une base de données en spécifiant les paramètres de sauvegarde.

Figure 37 : Page de sauvegarde de bases données

Page 68: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

62 Rédigé par AGOTSI Komi Gédéon Cyrille

3.1.2 Page restaurer une base de données

Sur cette page l’utilisateur peut restaurer une base de données en spécifiant le nom de l’unité de persistence et en sélectionnant le fichier de sauvegarde.

Figure 38 : Page de restauration de base de données

Page 69: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

63 Rédigé par AGOTSI Komi Gédéon Cyrille

3.1.3 Page modifié le dossier de sauvegarde

Sur cette page l’utilisateur peut modifier le dossier de sauvegarde par défaut

Figure 39 : Page modifier le dossier de sauvegarde

Page 70: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

64 Rédigé par AGOTSI Komi Gédéon Cyrille

3.2 Quelques codes sources

3.2.1 Interface BackupBeanSericeRemote du composant backup-api

/* * Ms-Backup est une libraire de sauvegarde et de restauration de base de données. réaliser par AGOTSI Komi Gédéon Etudiant en deuxième année a l'IAI-TOGO. */ package net.mediasoft.backup.service; import javax.ejb.Remote; import net.mediasoft.backup.util.BackupConfiguration; /** * * @author gedCommit */ @Remote public interface BackupServiceBeanRemote { /** * Sauvegarde la source de données liée à l'EntityManager principale de l'application. * @param configuration */ void backup(BackupConfiguration configuration); /** * Restauration la source de données liée à l'EntityManager principale de l'application * @param configuration */ void restore(BackupConfiguration configuration); }

3.2.2 Code sources du BackupBean de la

page sauvegarder une base de données

(Implémentation des interfaces de

backup-api)

Page 71: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

65 Rédigé par AGOTSI Komi Gédéon Cyrille

/* * * Ms-Backup est une libraire de sauvegarde et de restauration de base de données. réaliser par AGOTSI Komi Gédéonm Etudiant en deuxième année a l'IAI-TOGO. */ package net.mediasoft.libs.test.libs.web; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Serializable; import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import java.util.Map; import javax.ejb.EJB; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; import net.mediasoft.backup.exception.BackupException; import net.mediasoft.backup.service.BackupServiceBeanRemote; import net.mediasoft.backup.util.BackupConfiguration; import org.primefaces.event.FileUploadEvent; import org.primefaces.model.UploadedFile; /** * * @author gedCommit */ @ManagedBean @SessionScoped public class BackupBean implements Serializable { @EJB private BackupServiceBeanRemote backupService; private BackupConfiguration configuration; private UploadedFile file; private long end; private String extension; private boolean test; private String backupfoldertemp; private boolean disablecancelbtn; private boolean renderedrestorepanel ;

Page 72: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

66 Rédigé par AGOTSI Komi Gédéon Cyrille

private List<String> listFile; private String encoding; public List<String> getListFile() { return listFile; } public void setListFile(List<String> listFile) { this.listFile = listFile; } public boolean isRenderedrestorepanel() { return renderedrestorepanel; } public void setRenderedrestorepanel(boolean renderedrestorepanel) { this.renderedrestorepanel = renderedrestorepanel; } public long getEnd() { return end; } public void setEnd(long end) { this.end = end; } public String getEncoding() { return encoding; } public void setEncoding(String encoding) { this.encoding = encoding; } public UploadedFile getFile() { return file; } public void setFile(UploadedFile file) { this.file = file; configuration.setFilePath(file.getFileName()); } public String getName() { return name;

Page 73: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

67 Rédigé par AGOTSI Komi Gédéon Cyrille

} public void setName(String name) { this.name = name; } public boolean isTest() { return test; } public void setTest(boolean test) { this.test = test; } public BackupServiceBeanRemote getBackupService() { return backupService; } public void setBackupService(BackupServiceBeanRemote backupService) { this.backupService = backupService; } public boolean isDisablecancelbtn() { return disablecancelbtn; } public void setDisablecancelbtn(boolean disablecancelbtn) { this.disablecancelbtn = disablecancelbtn; } private String name; /** * Creates a new instance of BackupBean */ public BackupBean() { this.configuration = new BackupConfiguration(); init(); this.disablecancelbtn=true; this.extension="Aucun fichier selectionné"; this.name="Aucun fichier selectionné"; } public void listenerRender(){ this.renderedrestorepanel=true; } public BackupConfiguration getConfiguration() {

Page 74: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

68 Rédigé par AGOTSI Komi Gédéon Cyrille

return configuration; } public void setConfiguration(BackupConfiguration configuration) { this.configuration = configuration; } public String getExtension() { return extension; } public void setExtension(String extension) { this.extension = extension; } public String getBackupfoldertemp() { return backupfoldertemp; } public void setBackupfoldertemp(String backupfoldertemp) { this.backupfoldertemp = backupfoldertemp; } public void init(){ Path monRepertoire = Paths.get("C:"+File.separator+"msBackup"); try { Path file = Files.createDirectory(monRepertoire); } catch (FileAlreadyExistsException ex){ System.out.println("Le fichier de sauvegarde renseigné existe déja Veuillez renseigner un autre"); } catch (IOException ex) { System.out.println(ex.getMessage()); } configuration.setBackupFolder("C:"+File.separator+"msBackup"+File.separator); } public void executeBackup() { try { long start = System.currentTimeMillis(); System.out.println(start); this.backupService.backup(configuration); end = System.currentTimeMillis() - start; System.out.println(end);

Page 75: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

69 Rédigé par AGOTSI Komi Gédéon Cyrille

System.out.println(end); configuration.setBackupName(""); System.out.println(configuration.getFormat()); System.out.println(configuration.getEncoding()); String messages = "La base de donnée a éte sauvegardée avec succès sous le fichier : " + this.configuration.getBackupName() + " au format : " + this.configuration.getFormat()+ "; durée d'execution : "+ end +" ms"; FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "", "Fichier : " + messages)); reset(); }catch (BackupException ex) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "","Une erreur est survenue dans la creation du fichier de sauvegarde; Cause :" +ex.getMessage())); } } public void executeRestore() { try{ long start = System.currentTimeMillis(); this.backupService.restore(configuration); end = (long)(((System.currentTimeMillis() - start)/1000)%60); String messages = "La base de donnée a éte restauré avec succès; durée d'execution : "+ end +" s"; FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "", "Fichier : " + messages)); } catch (BackupException ex) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Une erreur est survenue aucours de la restauration de la base de donnée; cause :", ex.getMessage())); } } public void modifyBackupFolder() throws IOException { this.configuration.setBackupFolder(this.backupfoldertemp + File.separator);//ici// Path monRepertoire = Paths.get(this.backupfoldertemp); try { System.out.println(this.backupfoldertemp); Path file = Files.createDirectory(monRepertoire); this.backupfoldertemp = "";

Page 76: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

70 Rédigé par AGOTSI Komi Gédéon Cyrille

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Le dossier " + this.backupfoldertemp + " a été crée avec succes")); } catch (FileAlreadyExistsException ex) { this.backupfoldertemp = ""; FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Le dossier existe déja; veuillez créer un autre")); } } public void handleFileUpload(FileUploadEvent event) throws IOException { // the name of the character encoding returned String name = event.getFile().getFileName(); this.name=name.substring(1,name.indexOf(".")); Path tempFile = Files.createTempFile(name, ".tmp"); File temprealFile = tempFile.toFile(); this.setTest(true); try { //Path file = Files.createFile(monFichier); OutputStream out; try (InputStream inputStream = event.getFile().getInputstream()) { out = new FileOutputStream(temprealFile); int read = 0; byte[] bytes = new byte[1024]; while ((read = inputStream.read(bytes)) != -1) { out.write(bytes, 0, read); } } out.flush(); out.close(); System.out.println(temprealFile.toPath()); configuration.setFilePath(temprealFile.getPath()); } catch (IOException ex) { System.out.println(ex.getMessage()); } FileInputStream fis = null; System.out.println(name); // if (".test".equals(name.substring(name.lastIndexOf('.'), name.length()))) { //this.test=true; // System.out.println("vrai"); // if (".xml".equals(name.substring(name.indexOf('.'), name.length()))) { extension = "XML";

Page 77: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

71 Rédigé par AGOTSI Komi Gédéon Cyrille

}else if(".json".equals(name.substring(name.indexOf('.'), name.length()))) { extension = "JSON"; } System.out.println(extension); } // pubic void activeBtn(keyup) public void cancel() { reset(); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("La sauvegarde a été annulé")); } public void reset() { configuration.setBackupName(null); configuration.setPersistenceName(null); configuration.setEncoding("aucune"); configuration.setCompressionType("aucune"); configuration.setEncryption("aucune"); } }

Page 78: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Rapport de réalisation et mise en œuvre

72 Rédigé par AGOTSI Komi Gédéon Cyrille

Conclusion

Cette partie constitue la troisième et dernière partie. Elle nous a permis de montrer l’aspect technique de notre projet. En effet il a été question dans cette partie de montrer l’architecture, quelques codes sources et facette de notre librairie. Ceci permettra à tout développeur de pouvoir intégrer notre librairie dans leur projet afin d’implémenter les fonctionnalités de sauvegarde de restauration.

Page 79: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Conclusion générale

73 Rédigé par AGOTSI Komi Gédéon Cyrille

Conclusion générale

Somme toute, ce stage de trois (03) mois nous a vraiment permis de nous exercer à tout ce que nous avons appris durant nos deux (02) premières années de formation. L’objectif du projet que nous avons réalisé durant le stage était de mettre en place une librairie de sauvegarde et de restauration de bases de données. Nous avons donc étudié le problème posé, trouvé des solutions, tiré la meilleure et l’avons implémenté. Ce qui nous a fait accroître nos connaissances en analyse et programmation. Le plus fascinant est l’intégration professionnelle qui en a découlé, ce qui nous fait adresser des encouragements aux responsables de l’IAI-TOGO.

Page 80: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Bibliographie

74 Rédigé par AGOTSI Komi Gédéon Cyrille

Bibliographie

Ouvrages UML 2 par la pratique de Pascal Roques ;

PrimeFacesUser’s Guide 6.0.

Notes de cours

Cours d’UML de M. KPEGLO (Deuxième année, année académique : 2015-2016) ;

Cours d’implémentation des bases de données de M. KEOULA.

Sites web consultés http:// programcreek.com consulté le 01/07/2016

http:// objectdb.com consulté le 16/08/2016

http://stackoverflow.com consulté le 02/07/2016

http:// docs.oracle.com/javaee consulté le 05/08/2016

Page 81: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Tables des illustrations

75 Rédigé par AGOTSI Komi Gédéon Cyrille

Tables des illustrations Figure 1: Plan de localisation IAI-TOGO................................................................................................... 3 Figure 2 : Organigramme de Médiasoft .................................................................................................. 6 Figure 3 : Plan de localisation de Médiasoft ........................................................................................... 9 Figure 4 : Arrêt du service SQLServer(MSSQLServer) ............................................................................ 16 Figure 5 : Copie des fichiers <<.mdf>> et <<.ldf>> de la base de données ........................................... 17 Figure 6 Démarrage du service SQLServer (MSSQLSERVER) ................................................................. 17 Figure 7 : Sauvegarde de la base de données : menu contextuel ......................................................... 18 Figure 8 : Options de sauvegarde .......................................................................................................... 19 Figure 9 : Progression de la sauvegarde ................................................................................................ 19 Figure 10 : Boite de dialogue ................................................................................................................. 20 Figure 11 : Interface de restauration de la base de données : menu contextuel ................................. 21 Figure 12 : Restaurer la base de données ............................................................................................. 21 Figure 13 : Sélection du support de sauvegarde ................................................................................... 22 Figure 14 : Sélection du fichier de sauvegarde ..................................................................................... 22 Figure 15 : Emplacement de la sauvegarde .......................................................................................... 23 Figure 16 : Sélection des jeux de sauvegarde à restaurer ..................................................................... 23 Figure 17 : Options de restauration ...................................................................................................... 24 Figure 18 : Boite de dialogue ................................................................................................................. 24 Figure 19 : Interface de l'application Iperius backup ............................................................................ 26 Figure 20 : Diagramme de GANTT illustrant le planning prévisionnel de ré ......................................... 30 Figure 21 : Logo d’UML .......................................................................................................................... 31 Figure 22 : Illustration du 2TUP ............................................................................................................. 33 Figure 23 : Logo PowerAMC .................................................................................................................. 35 Figure 24 : Diagramme de cas d'utilisation de la librairie ..................................................................... 38 Figure 25 : Diagramme de classes de la librairie ................................................................................... 42 Figure 26 : Diagramme d'activité de «sauvegarder manuellement » .................................................. 44 Figure 27 : Diagramme d'activité « Restaurer une base de données »................................................. 45 Figure 28 : Diagramme de composants de la libraire ............................................................................ 46 Figure 29 : Diagramme de déploiement d’une application utilisant notre librairie ............................. 48 Figure 30 : Logo NetBeans ..................................................................................................................... 53 Figure 31 : Logo JEE ............................................................................................................................... 54 Figure 32 : Logo de PrimeFaces ............................................................................................................. 55 Figure 33 : Architecture des Classes de JPA .......................................................................................... 56 Figure 34 : Composants intégrable pour une utilisation console ........................................................ 59 Figure 35 : Diagramme de classe du composant backup-api ................................................................ 59 Figure 36 : Architecture de l’interface web d’une application hôte utilisant la librairie ...................... 60 Figure 37 : Page de sauvegarde de bases données ............................................................................... 61 Figure 38 : Page de restauration de base de données .......................................................................... 62 Figure 39 : Page modifier le dossier de sauvegarde .............................................................................. 63

Tableau 1 : Tableau Récapitulatif des participants au projet ...................................................... iv Tableau 2 : Récapitulatifs de l'architecture matériel informatique de Médiasoft ..................... 7 Tableau 3 : Evaluation financière de la première solution .................................................................... 28 Tableau 4 : Evaluation financière de la deuxième solution ................................................................... 28 Tableau 5 : Spécifications techniques du projet ............................................................................ 29

Page 82: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Tables des matières

76 Rédigé par AGOTSI Komi Gédéon Cyrille

Table des matières

Dédicace ................................................................................................................................................... i

Remerciements ........................................................................................................................................ii

Sommaire ................................................................................................................................................ iii

Liste des participants au projet ............................................................................................................... iv

Introduction générale ......................................................................................................................... 1

PARTIE I : RAPPORT D’INSERTION ....................................................................................................... 1

Introduction ........................................................................................................................................... 2

I. Présentations ................................................................................................................................... 3

1. Brève présentation de l’IAI-TOGO ............................................................................................... 3

2. Présentation du centre d’accueil : Médiasoft ............................................................................ 4

2.1 Statut ................................................................................................................................... 4

2.2 Mission ................................................................................................................................ 4

2.3 Activités ............................................................................................................................... 4

2.4 Quelques réalisations .......................................................................................................... 5

2.5 Organigramme ..................................................................................................................... 5

2.6 Service d’accueil .................................................................................................................. 6

2.6.1 Architecture matérielle .......................................................................................................... 7

2.6.2 Architecture logicielle ............................................................................................................. 8

2.7 Plan de localisation ................................................................................................................... 8

II. Thème du stage ............................................................................................................................. 10

1. Présentation du sujet ................................................................................................................ 10

2. Problématique du sujet ............................................................................................................. 10

3. Intérêt du sujet .......................................................................................................................... 11

3.1 Objectifs ............................................................................................................................. 11

3.2 Résultats attendus ............................................................................................................. 11

Conclusion ........................................................................................................................................... 12

PARTIE II : RAPPORT DE PRE-PROGRAMMATION ......................................................................... 13

Introduction ......................................................................................................................................... 14

I. Etude de l’existant ......................................................................................................................... 15

1. SQL Server ................................................................................................................................. 15

1.1 Sauvegarde de base de données ....................................................................................... 16

1.1.1 Sauvegarde avec arrêt de la production ............................................................................. 16

Page 83: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Tables des matières

77 Rédigé par AGOTSI Komi Gédéon Cyrille

1.1.2 Sauvegarde sans arrêt de la production .............................................................................. 18

1.2 Restauration de base de données ..................................................................................... 20

II. Critique de l’existant ..................................................................................................................... 25

III. Propositions de solutions .......................................................................................................... 25

1. Première solution ...................................................................................................................... 25

1.1 Avantage ............................................................................................................................ 26

1.2 Inconvénients .................................................................................................................... 26

2. Deuxième solution ..................................................................................................................... 27

2.1 Avantages .......................................................................................................................... 27

2.2 Inconvénients .................................................................................................................... 27

IV. Evaluation financière des solutions ........................................................................................... 27

1. Première solution ...................................................................................................................... 27

2. Deuxième solution ..................................................................................................................... 28

V. Choix de solution ........................................................................................................................... 29

VI. Planning prévisionnel de réalisation ......................................................................................... 30

VII. Présentation de la méthode d’analyse ...................................................................................... 31

1. Langage UML ............................................................................................................................. 31

1.1 Les diagrammes UML ........................................................................................................ 31

1.2 UML est un formalisme ..................................................................................................... 32

2. Processus 2TUP ......................................................................................................................... 33

VIII. Présentations de l’outil de modélisation .................................................................................. 35

1. Qu’est-ce que PowerAMC ? ...................................................................................................... 35

2. Modéliser avec PowerAMC ....................................................................................................... 36

IX. Etude détaillée de la solution .................................................................................................... 37

1. Le diagramme de cas d’utilisation ............................................................................................. 37

1.1 Les acteurs ......................................................................................................................... 37

1.2 Cas d’utilisation ................................................................................................................. 37

1.3 Modèle du diagramme de cas d’utilisation de la librairie (du point de vue de l’utilisateur final) 38

1.4 Description textuelle de certain cas d’utilisation .............................................................. 39

1.4.1 Sauvegarder une base de données ..................................................................................... 39

1.4.2 Restaurer une base de données ........................................................................................... 40

2. Diagramme de classes ............................................................................................................... 42

3. Diagramme d’activité ................................................................................................................ 43

3.1 Généralités ........................................................................................................................ 43

3.2 Quelques diagrammes d’activités de notre projet ............................................................ 44

4. Diagramme de composants ....................................................................................................... 46

4.1 Généralités ........................................................................................................................ 46

Page 84: Projet stage : Mise en place d'un système générique  de sauvegarde et de restauration de base de données

Mise en place d’un système de sauvegarde et restauration de base de données Tables des matières

78 Rédigé par AGOTSI Komi Gédéon Cyrille

4.2 Diagramme de composants de la librairie ......................................................................... 46

5. Diagramme de déploiement...................................................................................................... 47

Conclusion ........................................................................................................................................... 49

PARTIE III : REALISATION ET MISE EN OEUVRE .................................................................... 50

Introduction ......................................................................................................................................... 51

I. Mise en œuvre .............................................................................................................................. 52

1. Choix matériels .......................................................................................................................... 52

2. Choix logiciels ............................................................................................................................ 53

2.1 L’EDI (Environnement de développement ) NetBeans ...................................................... 53

2.2 Base de données ................................................................................................................ 54

2.3 Présentation du langage utilisé ......................................................................................... 54

2.3.1 Java Entreprise Edition (JEE) ................................................................................................ 54

2.3.2 Le Framework JSF/PrimeFaces ............................................................................................. 55

2.3.3 l’API Java Persistence (JPA) .................................................................................................. 56

2.3.4 JAXB ..................................................................................................................................... 57

II. Présentation de le la librairie ........................................................................................................ 58

1. Présentation .............................................................................................................................. 58

2. Architecture de la libraire .......................................................................................................... 58

2.1 Présentation de l’architecture console. ............................................................................ 58

2.2 Diagramme de classe du sous-module backup-api ........................................................... 59

2.3 Présentation de l’architecture web ................................................................................... 60

3. Quelques masques de saisies et codes sources de la libraire ................................................... 61

3.1 Quelques masques de saisies ............................................................................................ 61

3.1.1 Page sauvegarder une base de données ............................................................................. 61

3.1.2 Page restaurer une base de données ................................................................................... 62

3.1.3 Page modifié le dossier de sauvegarde ............................................................................... 63

3.2 Quelques codes sources .................................................................................................... 64

3.2.1 Interface BackupBeanSericeRemote du composant backup-api ......................................... 64

3.2.2 Code sources du BackupBean de la page sauvegarder une base de données (Implémentation des interfaces de backup-api) ....................................................................................................... 64

Conclusion ........................................................................................................................................... 72

Conclusion générale ...................................................................................................................... 73

Bibliographie ....................................................................................................................................... 74