PARTIE 3 : Mise en Place du Système /
Implémentation de la
Solution
Chapitre 5 : Choix des Outils et des Technologies
d'Implémentation
V.1 Les plateformes applicatives
Une plate-forme applicative se présente sous la forme
d'une suite logicielle comprenant l'ensemble des briques nécessaires au
déploiement d'une application client/serveur de haut niveau à
savoir : une application ou plusieurs applications serveur accessibles -
généralement en mode Web - depuis des postes de travail ou des
terminaux Internet. A chaque élément de la suite son rôle
:
· Le serveur d'applications
Gère le noyau de l'application avec pour objectif central
de répondre aux requêtes des utilisateurs s'y connectant.
· Le serveur de données
Stocke l'ensemble des données métier et techniques
nécessaires au bon fonctionnement de l'application.
· L'infrastructure de portail
A pour but d'orchestrer les droits d'utilisation de
l'application et de gérer la personnalisation des données et des
accès fonctionnels.
· Le serveur
d'intégration
Prend en charge les éventuels flux de données ou
composants à prendre en compte, en provenance d'autres serveurs
d'applications ou systèmes.
Dans ce domaine, deux architectures sophistiquées
mènent une rude bataille. Il s'agit de J2EE (pour Java 2 Enterprise
Edition) et .Net. Cependant la combinaison Apache/Mysql/PHP, adossée
à un système d'exploitation, brille aussi de mille feux.
1. L'architecture J2EE
Lancé par Sun en 1998, autour du langage Java, il
s'articule autour d'une infrastructure standardisée, couvrant les
principales couches d'une plate-forme applicative (serveur d'applications,
infrastructure de portail et serveur d'intégration), ainsi que les liens
avec la base de données (ou persistance). J2EE est aujourd'hui
implémenté par les principaux éditeurs de serveurs
d'applications du marché, parmi lesquels on compte IBM, Oracle et
BEA.
J2EE est portable d'un système d'exploitation à
l'autre. Un point fort qui, dès l'origine, a été mis en
avant par Sun comme l'une des principales valeurs ajoutées de son
infrastructure.
Initialement, Java a d'ailleurs été
élaboré pour répondre précisément à
cet enjeu. Dans la même logique, J2EE facilite également le
portage d'une application Java entre serveurs d'applications, pour peu que ces
derniers répondent aux spécifications définies par Sun
dans ce cadre.
2. La plateforme .Net
Le modèle .Net (lire DotNet) a été
lancé par Microsoft en 2001 en réponse à J2EE. Cette
plate-forme, rebaptisée en 2003 Windows Server System, s'adosse à
la manière de J2EE à une logique de développement et de
déploiement de nouvelle génération (orientée
objets). Son principal point fort : aussi structurante et riche
fonctionnellement que son équivalent Java, elle n'en offrirait pas moins
une approche de travail beaucoup plus simple. Basé sur C#, .Net offre un
autre avantage de taille sur J2EE : son noyau permet d'exécuter des
applications développées dans n'importe quel langage, à
partir du moment où Microsoft a décidé de le supporter.
C'est notamment le cas avec le Python ou encore le Cobol.
Cependant c'est une plateforme trop propriétaire et ne
tourne que sous Windows.
3. Les environnements basés sur AMP
PHP est un langage de scripts. Il est
interprété, par conséquent il ne nécessite pas
d'être compilé pour obtenir un objet, un exécutable avant
d'être utilisable (comme en C par exemple).
PHP est un module supporté par le serveur web frontal
Apache, le plus répandu dans le monde (plus de 70% des
serveurs web), il est donc développé pour être facilement
utilisable via ce serveur et s'interface très facilement à
MySQL.
Suivant le système d'exploitation utilisé qui
assure l'attribution des ressources aux autres composants de la plateforme, on
parle de LAMP, WAMP, MAMP, SAMP respectivement pour Linux, Windows, Macintosh,
Solaris.
4. Interopérabilité J2EE, .NET,
PHP
Offrir davantage d'ouverture et de compatibilité entre
systèmes informatiques est depuis longtemps un secteur en constante
évolution.
L'avènement des technologies Internet n'a fait
qu'étendre ce vieux concept à des applications distribuées
au delà d'un réseau d'entreprise. Le secteur économique
des TIC (Technologies de l'Information et de la Communication) est bien
évidemment à l'écoute de ce genre de problématique
car fournir des services informatiques intégrables directement, et de
manière transparente, au sein de SI existants intéresse
nécessairement des acteurs, existants ou futurs, de ce marché.
Dans l'absolu, l'interopérabilité consiste
à utiliser conjointement des fonctionnalités d'applications
basées sur des technologies différentes (J2EE, .NET, PHP, C++,
etc.). Une des motivations peut provenir de la volonté de consommer
depuis ses applications des services métier gérés par des
partenaires externes (opérateurs, établissements bancaires,
etc.). C'est un dialogue bilatéral entre deux systèmes.
Le véritable objectif est alors de permettre cette
interopérabilité le plus simplement possible, en abstrayant
à la fois aux utilisateurs finaux et aux développeurs la
complexité et la diversité des environnements.
L'administration technique du SI ne doit cependant pas s'en
trouver complexifiée outre mesure. Il est important que les
équipes responsables de cette administration puissent facilement prendre
le contrôle et gérer ces solutions.
Prenons l'exemple de notre application de MTicketing qui a besoin
de communiquer avec le SI de l'opérateur et, par moment, avec les
établissements bancaires.
Au delà de simples appels de fonctions sur des
applications de ces différents SI, des besoins de sécurité
(paiement en ligne), de gestion transactionnelle (réservation) ainsi que
de transmission de données « brutes » (le code barre en image)
doivent être gérés. Et tout cela de la manière la
plus transparente possible et avec la plus grande facilité
d'administration !
V.2 Les plateformes de développement pour clients
mobiles
La bataille que se livre actuellement Sun et Microsoft au
sujet des environnements de développement a un impact direct sur les
plateformes embarquées proposées de part et d'autre. D'un
coté, Sun propose Java 2 Micro Edition (J2ME) à
travers son architecture J2SE, et de l'autre, Microsoft
propose Smart Device Extensions (SDE) basé sur sa
plate-forme .NET. Si jusqu'au début du
millénaire, ce marché était essentiellement
représenté par des acteurs très spécifiques de
l'embarqué autour de multiples technologies propriétaires, il
semble acquis aujourd'hui, à la lueur des évènements, que
ces deux leaders mondiaux du logiciel que sont Microsoft et Sun seront à
l'origine des prochaines générations de plateformes
embarquées. Ce recentrage autour de Java et
.NET ne sera pas sans effets. D'une part, l'utilisation de
technologies standards et largement adoptées par l'industrie va tendre
à réduire les risques d'enfermement technologiques et
pérenniser les investissements. D'autre part, cela aura un impact
indéniable en termes de réduction des coûts car les outils,
les compétences et les architectures matérielles se
résumeront à ces deux plateformes maîtrisées. Il va
de soi que le mieux placé sur le terrain des outils de
développement aura un avantage indéniable sur celui de la
production.
A partir de ce constat, nous avons choisi de nous attarder les
deux solutions prédominantes du moment. Dans un premier temps, nous nous
attacherons à présenter les deux architectures concurrentes, puis
nous porterons notre choix sur l'une d'elles que nous présenterons plus
en détail.
La mise en place d'une plate-forme technique commune à
tous les périphériques est une opération très
délicate. Chaque appareil possède des spécificités
qui obligent les applications à s'adapter à différentes
caractéristiques d'affichage ou de pointage. Microsoft et Sun n'ont pas
du tout la même approche concernant ce problème. Si J2ME s'attache
à unifier par le biais d'APIs les différents
types d'appareils, Microsoft préfère proposer un ensemble de
briques logicielles dans le cadre de son système d'exploitation
embarqué : Windows CE.
La liste suivante démontre la variété des
terminaux ciblés par les deux plate-formes :
· Téléphone cellulaire, Smartphone (Nokia,
Ericsson, Alcatel, Siemens, ...)
· Assistant personnel, PDA (Palm Pilot, PocketPC, ...)
· Appareil d'imagerie numérique (Caméscope
numérique, Appareils photo numérique, ...)
· Appareil automatique industriel (Robot dans une
chaîne d'usinage, Affichage embarqué dans les automobiles,...)
· Appareil de paiement, Web Pad, Windows Thin Client,
...
Toute la difficulté de concevoir des technologies pour
l'embarqué réside dans cette complexité inhérente
à la diversité de l'offre. Nous verrons que cela aura un impact
important sur la conception interne des environnements proposés de part
et d'autre.
V.2.1 L'architecture Java 2 Micro Edition
(J2ME)
|