Fiche de l'awt Architecture des solutions Web Interactives La définition de l'architecture, en fonction des besoins et objectifs de l'entreprise, est le premier pas dans l'élaboration d'une solution Web interactive Créée le 08/09/00 Modifiée le 08/09/00
1. Présentation de la fiche La définition de l'architecture, en fonction des besoins et objectifs de l'entreprise, est le premier pas dans l'élaboration d'une solution Web interactive Dans le monde des technologies de l'informatique et des télécommunications, le terme architecture définit à la fois les directions à prendre pour: la réalisation de projets à court, moyen ou long termes, la structure générale des solutions à mettre en oeuvre, le cadre des travaux à réaliser. Cette fiche présente les 4 niveaux principaux d'une architecture. 1.1. Autres fiches à consulter Transaction électronique Qu'est-ce qu'une transaction électronique (du point de vue de l'utilisateur et des télécommunications). Définition et exemples création le 15/04/00 dernière modification le 28/03/00 Qu'est-ce qu'un Intranet? Présentation d'une ressource technologique indispensable aux entreprises: définition, utilité, composants, facteurs de réussite et schéma explicatif création le 15/04/00 dernière modification le 13/04/00 La sécurité informatique La sécurité informatique est essentielle pour l'entreprise, particulièrement dans le contexte de l'e-business: définition, dangers, coûts, outils disponibles création le 15/04/00 dernière modification le 15/04/00 Principes d'élaboration de solutions Web interactives Présentation des principales catégories d'applications Internet et des composants standards d'une application Web interactive création le 02/08/00 dernière modification le 05/02/01 La communication via le réseau Internet Comment se déroule une communication d'informations sur le réseau Internet? Descriptions des éléments logiciels et matériels, présentation des différentes couches et rôle des ISP création le 28/11/00 dernière modification le 27/02/03
2. Définition, qualités et composants d'une architecture Définition de l'architecture d'une solution Web interactive. Présentation des composants (applications Web interactives structurées en trois couches, hardware, sécurité, gestion opérationnelle) 2.1. Définition Une architecture est un modèle générique et conceptuel qui se rapporte à un sujet déterminé (par exemple la stratégie de développement à long terme, le réseau de télécommunications, les applications interactives sur le web, les bases de données) et qui représente la fonctionnalité, la structure, le positionnement, l'interrelation des différents types d'éléments (hardware, logiciels, infrastructure) qui la composent. Une architecture peut être: générique ou de référence: la même architecture peut être utilisée pour concevoir différents types d'applications (par exemple un projet de commerce électronique, une application Web-EDI, etc.); propre à un seul projet (par exemple l'architecture d'un microprocesseur); propre à une stratégie particulière de développement d'applications informatiques. Dans ce cas, l'architecture sera essentiellement un cadre de développement. La conception de la solution et le développement d'une application s'effectueront en respectant l'architecture définie. 2.2. Les qualités d'une bonne architecture Une architecture doit d'être: pérenne: être applicable durant une très longue période de temps et accepter des changements technologiques ou fonctionnels tout en protégeant les investissements réalisés. L'utilisation des standards technologiques (tels que TCP/IP, SQL par exemple) est un des éléments qui assurera cette protection; modulaire: un élément peut être remplacé ou modifié sans devoir changer toute l'architecture (par exemple on remplace un module de télécommunication ISDN par un module ADSL tout en conservant les mêmes applications); ouverte: elle doit permettre de construire ou de modifier une solution à partir de composants provenant de différents constructeurs (par exemple remplacer un composant du fournisseur X par un composant du fournisseur Y dans un système existant sans modification majeure et à un coût minimum). 2.3. Les composants de l'architecture L'architecture d'une solution Web interactive se décompose en quatre parties, les architectures: des applications Web interactives structurées en trois couches (présentation, application et bases de données), du hardware, de l'infrastructure de l'intranet et de l'infrastructure proposée par l'isp, de la sécurité, de la gestion de l'ensemble et de la phase opérationnelle.
3. 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 3.1. 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 (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: o une partie sur le poste client: elle s'exécute sur le PC de l'utilisateur: elle comprend des petits programmes (applet Java ou du Javascript 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; o 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, Coldfusion, ASP, JSP 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. 3.2. 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. 3.3. 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.
3.4. 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: o d'outils hardware et logiciels, o de procédures, o de ressources humaines. Le coût de cette gestion ne peut être négliger par rapport au coût global.
4. Exemple, avantages et rôle de l'architecte Exemple d'application multi-couches (présentation, applicative, base de données) et avantages des couches indépendantes. Rôle et compétences de l'architecte 4.1. Exemple d'application multi-couches 4.2. Avantages Une architecture en couches indépendantes offre les avantages suivants: lors du développement: l'application peut être découpée en parties indépendantes et programmables séparément, en parallèle et par différents programmeurs. Il en résulte un temps de développement plus court; lors des périodes de tests: chaque partie peut être testée de façon indépendante et en parallèle. Il n'est pas nécessaire d'attendre la fin de toutes les programmations pour débuter les tests; lors de dépannages: l'indépendance entre les couches et l'existence de protocoles permet plus facilement d'isoler un problème en déterminant dans quelle couche il se pose; lors des mises à jour ou de modifications de logiciels: on ne modifie que la couche concernée sans danger de modifier accidentellement les autres; lors des modifications d'infrastructure requises suite à une croissance de volume pendant les périodes d'exploitation: une architecture ouverte permet le changement de hardware ou un changement de la répartition des couches sur différents serveurs sans modifications majeures; lors de l'introduction de changements de technologie: les changements ne s'effectuent que dans la couche concernée. Les investissements effectués en logiciels, développements et matériels sont protégés.
Une couche peut elle même être découpée en sous-couches, ce qui offrira à un niveau plus précis encore les mêmes avantages que ceux précédemment cités. Travailler en utilisant le principe d'architecture en couches indépendantes à tous les niveaux est une discipline de conception et de développement d'applications. Le choix d'architecture peut effectuer en se basant sur des architectures existantes ou, dans le cadre d'un projet spécifique, il peut être nécessaire de construire sa propre architecture. Dans tous les cas, il est recommandé de travailler de façon structurée et de ne pas s'écarter des standards informatiques et de télécommunications. 4.3. L'architecte Différents types de compétences sont disponibles dans le monde informatique: programmeurs, analystes, opérateurs, webmasters, stratèges, etc. La compétence d'architecte de réseaux, de bases de données,... est reconnue. Elle s'acquiert dans les grandes écoles, universités ou par la pratique sur le terrain. Les sociétés de consultance proposent souvent de type de services. Agence Wallonne des Télécommunications Avenue de Stassart 16 à 5000 Namur - Belgium www.awt.be - info@awt.be