Présentation des composants de l'architecture
Architecture en couches d'une application Web interactive, infrastructure et hardware, sécurité
et gestion de la phase opérationnelle
Mis à jour le 08/09/2000 | Imprimer | Envoyer
Architecture en couches d'une application Web interactive
Une couche est une partie de l'architecture des applications qui remplit une fonction précise, comme par
exemple l'ensemble de l'interface avec l'internaute (interface homme-machine).
On définit généralement trois couches:
- la couche présentation de l'information à l'utilisateur,
- la couche application,
- la couche base de données.

La logique complète de l'application (par exemple la mise à disposition en consultation du catalogue
de l'entreprise) est répartie entre chacune de ces couches. La communication entre les couches s'effectue
par des interfaces et des protocoles de préférence standardisés. Chaque couche possède ses propres
fonctionnalités et programmes d'exécution:
- la couche présentation. Elle comporte des modules de mise en page et de présentation ergonomique
de l'information destinée à l'utilisateur final. Les modules (programmes) de présentation (choix des
couleurs d'écrans, animations d'images, présentations des textes,..) se préparent d'une façon
statique ou dynamique sur le serveur et s'exécutent sur le PC de l'utilisateur via l'utilisation d'un browser Logiciel permettant de visualiser les informations du World Wide Web. Techniquement, un web browser est un logiciel client qui utilise le protocole HTTP pour effectuer des requêtes vers un serveur Web, via le réseau Internet
(par exemple Netscape ou Internet Explorer);
- la couche application. Elle comprend les programmes de traitement de l'information (business logic).
Elle est divisée en deux parties complémentaires:
- une partie sur le poste client: elle s'exécute sur le PC de l'utilisateur: elle comprend des petits
programmes (applet Petit programme écrit en langage Java pour fonctionner dans un environnement de navigateur (browser) web. Ces programmes permettent d'ajouter de l'interactivité et de l'animation sur les pages web Java Langage de développement développé par Sun Microsystems. Les programmes Java offrent l'avantage de pouvoir être exécutés sur n'importe quel type d'ordinateur grâce à une machine virtuelle (langage portable) ou du Javascript Langage de script pour navigateurs Web. A ne pas confondre avec Java, même si les deux sont apparentés. De nombreuses pages web contiennent des scripts en javascript qui s'exécutent sur l'ordinateur de l'internaute, par exemple pour vérifier les données entrées dans un formulaire ou pour afficher une date, etc par exemple) de vérification, de contrôle
ou de calcul qui s'exécutent à l'intérieur du browser de l'internaute de manière totalement transparente
(par exemple vérifier le format d'une date, vérifier le format d'un montant introduit par l'utilisateur, vérifier
que tous les éléments d'un formulaire sont remplis avant de les envoyer vers le serveur, etc). On dit que ces
programmes s'exécutent côté client;
- une partie qui s'exécute sur le serveur: elle représente la part la plus importante de
l'application. Dans le cas d'une consultation de catalogue et de commande en ligne, il s'agira par exemple des programmes
qui assurent la réception et le traitement des informations du client, l'accès aux bases de données,
la mise en forme des informations qui seront renvoyées au client, etc. Ces programmes s'exécutent sur le serveur
d'applications. On dit que ces programmes s'exécutent côté serveur. Parmi les techniques
les plus connues, on peut citer des langages de développement comme PHP Technologie permettant la création de sites Web dynamiques. PHP se pose en concurrent de technologies telles que ASP et ASP.net (Microsoft) ou encore JSP et Java (Sun). Très en vogue dans le monde du logiciel libre, PHP est le plus souvent associé au système d'exploitation Linux, au serveur Web Apache et à la base de données MySQL, Coldfusion Technologie de production de pages web dynamiques (accès base de données, etc.) commercialisée par la firme Macromedia. Coldfusion est notamment utilisé pour la conception de sites d'e-commerce. Il est le concurrent d'autres technologies telles que: PHP, ASP ou ASP.net, JSP, etc., ASP Extension du serveur web de Windows NT permettant d'exécuter des scripts (petits programmes) sur le serveur. L'application web est ainsi compatible avec tous les browsers,
JSP Technologie lancée par Sun pour développer des applications Web interactives, c'est-à-dire dont le contenu est dynamique. Les JSP sont basées sur le langage Java côté serveur. Elles sont concurrentes des langages de scripts côté serveur comme ASP, Coldfusion ou PHP ou encore des environnements de développement intégrés de grands constructeurs comme IBM,
Oracle, etc.;
- la couche base de données. Elle comprend la logique d'accès, de maintenance et de traitement
des informations comprises dans les bases de données. Ce serveur de bases de données peut résider sur
un serveur physique partagé avec la couche d'applications ou un serveur physique propre, en fonction de la charge de
travail. La liaison entre les différents serveurs physiques s'effectue généralement via un réseau
intranet La partie sécurisée d'un réseau d'entreprise utilisée pour partager et/ou diffuser des informations à usage interne à l'aide du web, mail, etc.
Infrastructure et Hardware
Le réseau Internet constituera l'infrastructure de communication. Le point d'entrée est le fournisseur
de services Internet sélectionné par l'entreprise: ISP, Internet Service Provider.
L'utilisateur individuel ou l'entreprise n'ont pas d'influence sur l'architecture du réseau Internet. Ils peuvent
simplement utiliser les services offerts par un ISP et bâtir leur architecture sur ces services. Le choix d'un ISP peut
s'effectuer en évaluant un certain nombre de critères comme les services disponibles, les performances, la qualité
du service d'aide en ligne, etc.
Les serveurs d'applications seront hébergés, soit chez l'ISP, soit au sein même de l'entreprise, faisant
alors partie de l'infrastructure informatique de l'entreprise, le plus souvent intégrés à l'intranet.
La sécurité
La sécurité doit être assurée de bout en bout en couvrant l'ensemble de la solution,
partant du principe qu'une chaîne est aussi résistante que son maillon le plus faible. Tous les éléments
de la solution doivent être pris en considération, depuis l'utilisateur à son poste de travail jusqu'à
la base de données. L'architecture de la solution de sécurité doit couvrir les éléments
suivants:
- authentification: la détermination de l'identité de l'interlocuteur;
- intégrité: l'assurance que l'information stockée ou transmise est inaltérée;
- confidentialité: la divulgation des informations à des personnes ou des systèmes;
- autorisation: la permission de faire ou d'accéder à quelque chose;
- non-répudiation: la protection contre la négation d'une action accomplie;
- traçabilité: la reconstitution d'événements;
- intrusion: les accès non autorisés;
- protection physique: la protection contre le vol, les éléments naturels (feu, dégâts
des eaux, etc.);
- gestion: la gestion des procédures de sécurité, des ressources humaines et machines
impliquées. Cette gestion concerne qui fait quoi, quand, comment et avec quelles ressources.
La gestion de la phase opérationnelle
La vie d'une solution web interactive commence avec sa mise à disposition des utilisateurs. A partir de
ce moment le système doit fonctionner:
- selon les objectifs de résultats, de qualité, de services (objectifs définis au moment de la conception),
- sans interruption pendant les heures prévues, c'est-à-dire de 8 heures par jour et 5 jours par semaine
à 24 heures sur 24 et 7 jours sur 7, selon les besoins.
La gestion de cette phase opérationnelle doit également faire l'objet d'une architecture, en même
tant que la solution elle-même car les outils qui permettent la gestion sont intimement liés ou intégrés
à l'application. Elle doit couvrir:
- les mises à jour des logiciels et des applications;
- les modifications de matériels;
- les performances du système global;
- les mises à jour et sauvegardes des bases de données;
- les solutions de back-up et solutions temporaires durant les pannes;
- l'aide, la communication et la formation pour les utilisateurs;
- l'utilisation des ressources du système dans un but comptable;
- la documentation.
- la gestion demande la définition et la mise en uvre:
- d'outils hardware et logiciels,
- de procédures,
- de ressources humaines.
Le coût de cette gestion ne peut être négliger par rapport au coût global.