Moraphi.com

Curriculum Vitae

Indus

Wap sous PDA

Wap sous PDA

Stage Technique

Après la troisième ou la quatrième année du cursus ESIEA, chaque élève doit effectuer un stage, d'une durée minimum d'un mois, et à caractère technique.

Ce stage, j'ai dès le début choisi de le faire dans les technologies de l'internet. En effet, passionné de design et créateur de quelques sites web, personnels ou pour l'école, je me voyais naturellement destiné à faire mon stage dans ce milieu. C'est un milieu passionnant, sans cesse changeant et à la pointe de la modernité.

 

Internet représente d'autre part aujourd'hui un moyen formidable pour une entreprise de se faire connaître facilement du grand public, elle et ses produits. Cela représente un tel enjeu commercial que beaucoup d'entreprises ont déjà franchit le pas ou comptent le faire.

A savoir

Dates: juillet - août 2001.

Durée: 2 mois.

Langages de programmation: php   mysql   SQL, PL-SQL, WML.

Autres éléments: WAP, Apache, Xitami.

L'entreprise

Indus International est une entreprise spécialisée dans la maintenance (préventive principalement), et propose des outils adaptés aux besoins de ses clients: Indus International est très connu pour une de ses applications phares: Entreprise MPAC (EMPAC). Il s'agit d'un logiciel d'aide à la maintenance et de Gestion des Actifs (Enterprise Asset Management ou EAM); les actifs d'une entreprise représentant les divers éléments qui lui permettent de travailler : les bâtiments, les équipements, les pièces détachées, ... Ce logiciel a pour but d'optimiser cette gestion, pour limiter les coûts, accroître la capacité de production et la rentabilité globale de l'entreprise.

Mon travail

Le but de mon stage était de porter cette énorme application vers l'internet mobile, de manière à ce qu'un technicien en déplacement puisse assurer un suivit des tâches à effectuer.

La première chose à faire: simplifier au maximum les écrans de EMPAC pour qu'ils puissent être affichés sur un tout petit écran (les téléphones portables étaient la manière la plus simple d'accéder à des solutions d'internet mobile à l'époque, et leur écran était ridiculement petit, mis à part quelques rares exceptions). Une première proposition de projet avait été réalisée par le suiveur de mon stage, et voici le scénario qui avait été retenu:

  • Demande d'intervention à partir d'un poste fixe EMPAC.
  • Réception, par le technicien concerné, d'un SMS avec message prévenant d'une nouvelle demande de travail.
  • Le technicien se connecte et consulte la liste des demandes d'intervention via un terminal WAP.
  • Le technicien consulte la demande qu'il doit traiter et se déconnecte.
  • Le technicien procède à l'intervention.
  • Le technicien se connecte et clôture la demande en remplissant le compte rendu.

 

Réseau WAP

 

La première phase s'est donc déroulée sur papier uniquement: il s'agissait de définir le but exact du projet, les premières grandes lignes de son architecture, et de planifier les étapes successives. J'ai moi-même écrit un rapport de projet en reprenant les bases de la première version, mais en y ajoutant des éléments plus concrets; des écrans possibles de la future application, aux besoins matériels par exemple.

 

Est ensuite venue la phase de programmation: j'ai choisi le langage PHP pour sa grande souplesse et ses qualités de robustesse et de rapidité. Il permet de générer des pages WML sans problème, pages lues par un émulateur WAP.

Les bases de données qui constituent l'application EMPAC sont sous Oracle, et il m'a donc fallut utiliser les fonctions spécifiques à PHP pour Oracle.

 

J'ai d'abord programmé une version de l'application qui ne faisait qu'aller chercher des informations dans les bases, sans y effectuer le moindre changement: EMPAC est complexe, et s'il n'est pas très compliqué d'en extraire des informations (encore faut-il savoir où les trouver), y insérer ou mettre à jour des données n'est pas aussi aisé, car des centaines de variables entrent en jeu, et modifier une donnée sans en vérifier cinquante autres à côté pourrait entraîner des erreurs dans le logiciel par la suite.

