Précédent
Sommaire
Suivant
3-Travail effectué: interface d’administration développée au cours du projet « SMART »
III.1 - Cahier des charges
III.1.1 - But général
L' objectif principal de l'Interface Homme-Machine (IHM) développée pour l'opérateur philippin SMART
réside dans l' administration, au sens général. L'IHM permettra aux 3 profils d'administrateurs de pouvoir
se connecter à un serveur WEB commun quelle que soit leur position géographique (voir figure 9). Certains,
administrateurs d'abonnés (" user administrators ") travailleront à partir des points de vente des téléphones
mobiles de l'opérateur SMART. D'autres, administrateurs de services (" service administrator ") gèreront
directement les entités externes telles que les banques ou compagnies auprès desquelles les virements externes
de l'abonné radio-mobile seront adressés… (voir figure 11) Enfin, les super-utilisateurs (" super-users ")
auront la possibilité de gérer l'ensemble des entités intervenant dans cette architecture (abonnés, services,
" user administrators ", " service administrators ", banques, compagnies…).
Fig.11 - Modules intervenant dans l'architecture physique regroupant tous les services à valeur ajoutée offerts sur
le réseau de l'opérateur philippin SMART
Le schéma précédent met en lumière les éléments présents autour de la plate-forme ASP :
- L'opérateur GSM philippin SMART ;
- Les banques et le serveur (" Arizona ") les reliant à la plate-forme ASP par lien TCP/IP ;
- Le réseau fédérant les commerçant acceptant le paiement par téléphone mobile interposé. Ce réseau est relié
à l'ASP à l'aide d'un autre serveur local (" I-Planet ") ;
- Le Composer permettant d'effectuer des tests de l'ASP en simulant le réseau GSM, le SMSC et la carte SIM de
l'abonné. Il s'agit d'un émulateur de téléphone mobile permettant d'observer les traces des échanges entre la carte
SIM et la plate-forme.
Ainsi, cette IHM offre un accès universel aux 3 profils d'administrateur et devra être en relation avec l'ensemble
des modules de l'architecture associée à la plate-forme (voir figure 12).
Fig.12 - Ensemble des modules de l'architecture liée à la plate-forme
Etant donnés les nombreux liens TCP/IP reliant ces modules, le serveur WEB lié aux IHM se présente sous la forme d'un
CGI (Common Gateway Interface) développé en langage Perl et Javascript et dialoguant avec des processus codés en
langage C par l'intermédiaire de sockets IP (voir annexe 5). Nous étudierons de manière plus approfondie ces processus,
dans le paragraphe suivant, ceux-ci étant fortement liés aux fonctionnalités que devra offrir l'IHM.
III.1.2 - Explication détaillée des résultats attendus
L'IHM devra offrir les fonctionnalités d'administration des services à valeur ajoutée offerts par l'opérateur
SMART à ses abonnés. Ces services sont regroupés dans des applications qui apparaissent dans la figure 12 :
- Le Mobile Banking : cette application permet à l'abonné mobile d'effectuer les opérations bancaires les plus
courantes à partir de son terminal mobile GSM de façon totalement sécurisée. Cette application assure l'accès à
plusieurs banques (au plus 3) à partir d'un même terminal mobile qui pourra les choisir ou en changer librement
(fonction " Register Bank " déjà vue) ;
- Le Mobile Prepaid (ou SMART Buddy) : cette application permet à l'abonné de gérer son compte prépayé qui sera
débité lors des communications téléphoniques et l'envoi de messages courts (SM) initiés par l'abonné. Ce compte peut
être rechargé par virement interne, carte bancaire ou carte prépayée (carte à gratter ou scratch card) ;
- Le Mobile Wallet (ou SMART Money) : cette application permet à l'abonné de gérer son porte-monnaie électronique
et d'accepter les transactions associées. L'abonné pourra régler ses achats via le terminal mobile et non plus la
carte bancaire. Toutefois, seul un réseau de commerçants, équipés d'un appareil spécialisé et reliés à au serveur
de la société IPlanet, pourront accepter ce type de transaction (voir figure 11) ;
La figure 13 suivante, illustre le fait qu'un " super user " de profil 3 accède à une plus large palette de
fonctionnalités qu'un " user administrator " de profil 1 (voir également la Table des fonctionnalités offertes
par un profil d'administrateur donné).
Fig. 13 - Différentes IHM auxquelles accèdent les administrateurs de profils 3 (à gauche) et 1 (à droite)
Nous étudierons dans la partie suivante quels choix de programmation ont été effectués pour développer l'IHM et
comment le cahier des charges a été pris en compte ou non afin de livrer l'IHM à la fin du mois de novembre 2000.
III.2 - Compte-rendu d'activité
III.2.1 - Analyse fonctionnelle et codage d'une IHM d'administration, implémentée sur la plate-forme ASP développée
pour l'opérateur SMART
Architecture en couches et modules de base de l'ASP
Avant d'aborder les aspects techniques liés au développement de l'IHM, étudions les modules de base de la
plate-forme (voir annexe 3 et 5 pour plus de détails) et voyons comment ceux-ci sont utilisés dans le cas de
l'ASP développée dans le cadre du projet SMART. La figure 14 suivante fait apparaître trois SME (Short Message Entity)
distincts associés chacun à une application spécifique : Mobile Banking, Mobile Wallet et Mobile Prepaid. Ces trois
applications sont regroupées sur une même plate-forme logicielle (d'où l'acronyme ASP pour Application Services/Server
Platform). Chaque SME est repérer par un numéro unique du point de vue du SMSC. La plate-forme peut être interconnectée
à plusieurs SMSC (voir figure 3) et à plusieurs PLMN (Public Land Mobile Network).
Fig. 14 - Couches applicatives de la plate-forme ASP (couches hautes)
La plate-forme doit gérer de nombreuses connexions (c'est pourquoi elle est également appelée passerelle) avec
les SMSC d'une part et les fournisseurs de contenu (Arizona, IPlanet…) d'autre part. Chacune des 3 applications
est caractérisée par un Application Controller (AC) et les sessions associées, ouvertes avec les terminaux mobiles.
Pour un SME donné, l'ensemble des sessions est géré par un Session Controller (SC). De manière générale, un SME peut
supporter plusieurs applications (et donc plusieurs AC) mais dans le cas de la plate-forme SMART, un SME est associé
à un seul AC et donc à une seule application. Chaque fois qu'une communication avec un mobile est ouverte via le
service de messages courts (SMS), un Session Handler (SH) est créé pour en maintenir le contexte. Le Session Controller
manage, pour chaque AC du SME, l'ensemble des SH et enregistre l'état des SH (actif, en attente de réponse, bloqué)
dans un archiveur de sessions appelé SAFF (Session Archiver Flat File). Ce genre de fichier sera interrogé par le
service " Session Monitoring " de l' IHM afin de connaître l'état des sessions ouvertes.
La figure précédente fait apparaître les couches hautes de la plate-forme. La figure 15 suivante, met en lumière
les couches basses de la plate-forme. Ces couches gèrent l'interfaçage et les connexions entre la plate-forme et les
entités externes telles que les serveurs Arizona (application " Mobile Banking"), IPlanet
(application " Mobile Prepaid ") et les SMSC de l'opérateur SMART. Nous distinguerons 2 types d'entités externes :
- les serveurs de contenu (CP, pour Content Provider) qui sont interfacés à la plate-forme à l'aide de processus
démon (daemon processes). De tels processus fonctionnent continuellement et sont activés lors du démarrage de la
plate-forme. Leur rôle principal est le formatage et la transmission des données.
- les serveurs de messages courts (SMSC) qui sont interfacés à la plate-forme via des Media Drivers (MD)
spécifiques. Ces processus fonctionnent également en continu et sont dévoués à un SMSC unique. Les messages
courts transitent donc par les MD. Chaque MD met à jour son propre archiveur de messages courts, appelé MAFF
(Message Archiver Flat File). Les MAFF seront également consultés par le service " Service Monitoring " de
l' IHM non pas pour connaître le contenu des messages courts qu'ils véhiculent mais pour connaître l'état d'un MD.
Fig. 15 - Couches de communication de la plate-forme ASP (couches basses)
Remarquons qu'un SMSC est relié à un MD unique mais que les messages courts qu'il délivre peuvent être destinés à
l'une des 3 applications (Mobile Banking, Mobile Wallet ou Mobile Prepaid). Un routage des messages courts entre le
MD et l'application de destination doit donc être assuré. Or une application est, dans le cas de ce projet, associée
à un SME et repérée par un numéro de SME contenu dans l'en-tête du message court. Le routage est donc possible entre
le MD et l'application de destination et est assuré par un module appelé Router. Enfin, de nombreux processus étant
démarrés et stoppés (chaque AC, chaque MD, chaque démon, le Router…) il convient de connaître l'état de chacun de ces
processus, à chaque instant pour s'assurer du bon fonctionnement de la plate-forme. C'est le cas du serveur
d'évènements (SEVENT ou Event Monitor) qui génère des messages d'alerte en fonction de l'état du système par
traps SNMP ou e-mails aux administrateurs. Il surveille en particulier la charge du système en SH, par exemple,
car le système est dimensionné pour un nombre de sessions simultanées (SH) donné qu'il serait regrettable de dépasser.
Architecture fonctionnelle de l'application " Mobile Banking "
Intéressons-nous ici à l'application " Mobile Banking " et à la manière dont elle est connectée au serveur
de contenu bancaire Arizona, au SMSC Nokia de l'opérateur SMART ainsi qu'au serveur de base de données Postgres
(voir figure 16). De plus nous verrons avec la plate-forme de test Composer qu'il est possible de simuler un
réseau GSM, un terminal mobile ainsi que sa carte SIM afin de développer de nouvelles applets et les tester.
La figure suivante illustre la manière dont s'articulent, du point de vue fonctionnel, les différents modules
intervenant :
Fig. 16 - Architecture fonctionnelle de l'application " Mobile Banking "
Le Composer est une plate-forme de tests simulant le terminal mobile, matérialisé par sa carte SIM
pro-active, et le réseau GSM (incluant le SMSC). Il est utilisé par les constructeurs de cartes SIM
(Oberthur Card Systems dans le cas de Rapsodia Software) qui y développent des applications (ou applets)
en Java Card (langage de programmation orienté objet JAVA compressé). Lors des tests, un développeur de
Rapsodia Software (détenant la plate-forme ASP) et un développeur de Oberthur Card Systems (détenant un
pseudo terminal mobile GSM, c'est-à-dire le Composer) vont pouvoir s'échanger des trames (enregistrées
dans des traces) via des liaisons TCP/IP et s'assurer du bon fonctionnement du système. C'est le premier
travail effectué au cours du stage afin de se familiariser aux différents outils d'analyse et de développement.
Le Démon Arizona assure l'interface entre l'application " Mobile Banking " et le serveur externe Arizona
auquel il est relié via une connexion TCP/IP ou X25. Dans la spécification de l'ASP, l'AC est par définition
l'intermédiaire exclusif entre le SH et les serveurs externes et le démon peut être considéré comme un sous-module
de l'AC extériorisé afin de l'alléger.
Le Serveur Arizona fédère les banques auxquelles l'abonné philippin peut avoir accès. Ce serveur a pour but de
forwarder les requêtes d'interrogation des bases de données bancaires (qui contiennent les soldes bancaires,
dernières opérations et profils des clients entre autres). De la même manière, il retourne à l'ASP les informations
requises. Un protocole complet décrit trames échangées entre l'ASP et les banques, mais sort malheureusement du
cadre de ce rapport.
Le SMSC est un serveur non normalisé par les recommandations GSM émanant de l'ETSI. Si bien que chaque constructeur
établit son propre standard. Le SMSC auquel est reliée la plate-forme est de type Nokia Artus SC5A. Les messages
courts sont échangés à travers le réseau de signalisation sémaphore SS7. Toutefois, un serveur de message court
étant avant tout un serveur de messagerie, la norme X.400 peut être utilisée et les messages, après reformatage
par une passerelle, pourrons être véhiculés par le réseau de messagerie standard X400.
Le Serveur WEB est de type Apache et est installé sur la même machine que la plate-forme ASP (modèle HP avec
système d'exploitation Unix). Toutefois, il peut être installé sur une machine indépendante. Hormis l'installation
du serveur Apache et la récupération de l'adresse IP de la machine sur laquelle il fonctionne, seul un travail de
configuration a été nécessaire. Il s'agissait du fichier httpd.cfg dans lequel une machine virtuelle doit être créée
avec un port d'entrée TCP/IP différent de ceux des autres modules de l'ASP ainsi qu'un chemin vers le fichier de la
page d'accueil (home page) du site WEB. Ce serveur est accessible par une adresse IP, un port IP et un alias du
chemin menant à cette page d'accueil :
http://adresse_IP:port_TCP_IP/alias_du_chemin_menant_à_la_homepage/index.html
Nous verrons qu'avec l'interface CGI (Common Gateway Interface) et un mélange de langages Perl, C et Javascript,
il est possible de formater des pages dynamiquement, d'accéder à une base de données (Postgres, par l'intermédiaire
d'un démon) et de retourner une page WEB dynamique à l'administrateur utilisant l'IHM.
Le Démon Admindb administre la base de données Postgres à travers l'interface d'administration (IHM)
développée au cours de ce stage. Sur la figure précédente, il s'agit du démon de connexion entre le serveur
WEB et Postgres. Ce processus est démarré en général juste après le serveur WEB et le serveur de base de données
Postgres car il communique avec ces premiers au moyen des sockets IP (voir annexe 5) bien qu'il soit implémenté
sur la même machine physique (ce n'est pas toujours le cas lorsque les applications de l'ASP gèrent un trop grand
nombre de Session Handler car il faut alors répartir les processus sur plusieurs microprocesseurs et donc sur
plusieurs machines). Le module Admindb a été écrit en langage C en utilisant le formalisme SQL d'accès aux bases
de données. Il a nécessité la moitié du temps de développement de l'IHM, l'autre ayant servi à développer les
fichiers du CGI.
Le Serveur Postgres permet de gérer les différentes tables de la base de données de l'application
" Mobile Banking ". Il existe une vingtaine de tables renseignant l'ASP et les administrateurs sur les abonnés
GSM du réseau SMART, les banques avec lesquelles SMART a signé un partenariat (via Arizona), les compagnies vers
lesquelles les abonnés peuvent effectuer leurs virements externes, les menus bancaires s'affichant sur le téléphone
mobile…
L' objectif principal de ce stage a donc été de développer une interface d'administration de la base de données
Postgres rendant transparente l'utilisation des requêtes SQL à l'administrateur. Cette interface conviviale permet
en outre, par l'utilisation d'un serveur WEB, d'accéder à la base de données quelle que soit la position géographique
et le profil de l'administrateur. Un premier niveau de sécurisation de l'accès à cette base de données est réalisé
par un pare-feu (firewall) qui filtre les adresses IP des stations souhaitant accéder au serveur WEB d'administration
de la base de données.
Architecture physique mise oeuvre pour l'application "Mobile Banking"
Après avoir vu les aspects fonctionnels de la plate-forme ASP, observons brièvement les aspects réseaux
associés (voir figure 17) qui nous seront bien utiles par la suite :
Fig. 17 - Architecture physique de la plate-forme ASP
III.2.2 - Déroulement concret du projet : développement, test et validation
La figure 18 suivante permet de bien comprendre l'intérêt de l'IHM développée au cours du stage. En effet,
supposons qu'un abonné navigue dans le menu de l'application " Mobile Banking " de son terminal mobile. La
communication avec le Session Handler (SH) ouvert afin de gérer cette session se fait par envoi bilatéral de
messages courts (SM). Imaginons maintenant qu'un administrateur souhaite savoir si cet abonné précisément
utilise ou non l'application bancaire que sa banque et son opérateur lui ont proposée. Il lui suffit de se
logger sur le site WEB associé à l'IHM et d'utiliser le service " Subscriber Monitoring " et d'enregistrer
le numéro de téléphone mobile de l'abonné (MSISDN). Une ligne apparaît alors, après interrogation par le serveur
WEB des fichiers d'archivage des sessions (SAFF), lui révélant que l'abonné utilise le service " Mobile Banking ".
Il existe bien entendu de nombreux autres exemples d'utilisation de l'IHM.
Fig. 18 - Exemple d'architecture physique présentant à la fois l'application " MOBILE Banking " et l'IHM
Du point de vue fonctionnel, les trois modules que constituent la Base de données Postgres, le Démon de
connexion avec le serveur WEB et Postgres (démon admindb) et le serveur WEB, communiquent à travers les ports
TCP/IP de la machine sur laquelle ils sont réunis (voir figure 19). Les fichiers CGI du serveur WEB sont codés
en langage Perl et génèrent des pages HTML/Javascript. Certains de ces fichiers exécutent des scripts shell UNIX
pour interroger les MAFF et SAFF (dans le cas de requêtes aboutissant au formatage d'une page WEB de monitoring
des sessions par exemple). Le démon Admindb est codé en langage C et formate des requêtes SQL pour interroger la
base de données Postgres. Durant le développement de l'IHM, une poignée de langages de programmation ont été
utilisés par alternance, diversifiant ainsi la tâche à réaliser. Une vingtaine de requêtes d'interrogation de
la base de données a du être développée (voir Table des requêtes/réponses échangées entre le démon Admindb et
la database Postgres).
Fig. 19 - Architecture fonctionnelle et en couche de l'IHM
Le développement de ces requêtes a nécessité l'établissement d'un protocole de communication entre le démon Admindb
et la base de données Postgres. Des trames sont alors formatées en fonction des informations à aller chercher dans
les tables de la base de données et placées dans la socket établie entre le démon Admindb et la database.
Le déroulement d'une interrogation de la base de données Postgres par un administrateur est le suivant, dans le cas
d'une modification de menu bancaire :
Fig. 21 - Ecran d'accueil de l'IHM
1) L'administrateur commence par se connecter à l'IHM en utilisant son navigateur (Netscape Communicator 4.7 de
préférence). Pour cela, il enregistre l'URL suivante :
http://10.102.68.29:8090/cgi-in/main/index.cgi
Le CGI index.cgi (codé en Perl) du serveur WEB présenté par la figure 19 formate alors la page d'accueil HTML et
l'envoie au navigateur. L'écran d'accueil ci-contre (voir figure 21) apparaît alors et propose à l'administrateur
d'enregistrer son identifiant et son mot de passe. Le code HTML de la page WEB contient des instructions en
Javascript pour s'assurer que les champs d'identification sont bien remplis et retourne ces 2 paramètres au serveur
WEB.
2) Notons que le langage Perl est interprété du côté du serveur WEB. L'exécution de ce CGI génère une page
HTML/Javascript dynamiquement et l'envoie au client. Le navigateur affiche alors la page HTML sans tenir compte
du Javascript. Le Javascript n'est interprété côté navigateur qu'à la suite d'actions de l'administrateur sur la
page HTML (clic du bouton valider par exemple). Les instructions Javascript sont alors déroulées et des boites
de dialogue peuvent apparaître afin de signaler à l'administrateur un champ mal rempli. Le Javascript crée
l' interactivité avec l'administrateur. Si les champs (identifiant d'administrateur et mot de passe) sont
correctement renseignés, ceux-ci sont renvoyés au serveur WEB qui va les utiliser pour authentifier l'administrateur.
3) Pour cela, le CGI index.html envoie une requête d'authentification (code 01) au démon Admindb qui va interroger
la base de données Postgres (voir figure 19). Une requête SQL est alors formatée et adressée à la database.
Celle-ci retourne le profil de l'abonné associé à l'identifiant et au mot de passe ou un message d'erreur au démon
Admindb (s'ils n'existent pas dans les tables ou si l'un des 2 est erroné).
4) A partir de la réponse à la requête SQL par la database, le démon prend la décision d'authentifier au non l'abonné
et renvoie au CGI du serveur WEB soit une réponse d'échec (code 00), soit le profil de l'abonné en cas de succès
(code 01). Dans le second cas, le CGI formate une nouvelle page WEB des services proposés par l'IHM au navigateur
de l'administrateur (voir figure 22).
5) L'administrateur de profil 3 (tout comme celui de profil 2) est habilité à utiliser le service
" Bank administration ". Il va donc pouvoir modifier un menu bancaire en cliquant sur ce lien hypertexte.
Ce lien pointe vers un nouveau CGI admin.cgi responsable de ce service.
Fig. 22 - Menu des services proposés par l'IHM à l'administrateur de profil 3 (" super user ")
6) Le CGI admin.cgi est exécuté du côté du serveur WEB. Ce CGI a besoin de connaître les profils de toutes
les banques enregistrées dans la base de données avant de construire la page HTML/Javascript. Une requête de
profils bancaires (code 05) est adressée au démon Admindb qui formule une requête SQL vers la database et
retourne une réponse contenant les profils bancaires (code 05) au serveur WEB dont le CGI construit alors
la page WEB et la transmet au navigateur de l'administrateur (voir figure 23).
Fig. 23 -Menu " Bank administration "
7) L'administrateur choisit une banque (" IEB " dans l'exemple) pour la modifier. L'identifiant de cette
banque est transmis par le navigateur au CGI du serveur admin.cgi WEB. Connaissant cet identifiant, le CGI
envoie une requête de profil bancaire particulier (code 07) au démon Admindb qui interroge la database. Les
paramètres associés à l'identifiant bancaire sont ensuite utilisés pour formater une nouvelle page HTML/Javascript,
renvoyée aussitôt à l'administrateur (voir figure 24).
Fig. 24 - Modification d'un profil bancaire
8) L'administrateur peut alors enregistrer de nouvelles désignations des items du menu bancaire et les ordonner
différemment voire en supprimer. L'impact de cette opération, une fois validée, est crucial au niveau des téléphones
mobiles car les prochaines sessions ouvertes prendront en compte ce nouvel arrangement (voir Tableau suivant).
Tableau figurant une modification de menu bancaire (ordre et noms des items)
9) Si l'administrateur oublie de remplir des champs ou oublie l'item ordonné à la 5ème position, les instructions
Javascript le lui signalent au moyen de boîtes de dialogue sans que la page WEB ne soit rechargée du serveur WEB
vers le navigateur. Une fois que l'administrateur a validé le nouveau menu bancaire, le nouveau profil bancaire
est transmis au CGI admin.cgi qui transmet les informations au démon Admindb par une requête 08. Le démon Admindb
formate ensuite une requête SQL d' update des champs de la table relative au profil bancaire associé à l'identifiant
bancaire (" IEB "). Si la mise à jour s'est bien passée, la database le signale au démon Admindb qui transmet une
réponse d'état (code 00) au serveur WEB. Le serveur WEB renvoie la page HTML/Javascript du menu
" Bank administration " (voir figure 23) au navigateur avec un flag tel qu'une boîte de dialogue signalera
à l'administrateur que sa modification a bien été prise en compte.
A l'issue de cet exemple (parmi tant d'autres), nous pouvons remarquer plusieurs choses :
- le rôle du démon Admindb peut paraître flou étant donné que sa fonction principale est le forwarding.
En effet, les requêtes SQL pourraient être formatées directement en langage Perl par les CGI. Cependant leur
codage serait beaucoup trop lourd d'une part et peu évolutif au sens où si un jour la base de données migre
de Postgres vers Oracle, tous les CGI seront à ré-écrire. D'autre part, il est possible avec la solution technique
choisie de placer le serveur de base de données et le serveur WEB sur des machines distinctes de celle qui supporte
la plate-forme ASP et donc le démon Admindb.
- Le démon Admindb se voit affecter 2 ports TCP/IP, l'un est ouvert vers la database (port #2) et l'autre vers
le serveur WEB (port #3, voir figure 19). La connexion entre le démon Admindb et le serveur WEB se fait par
l'ouverture d'une socket IP (voir annexe 5). Un démon est par définition un processus fonctionnant continuellement
dont le rôle est ici d' écouter le serveur WEB sur le port numéro 3 et d' interroger la database à l'aide de
requêtes SQL.
- La partie la plus lourde du développement de cette IHM a été le démon Admindb, purement codé en langage C,
l'intérêt étant d'y inclure le langage SQL et de gérer les sockets IP. A contrario, la partie la plus attractive
à développer a été l'ensemble des CGI du serveur WEB Apache qui a demandé un travail supplémentaire de configuration.
L'intérêt du codage de CGI en Perl (ou en PHP, Python et C…) est de mélanger à la fois le langage HTML et Javascript.
De plus cette partie possède une très grande interactivité avec le développeur au sens où ce dernier n'est pas obligé
d'attendre une version compilée de son programme pour le voir fonctionner. Les CGI peuvent être développés et modifiés
pas à pas en formatant et visualisant la page WEB générées par le CGI au bout de quelques lignes de code. Enfin, le
navigateur offre un outil de débogage des instructions Javascript, appelé Console Java.
III.3 - Bilan, critique et perspectives d'évolution
III.3.1 - Bilan : panorama des autres services offerts par l'IHM SMART
Nous n'allons pas ici détailler chaque écran de l'IHM mais les présenterons afin de découvrir d'autres services
offerts par l'IHM tels que l'envoi de messages courts, la création de nouveaux administrateurs, la gestion et
l'analyse des sessions ouvertes entre l'abonné mobile et les applications de la plate-forme ASP, le verrouillage
des applications dans la carte SIM, le changement de MSISDN de l'abonné mobile…
Administration des abonnés (Subscriber menu)
Fig. 25 - Ecran " Subscriber Monitoring"
Fig. 26 - Ecran "Subscriber Administration"
Fig. 27 - Ecran "Message Sending"
Fig. 28 - Ecran "Incident Management"
Administration des services (Service menu)
Fig. 29 - Ecran " Service Monitoring "
Fig. 30 - Ecran "Sessions Monitoring"
Fig. 31 - Ecran "Company Administration"
Fig. 32 - Ecrans "Bank Administration" - Création d'une nouvelle banque
Fig. 33 - Ecran "Service Administration"
Gestion des administrateur utilisant l'IHM (Management menu)
Fig. 34 - Ecran " User Management "
Fig. 35 - Ecran " New Password "
Après avoir dressé un panorama des services offerts par l'IHM, il est clair que de nouveaux services
peuvent être ajoutés à cette IHM. Des services auxquels nous ne pensons pas forcément aujourd'hui mais qui
s'imposerons par eux-mêmes dans les années à venir… La mise en place d'un nouveau service nécessite toutefois
une charge de travail conséquente, au sens ou l'IHM n'est que la partie émergeante de l' " iceberg " qu'est la
plate-forme ASP. Mais l'IHM nécessite d'être soignée au sens où elle demeure le seul élément " vu " par
l'administrateur final. Nous développerons certaines de ces critiques dans le paragraphe suivant et établirons
un bilan du stage.
III.3.2 - Critique
Aspects discutables
Après avoir mené le développement de l'IHM SMART, seul et de bout en bout, retenons tout de même certaines choses.
Tout, d'abord, il faut à tout prie, ne pas oublier une étape essentielle lors de l'arrivée d'un stagiaire ou d'un
employé dans une structure de développement telle qu'une start-up ou une SSII : la formation interne. Celle-ci est
cruciale et détermine tout le travail effectué par la suite. Les premiers jours de ce stage y ont été consacrés.
Par contre, celle-ci s'est transformée en auto-formation au cours des semaines et mois suivant, ce qui n'est pas
problématique lorsque le stagiaire ou l'employé sait faire preuve d'autonomie mais peu le devenir dans le cas
contraire.
Ensuite, une fois intégré à un projet, il ne faut en aucun cas commencer à développer sans définir clairement
le travail à effectuer avec le manager du projet. Un cahier des charges ou des spécifications techniques et
fonctionnelles décrivant tous les modules à développer sont indispensables. Les écrans de l'IHM du projet SMART
ainsi que les protocoles de communication (format des trames) entre les différents modules auraient pu être
définis " noir sur blanc " avant tout développement. Seulement, les deadlines, trop proches, ne nous ont pas
laissées de répit ni de temps pour tout formaliser par écrit. Le temps ainsi gagné a peut-être été perdu par
la suite lors de la phase de tests. Enfin, globalement ces spécifications ont été rédigées (sous forme de
brouillons plus ou moins clairs) avant le développement.
Après avoir abordé les aspects critiques du stage réalisé, voyons les perspectives d'évolution qui
s'en suivent ainsi que les aspects positifs d'une telle expérience en entreprise..
Aspects positifs
Il existe plusieurs manières d'aborder la technologie du SIM Application Toolkit, protocole de communication
entre la carte SIM et l 'équipement radio-mobile qui la supporte. La première consiste à restreindre l'étude au
Hardware et au protocole de communication même (voir annexe 1). C'est typiquement la manière dont le stage a été
abordé, venant d'une formation en réseaux et télécommunications. Une autre manière est de considérer la carte SIM
comme un élément d'une architecture client-serveur, la carte SIM étant le client et la plate-forme ASP le serveur.
C'est typiquement l'approche conduite par un développeur de cursus d'informaticien. Une troisième manière de
considérer le problème est l'approche Marketing, où la carte SIM (et l'abonné GSM) est associée à la demande
et la plate-forme ASP à l'offre en nouveaux services à valeur ajoutée. La plate-forme ASP ou l'ALM, tout comme
la carte SIMphonIC sont alors des produits. Le produit ASP s'adressant aux fournisseurs de contenu et le produit
ALM aux opérateurs GSM. Dans les 3 cas ces approches sont complémentaires et l'une des richesses de ce stage a
été de naviguer parmi ces trois points de vue.
Fort de ce stage d'introduction à la technologie du SIM Application Toolkit (SAT) couplée au service de
messages courts offerts par les réseau GSM (SMS), autorisant le transfert de données (d'une manière générale)
et donc le dialogue entre un abonné radio-mobile et les fournisseurs de contenu (banques, serveurs de news…),
il est intéressant de la confronter à d'autres technologies. Parallèlement à ce stage, la veille technologique
s'est imposée d'elle-même et s'est principalement tournée vers le WAP (Wireless Application Protocole) et le
service I-mode de la filiale japonaise DoCoMo de l'opérateur NTT. Le WAP offre certains services en commun avec
le SAT (serveurs de news…) mais se trouve malheureusement limité par des temps de téléchargement des données
trop longs pour rendre toute navigation aisée. Avec le SAT, les informations sont échangées avec des temps de
transfert négligeables. De plus, le WAP ne permet absolument aucune transaction sécurisée de par sa passerelle,
maillon faible de la chaîne de sécurisation des transactions de bout en bout (end to end). Le service I-mode,
est un champs d'expérimentation, local au Japon, des réseaux de 3ème génération (UMTS). Il offre des services
de diffusion de données audio et vidéo en temps réel, ainsi qu'un mode de facturation au volume et non à la
durée que le SAT et le WAP n'offriront probablement pas (le WAP transmet tout juste des images bitmap). Par
contre ce service repose sur une infrastructure réseau de type PHS (Personnal Handyphone System) différant
fondamentalement du GSM (de par son débit de 64 kbit/s, à comparer aux 13 kbit/s de GSM dans le meilleur
des cas, pour le transfert des données) et rendant toute implémentation en Europe complexe et improbable.
Enfin, afin de standardiser le SAT et le langage de développement Java Card des applets de la carte SIM,
un consortium d'industriels est né : le SIM Alliance. Les 3 technologies évoquées, plutôt complémentaires
que concurrentes, sont donc à surveiller de près…
Un des derniers aspects positifs de ce stage, outre une remarquables introduction aux services à valeur
ajoutée des futurs réseaux de 3ème génération, est la façon dont la technologie du SAT/SMS a été abordée du
point de vue du développement. Le développement d'un Application Controller, d'un Media Driver ou d'un
Session Controller est chose commune dans le département développement de Rapsodia Software. Toutefois,
il s'agit là du cœur de l'ASP (langage C et Unix) ne permettant pas de pratiquer le développement dans
des domaines aussi variés que les IHM et bases de données. L'un des intérêts de ce stage est d'avoir
pu aborder plusieurs domaines du développement informatique tels que l'interrogation de databases
hétérogènes (Postgres, Oracle), le codage en C, les fichiers système UNIX, la programmation orientée
objet avec Javascript, le Perl, le développement en équipe (outil " CVS "), les sockets IP et bien d'autres...
Enfin, la proximité des département Développement et Marketing a fait que ce stage n'était pas articulé
uniquement autour du développement mais également autours de la communication. Ainsi de nombreuses idées ont
pu circuler autours de sujets tels que l'avenir du WAP, l'organisation de forums (Forum Cartes 2000 en octobre
2000), la présentation des produits issus du développement et la façon dont ils ont été " packagés " et
commercialisés… Du point de vue humain, ce stage s'est donc avéré très positif.
III.3.3 - Perspectives d'évolution
De nouveaux services à valeur ajoutée apparaissant chaque mois, il est clair que l'IHM SMART devra un jour ou
l'autre en intégrer certains. Les codes sources, écrits en langage Perl, sont suffisamment modulaires et
organisés en 2 couches (application et communication, pour formatage des trames échangées) de sorte que
la maintenance et la portabilité de l'IHM est totale. A priori, la couche de communication écrite en Perl
côté serveur WEB devrait migrer vers un codage en langage C de sorte que le serveur WEB et le démon Admindb
utilisent tous les 2 une couche de communication écrite en langage C. Ainsi, l'établissement des sockets IP
et le formatage des trames seront réalisés avec des fonctions communes.
Enfin, la plate-forme ASP intègre déjà de nouvelles fonctionnalités telles qu'une émulation de navigateur WAP
(implémenté sous forme d' applet dans la carte SIM et prenant en compte les pages écrites en WML 1.2 mais pas
les images), le Push (diffusion d'informations vers les téléphones mobiles en relation avec la plate-forme ASP),
l'interface bi-fentes du téléphone mobile permettant d'y insérer une carte bancaire et permettant le Paiement par
Carte Bancaire Mobile (PCBM)… La plate-forme ASP développée par la société Rapsodia Software est donc parfaitement
évolutive.
Précédent
Sommaire
Suivant
On line since january 2002 - Do NOT make any copy of this document, please.