suivant: Conception en UML et
monter: Intranet en architecture trois-tiers
précédent: Choix d'une architecture trois-tiers
  Table des matières
Sous-sections
Nous avons donc vu ce qu'est une architecture trois-tiers ainsi que ses avantages.
Nous allons maintenant présenter les choix techniques effectués pour la réalisation
de cette architecture.
En fait, il existe actuellement plusieurs solutions permettant ce type d'architecture.
Ces technologies possèdent chacune leurs avantages et leurs inconvénients.
On peut ainsi construire un système multi-tiers basé uniquement sur des technologies
Microsoft comme ODBC, ASP, SQL Server... Ces technologies sont relativement efficaces
mais ont pour principal inconvénient de n'être pas du tout portables.
Kallisto utilise également des technologies spécifiques à Oracle basées sur Oracle
Application Server, le serveur applicatif d'Oracle. Cette technologie est
particulièrement efficace car elle permet de n'utiliser que des API natives à
Oracle. Toutefois les systèmes développés avec ces outils ne pourront pas fonctionner
avec autre chose. Cet inconvénient n'est pas obligatoirement important
puisqu' Oracle fonctionne tout de même sur un grand nombre de systèmes (la plupart
des UNIX et Windows).
La solution choisie ici est basée sur le langage JAVA. Elle utilise une base de données
Oracle, un serveur applicatif compatible J2EE nommé WebLogic, et un navigateur web
comme client. Le JAVA étant un langage 100% portable, le développement du système
ne dépendra absolument pas de la machine sur laquelle il fonctionnera. De plus
WebLogic suivant les dernières spécifications de J2EE, les développements
réalisés pourront fonctionner sur de nombreux autres serveurs applicatifs.
Afin de stocker les données il fallait également une base de données. La société
Kallisto étant spécialisée dans les bases Oracle, ce choix s'imposait. J'ai
d'ailleurs pu profiter
d'une formation interne dispensée la semaine de mon arrivée par un expert Oracle (10 ans d'expérience).
Oracle est un système de gestion de base de données relationnelle très connu. Il est
réputé pour être performant, fiable,... Oracle est en fait la référence en matière
de base de données relationnelle. Les possibilités d'administration sont importantes
et permettent de gérer des bases de tailles importantes (ce qui n'est pas primordial
dans notre cas).
Java 2 Enterprise Edition (J2EE)
Le langage JAVA est un langage objet qui présente de nombreux avantages. Le premier d'entre eux
est de supporter les notions de la programmation orienté-objet (encapsulation, héritage, classe,
objet). Il permet une programmation relativement simple sans se préocuper de notions complexes
présentes en C++ (indirection de pointeurs, fonctions virtuelles,...). Mais ces intérêts sont
relativement mineurs comparés à l'apport que représente les interfaces de programmation
standardisés proposées par Sun. Ces interfaces, couplées à la compilation en un ByteCode
éxecutable sur une machine virtuelle, donnent aux applications un niveau de portabilité
maximale.
Dans notre cas nous sommes intéressés par le développement d'une application
Intranet utilisant des accès à une base de données. Il existe en JAVA un grand nombre d'API
destinées à réaliser ce type de programmation et regroupées sous le terme J2EE (Java 2 Enterprise
Edition). Ces API forment ce qu'on nomme un Framework. Il s'agit de proposer des interfaces
guidant le développeur vers une architecture prédéterminée. On profite donc à la fois d'un
ensemble d'outils indispensables au développement mais aussi d'un guide pour l'élaboration
d'une méthode de développement. Ce guide reste suffisamment flexible pour nous permettre
d'adapter la structure de notre application à nos besoins.
L'objectif majeur de J2EE est la réalisation d'applications en architecture distribuée.
Les technologies JAVA intégrées dans cette plate-forme sont:
- Enterprise JavaBeans (EJB)
- Common Object Request Broker Architecture (CORBA)
- Java Servlets 2.1
- Java Server Pages 1.1 (JSP)
- Java Message Service (JMS)
- Java Transaction API (JTA)
- JavaMail 1.1
- Java Database Connectivity 2.0 (JDBC)
- Java Naming and Directory Interface 1.2 (JNDI)
- eXtensible Markup Language (XML)
BEA WebLogic Server
Afin de supporter les différentes technologies JAVA utilisées, il était nécessaire
d'utiliser un serveur spécifique. En effet le SDK J2EE fournit par SUN ne permet
pas une
utilisation commerciale mais uniquement d'effectuer le prototypage du système.
Il convient
donc d'utiliser un serveur d'application commercial de notre choix.
Plusieurs serveurs sont disponibles sur le marché gérant tout ou partie de
l'interface
J2EE (ils gèrent tous au minimum les servlets et les JSP):
Orion (Evermind Data), JRun (Allaire),
tomcat (Apache), WebLogic(BEA), WebSphere (IBM),...
Dans le cadre d'un partenariat avec BEA le serveur
WebLogic a été naturellement choisi. Ce serveur gère intégralement l'interface
Java 2 Entreprise Edition (J2EE).
Il dispose d'une interface d'administration par
HTTP (applet JAVA + pages DHTML). Il permet un déploiement à chaud des différents
éléments de l'application (pages JSP, fichiers .class). Il suffit donc de déposer
au bon endroit les fichiers en question pour que le serveur prenne en compte les
modifications et les répercutent sur les demande des clients. Cette possibilité
facilite énormément le développement. En effet sans cette possibilité il serait
nécessaire d'arrêter le serveur après chaque modification et donc pour chaque test
du code.
L'avènement de l'Internet a permis ces dernières années la diffusion massive de
navigateurs supportant les technologies qui forment le fondement de l'Internet.
Il s'agit tout d'abord du protocole http pour la partie réseau. Ce protocole
fonctionne par l'utilisation de requêtes auxquelles le serveur répond par l'envoi
d'une page qui classiquement est une page HTML.
Le langage HTML est donc la deuxième pierre de la programmation coté client.
Ce langage permet de gérer la présentation sur le client. Il donne également
à l'utilisateur la possibilité de transmettre des informations au serveur
à utilisant des formulaires.
Ce langage est toutefois insuffisant car il ne permet aucune vérification sur
la validité des données transmises par l'utilisateur. Pour gérer ce problème,
deux langages sont à notre disposition: le JavaScript et le VBScript. Nous utilisons
le JavaScript afin de rester cohérent avec le développement java effectué coté
serveur. Ce langage nous permettra par exemple de vérifier la syntaxe d'une date entrée
dans un champ texte.
Ces trois technologies sont suffisantes pour permettre l'élaboration du système
coté client. Le code nécessaire au système client est diffusé par le serveur web
à chaque requête du client. Il n'est alors plus nécessaire de déployer d'applications
sur le poste client. Le navigateur web fait donc office de client universel grâce à
sa capacité à traiter le HTML, le Java script et le protocole http.
suivant: Conception en UML et
monter: Intranet en architecture trois-tiers
précédent: Choix d'une architecture trois-tiers
  Table des matières
cedric Babault
2002-01-20