Ces opérations font alors appel à des packages (avec des procédures écrites en PL-SQL), qui se chargent de faire toutes les opérations concurrentes à celle que l'on veut exécuter. Ces packages sont assez compliqués aussi, et il m'a fallut en créer de nouveaux, répondant mieux aux besoins d'une application réduite.

Résultats

Une fois le prototype terminé et rigoureusement testé en local, il était temps de le tester sur le terrain. C'est munis d'un téléphone WAP que nous devions enfin voir si l'application était conforme à ce que voulait l'entreprise. En effet, un émulateur est loin de se comporter comme peut le faire un vrai téléphone WAP. Sans cette étape, il était impossible de valider l'application EMPAC Mobile.

 

Réseau WAP

 

Nous avions presque tous les éléments nécessaires à ce test grandeur nature. Seuls manquaient une passerelle WAP (WAP Gateway en anglais), et le téléphone WAP. Indus a alors du faire la commande d'un tel téléphone, et nous nous sommes servi du Nokia Activ Server et d'autres passerelles WAP.

 

Lors des tests grandeur nature, nous nous sommes rendu compte que l'application était beaucoup plus lente que lors des tests en local. Cette observation est évidente, étant donné que l'information doit parcourir un chemin beaucoup plus long, et qu'elle subit de multiples transformations (au niveau de la passerelle WAP et du serveur de l'opérateur mobile).

 

Nous avons aussi rencontré des problèmes à cause de la mémoire du téléphone: chaque téléphone possède une mémoire différente, et elle est toujours très réduite. Lors d'affichage de listes, la mémoire pouvait être saturée, et alors s'affichait une erreur fatale sur l'écran du mobile.

 

Il a fallut de nouveau faire quelques modifications du code pour que l'application fonctionne sur un mobile : réduire le nombre d'éléments affichés, modifier des données pour qu'elles soient compatibles avec le téléphone (par exemple le signe "&" provoquait une erreur, il a fallut le remplacer par le signe "&"...), etc.

Présentations

Peu avant la fin de l'échéance de mon stage, il m'a été demandé de faire part au reste de l'entreprise du travail réalisé. J'ai pour cela réalisé une présentation sous Powerpoint, qui reprenait les grands points de mon travail: la raison initiale du projet, son but, et quelques aspects techniques. Cette présentation était donc constituée d'une première partie présentation générale, puis d'une démonstration du logiciel.

J'ai réalisé deux fois cette présentation: une fois aux employés de l'entreprise, et une autre fois au Président de Indus International. Chaque présentation a été un succès, et cela m'a permis de faire valoir mon travail. C'est gratifiant, et toujours enrichissant de parler en public.

Conclusion

Cette dernière phase réalisée, il ne me restait plus qu'à modifier de petits détails dans l'application, et j'avais alors mené à bien mon stage.

Ce stage m'a permis de mieux me rendre compte du fonctionnement interne d'une entreprise. Indus International n'est pas une entreprise grand public, et ne travaille pas avec des particuliers (seulement avec de grosses, voire très grosses entreprises). Je n'avais pas de contact direct avec des clients, car j'ai travaillé sur un prototype, et j'ai fait partie d'une équipe de développement, pas d'une équipe commerciale ou de support...

 

Faisant intervenir un grand nombre de technologies dans un seul et même projet, ce stage m'a apporté un enrichissement technique assez important: PHP, WAP, WML, HTML, Oracle, SQL, PL-SQL, administration de serveurs Apache et Xitami, configuration des types MIME, etc...

J'avais déjà réalisé des sites internet, mais jamais en WAP. Ce format n'est pas aussi laxiste que le HTML, et la moindre erreur est fatale à l'affichage d'une page. Ce qui peut être très frustrant (on sait qu'il y a une erreur, mais on ne sait pas du tout où), mais qui oblige à beaucoup de rigueur.

J'ai donc aussi appris de nouvelles méthodes de programmation et surtout de débuguage.