Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Dédicaces
Je n’oublierai pas tous mes amis qui m’ont supporté d’une manière ou d’une
autre durant ces deux dernières années notamment Sompassiti Charles, Benjamin
Baga, Aboubacar Ganemtoré, Ange Mwiseneza, Tuyishimire Pélagie, Sematuro
Lionel, Nshimiyimana François, Felix Nshimiyimana , Dieudonné Hirwa , Fiston
Rukundo Bruno, Jean de Dieu Gisa, Fabien Nshizirungu .
Et enfin, Kamarampaka Sauveur, mon ami et frère depuis 9 ans. Tant bien que
mal, nous avons vécus de bonnes expériences.
A vous tous, je vous dédie mon travail et j’aimerais vous dire que vous m’êtes
très chers.
ii
Télémaintenance
Remerciements
Merci.
iii
Télémaintenance
ملخص
الصٌانة عن بعد تتلخص فً القٌام بصٌانة النظم عبر شبكة معلوماتٌة مما ٌخول التحكم عن بعد بالحواسب من
أجل القٌام بعملٌات مخطط لها من خالل سٌاسة تسٌٌر .وٌجب على هذه السٌاسة أن تخضع لدراسة جٌدة من أجل
عدم تعرٌض النظام ألي أضرار .هذه األخٌرة قد تنتج عن عدم ضبط النظام ،عن وجود فاٌروسات أو عن عدم
توافق بٌن النظام المادي و البرامج المعلوماتٌة .الصٌانة اآللٌة عن بعد ،على عكس الصٌانة التقلٌدٌة ،ال تتطلب
اللوجستٌة المعقدة والمصارٌف الثقٌلة.
فً هذا التقرٌر نقدم لكم برنامج التحكم عن بعد عبر األنترنت مع كافة المعطٌات التً أدت إلى تصمٌمه ،إضافة
إلى مجهود التشفٌر الذي تخضع له جمٌع االتصاالت الحرجة .كما سنقدم لكم برنامج تجمٌع البٌانات الذي ٌتكلف
بدمج معطٌات قاعدة بٌانات فً أخرى ذات نفس التصمٌم.
الكلمات المفاتيح .RMI, Socket, Scrum, JMF, LDAP, UML, BdD :
iv
Télémaintenance
Abstract
v
Télémaintenance
Résumé
vi
Télémaintenance
Sommaire
Dédicaces ...............................................................................................................................................................................ii
Remerciements ................................................................................................................................................................. iii
ملخص........................................................................................................................................................................................iv
Abstract .................................................................................................................................................................................. v
Résumé ..................................................................................................................................................................................vi
Listes des figures ...............................................................................................................................................................ix
INTRODUCTION GENERALE ........................................................................................................................................1
Chapitre 1 : Contexte du projet ....................................................................................................................................2
1. Présentation de MIC Consulting .........................................................................................................................3
1.1. Présentation de MIC Consulting : ...................................................................................................................3
I.2 Une équipe pluridisciplinaire ............................................................................................................................3
I.3 Organisation interne de l’entreprise : ............................................................................................................3
2. La Problématique et objectif de la plateforme ............................................................................................4
3. solution proposée .....................................................................................................................................................5
4. Planification du projet ............................................................................................................................................7
Chapitre 2 : Etat de l’art et choix technologique ................................................................................................8
1. Gestion de projet.......................................................................................................................................................9
I.2 Scrum .....................................................................................................................................................................9
1.3 Idées clé des méthodes agiles. ....................................................................................................................9
1.4 Les différents acteurs du projet scrum ................................................................................................ 10
1.5 Processus de la gestion du projet scrum ............................................................................................ 11
2. Unified Modeling Language (UML) ................................................................................................................ 12
2.1 Les vues .............................................................................................................................................................. 12
2.2 Les diagrammes UML ................................................................................................................................... 13
3. Programmation réseau ....................................................................................................................................... 15
3.1 Les Sockets....................................................................................................................................................... 15
3.2 RMI (Remote method Invocation) .......................................................................................................... 17
3.3 Programmation Multimédia .................................................................................................................... 19
4. LDAP .......................................................................................................................................................................... 22
4.1 Le protocole LDAP ....................................................................................................................................... 23
4.2 Le modèle d’information............................................................................................................................ 23
4.3 Le modèle de nommage............................................................................................................................. 24
4.4 Le format LDIF .............................................................................................................................................. 25
4.5 Le modèle fonctionnel................................................................................................................................ 25
4.6. Le modèle de réplication........................................................................................................................... 26
4.7. Le modèle de sécurité ................................................................................................................................. 26
4.8 Apache Directory........................................................................................................................................... 27
vii
Télémaintenance
viii
Télémaintenance
ix
Télémaintenance
x
Royaume du Maroc
Université Cadi Ayyad
Ecole Nationale des Sciences Appliquées de Marrakech
Année Académique 2009-2010
INTRODUCTION GENERALE
1
Télémaintenance
2
Télémaintenance
MIC Consulting Group, société créée en 2008, a été fondée par des chercheurs
dans les domaines : juridique, Management et informatique ainsi que les hommes
d’affaires. La volonté et la stratégie de MIC Consulting Group est d'intervenir dans
les domaines ci-haut cités avec une véritable différenciation et surtout de véritables
compétences tant techniques qu’humaines.
Les principales activités de MIC Consulting Group sont ci-après:
Etude Economique
Management et Ingénierie.
Conseil juridique et Fiscal.
Service d’Intérims.
Travaux de comptabilité.
I.2 Une équipe pluridisciplinaire
3
Télémaintenance
MIC Consulting Group dispose ses clients dans les différentes régions du Maroc,
plus particulièrement au sud. La maintenance de ces sites est assurée par ses agents
et consultants qui doivent se déplacer pour faire les différentes taches de conseils, de
mise en jour et de maintenance logicielle. Ces activités de maintenance dans les
régions sudistes sont estimées à 0.5 mois/homme chaque mois.
La figure 2 montre que pour atteindre les sites de leurs clients, les consultants ou
collaborateurs de MIC Consulting Group doivent se déplacer à chaque demande.
Le coût de maintenance, incluant le déplacement et les ressources humaines,
pèse sur l’entreprise qui, ayant privilégié la compétitivité et l’écoute de ses clients,
doit réagir et apporter des solutions adéquates à toute nouvelle demande et
suggestion.
L’objectif de la plateforme est de permettre aux consultants et collaborateurs de
MIC consulting Group d’assurer ces activités de maintenances et assistance à travers
Internet.
4
Télémaintenance
3. solution proposée
Pour optimiser les coûts de maintenances et vue que MIC Consulting Group
dispose le personnel compétant, pouvant suivre et maintenir un projet réseau, il
serait alors plus que profitable de mettre en branle un projet permettant la
maintenance à distance de ces sites. Ce projet apportera une amélioration qualitative
et quantitative dans la gestion des activités de maintenance et une assistance
pluridisciplinaire de ses clients, mais un certain nombre de contraintes doivent être
prise en compte pour assurer la sureté de fonctionnement et pour répondre aux
exigences des clients en terme de sécurité.
MIC Consulting Group gère les serveurs de ses clients et maintient leurs
applications. Pour ce faire, la plateforme doit accéder au système de fichiers des
serveurs Windows 2003/2008 avec les droits d'un administrateur. Certains fichiers
des serveurs pourront être supprimé, modifié ou remplacé.
La plateforme doit aussi permettre d'accéder aux SGBD installé sur ces serveurs.
La plateforme disposera un module audio-visuel pour assister et former les clients
dans leurs différentes tâches. Le client pourra envoyer un fichier ou un imprime
d'écran pour être analysé enfin de corriger les éventuels dysfonctionnements. Les
différents aspects d'accès au système doivent être appréhendés pour permettre un
contrôle total suivant les droits attribués.
5
Télémaintenance
3.2 Sécurité
La sécurité est un élément plus qu’essentiel dans tout système informatique, plus
encore pour une application répartie à travers un réseau non fiable comme Internet.
Il est alors nécessaire de s'attaquer aux problèmes de sécurité réseau et système pour
prévoir les éventuels vulnérabilités et attaques afin d'implémenter une plateforme à
moindre risque de sécurité. L'aspect sécurité sera rigoureusement étudié et répondra
aux besoins évolutifs de la société. La figure 3 montre MIC et ses clients
interconnectés à travers Internet.
3.2.1. Authentification
Pour assurer la confidentialité des informations, une politique d’authentification
sera utilisée, on utilisera le protocole LDAP.
3.2.2. Journalisation
La plateforme permettra de retrouver les différentes tâches et manipulations
effectuées.
3.2.3. Chiffrage
Le trafic sera chiffré pour garantir une connexion et un transfert de trafic d'une
manière sécurisée. Pour cette partie, l'accent sera mis sur l'intégration et
encapsulation des différents algorithmes de chiffrement développé au sein de la
société.
6
Télémaintenance
3.3. Ergonomie
3.4. Technologie
4. Planification du projet
Parmi les étapes cruciales pour conduire un projet et assurer une part de sa
réussite, se trouve la phase de planifier les tâches à accomplir et ordonnancer leur
déroulement afin d’estimer les délais à prévoir pour chaque tâche.
Tout en sachant que la phase de conception du système sera géré par la méthode
scrum, nus avons planifié notre projet comme le montre la figure 4.
7
Télémaintenance
Dans ce chapitre, nous allons présenter les outils que nous avons
utilisés pour analyser, concevoir et mettre en œuvre la plateforme
de maintenance à distance. Au premier lieu nous avons géré notre
projet par la méthode scrum, une méthode agile permettant de
centrer tous les efforts sur le résultat attendu. Nous avons aussi
préféré utiliser une approche orienté objet, non seulement pour sa
réputation de maintenabilité et de réutilisabilité, mais aussi pour sa
riche documentation disponible; pour cela, le couple UML durant
toute la phase de modélisation et Java comme langage de
développement nous semble judicieux. Nous présenterons aussi,
certains concepts et libraires Java tel que RMI, JMF, sockets et par
après, nous montrerons un aperçu de LDAP, un annuaire très riche,
utilisé dans ce projet pour authentifier les utilisateurs.
8
Télémaintenance
1. Gestion de projet
La réussite d’un projet est fortement liée à la manière avec laquelle il est géré,
plusieurs méthodes de gestions ont été proposées. Lors de ce projet, nous allons
utiliser la méthode scrum, une méthode agile qui nous permettra une gestion
collaborative le long de tout le cycle de vie de ce projet.
I.2 Scrum
Scrum est une méthode agile pour la gestion de projets. Les racines de Scrum se
retrouvent dans la publication de Takeuchi et Nonaka dans "The New New Product
Development Game" pour l'aspect métaphore du rugby ainsi que pour les notions
d'ingénierie concourante et dans la rupture méthodologique qualifiée d'itérative,
incrémentale et adaptative (par rapport au modèle cascade) dont la première version
opérationnelle a été publiée par James Martin en 1991 sous le nom de RAD, en ce qui
concerne sa structure fondamentale.
La méthode Scrum peut théoriquement s'appliquer à n'importe quel contexte ou à
un groupe de personnes qui travaillent ensemble pour atteindre un but commun
(comme des projets de recherche scientifique, projets informatiques ou planifier un
mariage).
2. Esprit d’équipe
Dans l'optique agile, l'équipe est bien plus importante que les outils (structurants
ou de contrôle) ou les procédures de fonctionnement. Il est préférable d'avoir une
équipe soudée et qui communique, composée de développeurs (éventuellement à
niveaux variables) plutôt qu'une équipe composée d'experts fonctionnant chacun de
manière isolée.
9
Télémaintenance
10
Télémaintenance
La réussite d’un projet scrum est centrée sur la communication entre les membres de
l’équipe, l’équipe doit tenir alors une réunion régulière et journalière ; lors de cette
réunion, chaque membre de l’équipe doit répondre à trois questions :
Qu'avez-vous fait depuis la dernière réunion?
Qu'allez-vous faire entre maintenant et la prochaine réunion?
il n'y a rien qui vous empêche de faire ce que vous avez prévu?
Les deux premières questions donnent aux participants de la réunion un aperçu
complet sur la façon dont le projet progresse. Quant à la troisième question fournit
des informations permettant de résoudre des problèmes matériels ou
organisationnels qui entravent l’avancement du sprint.
Notons que pour veiller à l’efficacité du scrum, tout le monde peut assister et
écouter lors de la réunion, mais seulement la Scrum Master et les membres de
l'équipe peuvent prendre la parole.
Scrum est un processus de développement de logiciels qui s'intéresse plutôt à
l'organisation du projet qu'aux aspects techniques. Son cadre de travail est sa force, si
bien que cette méthode pourrait être appliquée à d'autres domaines autres que les
applications informatiques. Son approche itérative et basée sur les besoins priorisés
du client lui confèrent une flexibilité extrême. Elle incarne bien par là l'état d'esprit de
la mêlée de rugby : avancer tous ensemble vers un but commun, la réussite du projet.
Scrum est un processus intéressant comme premier pas vers les méthodes Agiles :
il est facile à comprendre et à pratiquer. La seule difficulté relève plutôt de
l'environnement organisationnel.
11
Télémaintenance
12
Télémaintenance
Nous pouvons répartir ces diagrammes suivant trois points de vue classiques de
modélisation comme le présente la figure 7.
13
Télémaintenance
14
Télémaintenance
3. Programmation réseau
Les réseaux sont devenus une partie intégrante de notre vie quotidienne, nous
devons de plus en plus les utiliser pour exploiter au mieux des ressources
physiquement ou logiquement distinctes et automatiser les services qui
demanderaient autrefois des déplacements physiques. Dans notre cas nous voulons
développer une plateforme de contrôle à distance à travers le réseau Internet. Pour
cela, nous utiliserons le langage de programmation Java pour mettre en œuvre cette
plateforme. Le choix du langage Java nous a été facile non seulement parce que, c’est
un langage orienté objet qui permettrait une forte réutilisabilité mais aussi grâce aux
classes et interfaces déjà réalisées qui facilitent d’une façon remarquable la
programmation réseau autrefois studieuse. Et enfin, nous exploiterons la force de
Java pour son interopérabilité et portabilité.
Une des grandes forces de Java est de pouvoir travailler en réseau avec un haut
niveau d’abstraction, les concepteurs de la bibliothèque réseau de java en ont fait
quelque chose d'équivalent à la lecture et l'écriture de fichiers, avec la différence que
les « fichiers » résident sur une machine distante et que c'est elle qui décide de ce
qu'elle doit faire au sujet des informations que vous demandez ou de celles que vous
envoyez. Autant que possible, les menus détails du travail en réseau ont été cachés et
sont pris en charge par la machine virtuelle de java et l'installation locale de Java. De
plus, les fonctionnalités de multithreading de Java viennent à point lorsqu'on doit
traiter plusieurs connexions simultanées.
Les sockets se situent juste au-dessus de la couche transport du modèle OSI et au-
dessus de protocole de transport (TCP ou UDP) du modèle internet comme le montre
la figure 9 suivante :
15
Télémaintenance
Il existe deux classes Socket basées sur les flux : ServerSocket utilisé par un
serveur pour écouter les connexions entrantes et Socket utilisé par un client afin
d'initialiser une connexion. Lorsqu'un client réalise une connexion socket,
ServerSocket retourne un Socket correspondant permettant les communications du
côté serveur. À ce moment-là, on a réellement établi une connexion Socket à Socket et
on peut traiter les deux extrémités de la même manière, car elles sont alors
identiques. On utilise alors les méthodes getInputStream( ) et getOutputStream( )
pour réaliser les objets InputStream et OutputStream correspondants à partir de
chaque Socket. À leur tour ils peuvent être encapsulés dans des classes buffers ou de
16
Télémaintenance
Notons aussi que, comme nous vous avons signalé, pour faciliter la
programmation réseaux et des applications distribuées, plusieurs API ont été
développés facilitant la communication entre des objets. Ceci permet aux
programmeurs de se passer de certaines tâches de sérialisation, de contrôle,….Parmi
ces API nous utiliserons dans ce projet dans certains cas l’interface RMI (Remote
Method Invocation).
En général, un réseau est utilisé pour transmettre des données d'une extrémité à
l'autre. Cependant, on a besoin de transmettre parfois plus que des simples données
à l'état pur sur le réseau. C'est là que qu’on utilise les appels des procédures distant
RPC (Remote Procedure Calls). L’interface RMI est une version spécialisée de RPC
qui a été implémenté par Sun. Avec RMI différents objets peuvent interagir entre
eux, même s’ils ne sont pas sur la même machine virtuelle ou même s’ils sont sur
des ordinateurs différents.
RMI est alors une interface de programmation pour le langage Java qui permet
d'appeler des méthodes distantes. RMI définit un ensemble de classes permettant de
manipuler des objets sur des machines distantes (objets distants) ou sur la machine
locale (objets locaux). Notons bien qu’un objet distant pourrait être simplement un
objet se trouvant sur une autre machine virtuelle Java.
Caractéristiques de RMI:
RMI utilise beaucoup d'interfaces. Lorsque l'on souhaite créer un objet distant,
l'implémentation sous-jacente est masquée en passant par une interface. Ainsi,
lorsque qu'un client obtient une référence vers un objet distant, ce qu'il possède
réellement est une référence intermédiaire, qui renvoie à un bout de code local
17
Télémaintenance
La figure 11 montre une communication du bout à bout des sockets, quant à la figure
12 décrit la communication verticale.
18
Télémaintenance
Toutes les données temps réel se différencient des autres par la prise en compte
de contraintes temporelles dont le respect est aussi important, les données doivent
être délivrées dans des délais imposés. La voix, les clips audio, les clips et les
animations sont des formes courantes de médias basés sur le temps. Ces supports de
données peuvent être obtenues auprès de diverses sources, telles que les fichiers du
réseau local ou, caméras, microphones, et des émissions en direct, … Le schéma ci-
dessous (Figure 13) montre les états d’un flux temps réel :
19
Télémaintenance
JMF utilise ce même modèle de base. Une source de données encapsule le flux
média un peu comme une cassette vidéo et un lecteur de traitement fournit des
mécanismes de contrôle similaires à un magnétoscope. La capture audio et vidéo
avec JMF exige l'entrée et de sorties appropriées tels que des microphones, caméras,
haut-parleurs et les écrans.
Pour cela JMF API utilise « Data sources » et « players » pour gérer la capture, la
présentation et le traitement des médias temps réel. JMF fournit également une API
de bas niveau qui prend en charge l'intégration d’une manière transparente des
composants et extensions personnalisé.
Le schéma ci-après (Figure 15), montre l’architecture d’une application ou applet
JMF et les différentes possibilités qu’il offre.
On distingue deux types de flux média suivant la façon dont les données sont
fournies :
Pull : Le transfert de données est initié et contrôlée à partir du côté client.
Exemple : HyperText Transfer Protocol (HTTP), Fichier(FILE), ….
20
Télémaintenance
Le système qui transmet les paquets RTP est un système client/serveur, cela se
compose d'un module d'émetteur et d'un module de récepteur. Le système a été
développé en utilisant Java API JMF.
L'émetteur transmet les données et le récepteur les reçoit. La figure 16 montre le
processus global d'un procédé de transmission de médias en utilisant RTP. La
transmission par RTP est reportée par des sessions. Une fois que l'émetteur est prêt
pour la transmission de données, une session de RTP est crée pour transmettre le
flux de données.
21
Télémaintenance
Pour l'émetteur, les données de médias sont extraites à partir des fichiers au
moyen d'un processeur. Le processeur est employé pour analyser les médias et
permettent d'opérer sur contenu facilement.Une fois que le fichier de données est
disponible, il est alors passé à un RTP SessionManager, qui manipuler le flux de
transmission. Le module d'émetteur de médias a des méthodes spécifiques qui
exécutent diverses fonctions pour transmettre le flux de données qui est reçu par le
récepteur.
4. LDAP
LDAP (Lightweight Directory Access Protocol) est un protocole d'accès à un
annuaire, dérivé d' X500, au dessus de TCP/IP. C'est une implémentation allégée du
protocole ISO DAP. Il est devenu le standard des annuaires électroniques qui
prennent de plus en plus d'importance dans les systèmes d'information des
entreprises.
LDAP définit :
un protocole permettant d’accéder à l’information contenue dans
l’annuaire,
un modèle d’information définissant le type des informations
contenues dans l’annuaire,
22
Télémaintenance
LDAP définit le type des données pouvant être stockées dans l’annuaire. L'unité
de base de l'information stockée dans le répertoire est appelé une entrée(Entry). Les
entrées représentent des objets (réel ou abstrait) ayant l’intérêt dans le monde réel,
comme les personnes, les serveurs, organisations, et ainsi de suite. Les entrées sont
composées d'une collection d'attributs décrivant les caractéristiques de l’objet.
Chaque attribut a un type et un ou plusieurs valeurs. Le schéma de l’annuaire définit
la liste des classes d’objets qu’il connaît. Le Directory schema est la « charte » qui
donne, pour le serveur, l’ensemble des définitions relatives aux objets qu’il sait
gérer.
Le schéma décrit les classes d’objets, leurs types d’attribut et leur syntaxe. Chaque
entrée de l’annuaire fait obligatoirement référence à une classe d’objet du schéma et
ne doit contenir que des attributs qui sont rattachés au type d’objet en question. La
relation entre une entrée de l’annuaire LDAP et de ses attributs et leurs valeurs des
attributs est illustrée à la figure 17.
23
Télémaintenance
Les classes d’objet modélisent des objets réels ou abstraits comme un compte
UNIX (posixAccount), une organisation (o), un département (ou), un personnel
(organizationPerson), une imprimante (device),. . .
Une classe d’objet est définie par un nom, OID, des attributs obligatoires, des
attributs optionnels, un type (structurel, auxiliaire ou abstrait).
Notons que l’objet père de tous les autres est l’objet top comme le montre la
figure 18.
A.
Le modèle de nommage LDAP définit la façon dont les entrées sont organisées et
comment elles sont référencées. Les entrées sont organisées dans une structure
arborescente appelée DIT ( Directory Information Tree). La Structure arborescente
contient deux catégories d’objets :
les conteneurs : départ d’une nouvelle branche (nœud intermédiaire de
l’arbre)
o peuvent contenir des conteneurs ou des feuilles
o généralement, une sous-organisation de l’organisation (zone
géographique,. .)
les feuilles : elles représentent les données (généralement les machines,
les utilisateurs,. . .).
Chaque entrée est référencée de manière unique dans le DIT par son distinguished
name (DN). Le DN représente le nom de l'entrée sous la forme du chemin d'accès à
celle-ci depuis le sommet de l'arbre. On peut comparer le DN au path d'un fichier
Unix. Par exemple, le DN correspondant à l'arbre de la figure 19 est :
Uid=toto,ou=people,dc=labri,dc=fr
24
Télémaintenance
LDAP décrit le moyen d’accéder aux données (syntaxe des requêtes) et les
requêtes que l’on peut leur appliquer. Ce modèle est composé de trois catégories
d'opérations :
Connexion au service: bind, Unbind, abandon.
Intérrogation: Search, compare.
Mise à jour: add, delete, modify, rename.
25
Télémaintenance
26
Télémaintenance
b. Contrôle d'accès
Il s'agit de définir les droits d'accès des utilisateurs sur les ressources de
l'annuaire.
Le long de ce projet, nous avons utilisé le serveur LDAP Apache Directory Service
et le client LDAP Apache studio.
27
Télémaintenance
28
Télémaintenance
1. Introduction
Cette partie concerne l'analyse des besoins fonctionnels, le fonctionnement
dynamique et statique de l'application. Le modèle UML est utilisé pour l’analyse et la
conception, les différents diagrammes de cas d’utilisation, de séquences et les
diagrammes de classes seront présentés.
29
Télémaintenance
Ces 4 acteurs vont interagir avec le système composé par deux applications:
Une application serveur permettant d'accéder aux objets distants.
un client lourd utilisant les objets distants.
3. Authentification
La première phase de notre plateforme est l’authentification. Un utilisateur de
MIC voulant effectuer une quelconque opération sur la plateforme doit
s’authentifier auprès de serveur LDAP, il ne pourra effecteur l’opération que si son
niveau d’accès lui permet d’accéder à la plateforme. Ceci nécessite d’interfacer la
plateforme et le serveur LDAP. Notons aussi que l’authentification est centralisée sur
le serveur situé à MIC Consulting Group. Le client distant ne pourra lui aussi utiliser
la plateforme qu’après s’avoir été authentifié au serveur LDAP de MIC, le login et le
mot de passe sont envoyés à l’application d’authentification, Si son authenticité est
approuvée, l’application lui autorise de se connecter sur l’application de contrôle
client distant, autrement l’accès lui est refusé et le client ne pourra accéder à la
plateforme.
Après l’authentification, l’utilisateur MIC ou client pourra effectuer plusieurs
opérations, suivant son niveau d’accès, à savoir : exécuter une commande, envoyer
un fichier, …Les diagrammes de séquences des certaines opérations offertes par la
plateforme seront présentés ci-après.
Une commande est exécutée par un utilisateur MIC ayant les droits d’exécuter
une commande sur le serveur distant. Le scénario commence par l’authentification
de l’utilisateur. Celui-là, une fois authentifié, il peut saisir une commande ou une
requête, le système chiffre la commande ou la requête saisie avant d’être envoyé sur
le réseau internet vers le serveur distant. Le système distant reçoit la requête ou la
commande chiffrée, puis il la déchiffre et enfin, l’exécute sur le serveur distant.
b. Lé résultant de la commande
30
Télémaintenance
31
Télémaintenance
32
Télémaintenance
ces classes seront exécutées dans la classe serveur et enregistré dans un registre
rmiregistry, ce qui permettra à un programme client distant de pouvoir y accéder.
a. Commande
Une commande peut être une commande DOS pour les serveurs Windows ou des
requêtes MYSQL qui permettent d’accéder au serveur de base de données MYSQL.
La connexion à la base de données se fait une fois par le patron de conception
(design pattern) singleton « SingletonConnection ».
Les fonctionnalités de chiffrement et de déchiffrement sont encapsulées dans
design pattern singleton SingletonCypher.
Nous avons préféré utiliser le design pattern singleton pour pouvoir contrôle le
nombre des instances exécutés, particulièrement pour pouvoir avoir une instance
unique au moment de l’exécution du programme serveur.
b. Fichier
Cette interface définit toutes les fonctionnalités permettant d’enregistrer dans un
répertoire donnée un fichier envoyé par le client sur le serveur.
33
Télémaintenance
c. Chiffrage
Il est important de signaler que la classe SingletonCypher encapsule les
fonctionnalités de chiffrement et de déchiffrement fournit par l’interface Chiffrage;
en effet tous les flux d’informations que le serveur reçoive sont chiffré et seront
déchiffré par celui-là, de retour, tous les flux d’informations que le serveur envoie
seront chiffrés. Nous avons pour cela utilisé la librairie de chiffrage développée au
sein de MIC Consulting Group.
34
Télémaintenance
Nous avons omis volontairement dans ce rapport toutes les méthodes triviales, tel
que les méthodes GET et SET, ainsi que les autres méthodes élémentaires.
Le module d’authentification qui est développé permet d’accéder au serveur
LDAP installé sur le système MIC. Les diagrammes de classes ci-haut mentionnés
concernent l’application serveur. Nous allons montrer par après, certaines classes de
l’application cliente (l’application qui contrôle
6.4. Diagramme de classe : lancer une commande DOS ou une
requête MYSQL.
35
Télémaintenance
36
Télémaintenance
37
Télémaintenance
Pour pouvoir accéder au serveur ApacheDS, nous avons aussi installé un client
ApacheDS, Apache Directory Studio qui est, comme ApacheDS, un projet
opensource implémenté en Java. Pour plus de détails voir chapitre 2.
38
Télémaintenance
Nous avons ensuite, défini notre arborescence et édité un fichier LDIF des
utilisateurs de la plateforme dont nous avons importé à l’aide d’Apache Studio.
Nous n’avons ensuite qu’à lancer le serveur ApacheDS.
39
Télémaintenance
Chapitre 4 : Implémentation
40
Télémaintenance
1. Introduction
3. Environnement de développement
Durant toute la phase de développement, nous
avons utilisé l’environnement eclipse; qui est
un environnement de développement intégré libre,
extensible, universel et polyvalent, permettant de
créer des projets de développement mettant en
œuvre n'importe quel langage de programmation. Eclipse IDE est principalement
écrit en Java. C’est d’ailleurs pour cette raison et pour sa simplicité d’utilisation que
nous l’avons choisi.
La figure 34 est l’environnement de développent eclipse dont nous avons
utilisé le long durant toute la phase d’implémentation.
41
Télémaintenance
42
Télémaintenance
2. Système client : application située sur le serveur distant dont l’on veut
accéder, la figure qui suit est son interface graphique :
2.1. Scénario 1
43
Télémaintenance
Un utilisateur ayant les droits peut lancer les services appropriés comme
l’autorisation d’accéder au serveur LDAP pour que les clients puissent s’authentifier
à partir des machines distantes.
44
Télémaintenance
Figure 42 : communication 1.
45
Télémaintenance
Utilisateur MIC accède au serveur, et pourra lancer les commandes sur le serveur.
46
Télémaintenance
47
Télémaintenance
2.2 Scénario 2
48
Télémaintenance
49
Télémaintenance
Toutes les données échangées à travers le réseau sont chiffrées (voire Figure 55
suivante).
50
Télémaintenance
Chapitre 5: MICTopus
51
Télémaintenance
1. Introduction
MicTopus est une application qui doit assurer l’agrégation des données d’une base
de données vers une autre ayant le même schéma.
Le problème revient à gérer l’ordre d’agrégation des tables selon la présence des
clés étrangères puis de commencer l’agrégation tout en gardant la trace des nouvelles
valeurs des clés primaires et enfin en les remplaçant dans les champs de clés
étrangères.
Notons que l’agrégation est une relation entre deux classes spécifiant que des
objets d'une classe (la classe cible) sont les composants de l'autre classe (la classe
source).
Pour résoudre ce problème, nous avons proposé deux algorithmes :
2. Premier Algorithmique
Notons qu’il est important de garder l’historique d’agrégation pour pouvoir gérer
des clés étrangères et les futures agrégations.
Soient : Gtopus: table de correspondance des clés primaires.
Ttopus : Table comportant les noms de tous les autres tables de la base
de données.
Gtable : la table qui va être agrégée.
BdDD : Base de données de destination.
BdDS : Base de données source
52
Télémaintenance
Trier Ttopus par ordre croissant suivant le nombre des clés. (On commence
par celle qui n’a que de clé primaire)
Si la table n’a
qu’une clé primaire
oui non
53
Télémaintenance
3. Deuxième Algorithmique
//algorithme côté BdDS
Début
Construire le schéma de BdDS(Ttopus)
Trier Ttopus suivant COLUMN_KEY primaire
Pour i=1 jusqu’à n=card(Ttopus) faire
Début
Type_clef= Type_clef_de_Ttopus[i] //unique primaire ou pas
Sélectionner toutes les données de la table Ttopus[i] dans BdDS
Transférer ses données pour être insérer dans BdDD
Si Transferer(Ttopus[i])== echec _insertion_Table_Entrant
Mettre Ttopus[i]) à la queue pour être renvoyer.
Fin.
Fin.
//algorithme côté BdDD
Début
Table_Entrant=Enregistrement_Entrant
Si Type_clef== « primaire_type » faire
Début
Ind=dernier Gtopus .Ind_end // dernier Gtopus de Table_Entrant
Table_Entrant.COLUMN_KEY=Ind+ Table_Entrant.COLUMN_KEY
Inserer Table_Entrant dans BdDD
Fin
Sinon
Début
Ind=dernier ( Gtopus .Ind_end)+ Table_Entrant.COLUMN_KEY
// dernier Gtopus de Table_Entrant
Table_Entrant.COLUMN_KEY_primaire=Ind
Pour i=1 jusqu’à n= card(Type_clef_etrangeres) faire
Début
Si Table_Entrant_clef[i]<=Gtopus. Ind_fin_source faire
Ind_Et[i]=Table_Entrant(Ind_begin)+ Table_Entrant.COLUMN_KEY
Sinon
//la clé étrangère n’a pas sa correspondante primaire
Retourner (echec _insertion_Table_Entrant).
Fin
Inserer Table_Entrant dans BdDD
Fin
Fin.
54
Télémaintenance
CONCLUSION ET PERSPECTIVE
Nous avons élaboré durant ce stage, la plateforme de contrôle à distance à travers
Internet. Internet étant un réseau non fiable, nous avons intégré une librairie de
chiffrement pour tout le trafic jugé critique, nous avons enfin intégré dans la
plateforme la messagerie instantanée et le module audio-visuel qui permettront
respectivement aux utilisateurs d’échanges les messages instantanés et de tenir des
vidéoconférences. Par ce projet, j’ai aussi découvert la méthode Scrum pour la
gestion des projets, le développement d’une application réseau, l’encapsulation des
algorithmes de chiffrement ainsi que les indices de qualité algorithmiques et enfin,
j’ai assisté sur d’autres projets qui étaient en cours au sein de MIC Consulting Group,
ce qui a apporté beaucoup à mon parcours personnel et professionnel. Par là,
j’apprécie vivement cette occasion qui m’a été donnée.
Aussi complexe qu’il soit, tout projet nait d’une idée, cette idée qui, murit pour
donner une nouvelle approche et innovation doit être entretenu et revue pour
répondre astucieusement et minutieusement aux besoins des utilisateurs, tel est le
cas pour notre projet. Nous préconisons sa complexité, et nous demandons un suivi
pour maintenir son niveau de sécurité et pour accroitre sa sureté de fonctionnement.
Par ailleurs nous recommandons d’intégrer les services VOIP (Voice over IP) et de
signalisation des messageries instantanées, ceci permettra d’être à tout moment à
l’écoute des clients pour leur apporte l’assistance.
MicTopus nous a apporté une compréhension élargie sur plusieurs
problématiques que courent les bases des données, notamment, son niveau d’accès
qui peut, surchargé ou trop demandé, être compromis, d’où l’intérêt de répartir les
données sur plusieurs serveurs tout en assurant la synchronisation des données. Ceci
nécessitera aussi une politique d’accès aux ressources réseaux et systèmes. Cette
politique pourrait être gérée au niveau applicatif de la plateforme, ce qui permettra
une distribution optimale du trafic et l’amélioration de l’utilisation global du réseau.
55
Télémaintenance
Bibliographie
1. Penser en java seconde édition, Bruce Eckel.
2. JAVATM MEDIA FRAMEWORK,www.sun.com/jmf.
3. Understanding LDAP Design and Implementation(IBM), ibm.com/redbooks.
4. Java Network Programming de Elliotte Rusty Harold (O.Reilly, 1997).
5. Support de cours VOIP Réseaux et Système de l’ENSA de Marrakech 2009,
Pr.Idboufker Noureddine.
6. Support de cours UML Master Réseaux et Système de l’ENSA de Marrakech 2010,
Eng. JAKJOUD Abdeslam.
7. UML par la pratique, Etudes de cas et exercices corrigés 5ème édition ,EYROLLES,
Pascal Roques.
8. Network-programming with RMI Assignment for the M.Sc. Course on Distributed
Systems Adrian Reber.
9. Support de Cours JAVA RMI 2010, 5ème Génie informatique , ENSA de Marrakech.
10. Scrum et XP depuis les Tranchées, Comment nous appliquons Scrum, Henrik
Kniberg.
11. http://www.siteduzero.com/tutoriel-3-65547-soyez-a-l-ecoute-de-vos-objets-le-
pattern-observer.html , simple IT par Pierre Dubuc et Mathieu Nebra.
12. Communication synchrone entre programmes par RPC et RMI, par Pr. Michel
RIVEILL, Pr.Roland BALTER, MC.Fabienne BOYER.
13. Design Patterns CD,Elements of reusable Object-Oriented Software 1998, Erich
Gamma,Richard Helm,Ralph Johnson, John Vlisides.
14. www. dev.mysql.com, by Stefan Hinz, Team Lead, Paul DuBois,Jonathan
Stephens,Martin 'MC' Brown,Anthony Bedford .
15. Distributed Programming with Java, Training Course, Gabriel Oteniya et Chau
Keng Fong.
16. support de cours Administration Réseau Annuaire LDAP , Abdou Guermouche.
56
Télémaintenance
Glossaire
Directeur de produit (Product Owner) : Personne responsable de produire et
maintenir à jour le backlog de produit. C'est lui qui en détermine les priorités et qui
prend les décisions concernant l'orientation du projet.
Backlog de produit (Product Backlog) : Liste des fonctionnalités qui devront être
réalisées par le logiciel.
Backlog de sprint (Sprint Backlog): Liste des tâches à accomplir pendant un sprint.
Elles correspondent à la réalisation des items de backlog du produit affectés au
sprint.
Sprint : Nom d'une itération dans Scrum. Cette itération dure 30 jours calendaires en
théorie, mais en pratique on utilise plutôt entre 2 et 4 semaines. Pendant une
itération, l'équipe doit développer une liste d'items du backlog de produit qui a été
définie au début de ce sprint.
57