119
Ré publique Alg é rienne Dé mocratique et Populaire MinistèredelEnseignement Supérieur et de la Recherche Scientifique Université AMAR TELIDJI Laghouat FACULTE DES SCIENCES ET DE LINGENIERIE DEPARTEMENT DE GENIE INFORMATIQUE Mémoire de fin d’études Pour lobtention du diplômedingénieur d’état en informatique Option : Systèmes Parallèles et Distribués (SPD) Thème: Étude et réalisation dune application de contrôledun PC à distance en Réalisé par : BENYAMI Bachir HASSANI Mustapha Suivi par : Mr. BENSAAD Mohamed Lahcen N° d'ordre; .. 2008-PFD / DGI

Étude et réalisation d’une application de contrôle d’un PC à distance en JAVA - jrdesktop

Embed Size (px)

Citation preview

  • Rpublique Algrienne Dmocratique et PopulaireMinistre de lEnseignement Suprieur et de la Recherche Scientifique

    Universit AMAR TELIDJI Laghouat

    FACULTE DES SCIENCES ET DE LINGENIERIEDEPARTEMENT DE GENIE INFORMATIQUE

    Mmoire de fin dtudesPour lobtention du diplme dingnieur dtat en informatique

    Option : Systmes Parallles et Distribus (SPD)

    Thme :tude et ralisation dune application de

    contrle dun PC distance en

    Ralis par :BENYAMI BachirHASSANI Mustapha

    Suivi par :Mr. BENSAAD Mohamed Lahcen

    N d'ordre; .. 2008-PFD / DGI

  • RemerciementsNous tenons remercier en premier lieu notre Dieu qui nous a

    donn la sant, la force et le courage pour mener bien ltude etl'implmentation de ce projet.

    Aussi, Nous remercions chaleureusement nos parents, qui nousont beaucoup aid matriellement et moralement, depuis notre enfanceet jusqu ce que nous sommes arrivs ce point l. Sans oublier aussinos surs, nos frres et nos familles.

    Nous tenons remercier notre encadreur Mr. Mohamed LahcenBENSAAD pour son dvouement et la confiance quil nous a accordpour la ralisation de ce travail. Sa persvrance, son enthousiasme etsa gnrosit nous ont t dun grand soutien dans notre travail.

    Nous tenons remercier tous nos enseignants qui ont contribu notre formation, particulirement Mr. Youcef OUINTEN, Mr. KamelBOUKHALFA, Mr. Taher ALLAOUI.

    Nous remercions le prsident du jury Mr. LAGRAA Nacereddineet l'examinatrice Mademoiselle BELABASSI Amel pour leurs acceptationd'examiner ce mmoire.

    Nous tenons enfin remercier toutes les personnes qui nous ontaid de prs ou de loin complter ce travail notamment Mr. YacineDOUAG et Toufik FEKHAR qui nous ont aid dans la phase du test dujrdesktop sur Internet.Ce travail est ddi la mmoire de notre ami Bachir KERROUCHI.

  • Rsum

    Un des plus grands challenges de cette dcennie est sans aucun doute le bureau distant car ilsarticule autour de plusieurs points notamment le contrle, la maintenance, la scurit etlvolutivit. Ces diffrents points montrent l'importance du contrle distance dans un rseautendu compos de plusieurs rseaux locaux. Au niveau professionnel, le bureau distance paratun outil indispensable pour maintenir la rapidit, l'efficacit et la scurit d'un rseau tendu. Le butde ce projet de fin dtude est de concevoir et de raliser une application de bureau distance pourdes diverses utilisations qui sexcutent distance via le rseau local ou mondial tel que latlmaintenance, la tlintervention et la formation distance, etc. Pour ce faire, nous dcouponsl'architecture conceptuelle de notre systme en quatre volets majeurs. Le bureau distant reprsentele premier volet fournissant une tude gnrale sur la description, le fonctionnement, la mise enplace et les domaines dutilisation. Le second volet concerne le langage de programmation Java,ainsi les outils et les technologies quon a utiliss durant la ralisation de notre application. Letroisime volet est consacr la description, la conception et limplmentation de notre systmesurnomm jrdesktop en utilisant le langage de modlisation UML. Le dernier volet assure ledploiement du systme conu, dont on montre la vue gnrale de lIHM et comment utiliser lesystme, on montre aussi une tude de qualit du logiciel, ainsi des tests et les rsultats de ces testsqui ont t faits sur le transfert des donnes entre le contrleur et le contrl. On finit parreprsenter une vue gnrale sur les sites web qui ont publi notre logiciel et des statistiques detlchargement de notre application hberge sur le site web de jrdesktop.sourceforge.net.

    Mots cls : Bureau distant, VNC, RDP, RMI, SSL, jrdesktop

  • Abstract

    One of the biggest challenges of this decade is undoubtedly the remote desktop because itrevolves around several points in particular control, maintenance, safety and evolutionary. Thesevarious points show the importance of remote control in a wide area network composed of severallocal area networks. At the professional level, the remote desktop seems an indispensable tool formaintaining the speed, efficiency and safety of a wide area network. The aim of this final projectstudy is to conceive and implement an application of remote desktop for various uses that are maderemotely via the local network or wide such as remote maintenance, the intervention at a distanceand training distance, etcTo do this, we cut conceptual architecture of our system into four majorparts. The remote desktop represents the first phase providing a general study on the description,operation, establishment and the fields of use. The second part concerns the Java programminglanguage and the tools and technologies that are used during the realization of our application.Thethird part is devoted to the description, design and implementation of our system nicknamed"jrdesktop" using the modeling language UML The last component ensures the deployment of thedesigned system, which shows the general view of the GUI and how to use the system, it also showsa study of software quality, and testing and results of these tests which were made on the transferdata between the controller and controlled. It eventually represents an overview on the websites thathave published our software and the statistical software and download our application hosted on thejrdesktop.sourceforge.net web site.

    Key words: Remote desktop, VNC, RDP, RMI, SSL, jrdesktop.

  • Table des matires

    I

    Table des matiresINTRODUCTION GENERALE ................................................................................................................................. 1

    1. INTRODUCTION.................................................................................................................................................... 32. PRESENTATION DU BUREAU DISTANT .......................................................................................................... 43. TERMES LIES AU BUREAU DISTANT ............................................................................................................... 54. DISPOSITIFS DE BUREAU DISTANT ................................................................................................................. 5

    4.1. LE FACTEUR MATERIEL............................................................................................................................................... 54.2. LE FACTEUR RESEAU .................................................................................................................................................. 54.3. LE FACTEUR LOGICIEL ................................................................................................................................................ 64.4. LE FACTEUR SECURITE................................................................................................................................................ 64.5. LE FACTEUR MATERIEL............................................................................................................................................... 6

    5. LE FONCTIONNEMENT DU BUREAU DISTANT.............................................................................................. 66. MISE EN PLACE .................................................................................................................................................... 7

    6.1. PROBLEMATIQUES ET SOLUTIONS APPROPRIEES.......................................................................................................... 86.1.1. PC derrire un pare-feu ..................................................................................................................................... 86.1.2. PC derrire un routeur....................................................................................................................................... 86.1.3. Pas de connexions entrantes .............................................................................................................................. 86.1.4. Adresse IP dynamique ........................................................................................................................................ 8

    6.2. TECHNIQUES D'AIDE POUR ACCES A DISTANCE............................................................................................................ 86.2.1. DNS dynamique .................................................................................................................................................. 86.2.2. Redirection des ports .......................................................................................................................................... 96.2.3. Relai (ou rpteur) ........................................................................................................................................... 106.2.4. Tunnel http........................................................................................................................................................ 11

    7. L'UTILISATION DU BUREAU DISTANT ...........................................................................................................118. COMPARER DES DIFFERENTS LOGICIELS DE BUREAU A DISTANCE....................................................129. INCONVENIENTS DU BUREAU DISTANT........................................................................................................1610. ADMINISTRATION ET CONTROLE PAR MOBILE.......................................................................................1611. CONCLUSION .....................................................................................................................................................17

    1. INTRODUCTION...................................................................................................................................................182. LE LANGAGE JAVA.............................................................................................................................................18

    2.1. LES AVANTAGES DE JAVA......................................................................................................................................... 182.2. JAVA STANDARD EDITION 6 ..................................................................................................................................... 19

    3. LA TECHNOLOGIE RMI (REMOTEMETHOD INVOCATION).....................................................................193.1. APPLICATIONS DISTRIBUEES ..................................................................................................................................... 193.2. OBJECTIFS DE RMI ................................................................................................................................................... 203.3. L'ARCHITECTURE RMI............................................................................................................................................. 20

    CHAPITRE I : LE BUREAU DISTANT

    CHAPITRE II : OUTILS ET TECHNOLOGIES UTILISS

  • Table des matires

    II

    3.3.1. Interface ........................................................................................................................................................... 203.3.2. Les diffrentes couches de RMI ........................................................................................................................ 21

    3.4. PROCESSUS DE DEVELOPPEMENT DUNE APPLICATION RMI .................................................................................... 234. LE PROTOCOLE DE SECURITE SSL ................................................................................................................25

    4.1. DEFINITION DU PROTOCOLE...................................................................................................................................... 254.2.1. Architecture du SSL.......................................................................................................................................... 254.2.2. Fonctionnement du SSL .................................................................................................................................... 26

    4.2. JAVA ET SSL............................................................................................................................................................. 284. NETBEANS ............................................................................................................................................................285. CONCLUSION .......................................................................................................................................................29

    1. INTRODUCTION ..............................................................................................................................................282. MODELISATION ..............................................................................................................................................29

    2.1. DIAGRAMME DE CAS D'UTILISATION................................................................................................................... 292.2. DIAGRAMME DE CLASSE..................................................................................................................................... 292.3. DIAGRAMME DE COMPOSANT ............................................................................................................................. 302.4. DIAGRAMME DE DEPLOIEMENT .......................................................................................................................... 31

    3. ARCHITECTURE DE L'APPLICATION ........................................................................................................323.1. ARCHITECTURE GENERALE................................................................................................................................. 323.2. ARCHITECTURE RMI .......................................................................................................................................... 343.3. COMMUNICATION ENTRE MODULES.................................................................................................................... 353.4. ARCHITECTURE DES MODULES ........................................................................................................................... 363.5. FONCTIONNALITES DE BASE ............................................................................................................................... 393.5.1. Transfert de donnes................................................................................................................................. 393.5.2. Serveur multihome .................................................................................................................................... 423.5.3. Multisessions............................................................................................................................................. 423.5.4. Scurit ..................................................................................................................................................... 423.5.5. Capture d'cran ........................................................................................................................................ 433.5.6. Application des vnements clavier et souris............................................................................................ 453.5.7. Qualit d'image JPEG .............................................................................................................................. 453.5.8. Compression de donnes........................................................................................................................... 463.5.9. Configuration............................................................................................................................................ 46

    4. CONCLUSION...................................................................................................................................................46

    1. INTRODUCTION...................................................................................................................................................472. ENVIRONNEMENT DE DEVELOPPEMENT.....................................................................................................483. UTILISATION DU SYSTEME ..............................................................................................................................48

    3.1. PROCEDURE D'OBTENTION DE JAVA REMOTE DESKTOP............................................................................................ 483.2. INTERFACE UTILISATEUR (VUE GENERALE DE LIHM) .............................................................................................. 493.2.1. Fentre principale de jrdesktop........................................................................................................................ 493.2.2. Icne de la barre des tches ............................................................................................................................. 503.2.3. Menu contextuel ............................................................................................................................................... 513.2.4. Fentre de contrle de lapplication jrdesktop ................................................................................................ 51

    CHAPITRE III : MODELISATION ET ARCHITECTURE

    CHAPITRE IV : DEPLOIEMENT DU SYSTEME

  • Table des matires

    III

    3.3. CONFIGURATION DE MODULE HOTE ......................................................................................................................... 583.4. CONNEXION AU MODULE HOTE DEPUIS LE MODULE ADMIN ..................................................................................... 593.5. CONNEXIONS ACTIVES .............................................................................................................................................. 603.6. TRANSFERT DE DONNEES .......................................................................................................................................... 613.6.1. Transfert du contenu du presse-papiers ........................................................................................................... 613.6.2. Transfert de fichiers et de dossiers................................................................................................................... 61

    3.7. UTILISATION PAR LIGNE DE COMMANDE................................................................................................................... 623.8. MESSAGES D'ERREUR................................................................................................................................................ 63

    4. ETUDE DE QUALITE DU LOGICIEL (EVALUATION)....................................................................................644.1. AVANTAGES DU LOGICIEL : ...................................................................................................................................... 644.2. LIMITATIONS DU LOGICIEL : ..................................................................................................................................... 654.3. TESTS ET RESULTATS DU TRANSFERT DE DONNEES ................................................................................................... 664.3.1. Envoie des donnes par le module Admin ........................................................................................................ 664.3.2. Rception des donnes par le module Hte ...................................................................................................... 684.3.2. Transfert de fichiers ......................................................................................................................................... 69

    4.4. COMPARAISON DU JRDESKTOP AVEC DAUTRES LOGICIELS : .................................................................................... 705. JRDESKTOP SUR LE NET ...................................................................................................................................74

    5.1. SITE WEB DU PROJET JRDESKTOP SUR SOURCEFORGE.NET........................................................................................ 745.2. SITE WEB OFFICIEL DU PROJET .................................................................................................................................. 755.3. JRDESKTOP SUR WIKIPEDIA ....................................................................................................................................... 765.4. JRDESKTOP SUR GOOGLE CODE HOSTING PROJECT .................................................................................................. 775.5. JRDESKTOP SUR OHLOH ............................................................................................................................................ 785.6. JRDESKTOP SUR FREEBSD ........................................................................................................................................ 78

    6. CONCLUSION .......................................................................................................................................................78CONCLUSION GENERALE.....................................................................................................................................79GLOSSAIREANNEXE A: TABLEAU DE BORD DU SITE WEB DU JRDESKTOPANNEXE B: DESCRIPTION DU DIAGRAMME DE CLASSEBIBLIOGRAPHIE

  • Liste des figures et des tableaux

    I

    Liste des figuresFigure 1.1 -Les Applications du bureau distant 4Figure 1.2 -Echange de donnes entre les module Admin et Hte 7Figure 1.3 -Accs plusieurs serveurs VNC laide dun seul port 9Figure 1.4 - Relai tablit des connexions entre visualisateurs et serveurs VNC 10Figure 1.5 - Diverses fonctionnalits d'echoServer 11Figure 1.6 - Communication l'aide d'un tunnel http 11Figure 1.7 -Administration par mobile l'aide de RDM + 15Figure 2.1 -Architecture RMI 19Figure 2.2 -les oprations de communication 21Figure 2.3 -Invocation dune mthode distante et renvoie de la valeur de retour 22Figure 2.4 -SSL et ces sous protocoles dans le modle TCP/IP 24Figure 2.5 -tapes dtablissement des connections SSL 25Figure 2.6 -Interface de LIDE NetBeans 6.0 27Figure 3.1 - Diagramme de cas d'utilisation 29Figure 3.2 - Diagramme de classe 30Figure 3.3 - Diagramme de composants 30Figure 3.4 - Diagramme de dploiement 31Figure 3.5 -Schma gnral d'une application de bureau distant 32Figure 3.6 - Diagramme de paquetage 34Figure 3.7 -Architecture RMI du jrdesktop 35Figure 3.8 - Flux de donnes changs entre modules 36Figure 3.9 -L'architecture interne du module Viewer 37Figure 3.10 - La structure interne du module Server 38Figure 3.11 -Organigramme du transfert de donnes 40Figure 4.1 -Apparence la fentre principale de jrdesktop 49Figure 4.2 -Apparition de licne sur de la barre des tches 50Figure 4.3 -Le menu contextuel de jrdesktop 51Figure 4.4 -Aperu gnral de la fentre de contrle distance de lutilisateur Admin 52Figure.4.5 -barre doutils de lapplication 52Figure 4.6 -Infos bulle explicative 53Figure 4.7 -La slection est en cours 54Figure 4.8 -Aprs la slection 54Figure 4.9 -Affichage en plein cran 55Figure 4.10 -Vue minime d'cran (chelle 1/2) 55Figure 4.11 -Transfert d'une image l'aide du presse-papiers 58Figure 4.12 -Bote de dialogue de configuration de module Hte 59Figure 4.13 -Etablissement des dtailles pour connecter au module Hte 59Figure 4.14 -Consultation des PC Admin connects en cours 60Figure 4.15 -Dtails de la connexion 60Figure 4.16 -Proprits de l'ordinateur distant 61Figure 4.17 -La fentre du transfert de fichiers 61Figure 4.18 -Affichage du l'aide du jrdesktop par la ligne de commande 63Figure 4.19 -Exemple d'un message d'erreur 64Figure 4.20 - PC sous Mac OS X 10.5.3 contrle un PC sous Windows Vista 65Figure 4.21 - L'effet de la compression sur les donnes envoyes 67Figure 4.22 - Gain de la compression en pourcentage (%) 67Figure 4.23 - Effet de la qualit de la compression d'image JPEG 68

  • Liste des figures et des tableaux

    II

    Figure 4.24 - Gain de la compression en pourcentage (%) 69Figure 4.25 - Transfert de fichiers 70Figure 4.26 -jrdesktop sur SourceForge 74Figure 4.27 -Statistiques sur les tlchargements de jrdesktop 75Figure 4.28 -Site web officiel du projet 76Figure 4.29 -jrdesktop sur wikipedia.org 77

    Liste des tableauxTableau 1.1 -Comparaison des diverses applications de bureau distant 13Tableau 1.2 -Quelques applications de contrle distance par mobile 15Tableau 3.1 - Diverses associations 33Tableau 4.1 -Les diffrentes infos bulle inadquates les divers vnements 50Tableau 4.2 -Les dfrents changements de licne de la barre des tches 51Tableau 4.3 -Les composants de la barre doutils et leurs activits 53Tableau 4.4 -Comparaison des diffrentes palettes de couleurs 56Tableau 4.5 -Comparaison de la qualit de la compression d'image JPEG 57Tableau 4.6 -Les messages d'erreurs les plus frquents du jrdesktop 64Tableau 4.7 -Comparaison gnrale 72Tableau 4.8 -Comparaison dtaills 73Tableau 4.9 -Statistiques sur les sources d'accs au site officiel du jrdesktop 75

  • Introduction gnrale

    1

    Introduction Gnrale Fort heureusement, chaque russite est l'chec d'autre chose. Jacques Prvert.

    Pendant ces dernires annes, on a assist un dveloppement fulgurant et uneprolifration dapplications spcialises pour rseau dans la transmission de donnes parInternet. Chaque jour apparaissent de nouvelles applications qui se droulent distance pour:vidoconfrence, helpdesk, enseignement distance, maintenance, reconfiguration,tltravail, rparation, aide ...etc. La liste est longue et ne cesse de grandir. Les conditions deservice associes ces applications diffrent de celles des applications dites lastiques (email, web, partage de fichier,...) car les exigences de service de ces applications multimdiareposent sur deux axes: la synchronisation et la tolrance la perte de donnes. Le bureau distance (ou Remote Control en anglais) fait partie de ces applications multimdia.

    Aujourd'hui, la grande majorit des responsables informatiques ont pris conscience del'intrt des dispositifs de bureau distant. En effet, pour que les entreprises rpondent leursdfis surtout en ce qui concerne la continuit de lactivit et la rentabilit, elles doiventdornavant sorienter vers cette approche stratgique qui rpondra la demande croissantedes utilisateurs, soutient les initiatives stratgiques et garantit la ractivit informatique,indispensable toute organisation efficace. Le bureau distant est une solution puissantegarantissant la scurit de laccs, la mobilit des utilisateurs et la mise disposition desapplications tout moment et nimporte quel endroit.

    Dans ce contexte, notre objectif est de raliser une application de bureau distancequi soit capable dapporter un aide quelconque un utilisateur se trouvant dans le rseau local(LAN), ou dans un autre lieu de la plante, et ce par le biais de linternet comme si vous tiez sa place. Autrement dit, si vous tes sur un poste et votre collgue sollicite votre aide, vouspouvez, par le biais du rseau local, lui apporter votre aide grce cette application, eninstallant celle-ci du ct serveur (le poste de votre collgue) appel aussi hte (ou host), etsur le ct client (votre poste) appel Admin (appel aussi "guest") ainsi vous avez une accsdans une fentre de l'cran distant o vous pouvez utiliser clavier et/ou souris sans problmeen vue dintervenir sur le poste distant.

  • Introduction gnrale

    2

    Le bureau distant prsente une solution idale pour offrir une assistance distancerapide et aider vos clients, vos collgues, vos amis, ou toute autre personne, mme s'ils sont l'autre bout du monde.

    Ce mmoire est compos de 4 chapitres :Dans le premier chapitre, nous avons dfini le bureau distant et nous avons tudie sesdispositifs, son fonctionnement et sa mise en place ainsi que ses utilisations. Dans le secondchapitre, on a intress prsenter le langage de dveloppement Java et on a dfini quelquesoutils et technologies utiliss durant la ralisation de projet de fin dtude. Le troisimechapitre est consacr la description, la conception et limplmentation de notre systmebureau distant. Enfin, dans le dernier chapitre, nous avons prsent le systme conu pourdcrire lenvironnement de dveloppement, la manire dutilisation du systme, ltude dequalit et un aperu sur les sites web qui ont publi notre logiciel surnomm jrdesktop .

    Enfin nous avons prsent sous forme dannexe une analyse faite par GoogleAnalytics sur le site officiel du notre logiciel jrdesktop.sourceforge.net, et un autre annexepour la description du diagramme de classe du notre projet.

  • CHAPITRE I Le bureau distant

    3

    Chapitre I

    Le bureau distant C'est le commencement exact de notre fine

    William Shakespeare, le songe d'une nuit d't. Acte V, scne I, ligne 111.

    1. IntroductionDans les annes 90, les entreprises ont commenc percevoir les avantages dun accs distant leurs ressources, via le Web, pour leurs employs et partenaires. Pour parvenir offrir un accs viale Web, elles se sont alors tournes vers le bureau distance qui est alors un moyen trs efficace etsurtout pour les entreprises hautement informatises.Au niveau professionnel, le bureau distant parat un outil indispensable pour maintenir le bonfonctionnement d'un rseau tendu sans dplacement et aux moindres cots.Aujourd'hui, la grande majorit des responsables informatiques a pris conscience de l'intrt desdispositifs de bureau distance.Le bureau distant est un sujet assez vaste qui s'articule autour de plusieurs points :

    L'administration. Le contrle. La maintenance. La scurit. La mise jour. ...

  • CHAPITRE I Le bureau distant

    4

    Ces diffrents points montrent l'importance du bureau distance notamment dans un rseau tenducompos de plusieurs rseaux locaux.Dans ce chapitre on explique le bureau distant et on donne quelques termes lis ce dernier. Puis,nous allons tudier l'utilisation du bureau distant. Ensuite, on donne une comparaison des diffrentslogiciels de bureau distance, ainsi, on cite quelques inconvnients. On finit par reprsenterladministration et le contrle par mobile.2. Prsentation du bureau distantLe bureau distant (ou bureau distance) est un moyen qui permet l'observation et la prise decontrle d'un ordinateur distant (via Internet ou un rseau local) depuis l'cran d'un ordinateur localdans lobjectif de maintenir, dpanner distance, former et aider en ligne etc. (Cf. Figure 1.1).

    Figure 1.1 Les Applications du bureau distantLe bureau distance vous permet d'utiliser votre cran, votre clavier et votre souris pour voir etpiloter l'ordinateur distant. Tous les mouvements de la souris et les signaux du clavier sonttransfrs de l'ordinateur local directement l'ordinateur distance via le rseau LAN (local areanetwork), WAN (Wide area Network) ou Internet, relayant l'cran graphique, des mises jour deretour dans l'autre sens. Cela signifie que vous pouvez travailler et accder toutes les applications, tous les fichiers et toutes les ressources rseau comme si vous tiez assis devant cet ordinateur distance, o que vous soyez. Le bureau distant permet aussi de piloter simultanment plusieursordinateurs distants, depuis n'importe o dans le monde.Le bureau distant prend en charge les connexions rseau sur un rseau local (LAN), un rseautendu (WAN) ou Internet. Il prend galement en charge les connexions modem modem et lesconnexions directes (d'ordinateur ordinateur) via un port srie ou parallle.

  • CHAPITRE I Le bureau distant

    5

    3. Termes lis au bureau distantIl y a dautres termes qui peuvent tre confondu avec le terme bureau distant, chaque terme sapropre dfinition, son domaine d'utilisation et ses applications, parmi ces termes on cite :

    Accs distance ; Contrle distance (ou commande distance) ; Administration distance ; Partage du bureau (en anglais Desktop Sharing).

    4. Dispositifs de bureau distantLe bureau distant s'effectuer simplement aprs avoir install et configur l'application. Mais pour lefaire efficacement et correctement, plusieurs facteurs sont indispensables pour savoir quelsmatriels et quels outils sont ncessaires.Le choix d'une solution par rapport une autre se fera selon les besoins, les possibilits, lesavantages et surtout selon le cot [1].4.1. Le facteur matrielUn modem (modulateur-dmodulateur), est un quipement rseau servant communiquer avec desutilisateurs distants.

    Depuis la fin des annes 90, de nombreuses normes de tlcommunications sont apparues et, doncautant de nouveaux types de modems : RNIS (Rseau Numrique Intgration de Services), ouISDN (Integrated Services Digital Network), ADSL (Asymmetrical Digital Subscriber Line),modem cbl, GSM (Groupe Spcial Mobile ou Groupe Systme Mobile), GPRS (General PacketRadio Service), Wi-Fi (WIreless FIdelity)etc.Parmi les technologies existantes de connexion l'Internet, on cite [2] :

    La connexion classique, par modem sur la ligne tlphonique : appele 'RTC'; La connexion par ligne tlphonique haut-dbit, de type RNIS; La connexion par ligne tlphonique haut-dbit, de type DSL : (Digital Subscriber Line,

    abonnement tlphonique numrique); La connexion par cble ; La connexion par Wi-Fi.

    4.2. Le facteur rseauLes rseaux permettent de standardiser les applications, elles permettent aussi plusieurs personnesde travailler en rseau (Par exemple, la messagerie lectronique et les applications de bureaudistant). Voici les avantages qu'offrent de tels systmes :

    diminution des cots grce aux partages des donnes et des priphriques; standardisation des applications; accs aux donnes en temps utile;

  • CHAPITRE I Le bureau distant

    6

    communication et organisation plus efficace.On distingue parmi les diffrents types de rseau les LAN, MAN et WAN : Les LAN : local area network, sont les rseaux locaux. Les ordinateurs sont relis dans une

    petite zone gographique (soit avec des fils, soit sans fils). Les MAN (Metropolitan area Network) : permettent de connecter plusieurs LAN proches

    entre eux. Les WAN : qui signifie rseau tendu, permettent de connecter plusieurs LAN loignes

    entre eux.

    4.3. Le facteur logicielUne bonne application bureau distant demande de bonnes conditions pour quelle puisse fonctionneefficacement. Ces conditions dpendent de type de modem utilis (technologie de la connexion Internet), ainsi le type de rseau LAN, MAN ou WAN.4.4. Le facteur scuritLa plupart des fournisseurs de services proposent donc, en complment de la fourniture d'accspermanents au rseau, des produits et des services pour protger le rseau local. Les combinaisonsdu filtrage, du chiffrement (pour la confidentialit et la scurit des oprations), del'authentification et du contrle d'accs aux outils et applications permettent de lutter sur l'ensembledes points sensibles. Ces protections sont souvent bases sur le choix de technologies 'Firewall', quicombinent ces diffrentes technologies [3].La scurit dans le bureau distant est trs indispensable, car une application bureau distant peutprovoquer un espionnage pour le contrleur contre le contrl au lieu que ce dernier devrait treservi par aide ou dpannage.4.5. Le facteur matrielUn ordinateur puissant est mieux qu'un ordinateur moins puissant dans les applications daccs distance notamment le bureau distance dont la ncessit de l'envoi des captures dcran en tempsrel de la part de poste contrl (Server), et lenvoi des touches claviers et mouvements souris dela part de contrleur (Viewer). La puissance est exprime surtout en terme de vitesse de processeuret de RAM (Random Access Memory).

    5. Le fonctionnement du bureau distantPour la dmarche de fonctionnement, vous devez avoir deux ordinateurs (ou plus) connects travers le rseau local ou par Internet, et il faut installer l'application pour le bureau distant surchaque ordinateur.

    La plupart des applications du bureau distant offrent en plus une connexion de type boucle deretour (loopback).

    Une application de type bureau distant est compose essentiellement de deux modules :

  • CHAPITRE I Le bureau distant

    7

    1. Module Admin (comme administrateur, appel aussi "client", "visualisateur" (viewer) oul'ordinateur contrleur) qui affiche le bureau et prend le contrle de l'ordinateur distant en utilisantle plan cran (ou une simple fentre), le clavier, et la souris de l'ordinateur local. En gnral, cemodule est install uniquement sur le poste de lutilisateur qui veut contrler.2. Module Hte (appel aussi "serveur", ou l'ordinateur contrl) qui excute les commandes enprovenance du Module Admin et lui envoie l'tat de son cran. Ce module doit tre install sur tousles ordinateurs que l'on souhaite contrler (ou mme sur tous les ordinateurs du rseau local).Le module Hte peut agir comme un serveur http (HyperText Transfer Protocol), le module est mien coute sur un port spcifique, le client utilise un navigateur en tapant ladresse du serveur avecle port associ (par exemple: http://192.168.1.221:5800), l'tablissement de la connexion, uneapplet est envoye au client, pour lui permettre de communiquer avec le module Hte. Les deuxmodules (Hte et Admin) utilisent des commandes http (comme: connect, send, get) pour changerles mises jour de l'cran et les vnements clavier / souris (Cf. Figure 1.2).

    Figure 1.2 Echange de donnes entre les module Admin et HteIl y a une diffrence entre les deux notions client-serveur de l'ordinateur contrl depuisl'ordinateur qui contrle avec la notion habituelle de client/serveur li au Web comme un internautequi navigue (client) sur un site Web (serveur), ou un client qui utilise des services fournis par unFAI (Fournisseur d' Accs l'Internet).Dans la plupart des cas, c'est le client distant qui lance la connexion. L'application concerne doitfournir les informations requises pour une connexion l'ordinateur hte. Vous pouvez galementslectionner des options permettant d'amliorer la scurit et d'optimiser les performances.Pour tablir une connexion, l'ordinateur hte doit tre configur pour attendre les connexionsentrantes. L'utilisateur hte peut slectionner le type de priphrique utiliser pour les connexionsde type TCP/IP (Transmission Control Protocol / Internet Protocol) et les options de scuritpermettant de contrler et de limiter l'accs l'ordinateur hte.6. Mise en placeNous discutons sur quelques problmes qui peuvent tre rencontrs et qui empchent ou rduisentles performances et on va voir des solutions appropries pour liminer ou rduire l'effet produit parces problmes.

    http://192.168.1.221:5800),

  • CHAPITRE I Le bureau distant

    8

    6.1. Problmatiques et solutions appropriesPlusieurs facteurs peuvent empcher l'tablissement de la connexion entre les deux modules Adminet Hte, parmi aux on distingue :6.1.1. PC derrire un pare-feuLe pare-feu doit laisser les connexions entrantes et sortantes sur les adresses et les ports utiliss parle bureau distant, ainsi; il ne doit pas bloquer les modules Hte et Admin.Si l'utilisateur ne peu pas autoriser ces modules agir librement; et si les connexions entrantes etsortantes sont interdites alors il est oblig d'utiliser des outils tel qu'un tunnel http sil est autoris.6.1.2. PC derrire un routeurSi un ordinateur se trouve dans un rseau local, et celui l est derrire un routeur, alors il n'est pasaccessible, la technique de la redirection des ports peut tre utile pour le rendre accessible condition que les connexions entrantes sont autorises; si non lapplication du tunnel http peutrsoudre le problme.6.1.3. Pas de connexions entrantesPar mesure de scurit; Certains FAI, routeurs et/ou pare-feux bloquent les connexions entrantes (letrafic entrant), c'est--dire si un ordinateur est dans un rseau local alors il n'est pas accessible,donc, nous ne pouvons pas le contrler.La solution de ce problme consiste utiliser un relai (appel aussi un rpteur).6.1.4. Adresse IP dynamiqueSe dit d'une adresse affecte une machine au moment de sa connexion au rseau. tant donn quecette adresse n'est pas fixe d'avance et qu'elle peut donc tre diffrente d'une session l'autre, elleest appele dynamique par opposition une adresse statique. Cette adresse est attribue par lefournisseur d'accs lInternet (FAI) lorsqu'on connecte Internet. Elle est temporaire et serareprise par un autre utilisateur aprs votre dconnexion. D'o la difficult particulire d'appeler unposte prcis en tlphonie sur Internet. Comme solution de ce problme certains FAI proposent enoption une adresse statique. Une autre solution, c'est le service d'adressage dynamique. (voir latechnique : DNS Dynamique).

    6.2. Techniques d'aide pour accs distanceDans cette partie, on va prsenter quelques techniques qui peuvent tre utiles, pour faciliter la tche l'utilisateur afin d'accder son ordinateur quelque soit sa situation et son emplacement.6.2.1. DNS dynamiqueCe service permet quelqu'un n'ayant pas d'adresse IP (Internet Protocol) fixe d'avoir une entreDNS (Domain Name Server) afin de pouvoir lancer un serveur Web par exemple. La faon de fairela plus courante est d'avoir un client qui mmorise votre adresse IP des intervalles spcifiques etqui vrifie si elle correspond la base de donnes DNS du serveur que vous utilisez. Sinon, il met jour cette base tout simplement.

  • CHAPITRE I Le bureau distant

    9

    No-IP.com mis un service gratuit (Free Dynamic DNS) qui permet d'associ un nom d'hte (parexemple jrdesktop.no-ip.org) avec une adresse IP de la machine (par exemple 41.221.16.145), unlogiciel appel No-IP DUC (Dynamic Update Client) est fourni gratuitement (sous Windows, Unixet Mac) est utilis pour faire la vrification et la mise jour de l'adresse IP chaque fois que lamachine est connecte l'Internet, l'utilisateur peut bnficier tout moment de ce nom d'hte pouraccder sa machine.6.2.2. Redirection des portsCette technique est fournie avec la plupart des routeurs, elle consiste rediriger des paquetsrseaux reus sur un port donn d'un ordinateur (ou d'un quipement rseau) vers un autreordinateur (ou quipement rseau) sur un port donn. Cela permet entre autre de proposer desordinateurs extrieurs un rseau d'accder des services rpartis sur plusieurs ordinateurs de cerseau.PortForward.com fournit des guides dtaills concernant la configuration des routeurs pourl'utilisation de la redirection des ports.

    A l'aide de cette technique, on peut par exemple accder notre machine par la redirection du port3389 (par dfaut) de "Connexion Bureau Distance" de Windows. Mme chose avec le port 5900(par dfaut) de RealVNC.La redirection des ports peut tre utilise avec une extension d'UltraVNC appel Repeater pouraccder plusieurs htes en utilisant un seul port.Le routeur est configur pour rediriger des paquets reus sur le port 5901 vers l'adresse IP10.10.10.11, ce dernier est quip d'un rpteur (Repeater) et d'un serveur VNC (Cf. Figure 1.3).

    Figure 1.3 Accs plusieurs serveurs VNC laide dun seul portLe visualisateur (VNC Viewer) peut accder tous les PCs dun rseau distant qui sont quipsd'un serveur VNC (VNC Server), il suffit d'indiquer (dans la boite de dialogue de la connexion de

  • CHAPITRE I Le bureau distant

    10

    Viewer) l'adresse IP du rseau avec le port de redirection comme un rpteur(41.200.207.242:5901), et l'adresse du PC (Personal Computer) avec le port (par dfaut) comme unserveur VNC (10.10.10.12:5902).

    6.2.3. Relai (ou rpteur)Si les connexions entrantes sont interdites, alors la solution cest dutiliser un programme (unserveur) appel "relai" qui agit comme une passerelle entre les deux modules. Ces deux derniersdeviennent des clients communiquant avec ce serveur (le relai). Le rle de ce relai est dchangerles paquets entre les clients connects (Cf. Figure 1.4).

    Figure 1.4 - Relai tablit des connexions entre visualisateurs et serveurs VNC

    Le relai utilise une base de donnes pour stocker des informations concernant les serveurs VNCconnects, en introduisant l'identifiant et le mot de passe d'un serveur VNC, un visualisateur peut seconnecter ce dernier sans savoir son adresse IP.La solution EchoVNC propose un module intgr appel echoWare (Cf. Figure 1.5), ce modulepermet toutes les applications point point ou client/serveur: bureau distant, VoIP (Voice OverIP), chat vido, etc, d'utiliser un relai afin de raliser une, chat vido, etc.) d'utiliser un relaiafin de raliser une connection scurise de bout en bout sans adaptation aux pare-feux, proxy ouaux routeurs NAT. Via echoWare toutes les connexions apparaissent au rseau comme desconnexions sortantes vers le mme port TCP du echoServer.

  • CHAPITRE I Le bureau distant

    11

    Figure 1.5 - Diverses fonctionnalits d'echoServer6.2.4. Tunnel httpCest une technique par la quelle les communications s'effectuent l'aide des diffrents protocolesTCP/IP encapsuls sous le protocole http qui joue le rle de couverture d'un canal decommunication cach derrire un tunnel. Le canal cach avec le flux de donnes est appel tunnelhttp.

    Cette technique est tablit par un logiciel client/serveur qui gre la communication (Cf. Figure 1.6).

    Figure 1.6 - Communication l'aide d'un tunnel http7. L'utilisation du bureau distantLe bureau distant peut servir plusieurs utilisations, on cite les suivantes :

    Maintenance, Tlintervention, rparation et aide ; Administration des serveurs ; Tltravail ; Assistance distance ; Formation distance ; Transfre des fichiers entre ordinateurs.

  • CHAPITRE I Le bureau distant

    12

    8. Comparer des diffrents logiciels de bureau distanceIl existe dj plusieurs logiciels de gestion distance d'ordinateur disponible sur le march. Parailleurs, les dernires versions des systmes d'exploitation incluent dsormais lapplication distance et des outils d'aide et d'assistance distance tel que Win XP.Voici un tableau comparatif (Cf. Tableau 1.1) de quelques populaires solutions d'accs et decontrle distance

  • CHAPITRE I Le bureau distant

    13

    :disponible

    :nondisponible

    Tableau1.1C

    omparaison

    desdiverses

    applicationsde

    bureaudistant[4]

  • CHAPITRE II Outils et technologies utiliss

    16

    D'aprs le tableau prcdant, on dduire que le logiciel le plus performant est celui qui fonctionne surplusieurs plateformes et qui offre plusieurs fonctionnalits: le cryptage, transfert de fichiers, sessionsmultiplesetc. alors c'est le Sun Secure Global Desktop Software (SGD) qui utilise le protocoleAIP et qui fonctionne sur Microsoft Windows, Mac OS et Linux. Ainsi le Symantec PcAnywhere etle Citrix Presentation Server qui est un produit de la socit Citrix systems bas sur le protocoleIndependent Computing Architecture (ICA), il est considr comme un concurrent de SGD. Puis il ya le Remote Desktop Connection de Microsoft qui utilise le protocole RDP, et RealVNCEnterprise qui se servir de protocole VNC.9. Inconvnients du bureau distantLorsqu'on utilise le Bureau distant on est confront des inconvnients qui sont :1. Luni-plateforme :Cet inconvnient nest pas pour toutes les applications de bureau distant, luni-plateforme lopposde multiplateforme, signifie que lapplication ne fonctionne que sur un seul systme dexploitationcomme Apple Remote Desktop qui marche uniquement sur Mac OS, par contre Real VNCEnterprise na pas cet inconvnient.2. Occupation de la bande passante :Cet inconvnient dpend de la compression de donnes que le bureau distant lutilise, notammentau niveau de visualisation de lcran de contrl. Sil n y a pas de compression des images envoyspar le Hte ou parfois mme sil y a une compression mais quelle nest pas parfaitementoptimise, ainsi, si lutilisation des couleurs nest pas rduite (ex. couleurs 24-bits) alorsloccupation de la bande passante sera leve particulirement dans un rseau WAN, ce qui influesur la performance du bureau distant (rendre moins rapide que prvue).10. Administration et contrle par mobileL'administration par mobile a rcemment commenc apparatre sur les appareils sans fil tels quele BlackBerry, Pocket PC et Palm, ainsi que certains tlphones mobiles.En gnral, ces solutions n'offrent pas le plein accs distance comme VNC ou TerminalServices,mais ne permettent pas aux administrateurs d'effectuer une varit de tches, tel que le redmarragedes ordinateurs, la rinitialisation des mots de passe, et l'affichage des journaux d'vnementssystme, ce qui rduit, voir mme supprimer la ncessit pour les administrateurs systme avoirun ordinateur portable ou de se trouver la porte de son bureau.RDM + (Remote Desktop for Mobiles) est un exemple de ces logiciels qui vous permet d'avoiraccs votre poste de travail ou de votre ordinateur portable partir d'un tlphone mobile utilisantJava.

  • CHAPITRE II Outils et technologies utiliss

    17

    Vous pouvez ainsi envoyer et recevoirdes emails, surfer sur le web, diter desdocuments sous Word, grer desfichiers et des dossiers (Cf. Figure 1.7).

    Le contrle distance par mobile, rcemment vu la lumire l'aide de latechnologie Bluetooth, plusieursapplications disponibles permettant decontrler entirement la machine, ouquelques applications spcifiques, parexemple, l'aide du mobile, on peutmontrer une prsentation, contrler unlecteur multimdia, verrouillerl'ordinateur, etc. (Cf. Tableau 1.2)

    Figure 1.7 Administration par mobile l'aide de RDM +

    Nom du logiciel Lien Licence TCP/IP BluetoothRDM+ (Remote

    Desktop forMobiles)

    http://www.rdmplus.com/ Propritaire MRC (Mobile

    Remote Control)https://mobile-remote-control.dev.java.net/

    OSS (OpenSource

    Software)

    Mobile Desktop http://sourceforge.net/projects/mobiledesktop/ OSS Rove Mobile

    Desktophttp://www.rovemobile.com/products/

    remoteaccess/mdt/features/Propritaire

    Amora(A mobile remote

    assistant)http://code.google.com/p/amora/ OSS

    Bluetooth RemoteControl

    http://www.bluetoothshareware.com/bluetooth_remote_control.asp

    Propritaire anyRemote http://anyremote.sourceforge.net/ OSS

    PuppetMaster http://www.lim.com.au/PuppetMaster Propritaire Tableau 1.2 Quelques applications de contrle distance par mobile

    11. ConclusionD'une manire gnrale, de plus en plus d'entreprises et des particuliers utilisent le bureau distantpour la maintenance de leurs parcs informatiques. De plus, beaucoup d'diteurs dveloppement deslogiciels qui rpondent au maximum aux besoins des entreprises et des administrateurs systmes.

    http://www.rdmplus.com/https://mobile-remote-control.dev.java.net/http://sourceforge.net/projects/mobiledesktop/http://www.rovemobile.com/products/http://code.google.com/p/amora/http://www.bluetoothshareware.com/http://anyremote.sourceforge.net/http://www.lim.com.au/PuppetMaster

  • CHAPITRE II Outils et technologies utiliss

    18

    Chapitre IIOutils et technologies utiliss

    Chaque mot est un prjug Friedrich Nietzsche.

    1. IntroductionDans ce chapitre, on va prsenter le langage Java qu'on a utilis pour le dveloppement de notreapplication de bureau distant l'aide du lditeur NetBeans.Ainsi, on va montrer un mcanisme permettant lappel des mthodes entre objets distribusdvelopps par Sun Microsystems, ce protocole est connu sous lacronyme RMI (Remote MethodInvocation).

    Par la suite, on va prsenter comment scuriser la communication laide du protocole SSL. Onmontre ensuite que lditeur NetBeans est assez puissant et qui a de grande importance.2. Le langage JavaLe langage Java permet d'exprimer des concepts, il deviendra un moyen d'expressionconsidrablement plus simple et plus souple que n'importe quelle alternative, alors mme que lesproblmes augmentent en taille et en complexit. Cest un langage objets qui permet dcrire defaon simple et claire des programmes portables sur la majorit des plates-formes. Li lessor duWorld Wide Web. Il a t conu par lquipe de James Gosling en fonction des multiples exigencesdes dveloppements informatiques actuels [5].2.1. Les avantages de JavaLe primordial avantage de ce langage de programmation rside dans le fait que la syntaxe de java estanalogue celle de C++, ce qui le rend conomique et professionnel. Java est un langage " objets",tous les lments de Java, l'exception de quelques types de base tels que les nombres, sont desobjets. La conception oriente objet prsente de nombreux avantages pour les projets sophistiqus,elle a remplac les techniques structures antrieures. On distingue ces 4 principaux avantages [6] :

  • CHAPITRE II Outils et technologies utiliss

    19

    1. La mmoire dans Java est tre alloue et libre automatiquement. Vous ne risquez pas de pertesde mmoire.

    2. Ils ont limin l'arithmtique des pointeurs introduisant du mme coup une vraie gestion detableau. La notion de rfrence sur une zone mmoire remplace avantageusement celle de "pointeur", car elle supprime la possibilit d'craser toute zone mmoire cause d'un compteurerron.

    3. Ils ont limin toute possibilit de confusion entre une affectation et un test d'galit dans uneinstruction conditionnelle. L'instruction if (n = 3) ne pourra pas franchir l'tape de la compilation.

    4. Ils ont supprim l'hritage multiple en le remplaant par une nouvelle notion d'interface drived'Objective C. Les interfaces vous offrent tout ce que vous pouvez obtenir partir de l'hritagemultiple, sans la complexit de la gestion de hirarchie d'hritage multiple.

    2.2. Java Standard Edition 6C'est t le lundi de 11 dcembre 2006 quand Sun a officiellement publi la version 6 de JavaPlatform standard Edition (Java SE) en mettant en avant les amliorations de performances de sadernire JVM (Java Virtual Machine) ainsi que les progrs effectus en termes de supervision et desupport des langages de scripting tiers.

    3. La technologie RMI (Remote Method Invocation)Remote method invocation. Invocation ou plus simplement appel de mthode distante, plus connusous l'acronyme RMI est une API (Application Programming Interface) Java dveloppe par e parSun partir du JDK 1.1 (Java Development Kit 1.1) permettant de manipuler des objets distants(objet qui existe dans un autre espace adresse soit dans la mme machine soit dans une machinediffrente) de manire transparente pour l'utilisateur, c'est--dire de la mme faon que si l'objet taitsur la machine virtuelle. L'utilisation de cette API ncessite l'emploi d'un registre RMI sur la machinedistante hbergeant ces objets que l'on dsire appeler au niveau duquel ils ont t enregistrs.RMI facilite le dveloppement des applications distribues en masquant au dveloppeur lacommunication client / serveur. La machine sur laquelle s'excute la mthode distante est appeleserveur. L'appel cot client consiste obtenir une rfrence sur l'objet distant puis simplementappeler la mthode partir de cette rfrence.3.1. Applications distribuesUne application distribue est une application dont les classes sont rparties sur plusieurs machinesdiffrentes. Dans de telles applications, on peut invoquer des mthodes distance. Il est alorspossible d'utiliser les mthodes d'un objet qui n'est pas situ sur la machine locale."Dj dans le langage C, il tait possible de faire de l'invocation distance en utilisant RPC (RemoteProcedure Calls). RPC tant orient "structure de donnes", il ne suit pas le modle "orient objet ".RMI va plus loin que RPC puisqu'il permet non seulement l'envoi des donnes d'un objet, mais ausside ses mthodes. Cela se fait en partie grce la srialisation des objets. Il est galement possible decharger le byte-code des classes dynamiquement. "[7].

  • CHAPITRE II Outils et technologies utiliss

    20

    3.2. Objectifs de RMILe but de RMI est de crer un modle objet distribu Java qui s'intgre naturellement au langage Javaet au modle objet local. Ce systme tend la scurit et la robustesse de Java au monde applicatifdistribu. RMI permet aux dveloppeurs de crer des applications distribues de manires simplespuisque la syntaxe et la smantique restent les mmes que pour les applications habituelles. RMIpermet de:

    1- Rendre transparent laccs des objets distribus sur un rseau:Avec RMI, les mthodes de certains objets (appels objets distants) peuvent tre invoques depuisdes JVM diffrentes (espaces dadressages distincts) de celles o se trouvent ces objets, y comprissur des machines diffrentes via le rseau. En effet, RMI assure la communication entre le serveur etle client via TCP/IP et cela de manire transparente pour le dveloppeur.2- Faciliter la mise en uvre et lutilisation des objets distants Java:

    Il utilise des mcanismes et des protocoles dfinis et standardiss tels que les sockets et RMP(Remote Method Protocol). Le dveloppeur n'a donc pas se soucier des problmes de niveauxinfrieurs spcifiques aux technologies rseaux.L'architecture RMI dfinit la manire dont se comportent les objets, comment et quand desexceptions peuvent se produire ? comment grer la mmoire ? et comment les mthodes appelespassent et reoivent les paramtres ?3- Prserver la scurit (inhrent lenvironnement Java):

    RMI prserve la scurit inhrente lenvironnement Java notamment grce : la classe RMISecurityManager, elle vrifie la dfinition des classes et autorise seulement les

    passages des arguments et des valeurs de retour des mthodes distantes et ne prend pas encompte les signatures ventuelles des classes.

    et au DGC (Distibuted Garbage Collector).3.3. L'Architecture RMIEn RMI la transmission de donnes se fait travers un systme de couches, bases sur le modle OSIafin de garantir une interoprabilit entre les programmes et les versions de Java. Quant auxconnexions, elles sont effectues grce un protocole propritaire JRMP (Java Remote MethodProtocol) bas sur TCP/IP sur le port 1099 par dfaut [8].A partir de Java 2 version 1.3, les communications entre client et serveur s'effectuent grce auprotocole RMI-IIOP (Internet Inter-Orb Protocol) [9].

    3.3.1. InterfaceLinterface est le cur de RMI. Larchitecture RMI est base sur un principe important : la dfinitiondu comportement et l'excution de ce comportement sont des concepts spars.RMI permet au code qui dfinit le comportement et au code qui implmente ce comportement derester spar et de sexcuter sur des JVM diffrentes. La dfinition dun service distant est code enutilisant une interface Java. Limplmentation de ce service distant est code dans une classe.

  • CHAPITRE II Outils et technologies utiliss

    21

    Par consquent, la comprhension de RMI rside dans le fait que les interfaces dfinissent lecomportement et les classes dfinissent l'implmentation.RMI supporte deux types de classe qui implmente la mme interface. La premire estl'implmentation du comportement et s'excute du ct serveur. La deuxime agit comme un proxypour le service distant et s'excute sur le client.Un programme client cre des appels de mthodes sur le proxy, RMI envoie la requte la JVMdistante et la transfre l'implmentation. Toutes les valeurs de retour fournies par l'implmentationsont retournes au proxy puis au programme client [7].3.3.2. Les diffrentes couches de RMIRMI est essentiellement construit sur une abstraction en trois couches: La couche de Stubs etSkeletons, la couche RRL (Remote Reference Layer) et la couche Transport. La Figure 2.1 ci-dessous montre l'architecture de RMI :

    Figure 2.1 Architecture RMI3.3.2.1. Stubs et SkeletonsCette premire couche intercepte les appels de mthodes lances par le client l'interface derfrence et redirige ces appels un service RMI distant. Le stub et le skeleton, respectivement sur leclient et le serveur, assurent la conversion des communications avec l'objet distant.

    3.3.2.2. RRLCette couche comprend comment interprter et grer les rfrences faites du client vers les objets duservice distant. Elle permet lobtention dune rfrence dobjet distant partir de la rfrence locale(le stub). Elle est assure par le package java.rmi.Naming. On appelle cette couche gnralementregistre RMI car elle rfrence les objets. Ce service est assur par le lancement du programmermiregistery.

  • CHAPITRE II Outils et technologies utiliss

    22

    3.3.2.3. Couche TransportLa couche transport est base sur les connexions TCP/IP entre les machines. Elle fournit laconnectivit de base entre les 2 JVM, elle permet d'couter les appels entrants ainsi que d'tablir lesconnexions et le transport des donnes sur le rseau.De plus, cette couche fournit des stratgies pour passer les firewalls. Elle suit les connexions encours. Elle construit une table des objets distants disponibles. Elle coute et rpond aux invocations.Cette couche utilise les classes Socket et SocketServer. Elle utilise aussi un protocole propritaireRMP (Remote Method Protocol).

    En utilisant une architecture en couche, chaque couche peut tre augmente ou remplace sansaffecter le reste du systme.Ainsi, une application client-serveur base sur RMI met ainsi en uvre trois composantes :

    une application cliente implmentant le stub. une application serveur implmentant le skeleton (squelette). une application mdiatrice (le registre RMI) servie par un processus tiers (rmiregistry).

    Lorsqu'un client dsire invoquer une mthode d'un objet distant, il effectue les oprations suivantes(Cf. Figure 2.2) [8] :

    1- Il localise l'objet distant grce un service dannuaire (Registry), le registre de RMI ;2- Il obtient dynamiquement une image virtuelle de l'objet distant (stub). Le stub possde exactementla mme interface que l'objet distant ;3- Le stub transforme l'appel de la mthode distante en une suite d'octets, c'est ce que l'on appelle lasrialisation, puis les transmet au serveur instanciant l'objet sous forme de flot de donnes. On dit quele stub "marshalise" (ralise le pliage) les arguments de la mthode distante ;4- Le Skeleton instanci sur le serveur "dsrialise" les donnes envoyes par le stub (on dit qu'il les"dmarshalise" c.--d il ralise le dpliage), puis appelle la mthode en local ;5- Le Skeleton rcupre les donnes (les rsultats) renvoyes par la mthode (type de base, objet ouexception) puis les marshalisent ;

    6- Le stub dmarshalise les donnes provenant du Skeleton et les transmet au client (l'objet faisantl'appel de mthode distance).

  • CHAPITRE II Outils et technologies utiliss

    23

    Figure 2.2 les oprations de communication3.4. Processus de dveloppement dune application RMILes principales tapes ncessaires la mise en place dun service de type RMI sont [7] :a- Dfinir l'interfaceLa premire tape consiste crer une interface distante qui dcrit les mthodes que le client pourrainvoquer distance. Pour que ces mthodes soient accessibles par le client, cette interface doit hriterde l'interface Remote. Cette interface devra tre place sur les deux machines (serveur et client).b- Limplmentation de l'interfaceIl faut maintenant implmenter cette interface distante dans une classe. Par convention, le nom decette classe aura pour suffixe Impl. Notre classe doit hriter de la classejava.rmi.server.RemoteObject ou de lune de ses sous-classes. La plus facile dutilisation tantjava.rmi.server.UncicastRemoteObject.

    Cest dans cette classe que nous allons dfinir le corps des mthodes distantes que pourront utilisernos clients. Evidement, il est possible dajouter dautres mthodes mais les clients ne pourront pas yaccder et donc ne pourront pas les utiliser.c- Gnrer les classes Stubs et Skeletons (rmic)Lorsque notre client fera appel une mthode distante, cet appel sera transfr au stub. Le stub est unrelais du ct client. Il devra donc tre plac sur la machine cliente.Cest le reprsentant local de lobjet distant. Il marshalise (emballe) les arguments de la mthodedistante et les envoie dans un flux de donnes. Dautre part, il dmarshalise (dballe) la valeur oulobjet de retour de la mthode distante. Il communique avec lobjet distant par lintermdiaire duskeleton (Cf. Figure 2.3).

    Le skeleton est lui aussi un relais mais du ct serveur. Il devra tre plac sur la machine servant deserveur. Il dmarshalise les paramtres de la mthode distante, les transmet lobjet local et marshalise les valeurs de retours renvoyer au client.Les stubs et les skeletons sont donc des intermdiaires entre le client et le serveur qui grent letransfert distant des donnes.On utilise le compilateur rmic pour la gnration des stubs et des skeletons. Cest un utilitaire fournieavec le JDK.

  • CHAPITRE II Outils et technologies utiliss

    24

    Figure 2.3 Invocation dune mthode distante et renvoie de la valeur de retourd- Lancement de registre RMI (service dannuaire RMI)Les clients trouvent les services distants en utilisant un service d'annuaire activ sur un hte connuavec un numro de port connu. RMI peut utiliser plusieurs services d'annuaire, y compris JavaNaming and Directory Interface (JNDI). Il inclut lui-mme un service simple appel Registry(rmiregistry).

    Le registre est excut sur chaque machine qui hberge des objets distants (les serveurs) et accepteles requtes pour ces services, par dfaut sur le port 1099.Un serveur cre un service distant en crant d'abord un objet local qui implmente ce service.Ensuite, il exporte cet objet vers RMI. Quand l'objet est export, RMI cre un service d'coute quiattend qu'un client se connecte et envoie des requtes au service. Aprs l'exportation, le serveurenregistre l'objet dans le registre de RMI sous un nom public qui devient accessible de lextrieur.Le client peut alors consulter le registre distant pour obtenir des rfrences des objets distants.e- Lancement de l'application serveur (Server)Notre serveur doit enregistrer auprs du registre RMI lobjet local dont les mthodes serontdisponibles distance. Cela se fait grce lutilisation de la mthode statique bind() de la classeNaming. Cette mthode permet dassocier (enregistrer) lobjet local avec un synonyme dans leregistre. Lobjet devient alors disponible par le client.ObjetDistantImpl od = ObjetDistantImpl()Naming.bind("serveur", od)

    f- Crer le programme client (Client)Le client peut obtenir une rfrence un objet distant par lutilisation de la mthode statique lookup()de la classe Naming. Il peut ensuite invoquer des mthodes distantes sur cet objet. La mthodelookup() sert au client pour interroger un registre et rcuprer un objet distant. Elle prend commeparamtre une URL qui spcifie le nom d'hte du serveur et le nom du service dsir. Elle retourneune rfrence lobjet distant. La valeur retourne est du type Remote.ObjetDistant od = (ObjetDistant) Naming.lookup("//172.16.X.X/serveur")

  • CHAPITRE II Outils et technologies utiliss

    25

    g- Lancement de lapplication clienteIl est maintenant possible dexcuter lapplication. Cela va ncessiter lutilisation de trois consoles.La premire sera utilise pour activer le registre. Pour cela, vous devez excuter lutilitairermiregistry.

    Dans une deuxime console, excuter le serveur. Celui-ci va charger limplmentation en mmoire,enregistrer cette rfrence dans le registre et attendre une connexion cliente.Vous pouvez enfin excuter le client dans une troisime console.4. Le protocole de scurit SSLLa question du cryptage de donnes changes via Internet est plus large et plus complexe qu'il n'yapparat. Il ne s'agit pas seulement de slectionner un algorithme efficace, il est de plus ncessaire dele scuriser. Notamment le protocole de transmission des donnes, ou encore le systmed'identification et notamment les mots de passe.

    4.1. Dfinition du protocoleSecure Socket Layer (SSL) est un des protocoles les plus connus de scurisation des changes surInternet, dvelopp l'origine par Netscape (SSL version 2 et 3). Il a t renomm en TransportLayer Security (TLS) par l'IETF (Internet Engineering Task Force) [4].

    SSL fonctionne suivant un mode client/serveur. Il fournit quatre objectifs de scurit importants: l'authentification du serveur ; la confidentialit des donnes changes (ou session chiffre) ; l'intgrit des donnes changes ; l'authentification du client avec l'utilisation d'un certificat numrique (optionnelle).

    Pour toutes applications existantes (HTTP, FTP, SMTP, etc.), il peut exister une application utilisantSSL correspondante. Par exemple, l'application HTTPS (Secured HTTP) correspond HTTP audessus de SSL.

    La plupart des navigateurs web grent parfaitement SSLv2, SSLv3 et TLS v0.1.4.2.1. Architecture du SSLSSL est un protocole en couches et se compose de quatre sous protocoles (Cf. Figure 2.4) :

    SSL Handshake Protocol SSL Change Cipher Spec Protocol SSL Alert Protocol SSL Record Layer

    SSL se situe dans la couche application du modle TCP/IP (et dans la couche session du modleOSI). Voici une illustration du modle TCP/IP [10] :

  • CHAPITRE II Outils et technologies utiliss

    26

    Figure 2.4 SSL et ces sous protocoles dans le modle TCP/IP4.2.2. Fonctionnement du SSLThoriquement SSL est simple, il ngocie les algorithmes de cryptographie et les cls entre les deuxfaces d'une communication (gnralement client et serveur), et tablit un tunnel chiffr (scuris)grce laquelle d'autres protocoles (comme HTTP) peuvent tre transports. En option, SSL peutgalement authentifier les deux parties de la communication grce l'utilisation des certificats [10].Mais comment fonctionne t-il ? La Figure 2.5 diagramme ci-dessous montre (dune faon simplifie),tape par tape processus de mise en place dune nouvelle connexion SSL entre le client(gnralement un navigateur web) et le serveur (gnralement un serveur web SSL).

  • CHAPITRE II Outils et technologies utiliss

    27

    Figure 2.5 tapes dtablissement des connections SSLComme vous pouvez le voir sur le schma prcdent, le processus de cration de chaque nouvelleconnexion SSL commence avec l'change de paramtres de chiffrement et puis en optiond'authentification des serveurs (en utilisant le protocole SSL Handshake). Si la poigne de main estcouronne de succs et les deux parties d'accord sur une srie commune de chiffrement et des cls dechiffrement, les donnes d'application (gnralement HTTP, ou un autre protocole) peuvent treenvoys par un tunnel de chiffrement (en utilisant le protocole SSL Record Layer). En ralit leprocessus montr prcdemment est trs compliqu [10].

  • CHAPITRE II Outils et technologies utiliss

    28

    4.2. Java et SSLJava implmente SSL dans un package appel JSSE (Java Secure Socket Extension), ce packagecontient des outils permettant de faire communiquer un serveur HTTPS (serveur scuris par SSL)avec une application cliente en Java.

    SSL (aujourd'hui en version 3.0) permet d'utiliser des sockets scuriss en manipulant des clspubliques pour l'authentification et des cls prives pour le cryptage. L'API JSSE fournit les classespermettant de programmer tout ceci en Java: on les trouve dans les paquets javax.net, javax.net.ssl etjavax.security.cert dont les principales classes sont les suivantes [11] :

    SSLSocket et SSLServerSocket ; SocketFactory et ServerSocketFactory; SSLSocketFactory et SSLServerSocketFactory.

    Puisque notre application utilise RMI comme un support de transmission ; les classescorrespondantes sont SslRMIClientSocketFactory et SslRMIServerSocketFactory.

    SSL peut tre utilis avec RMI pour assurer : Lauthentification du serveur et des clients (optionnelle). La protection daccs au RMI Registry : refus des requtes des clients envoient des certificats

    non scurises. La confidentialit et lintgrit des donnes changes entre le client et le serveur RMI.

    L'authentification est ralise au moyen d'une paire de cls (une cl publique/une cl prive) et d'uncertificat. On peut crer ces cls avec un certificat auto-sign au moyen de keytool, un utilitairedisponible avec JDK:

    keytool -genkey keyalg RSA -alias duke -keypass dukekeypasswd

    Quelques autres donnes peuvent tre fournies en paramtre, tel que lalgorithme de cryptage (ici estRSA), lalias (ici est "duke") et le mot de passe (ici est "dukekeypasswd").Lappellation de ces cls se fait par linvocation (par notre application) des proprits systme :javax.net.ssl.trustStore et javax.net.ssl.keyStore, et les mots de passe par des proprits :javax.net.ssl.trustStorePassword et javax.net.ssl.keyStorePassword.

    4. NetBeansNetBeans est IDE (Integrated Development Environment) pour Java runissant tous les outilsncessaires la cration d'applications, aussi complexes qu'elles soient. NetBeans est unenvironnement multi plate-forme dvelopp et plac en open source par Sun Microsystems en juin2000 sous licence CDDL (Common Development and Distribution License). En plus de Java,NetBeans permet galement de supporter diffrents autres langages, comme Python, C, C++, XML etHTML. Il comprend toutes les caractristiques d'un IDE moderne (diteur en couleur, projets multi-langage, refactoring, diteur graphique d'interfaces et de pages web).Conu en Java, NetBeans est multilingue disponible sous Windows, Linux, Solaris (sur x86 etSPARC), Mac OS X et OpenVMS.

  • CHAPITRE II Outils et technologies utiliss

    29

    La licence de NetBeans permet de l'utiliser gratuitement des fins commerciales ou non. Elle permetde dvelopper tous types d'applications bases sur la plateforme NetBeans. Les modules que vouspourriez crire peuvent tre open-source comme ils peuvent tre closed-source, Ils peuvent tregratuits, comme ils peuvent tre payants [12].La version 6.0 inclut des amliorations importantes et de nouvelles fonctionnalits, notamment unditeur compltement rcrit l'infrastructure, le soutien d'autres langues, de nouvellesfonctionnalits de productivit, et un processus d'installation simplifi qui vous permet d'installer etde configurer l'IDE pour rpondre vos besoins prcis (Cf. Figure 2.6).

    Figure 2.6 Interface de LIDE NetBeans 6.0Pour autant, il y a aussi beaucoup de nouveauts. En particulier l'diteur de code a t compltementrcrit pour permettre de meilleurs refactorisation, le support de nombreux langages au del de Javaet une utilisation d'critures imbriqus (JavaScript dans JSP, Java dans PHP, ...). Il y a aussi lesupport de nouveaux langages et en particulier pour Ruby et/ou JRuby on Rails. JavaScript, PHP,Groovy et d'autres ne sont pas loin derrire [13].5. ConclusionLe choix dun langage de dveloppement, un environnement de tests et destechnologies indispensables en gnral semblent trs primordial pour dvelopper uneapplication d'un bureau distant. Lutilisation de Java reprsente un intrt parfaitnotamment la portabilit, la robustesse et le multithreading quil offre et qui incluecomme package RMI. Ce dernier est simple mettre en uvre dont un objetdistribu se manipule comme tout autre objet Java. SSL en tant que protocole de cryptagepeut tre utilis avec RMI pour assurer une scurisation dchange de donnes et dauthentification.L'diteur NetBeans prsente un avantage grce aux fonctionnalits intressantes quil offre.

  • CHAPITRE III Modlisation et Architecture

    28

    Chapitre IIIModlisation et Architecture

    Qui veut construire dabord tudie le terrain, puis fait un trac du projet. William Shakespeare.

    1. IntroductionLa production et la maintenance de composants logiciels de qualit est faisable et ais en suivant desmthodologies adaptes au ingnierie logicielle, tel que le gnie logiciel, qui est dfinie comme un"ensemble des connaissances, des procds et des acquis scientifiques et techniques mis enapplication pour la conception, le dveloppement, la vrification et la documentation de logiciels,dans le but d'en optimaliser la production, le support et la qualit." [14]La modlisation par objets est une technique permet d'obtenir une reprsentation abstraite dusystme. L'approche objet consiste reprsenter le systme en un ensemble d'entits. L'entitregroupe des caractristiques principales (par exemple taille, couleur.etc.) et des oprations sur cescaractristiques (par exemple changer la taille, mlanger les couleursetc.).La dmarche suivie dans notre projet est la suivante :

    Collection, tude et slection des besoins d'utilisation et des fonctions distinctives offertes pardivers logiciels de bureau distance existants (lists dans le tableau 1.1).

    Consultation des cours et des tutoriaux et de la documentation API du Java [15]. Exploration du code source des projets open source de bureau distance dvelopps en Java

    (lists dans les tableaux 4.7 et 4.8) pour savoir comment les besoins sont-ils rpondus. Essais des diffrents algorithmes et des techniques (communication par RMI, cryptage,

    compression de donnes, conversion de couleursetc.) disponibles sur le net. Dveloppement incrmental de l'application et effectuation des tests en parallle. En cas de problmes ; consultation et participation aux divers forums de discussion [16]. Hbergement et suivi du notre application sur le net.

  • CHAPITRE III Modlisation et Architecture

    29

    2. ModlisationDans ce qui suit, on va prsenter le diagramme de cas d'utilisation, de classe, de composants et lediagramme de dploiement de notre application.2.1. Diagramme de cas d'utilisationLes cas d'utilisation (en anglais use cases) permettent de reprsenter le fonctionnement du systmevis--vis de l'utilisateur, c'est donc une vue du systme dans son environnement extrieur [9].Le diagramme suivant montre les principaux cas d'utilisation du systme developp (Cf. Figure 3.1):

    Figure 3.1 - Diagramme de cas d'utilisation2.2. Diagramme de classeLe diagramme de classe est le point central dans un dveloppement orient objet. En analyse, il apour objectif de dcrire la structure des entits manipules par les utilisateurs, et en conception,le diagramme de classes reprsente la structure du code source.

  • CHAPITRE III Modlisation et Architecture

    30

    Voici un diagramme de classe simplifie du systme (Cf. Figure 3.2):

    Figure 3.2 - Diagramme de classeL'annexe B prsente la description dtaille de toutes les classes du notre application jrdesktop.2.3. Diagramme de composantCe diagramme (Cf. Figure 3.3) dcrit l'architecture physique de l'application, en terme de modules:fichiers source, librairies, excutableetc [17].La relation d'utilisation (uses) peut tre une des oprations suivantes: lecture, criture ou mise joursur le fichier. Tous les fichiers utiliss sont de type data (donnes) dont :

    config: fichier de la configuration du l'application. server.config: fichier de la configuration du serveur. viewer.config: fichier de la configuration du visualisateur. keystore et truststore: cls de scurit (requrable par le protocole SSL).

    Figure 3.3 - Diagramme de composants

  • CHAPITRE III Modlisation et Architecture

    31

    L'application (sous forme d'un paquetage) est compose de 2 sous systmes Viewer et Server. Lescomposants (sous forme d'un fichier de donnes) sont soit propre au systme tout entier, soit reli un sous systme spcifique.Les fichiers de configuration seront cres de nouveau leurs premire utilisation, si l'utilisateursupprime un de ces fichiers, ils sont rcres dans leur prochaine appels (avec des paramtres pardfaut).Les cls de scurit sont ncessaires pour les communications scurises avec SSL, si elles sontsupprimes, elles seront automatiquement extraites du fichier archive jrdesktop.jar2.4. Diagramme de dploiementLe diagramme de dploiement montre la disposition physique des matriels qui composent lesystme, et la rpartition des composants sur ces systmes [17].Le diagramme (Cf. Figure 3.4) est constitu de deux nuds matriels de mme type (un ordinateur debureau).

    JRE (Java Runtime Execution) ou simplement la mmoire virtuelle (JVM) reprsente l'enivrementd'excution du notre application qui est implment chaque machine.A Chaque JVM; une instance de jrdesktop est en excution, l'une des instances reprsente levisualisateur et l'autre le serveur jrdesktop. Le visualisateur dispose d'une interface client pourfaciliter l'utilisateur l'observation et/ou le contrle. Ainsi, Plusieurs visulisateurs peuvent connects un server jrdesktop.TCP/IP reprsente le support de communication qui relie les visualisateurs avec le serveur distant.

    Figure 3.4 - Diagramme de dploiement

  • CHAPITRE III Modlisation et Architecture

    32

    3. Architecture de l'applicationDans ce qui suit, on va prsenter l'architecture gnrale et le fonctionnement de notre applicationjrdesktop.

    Au moins deux modules de base (Admin et Hte) sont ncessaires pour tablir le bureau distant. Cesmodules sont lis par un rseau TCP/TP (LAN, MAN ou WAN).Tandis que le module Hte fait touts moment des impressions de son cran; la fentre principale dumodule Admin enregistre la trace de tous les vnements clavier et souris gnrs par l'utilisateur dusystme.D'une faon simplifie, deux flots de donnes passent entre les deux modules d'une manirepermanente grce l'excution des boucles infinies utilises par des threads implments auxmodules, ces flots sont: le transfert des vnements clavier et souris vers l'Hte vis--vis larcupration des captures d'cran par l'Admin (Cf. Figure 3.5).

    Figure 3.5 Schma gnral d'une application de bureau distant3.1. Architecture gnralePuisque jrdesktop est entirement dvelopp en Java; il hrite alors tous les avantages du Java, telque la portabilit. jrdesktop peut tre excut dans n'importe quelle plateforme o Java est install.jrdesktop est une application portable qui n'a pas besoin d'un module d'installation. Le visualisateurset le server sont regroups en une seule application dans un seul fichier excutable. Tous les fichiersncessaires au fonctionnement de l'application (fichiers binaires, images, fichiers de configuration etde scurit) sont stocks dans le fichier archive (porte l'extension .jar) de l'application qui a une tailleinfrieur 300 KB.La structure de l'application est hirarchique; elle est compose d'un ensemble de sous-paquetagesimbriqus; chaque paquetage peut contenir un ensemble de classes. Les paquetages sont les suivants:+ jrdesktop: paquetage principal;+ jrdesktop.viewer: paquetage visualisateur;+ jrdesktop.viewer.main: paquetage principal du visualisateur;- jrdesktop.viewer.FileMng: paquetage de la gestion de fichiers;- jrdesktop.viewer.rmi: paquetage RMI du visualisateur;+ jrdesktop.server: paquetage serveur;- jrdesktop.server.main: paquetage principal du serveur;- jrdesktop.server.rmi: paquetage RMI du serveur;- jrdesktop.utilities: paquetage utilitaire;- jrdesktop.images: paquetage d'images.

  • CHAPITRE III Modlisation et Architecture

    33

    Parce que l'application est distribue, et utilise la technologie RMI pour la communication; elle estdivise en deux modules de base - Viewer et Server. Les paquetages jrdesktop, utilities et imagessont partags entre les deux modules, de plus, chaque module ses propres paquetages: main et rmi.Voici les diffrentes associations utilises dans le diagramme de paquetage (tableau 3.1):

    DescriptionAssociation Association navigabilit restreinte(association directionnel)

    le serveur est le propritaire du robotAssociation bidirectionnelle

    Relation de rutilisationServerInterface est une classe rutilisable(reprsente le comportement visible du ServerImpl)

    Relation d'inclusionImageSelection est incluse dans ClibprdUtilityTableau 3.1 - Diverses associations

    Le schma suivant (Cf. Figure 3.6) prsente le diagramme de paquetage du jrdesktop, le diagrammeest automatiquement gnr par l'outil Reverse Engineering qui permet d'obtenir les diffrentsdiagrammes UML partir d'un code source crit par un langage objet (tel que Java et C++).

  • CHAPITRE III Modlisation et Architecture

    34

    Figure 3.6 - Diagramme de paquetage3.2. Architecture RMILa communication entre les modules se fait par l'invocation de mthodes distantes en utilisant RMI(Remote Method Invocation). Les modules (serveur et visualisateur) reprsentent des objets distantscommuniquent entre eux (d'une faon transparente par l'utilisateur). RMI facilite l'change desmessages entre objets distribus.L'application du jrdesktop est constitue de deux sous systmes (Viewer et Server). Chaque moduleest constitu d'un ensemble de sous modules communiquant par messages entre eux.Le visualisateur et travers un objet instanci du classe ServerInterface fait appel des mthodesdistants du ServerImpl (implment du ServerInterface). A son tour; ServerImpl excute lesmthodes serveurs et renvoie optionnellement des valeurs.Le schma suivant (Cf. Figure 3.7) prsente les couches RMI et la correspondance avec le modleTCP/IP

  • CHAPITRE III Modlisation et Architecture

    35

    Figure 3.7 Architecture RMI du jrdesktopTandis que les classes stub et le skeleton (gnrs par l'utilitaire rmic du JDK) assurent la conversiondes communications avec l'objet distant; Le registre RMI (ou bien la couche RRL) traduit et gre lesrfrences vers les objets distant.3.3. Communication entre modulesAvant d'tudier l'architecture des modules du jrdesktop, on s'intresse sur la nature des donneschanges entre les modules.La communication entre le visualisateur et le serveur est gre par le protocole JRMP (Java RemoteMethod Protocol). Le passage de donnes est par dfaut non scuris. Le protocole SSL peut treutilis en conjonction avec JRMP pour tablir une connexion scurise entre les deux modules.Les flux de donnes changs entre modules sont :

    Authentification : demande de la connexion ou de la dconnexion d'un visualisateur unserveur jrdesktop. Si l'opration a choue, une erreur est signale. Ce flux peut contenirplusieurs informations tel que : l'adresse IP et le port du serveur, le nom et le mot de passed'utilisateur et le type de connexion (scurise ou non).

    Transfert des entres-sorties: passage des vnements clavier et souris (comme entres) etdes imprimes d'cran (sorties). Ce transfert s'effectue d'une manire permanente.

    Transfert des paramtres: transfrer des options slectionnes du visualisateur vers leserveur pour tre appliqus dans le transfert de donnes, tel que: l'activation de lacompression, le passage du contenu du presse-papiersetc.

    Transfert de fichiers: opration de la copie des fichiers (de petites tailles) lists dans lepresse-papiers d'un PC vers la mmoire de stockage de l'autre PC, ou par un glissement desfichiers sur la fentre de la visualisation pour les transmettre au serveur.

    Sauf dans le cas d'envoi des paramtres; le passage de tous les flux est bidirectionnel. Ainsi, tous cesflux passent d'une faon facultative et seulement la demande, excepte celui d'entres-sorties.

  • CHAPITRE III Modlisation et Architecture

    36

    Voici un schma (Cf. Figure 3.8) prsente les types de flux de donnes changs entre levisualisateur et le serveur.

    Figure 3.8 - Flux de donnes changs entre modulesCes flux sont tablis par appel de mthodes distantes depuis le visualisateur, et - optionnellement - larcupration du rsultat des mthodes appeles. Les mthodes sont les suivantes:

    startViewer et stopViewer pour l'authentification ; updateData : pour le transfert d'entres-sorties ; updateOptions : pour l'envoi des paramtres ; sendFile et receiveFile : pour la transmission des fichiers.

    3.4. Architecture des modulesAprs avoir vu comment les donnes sont transfres entre modules, on s'intresse maintenant l'architecture interne de chaque module.

    Chaque module dispose d'un ensemble d'outils pour prendre le contrle des ressources tel que:clavier, souris, cran, presse-papiers et un ensemble de structures (objets, listes, tableauxetc.).Dans ce qui suit, on essaye d'expliquer le rle et le fonctionnement de chaque outil et structure.Les outils de contrle de clavier, souris et cran sont partages tous les visualisateurs, les structuressont particulires, chaque visualisateur dispose ses propres structures. Les structures particulires(dans les deux modules) sont cres juste aprs l'authentification et dtruites lorsque la session esttermine.a. Module Viewer (Admin) :Ce module (Cf. Figure 3.9) est responsable de la visualisation, travers une interface utilisateur(GUI); l'utilisateur peut facilement observer ou contrler l'ordinateur distant. Plusieursfonctionnalits sont leur disposition, tel que la possibilit de suspendre et de reprendre lavisualisation, changer la taille et le zoom d'cran, rgler le niveau de la compression et choisir lapalette de couleurs souhaitable.etc.Le module est construit d'un ensemble de paquetages, classes, fentres, objetsetc.

  • CHAPITRE III Modlisation et Architecture

    37

    Figure 3.9 L'architecture interne du module ViewerDans ce qui suit on va voir les principaux sous composants du module quon a appel Viewer quidsigne le visualisateur ou le contrleur. (1) : La classe principale est Viewer , cette classe est responsable de la communication avec le

    serveur. Lorsque on veut envoyer ou recevoir une donne, le visualisateur cherche dans le registreRMI l'objet dsir, lorsque sa rfrence est rcupre, la mthode distante est invoque (etoptionnellement, cette mthode renvoie une valeur en retour).

    (2) : La configuration de la connexion de ce module est gre par une classe spciale surnomme Config o on trouve un ensemble de paramtres configurables tel que: l'adresse IP et le portdu serveur, le nom et