Intégration d’un client mobile à la SDDS CTH* Pr. D.E. ZEGOUR WWW.ZEGOUR.UUUQ.COM D_zegour@esi.dz Collaboration : W.K HIDOUCI ( Phase finale de préparation d’une thèse d’état algérienne SGBD RAM (SDDS) à base d’acteurs) Réalisé par BENNACEUR Amel (Mémoire d’Ingénieur à l’INI : Institut National d’Informatique )
Introduction Projet SD²M (Structure de Données Distribuée Mobile) Client CTH* mobile Spécifier, concevoir, développer Analyser, vérifier, mesurer
Plan SDDS CTH* Environnements mobiles Architectures et Protocoles Outils de développement Tests de performances Interface
SDDS Gérer la distribution des données d’un fichier dans une architecture sans partage ( Multiordinateur ) Pas de répertoire central ( Point d’accumulation dans les méthodes classiques) Gérer un grand volume de données en maintenant des performances stables optimales ( scalabilité) Disponibilité des données 24/24, 7/7
Variantes à haute disponibilité SDDS - Variantes SDDS Basée sur les arbres Basée sur le hachage CTH* unidimentionelle multidimentionelle unidimentionelle multidimentionelle RP*N, RP*C, RP*S k-RP* dPi-tree Variantes à haute disponibilité LH*LH IH* Haute disponibilité grouping mirroring striping LH*g, LH*SA, LH*RS LH*S LH*M RP*RS
Hachage Digital Compact Distribué (CTH*) Hachage digital TH Hachage Digital Compact CTH Hachage Digital Compact Distribué CTH*
Hachage Digital Compact Distribué (CTH*) Arbre digital Arbre digital Arbre digital Client Client Client Réseau local haut débit Serveur Serveur Serveur Coordinateur … … … Cases en RAM Cases en RAM Cases en RAM FAT PAT Arbre digital partiel Arbre digital partiel Arbre digital partiel
Hachage Digital Compact Distribué (CTH*) | 0 d 0 | 1 d 0 k 1 | 2 | 0 d 0 | 1 Client Client ef ce dx h x a kx y yya yyb IAM IAM IAM Serveur Serveur Serveur a ce dx ef yya x ef h kx ef h x y yya x y yya yyb | 0 d 0 | 1 k 1 | 2 d 1 k 2
Hachage Digital Compact Distribué (CTH*)
Plateforme CTH* ( Existant ) Serveur 1 Case 0 . Application 1 . Case m1 Client 1 Application n1 Coordinateur Case 0 . . . Serveur 2 Case m2 . . Application 1 Case 0 . . Client k Serveur p Case m3 Application nn
Plateforme CTH* ( Existant + Mobilité ) Serveur 1 Client CTH* Case 0 . mobilité Client mobile 1 . Case m1 Coordinateur Client CTH* Case 0 . Client mobile m . Application 1 Application n1 Serveur 2 Case m2 . . Client 1 . . Case 0 . Application 1 Application n1 . Case m3 Serveur p Client k
Réseaux mobiles 1980 1990 2001 2006 2010 2020 Génération Mot-clé Débit Analogique Numérique Circuit paquet Numérique paquet Haut débit et IP Mobile Débit 600-1200 bit/s 14,4 Kbit/s 30 – 70 Kbit/s 384 Kbit/s – 2 Mbit/s ≈ 10 Mbit/s ≈ 1Gbit/s Exemple AMPS, NMT, TACS GSM, IS54 IS95, PDC GPRS, EDGE, PDC-P UMTS, W-CDMA, CDMA2000 HSDPA, Flash OFDM WiMax Mobile Accès large bande 4G: Accès large bande par intégration des accès 3G
Terminaux mobiles
Téléphone mobile Batterie SIM Microphone Ecouteur Ecran LCD Port infrarouge Batterie SIM Clavier Port série
Téléphone mobile Intégration des composants d'un ordinateur au sein d‘ une seule puce : microprocesseur, DSP (Digital Signal Processor), mémoire. Processeur : contrôle et coordonne le travail des différents modules et gère l’interface homme-machine (HMI : Human Machine Interface). La fréquence d’horloge : ordre d’une centaine de mégahertz ( Intel : atteindre 1GHz ) DSP (Digital Signal Processor). traitement du signal et conversions entre numérique et analogique. décharger le processeur central et d’augmenter la puissance et la vitesse de traitement. Module radio. Le module radio (RF unit : Radio Frequency unit) permet au téléphone d’être relié au réseau Connectivité locale : Câble série, Technologie infrarouge, Norme Bluetooth Carte SIM (Subscriber Identity Module). Permet l’accès aux services du réseau mobile.
Adaptation à l’environnement mobile Contraintes liées au réseau mobile Bandes passantes de qques dizaines de kilobits par seconde pour les réseaux 2,5G et 3G tels que GPRS. minimiser la taille des messages et leur fréquence d’envoi. Le temps de latence réseaux mobiles : mesurés en secondes réseaux fixes : mesurés en millisecondes, voire en microsecondes. Difficultés liées aux appareils mobiles Ressources limitées Interface restreinte Autonomie limitée Langage de programmation limité Interruption
Adaptation à l’environnement mobile Protocoles de transmission de données Objectif : établir un lien entre les réseaux de données fixes et la téléphonie mobile Réseaux filaires : TCP/IP Réseaux mobiles : le protocole WAP (Wireless Application Protocol) client/proxy/serveur (terminal mobile muni du micronavigateur WAP, la passerelle WAP et le serveur d’applications ) le service i-mode : standard japonais ( pas de proxy) ne nécessite pas d’étape intermédiaire de conversion en binaire
Architecture générale Réseau fixe de l’opérateur passerelle/ firewall Client CTH* Réseau de l’opérateur GPRS/3G HTTP Mobile HTTP Mobile Client CTH* mobile Station de base HTTP Serveur CTH* Serveur HTTP UDP Réseau IP public Servlet . HTTP . . passerelle/ firewall UDP Servlet Serveur CTH* UDP … Client CTH* fixe Client CTH* fixe Réseau local
Architecture du client fixe Serveur Coordinateur Serveur Serveur Serveur ServReceiverThread ServSenderThread Table des fichiers ouverts Handle Déscriptif Trie PAT File Serveurs- Client File Client- Serveurs . . . File Client- Applications File Applications- Client WorkerThread WorkerThread IDReq IDApp Table de correspondance Applications/ requêtes AppSenderThread AppReceiverThread Interface entre les applications et le client SDDS . . . . Application Application Application Application
Architecture du serveur Données Trie PAT Données Trie PAT Données Trie PAT Cases CTH* . . . Données Trie PAT Gestionnaire d’accès concurrents Insertion Recherche Suppression … Redirection Eclatement … Exécution Résultat Analyse des requêtes Résultat . . . WorkerThread WorkerThread Files Output File Input SenderThread ReceiverThread Servlet Préserveur Client Coordinateur Serveur Client
Architecture du coordinateur Table d’allocation physique (PAT) Table de Fichier (FAT) Gestionnaire d’accès concurrents Nouveau serveur libre Eclatement Nouveau fichier Ouvrir fichier … Supprimer fichier Exécution Résultat Analyse des requêtes Résultat . . . WorkerThread WorkerThread Files Output File Input SenderThread ReceiverThread Servlet Préserveur Client Server Serveur Client
Architecture du client mobile Serveur Coordinateur Serveur Serveur Serveur Connexion HTTP . . . . . . Threads d’envoi File Des Ecouteurs File Des Requêtes File Des URL Table des fichiers ouverts . . . Handle Déscriptif Trie PAT Threads de traitement . Nouveau Ouverture Fermeture Insertion Recherche Suppression Requête à intervalle … Thread d’interface
Architecture du préserveur Client CTH* Client CTH* Client CTH* Client CTH* Client CTH* Connexion HTTP Messages HTTP … Pool de threads Messages UDP Réseau local Serveur Coordinateur Serveur Serveur Serveur
Protocole (Requête simple : sans erreur d’adressage) Client SDDS Requête HTTP Réponse HTTP Préserveur (servlet HTTP) Préserveur (servlet HTTP) Préserveur (servlet HTTP) Réponse Serveur SDDS Serveur SDDS Serveur SDDS
Protocole (Requête simple : 1 forward) Client SDDS Requête HTTP Réponse HTTP Préserveur (servlet HTTP) Préserveur (servlet HTTP) Préserveur (servlet HTTP) IAM Réponse IAM Serveur SDDS Réponse Serveur SDDS Serveur SDDS Redirection
Protocole (Requête simple : 2 forward) Client SDDS Requête HTTP Réponse HTTP Préserveur (servlet HTTP) Préserveur (servlet HTTP) Préserveur (servlet HTTP) Réponse IAM Réponse Réponse Serveur SDDS IAM Serveur SDDS Serveur SDDS Redirection Redirection
Protocole ( Requête à intervalle ) Client CTH* Requête (Min, Max) Requête (Min1, Max1) Requête (Min2, Max2) Requête (Min3, Max3) Préserv Préserv Préserv … … … … … … Serveurs
Outils de développement Préserveur Client mobile
Outils de développement (Quelques détails techniques) Langages de développement Coordinateur, Serveur et le client fixe sont développés en Visual C++, Client mobile Java édition micro J2ME (Java 2 Micro Edition) Préserveur : Java édition entreprise J2EE (Java 2 Entreprise Edition). Sockets Sockets UDP : réseau local ( échanges de messages entre les servlets, les clients fixes, les serveurs et le coordinateur ) HTTP Protocole HTTP (Hypertext Transfer Protocol) : entre les servlets et le client mobile ) modèle client/serveur. idéal pour les applications Java mobiles : tout appareil compatible supporte le protocole HTTP ( TCP ou UDP : optionnels sur d’autres appareils).
Outils de développement (Quelques détails techniques) Installation Sur le mobile Java Developpement Kit JDK 1.5 ou une version postérieure, J2ME Wireless Toolkit 2.2 ou postérieure et Plate-forme fixe Coordinateur, Serveur, Client et Application ( Réseau Ethernet 100Mbits/s ) Serveur HTTP ( Tomcat Apache)
Outils de développement (Quelques détails techniques) Les serveurs CTH* sur trois machines : Pentium IV avec une fréquence d’horloge de 2,66 GHz et 248 Mo de RAM Pentium III tournant à 1GHz et muni de 256 Mo de RAM Pentium III à 688 MHz avec 256 Mo de RAM. interconnectées par un réseau Ethernet 100 Mbits/s. Pour tester l’application : simultation sur un ordinateur portable relié au réseau Ethernet local. (simulateur intégré de Sun J2ME Wireless Toolkit) Pour vérifier le parallélisme, Utilisation d’une autre machine connectée à Internet Pour les tests réels Téléphone mobile Nokia 3200 à 800 Ko de mémoire, compatible Java MIDP 1.0 et relié à Internet via le réseau GPRS d’Algérie Télécom.
Tests de performances Simulateur distant 5 4 capacité de 250 octets 3 Temps moyen d'insertion (ms) 2 1 100 200 500 Nombre d'enregistrements
Tests de performances Environnement mobile réel 2000 capacité de 250 octets capacité de 500 octets capacité de 1250 octets capacité de 2500 octets 1500 Temps moyen d'insertion (ms) 1000 500 10 50 100 Nombre d'enregistrements
Tests de performances Requête à intervalle Temps de recherche (ms) 16500 15500 Temps de recherche (ms) 14500 13500 12500 11500 1 2 3 Nombre de serveurs
Interface de l ’application
Interface ( Création ) Remarque : les temps mentionnés correspondent aux temps obtenus par simulation (micro portable vers réseau fixe sans passer par Internet)
Interface (Ouverture)
Interface ( Insertion )
Interface (Requête simple)
Interface (requête à intervalle)
Interface (Ergonomie)
Conclusion & Perspectives Solution simple permettant le développement d’application sur téléphone mobile Intégration à des systèmes de gestion de bases de données Rajouter sécurité et compression ( en cours ) SDDS mobile ( P2P et peut être avec réseaux ad hoc)