CHAPITRE 4
MISE EN OEUVRE ET SIMULATION DE L'OUTIL DE TRAITEMENT
DE TRACE ET
DE LOCALISATION D'ABONNES
4.1 Introduction
La société TELMA dispose d'un outil de trace
permettant de recueillir les caractéristiques radios de ses
abonnés. Dans le but de solutionner les différentes plaintes
provenant de ses clients, nous allons voir dans ce chapitre la conception et la
réalisation d'une application informatique capable de traiter les traces
obtenues et de localiser les mobiles du réseau 2G et 3G à partir
de ses caractéristiques radios.
Pour ce faire, nous avons utilisé UML comme langage de
modélisation, Java comme langage de programmation, Eclipse comme
environnement de développement, MySQL/XML comme SGBD, JavaScript et AJAX
comme technologie de développement Web et certaines
bibliothèques, Jquery pour la gestion cartographique.
4.2 Outil de trace 4.2.1
Présentation
L'outil de trace permet de lancer des traces UETR ou UE
Traffic Recording ou 3G, PMR ou Performance management Traffic Recording ou 2G
et GPEH ou General Performance Event Handling. C'est un logiciel
propriétaire d'ERICSSON.
Les traces d'abonnés sont lancées à
partir de leur numéro IMSI tandis que les traces Cell/Site sont
lancées à partir de leur code. Voici quelques captures de l'outil
de trace (figure 4.01, figure 4.02 et figure 4.03).
Figure 4.01 : Interface du PMR
Figure 4.02 : Onglet UE profils
71
72
Figure 4.03 : Onglet GPEH
4.2.2 Lecteur et décodeur de
trace
4.2.2.1 Lecteur de trace
TELMA dispose de quelques outils permettant de faire la lecture
des traces obtenues (UETR, PMR et GPEH). Ces lecteurs (figure 4.04) permettent
de spécifier un nom au fichier à décoder et de
sélectionner les traces récupérés en parcourant
vers le répertoire qui les contient.
73
Figure 4.04 : Outil lecteur de trace UETR.
4.2.2.2 Décodeur de trace
Un outil nommé Cygwin permet de décrypter le
contenu de chaque trace sélectionnée, comme nous montre la figure
4.05 ci-dessous :
Figure 4.05 : Cygwin
74
4.3 Analyse et conception du système informatique
4.3.1 Architecture système
La figure 4.06 suivante nous montre l'architecture
système avec la répartition des tâches entre le client et
le serveur.
Figure 4.06 : Modèle
général d'architecture système
4.3.1.2 Client
Le client envoie une demande pour solliciter un service ou une
ressource particulière du serveur. 4.3.1.3 Serveur
Le serveur détient les ressources à partager. C'est
lui qui reçoit la requête du client et lui fournit les ressources
demandées (données, services, matériels) moyennant
l'authentification et les privilèges nécessaires.
4.3.1.4 Application
C'est le siège de la partie traitement. Si un client
effectue un traitement important, on parle de Client lourd, dans le cas
contraire, on l'appelle Client léger.
Dans le cas où les applications sont bien
séparées du serveur de données on doit mettre en classe un
autre serveur appelé serveur d'application.
75
4.3.1.5 Les données
On accède aux données via des systèmes de
gestion de base de données qui peut être un réseau, un
SGBDR ou Système de Gestion de Base de Données Relationnelles ou
un SGBDO ou Système de Gestion de Base de Données Objet en se
servant de middleware tel que JDBC ou Java Data Base Connectivity pour la
plate-forme Java, ODBC ou Object Data Base Connectivity pour la plate-forme
Microsoft ou en natif.
4.3.1.6 Interface utilisateur
L'interface utilisateur est le dispositif qui permet à un
usager de machine de se communiquer. Elle
peut être :
? Une GUI ou Graphic User Interface si l'utilisateur est un
être humain
? Une interface web
? Une interface en ligne de commande
? Une autre forme bien établie et suivant une règle
bien déterminée
4.3.1.7 Middleware :
Un middleware est un logiciel tiers qui est le lieu
d'échange d'informations entre différentes applications
informatiques. Pour cela, on utilise une même technique d'échange
d'informations dans toutes les applications impliquées à l'aide
de composants logiciels.
Ces composants logiciels effectuent la communication entre les
applications et ne dépendent ni des ordinateurs impliqués, ni des
caractéristiques matérielles et logicielles des réseaux
informatiques, des protocoles réseau, des systèmes d'exploitation
impliqués.
4.3.2 Analyse des besoins
4.3.2.1 Problèmes liés aux plaintes clients
Ce sont surtout les problèmes rencontrés sur
l'interface radio. Ils sont de plusieurs ordres [26] :
a. 76
Problème de qualité
Le terme « qualité » employé ici est
abordé du point de vue de l'opérateur et désigne
globalement les zones où le RxQual est élevé tandis que le
RxLev est acceptable. Les symptômes de ce problème sont
décrits dans le tableau 4.01. [26]
Plaintes
|
Indicateurs
|
Communications brouillée
|
Fort taux de handover sur qualité et de handover sur
interférence
|
Communication métallique
|
Forts taux d'échec de handover
|
Communications avec silences périodiques
|
Forts taux de coupures TCH
|
|
Tableau 4.01: Symptômes des
problèmes de qualité
b. Problèmes de couverture
Ce sont les problèmes dus à la faiblesse des
signaux perçus par l'abonné (faible RxLev). Ses symptômes
sont donnés dans le tableau 4.02. [26]
Plaintes
|
Indicateurs
|
Un manque de barres de niveau
|
Fort taux de handover sur niveau
|
Communication à sens unique
|
Forts taux de coupures TCH
|
|
Tableau 4.02: Symptômes des
problèmes de couverture
c. Problèmes d'accès
Les problèmes d'accès sont dus à une
saturation des canaux de trafic TCH ou de signalisation SDCCH. [26]
Plaintes
|
Indicateurs
|
Message « Appel échoué »
|
Fort taux de coupures TCH ou SDCCH
|
Communications avec silences périodiques
|
Forts taux d'échec d'allocation de canal SDCCH.
|
Message « Busy Network »
|
Congestion des canaux TCH ou SDCCH
|
Tableau 4.03: Symptômes des
problèmes de trafic
77
4.3.2.2 Problème de localisation
Depuis une dizaine d'années environ, surtout avec la
naissance du système de positionnement GPS ou Global Positioning System,
on remarque une demande croissante des systèmes de positionnement. Cette
forte demande est stimulée par plusieurs facteurs dont, entre autres,
l'insécurité croissante, la recherche d'une efficacité
plus grande dans la conduite des affaires commerciales, etc. [13]
Les principaux inconvénients de ce système sont
l'affaiblissement de la performance dans les zones urbaines denses où il
n'y a pas de vue directe vers le ciel et demande une consommation
d'énergie au niveau du mobile, ce qui diminue l'autonomie du terminal.
De plus, l'accès au GPS est très-onéreux
4.3.2.3 Expression des besoins
Les méthodes de localisation basées sur les
réseaux cellulaires, qui est à la portée de tous, ont
été développées. Cependant, l'implémentation
de la combinaison de plusieurs techniques (GPS - Cell ID - UTDOA) est
élevée et beaucoup d'opérateurs n'ont pas adopté
cette méthode.
Notre solution est destinée aux besoins de TELMA.
Ainsi, pour résoudre les problèmes de plaintes clients, nous
avons utilisé la localisation à base d'empreinte radio (OTD et
TA) qui est une méthode durable et abordable.
4.3.2.4 Identification des acteurs
Un acteur représente un rôle joué par une
personne, une chose interagissant avec le système. Pour notre cas, on
distingue :
? L'administrateur
? L'utilisateur
4.3.3 Modélisation UML 4.3.3.1
Définition :
UML, c'est l'acronyme anglais pour « Unified Modeling
Language » qui a été normalisé par l'OMG ou Object
Management Group. On le traduit par « Langage de modélisation
unifié ». La notation UML est un langage visuel formé d'un
ensemble de schémas, appelés des diagrammes, qui donnent
78
chacun une vision différente du projet à traiter.
UML nous fournit des diagrammes pour représenter le logiciel à
développer.
4.3.3.2 Caractéristique :
UML est indépendant du processus de conception et de
développement. Elle ne décrit pas comment il fonctionne. Ce n'est
pas une méthode ou un processus. Elle propose un ensemble de notations
pour que chacun ait à sa disposition les éléments
nécessaires à la conception d'une application. Elle fournit une
notation/syntaxe pour les diagrammes et modèles définis pendant
tout le cycle de développement. [27]
UML permet de définir des modèles de niveaux
différents :
· Analyse
· Conception
· Spécification d'implémentation
4.3.3.3 Diagrammes standardisés
UML comporte plus de 13 diagrammes standardisés qui se
répartissent en 2 catégories :
06 diagrammes structuraux :
· Diagramme de classe
· Diagramme d'objets
· Diagramme de packages
· Diagramme de structure composite
· Diagramme de composants
· Diagramme de déploiement
07 diagrammes comportementaux:
· Diagramme de cas d'utilisation
· Diagramme global des interactions
· Diagramme de séquence
· Diagramme de communication
· Diagramme de temps
· Diagramme d'activités
· Diagramme d'états
79
Ces diagrammes sont réalisés à partir du
besoin des utilisateurs et peuvent être regroupés selon les deux
aspects suivants :
a. Les aspects fonctionnels :
? Qui utilisera le logiciel et pour quoi faire ?
? Comment les actions devront-elles se dérouler ? ?
Quelles informations seront utilisées pour cela ?
b. Les aspects liés à l'architecture :
? Quels seront les différents composants logiciels
à utiliser (base de données, librairies, interfaces, etc...) ?
? Sur quel matériel chacun des composants sera
installé ?
UML modélise donc le système logiciel suivant ces
deux modes de représentation. 4.3.4 Diagramme UML de
l'application
Nous avons réalisé les diagrammes suivant durant
notre avec Visual Paradigm for UML 8.0 Enterprise Edition.
Figure 4.07 : Aperçu de Visual
Paradigm
80
4.3.4.2 Diagramme de cas d'utilisation
Le diagramme de cas d'utilisation (figure 4.08)
représente les fonctionnalités (ou dit cas d'utilisation)
essentielles aux utilisateurs.
Figure 4.08 : Diagramme de cas d'utilisation
4.3.4.3 Diagramme de classe
Les diagrammes de classes montrent les classes (figure 4.09)
et les relations statiques entre ces classes : classe, attribut,
opération, visibilité, interface, association, agrégation,
héritage, dépendance...
niveau recap cellserveose float -rnreau recep_os3Nosme : float
· guslité_signal_cellserveuse : float
· guadté_signal_celivoisine : float
· o l_id_ootsorverse: string
· rall_id_rativoisine : string
· état_mobie : sting -rnsisdn : int int
-abonne : string
· Id_MAesure : in
-OFF : int -Td: int -TA :it
· Temps'. string
«MeoeoMobie()
getNrveov onopCel Servsuse():float
*setNiveauRecepCeltServeuse(oiveac teoep_celserlase : float) :
void .getNiveau ReccpCcilVaiv ne(} : float .getQualitéSig na !Col
ISoprem.() : float
« setaualitétnig nal
CoIlScrveuse(quoité_signal_cetlsrireuse: float) void
« setNiveau Sig naI CelIVeisine(nivesu_sgnal_ce!Weisine
: float)! void *getqualitdSig nalCelfVoisine(): Boat
*seta ualiténig
noiCelVoisne(quagté_mgnal_colivoslne : float) : void getCCIII.CeIlScrvv
o): string
setCcl IIdCCI ISorveur{cei id ca]lserveuse : string) : void
getCcllid CoIIVoisine{}: string
setCol lid Col IVon ite(raAidcellvoisine : string) void
getEtatMobile(): string
« setEtatMohiie(état_mobie : sting)'. void
*gctMsisdnO int
*setMssdn(mdsdn it): void
*getirnsi(): int
«setlmsl(mii : in) : void
.gotlnà() : int
setlmei{inei : inn)'. void
* getAtiornée() : string
« setAbornée(abonnée : string)! void
*getldMesure)) : int
*setldMesure(Id Massie: m)'. void
+getOFF(): int
«setOFF(OFF'. int): void .getT1A{}:int
setTM(1M : int) : void
* getTA{}'. int
« setTA{TA int): void *getTemps() : string *setTe.rps(Temps
: string) : void
Masure Mob lie
Abonnée
-Id_abornée : int -Num_abnnée string -Type_mobie :
string
«Abonnée()
«getldAbonnie(): Int
«setNunilbnrrsre(Nun aboméa: string) : void
*setldAborutée( id sbonnés: int): void
«getNnnbbonréel]: string getTyp doble() : smog
«setTypeMobie(Type_mmie : string). void
Stalk rnleBase
-Id_®I string -oode_site string -latitude :stag -iongitodo :
string -altitude : string x : string
-y : string
-HSA: string -pissance_Tx it -PSC : int
g etldCel()'. strip
« setldCell{ Id_cel : string}'. void setldSis(id btn
:int)'. void +getCodeite(): string .setCodvSito(nnde_lte : string) : void
. getLatitude(): string «setLatitude(iatitude : string} :
void .getLoiv dodo() string nsetLongilude(Imgltude : string) : void
g etAttdude() : snag setpiti[ude(sltitude : string) : void
*getx0'. string
setX(x : string)'. void .ger{!. string
.setY{x : strng}'. void getHba(): string
« setHba(HtA : string) : void
g etPtissance() : string
.se tPuissaoce(pussance_To fit) : void getPsc((: int
setPsn(PSC: int). void
Positionnement
désignation_Algo : string
· Men rnMobilo : string -Position Estimûe : string
«Position semant()
.getDésignationkgruitMne() : string
« setDésignaticnAtgorithma(désignation
Algo: string): void tgetMesureMohile{) : string
«setMesureMobile( Mes u ieMobie : string) : void
« getPositionEstiméo)) string
setPosi k tettiméa(Positim0Estinée : string ):
void
Pasltla nF stlrroi .
-Id_posilion ::r t -InloPosttion : string
*operation() *getldPosition(): int
« aelldPooitim(Id_pootion string) : void
g etlnfoPosdion() : string
«sellnfoPogtion(Info Position : song) : void
OntopeUee
Id_groupe : int description : string
*GropeUsen{}
n getldGrorpe{} : int
«setldGnoup«(ld_grupe : int) : void
g etDescriptiong : string
.setDescription(desuption : string) : void
|
UtëhsMee.
du:int -norn_uo string
· pre nom_ut string -lrxpn_ut : string -pwd_ut : sting -Q
nngoellser : sting
+getout{): int
«setldUt(Id_ot : id) : void getNoenllt{}: string
setNomllt(norn_ut: string): void .getPrénomllt{} : string
«setPrénomUt{pnenrxn_ut : string) : void getLoginllt() : sting
. setLoginLlt{iogin ut : string) : void «getPwdUt() string
n-setPwdut(pwd_ut: strng): void
intopoeeltiotr
-Id nfoP: jot -longitude : sing -latitude : string -altitude :
string -temps : string
«InfoPasition()
. getidnfoP{}: int
.setloinfoP{Itl infoP: nt)'. void *gettwtgitudiri}'. string
setLnrgior lo)!ry iode : sting} : void
g etLatiude(): string .setLatituda{fatitude : strong) : void
«getA titode() : string .setAtitude(altitude : string) : void .getTenps{ }
: string .setTemps(tenps : string) : void
81
Figure 4.09 : Diagramme de classe
82
4.3.4.4 Diagramme de séquence
Le diagramme de séquence permet de décrire tous les
scénarios d'utilisation du système. 4.3.5
Modèle Conceptuel des Données
Le Modèle Conceptuel des Données introduit la
notion d'entités, de relations et de propriétés. Il
décrit de façon formelle les données utilisées par
le système d'information. La représentation graphique, simple et
accessible, permet à un non -informaticien de participer à son
élaboration. Les éléments de base constituant un
modèle conceptuel des données sont :
? les propriétés ;
? les entités ;
? les relations.
La figure 4.10 ci-dessous nous montre le MCD de notre
système informatique, conçu sous Visual Paradigm for UML
Entreprise Edition Version 8.0
Figure 4.10 : Modèle conceptuel de
données
83
4.3.6 Langage de programmation
4.3.6.1 Visual basic :
EXCEL VBA ou Visual Basic pour Application est un langage de
programmation permettant d'utiliser du code Visual Basic pour exécuter
les nombreuses fonctionnalités de l'Application EXCEL. [28]
Une macro est un programme écrit en VBA. Elle permet
d'automatiser des tâches répétitives
réalisées sous EXCEL. Elle peut aussi être utilisée
pour créer des boîtes de dialogue afin de rendre une application
développée sous EXCEL plus conviviale.
Nous avons utilisé VBA pour récupérer les
données utiles dans la trace sous forme de fichier Excel afin de
construire une base de données.
4.3.6.2 Java et la plateforme JEE
Java est un langage de programmation moderne
développé par Sun Microsystems. Il n'a rien à voir avec
Javascript. Il a une excellente portabilité d'où il fonctionne
sous Windows, Mac, Linux, etc. On peut faire de nombreuses sortes de programmes
avec Java tels que :
· des applications, sous forme de fenêtre ou de
console ;
· des applets, qui sont des programmes Java
incorporés à des pages web ;
· des applications pour appareils mobiles,
· des applications pour la 3D.
La plateforme Java EE ou Java 2 Entreprise Edition s'appuie
totalement sur le langage Java. Java EE est une norme qui nous permet
développer notre propre application qui adapte en totalité ou
partiellement les spécifications de SUN. Il est possible de
représenter Java EE comme un ensemble de spécifications d'API,
une architecture, une méthode de packaging et de déploiement
d'applications et la gestion d'applications déployées sur un
serveur compatible Java.
a. Java EE
Actuellement, il existe plusieurs plates-formes de
développement qui sont basées sur d'autres langages.
Les principaux avantages d'utiliser Java EE sont :
· la portabilité,
· l'indépendance,
84
? la sécurité
? et la multitude de librairies proposées.
Le développement d'applications d'entreprise
nécessite la mise en oeuvre d'une infrastructure importante. Beaucoup de
fonctionnalités sont employés et développées, dans
le but de produire des applications sûres, robustes et faciles à
maintenir.
Certains services sont récursifs comme : l'accès
aux bases de données, l'envoi de mails, les transactions, la gestion de
fichiers, la gestion d'images, le téléchargement, le chargement
ou upload, la supervision du système etc.
C'est pour cette raison que l'architecture Java EE est
très intéressante vu que tous les éléments
fondamentaux sont déjà en place.
Nous n'avons plus besoin de concevoir une architecture, des
librairies et des outils spécialement adaptés. Cela demanderait
un temps et un grand investissement.
b. Environnement de développement :
Eclipse est un environnement de développement
intégré ou Integrated Development Environment dont le but est de
fournir une plate-forme modulaire pour permettre de réaliser des
développements informatiques. Il possède de nombreux points forts
qui sont à l'origine de son énorme succès. [29] Pour
développer notre application web, nous avons choisi Eclipse Mars.1.
Figure 4.11 : Eclipse
4.3.6.3 Javascript :
Le Javascript est un langage de script incorporé dans
un document HTML ou HyperText Mark-Up Language. Il est le premier langage de
script pour le Web. C'est un langage de programmation qui permet d'apporter des
améliorations au langage HTML en permettant d'exécuter des
commandes du côté client, c'est-à-dire au niveau du
navigateur et non du serveur web.
Javascript est fortement dépendant du navigateur
appelant la page web dans laquelle le script est incorporé, mais en
contrepartie il ne nécessite pas de compilateur, contrairement au
langage Java, avec lequel il a été longtemps confondu.
L'algorithme de positionnement de notre application a
été élaboré en Javascript.
4.3.6.4 Base de données :
a. MySQL
MySQL est le dérivé direct de SQL ou Structured
Query Language qui est un langage de requête vers les bases de
données profitant le modèle relationnel. Il en reprend la syntaxe
mais n'en conserve pas toute la puissance car de nombreuses
fonctionnalités de SQL n'apparaissent pas dans MySQL (sélections
imbriquées, clés étrangères...). Il peut aussi
jouer le rôle de serveur de base de données SQL multi -
utilisateurs et multi - tâches.
Nous avons utilisé MySQL Version 5.6.17 et pour
l'interface de la gestion d'utilisateur nous avons utilisé phpMyAdmin
dans WAMPSERVER Version 2.5, comme nous montre la figure 4.12.
Figure 4.12 : Interface de phpMyAdmin
85
86
b. XML
Les bases de données contenant les traces
d'abonnés ont été élaborées avec XML. C'est
un langage de balisage conçu spécifiquement pour délivrer
des informations sur WWW ou World Wide Web. Ses principaux avantages sont:
? Extensible, on peut créer des formats.
? Largement utilisé et reconnu par tous les langages de
programmation.
? Plus facile à lire.
Nous avons utilisé le mappage XML pour exporter les
données Excel vers XML comme nous montre la figure 4.13.
Figure 4.13 : Mappage XML
4.3.6.5 AJAX
AJAX ou Asynchronous JavaScript and XML est une technique
utilisant des technologies comme le javascript et le XML pour charger des
données dans une page web sans rechargement de la page. L'utilisation de
la classe XmlHttpRequest a rendu possible l'émergence d'un nouveau type
d'applications pour le Web. Celles-ci sont fluides et rapides et ne
nécessitent pas le rechargement complet de la page web sur laquelle
l'internaute navigue lorsqu'il sollicite des ressources provenant du
serveur.
87
4.3.6.6 JQUERY
Le WWW est aujourd'hui un environnement dynamique et ses
utilisateurs ont des exigences élevées quant à l'aspect et
aux fonctions des sites. Pour construire des sites interactifs
intéressants, les développeurs se tournent vers des
bibliothèques JavaScript, comme jQuery, qui leur permettent
d'automatiser les tâches courantes et de simplifier les plus complexes.
La popularité de jQuery vient de sa capacité à simplifier
un grand nombre de tâches. [30]
Les fonctionnalités de jQuery étant nombreuses.
Sa bibliothèque fournit une couche d'abstraction générique
pour les scripts web classiques. Toutefois, les fonctionnalités standard
permettent de répondre aux besoins suivants :
· Accéder aux éléments d'un
document.
· Modifier l'aspect d'une page web
· Altérer le contenu d'un document
· Répondre aux actions de l'utilisateur
· Animer les modifications d'un document
· Récupérer des informations à partir
d'un serveur sans actualiser la page
· Simplifier les tâches JavaScript courantes
a. Efficacité de jQuery :
Avec l'intérêt récent porté au
HTML dynamique, les frameworks JavaScript ont proliféré. Certains
sont spécialisés et se focalisent sur une ou deux des
tâches précédentes. D'autres tentent de réunir au
sein d'un même paquetage tous les comportements et toutes les animations
imaginables. Pour offrir les diverses fonctionnalités décrites
précédemment, tout en restant compact, jQuery emploie plusieurs
stratégies [30] :
· Exploiter CSS
· Accepter les extensions
· Masquer les excentricités du navigateur
· Manipuler des ensembles
· Autoriser plusieurs actions sur une ligne
88
4.3.7 Module cartographique
4.3.7.1 Cartographie dynamique sur Le Web
La forme de cartographie récente dans l'histoire de la
géographie étant la cartographie dynamique sur le Web. Il s'agit
d'une cartographie où l'utilisateur est acteur de sa découverte
d'informations: il zoome, il change de fond de carte, il ajoute ou modifie des
informations.
La cartographie dynamique sur le Web permet, en fonction d'une
requête d'un client envoyée au serveur cartographique, de
retourner les données désirées sous la forme d'une carte
comme nous montre la figure 4.14 [31]:
Figure 4.14 : Organisation d'une application
de cartographie numérique
4.3.7.2 Google Maps
Comme module cartographique, nous avons choisi Google Maps.
L'API ou Application Programming Interface de ce dernier est l'interface de
programmation pour Internet la plus utilisée à travers le
monde.
a. Remarque
Une API est une interface de programmation. Dans le cas de
Google Maps, il s'agit d'un ensemble de fonctions et classes JavaScript qui
permet de manipuler une carte dynamiquement au sein d'un site web. Le
développement avec l'API de Google Maps nécessite des
connaissances en HTML et en JavaScript. [31]
4.3.8 Serveur web et serveur
d'application
Nous avons utilisé comme serveurs web et serveur
d'applications Apache Tomcat v7.0 qui supporte J2EE 1.2, 1.3, 1.4 et Java EE5
et 6 web modules. Son interface de configuration est illustrée par la
figure 4.15 :
Figure 4.15 : Interface de configuration
d'Apache Tomcat
4.3.9 Structure du projet
La figure 4.16 nous montre la structure de notre projet :
89
Figure 4.16 : Architecture du projet
90
Sur la partie gauche, on peut voir les différentes
classes de notre projet. UtilisateurDao.java est la classe gérant le
stockage des données, logiquement nommée couche de données
appelé DAO. Les autres servlets permettent de gérer les
requêtes.
A droite, nous avons les fichiers jar que nous avons
employés.
Dans la figure 4.17, nous avons toutes les pages JSP ou Java
Server Page et HTML pour la partie vue et les bases de données en XML.
Les scripts JavaScript permettant de gérer le module cartographique
Google maps sont inclus dans les pages HTML. Nous avons utilisé un
framework Jquery-1.5.2.min.js.
Figure 4.17 : Architecture du projet (suite)
4.4 Présentation de l'application web
4.4.1 Page d'authentification
La figure 4.18 présente la page de connexion de notre
application, un utilisateur est identifié par son nom et son mot de
passe.
91
Figure 4.18 : Page d'authentification
4.4.2 Création d'utilisateur
La figure 4.19 nous montre la page de création
d'utilisateur de notre application. Les données sont enregistrées
dans une base de données MySQL.
Figure 4.19 : Création d'utilisateur
92
4.4.3 Localisation d'un
abonné
4.4.3.1 Positionnement d'un mobile 2G
La figure 4.20 nous montre le positionnement d'un abonné
2G à l'aide d'une trace PMR.
Figure 4.20 : Positionnement d'un mobile 2G
4.4.3.2 Positionnement d'un mobile 3G
La figure 4.21 nous montre le positionnement d'un abonné
3G à l'aide d'une trace UETR.
Figure 4.21 : Positionnement d'un mobile
3G
4.5 Précision des différents
systèmes de localisation
4.5.1.1 Précision de la localisation basé sur le
TA
Le tableau 4.04 nous montre la précision de la
localisation possible en fonction du nombre de BTS :
Nombre de BTS considéré
|
Plage d'erreur de mesures
|
1
|
0 à 550 m
|
2
|
0 à 380 m
|
3
|
0 à 275 m
|
4
|
0 à 190 m
|
5
|
0 à 75 m
|
Tableau 4.04: Précision de la
localisation en fonction du nombre de BTS
Pour notre cas, puisque nous avons utilisé 02 BTS
(Target cell et Serving cell) alors nous avons une plage d'erreur de mesures de
0 à 380 m.
4.5.1.2 Précision de la localisation en 2G et 3G
93
Dans le tableau 4.05, on peut voir les différentes
précisions de la localisation en 2 G et 3 G.
94
Méthode
|
Réseau
|
Précision
|
Contrôle par
l'abonné
|
Temps de localisation en seconde
|
Coût des équipements au sein
du réseau
|
Coût supplémentaire au niveau
du terminal
|
Cell-ID
|
GSM
|
300m à 10 km
|
Non
|
3
|
Aucun
|
Aucun
|
Cell- ID++
|
GSM
|
100m à
500m
|
Non
|
4
|
Aucun
|
Aucun
|
E OTD
|
GSM
|
150m à
500m
|
Oui
|
5
|
Intermédiaire
|
Intermédiaire
|
OTDOA
|
3G
|
30m
|
Non
|
10
|
Elevé
|
Aucun
|
GPS
|
GSM
|
30m
|
Oui
|
Jusqu'à 60
|
Nul
|
Elevé
|
Tableau 4.05: Précision des
différents systèmes
Pour notre cas, vu que nous avons utilisé l'OTD pour
localiser les abonnés 3G, la précision doit être aux
alentours de 30 m.
4.6 Conclusion
L'utilisation de l'outil de trace nous a permis non seulement
de recueillir les caractéristiques radios de l'abonné mais aussi
d'identifier les causes de coupure d'appel, échec d'établissement
d'appel, communication brouillé, etc.
Les traces d'abonnés obtenues nous ont aidés
à concevoir, de mettre en oeuvre et de simuler notre outil de
localisation. Plusieurs langages de programmation ont été
employés. Aussi, nous avons utilisé plusieurs outils tels que
WampServer, Eclipse, Visual Paradigm, et Apache Tomcat.
95
|