1 - Architecture Internet Introduction Les concepts Modèles N-Tiers Les composants Rôle et Fonctionnement Les serveurs d ’applications Le modèle J2EE Intégration d’applications - EAI Les offres
En guise d ’introduction UML Objets Préoccupation ‘ architecture ’ Architecture WEB Intranet - Extranet Quelques points de repères ? composants . NET JAVA CORBA XML EJB 1
Les préoccupations ... Nouveau business - model : Les points chauds : Accélération des traitements du Batch au WEB - transactionnel Multi-sources, multi destinations du Document au WEB/XML/WAP ... Les points chauds : Évolution du S.I. : multi-composants (ERP, CRM, ... Composant factory) évolution des échanges et modèles d’intégration (EAI / ETL) Évolution des Architectures Corba, COM, J2EE ... Déploiement des postes clients / Internet - Intranet - Extranet Évolution des modèles de conception maturité du concept et solutions ‘OBJET ’ 1
Modèles d’architecture Du Client/Serveur au ... ... modèle N/Tiers 1
Historique , le C/S mais c’est très simple ... Main Frame Main Frame Main Frame Main Frame Serveurs Réseaux Réseaux Informatique Personnelle ? Terminal passif PC non connectés PC connectés Poste Client 1
2001 ... Un modèle multi serveurs - multi terminal Main Frame Réseaux de l’E. Réseaux Externes Serveurs applications Serveurs ... Serveurs de publication Client UNIVERSEL 1
Les modèles N-Tiers WEB serveur Serveurs Applications Présentation Logique Métier Intégration
Objectifs Poste client universel Implantation de la logique métier Poste léger Pas de déploiement Multi support Implantation de la logique métier Développement composants Intégration avec l’existant Middleware / EAI / moniteur TP Connecteurs (ERP, CRM, SGBD,...) EVOLUTIVITE REUTILISABILITE PERFORMANCE & FIABILITE 1
Le fonctionnement Pourquoi faire ? ... du plus simple au plus complexe Serveur Legacy Scripts Pages Accès SGBD Accès Annuaire Annuaire Données entreprise Applications Pourquoi faire ? ... du plus simple au plus complexe navigateur + pages statiques, navigateur + pages dynamiques navigateur + pages dynamiques + SGBD navigateur + serveur d'applications (+ SGBD + annuaire)
Rôle des diverses couches Le navigateur : affiche du texte, des images, des formulaires, des boutons; il sait envoyer des requêtes HTTP. Le serveur Web : répond à des requêtes HTTP par des pages en language HTML (ou autre) que le navigateur affiche. Un SGBD gère des données structurées (en général suivant le modèle relationnel) assure l'intégrité, la sécurité, la durabilité, les requêtes et les transactions (ACID). C'est un serveur de données.
Rôle des diverses couches : Le serveur d ’Applications (SA) Entre le serveur Web et le SGBD. Il assure lui aussi la sécurité et les transactions, mais sans écrire de code (procédural), en général de manière déclarative (fichier de déploiement). Il prend en charge les aspects performance: répartition des applications entre les différentes machines, la réutilisation de ressources : connections aux sources de données, mémoire, etc Ainsi le code métier se trouve simplifié : Pas de code à écrire pour la sécurité, les transactions, les accès partagés (multi-thread) le code est écrit comme si l'objet était tout seul sur une machine isolée
Fonctionnement des couches Le navigateur, outre l'affichage statique, peut faire des calculs et des animations : DHTML + langage Javascript, ou Applets Java SMIL ou SVG Le serveur Web répond à des requêtes HTTP par des pages en langage HTML Pour cela, le serveur Web peut : Renvoyer un fichier tout préparé (« pages statiques ») Générer par programme une page réponse (« pages dynamiques ») On peut montrer ici des exemples des capacités d’affichage d’un browser: Affichage d’une arborescence cliquable et repliable Un jeu de voiture en 3D Le « jeu » de la vie de Conway On verra plus loin un exemple de plus gestion avec un choix dans un catalogue.
Exemple page Web dynamique Le serveur utilise le mécanisme des cookies pour savoir à qui il a affaire. Ce sont des paires champs-valeurs qui sont écrites par le navigateur sur le disque et lues à la requête d’après. C’est une norme de fait, qui pallie au mode sans connexion de HTTP (limitation voulue); l’utilisateur peut déconnecter les cookies. Exemples de pages dynamiques, livrées avec Tomcat 4.0 : Caddie Calendrier
Les serveurs d ’applications Quel modèle? Définition et fonctionnement Modèle J2EE
Quel modèle Corba/COM/EJB ? Point de vue de SIEVERS en 2000 Corba : - complexité de mise en oeuvre - interopérabilité vers J2EE (ex : offreurs type Iona) 2000 ? Evolution des modèles - Web services, XML - Microsoft .Net Microsoft Com/Dcom - arrivé à maturité, - en attente de COM+ et DNA2000 Le modèle SUN /J2EE - engouement de l’année 2000, - modèle complet disponible pour l’implémentation
Evolution Une longue évolution : Puis Moniteurs transactionnels (Tuxedo) Moniteurs transactionnels OO, MTS Le modèle CORBA et les ORB (dialogue entre objets) Puis Standard Sun Java 2 Enterprise Edition (J2EE)
Définition Le SA est un conteneur d'applications Le SA manipule les objets métiers (EJB : Enterprise Java Beans) : Activation et désactivation Lancement des transactions Contrôle d'accès Le SA permet de déployer des objets métiers Le standard J2EE permet d’écrire ces objets (EJB), de les ‘emballer’ pour un déploiement facile et général Note: On ne va pas bouleverser la manière de déployer les applis Agora, il n’y a pas que des parties J2EE . Un SA évolué peut même propager le contexte transactionnel vers un autre SA. On peut montrer des métaphores : SA = carte mère d’ordinateur, application J2EE =carte d’extension SA = chef de bureau, application J2EE = employé de bureau
Le modèle J2EE Le standard J2EE : Construit sur JAVA Couvre toute l’informatique répartie et de gestion Une communication normalisée entre le Serveur d'EJB et les autres couches : Avec le serveur Web: Servlets, JSP Entre les composants (RMI / IIOP / Corba) Avec les SGDBR : JDBC Avec les annuaires (JNDI) JNDI=Java Naming and directory interface IIOP est le protocole Corba de communication inter-objets sur Internet, repris par RMI qui est une couche Java par-dessus.
Exemples Exemple de pages dynamiques + SGBD un exemple simple du type gestionnaire de rendez-vous. Exemple d'utilisation de Serveur d'Application même exemple simple avec un serveur EJB. Il faut écrire un peu plus de code (standard EJB) pour la machinerie, mais ensuite on peut gérer les permissions sur l'agenda sans toucher au code. De même sans toucher au code, on peut déclarer la mise à jour d'un rendez-vous comme une transaction ACID, ou relacher plus ou moins cette contrainte pour une raison de performance.
J2EE et Sécurité Rôle Rôle: agent Rôle: Administrateur Méthode Dossier.traiter Rôle: Administrateur Méthode Assuré.créer Méthode Assuré.enlever Méthode Assuré.facturer C’est juste un exemple assez générique ; l’agent peut traiter un dossier standard , mais pas créditer directement un compte. On peut gérer les permissions au niveau de la méthode. Le code source n’a pas à être modifié. On peut aussi gérer programmatiquement la sécurité (par exemple fixer une limite au montant d’une transaction en fonction du rôle de sécurité). Agent Dubois Agent Durand
Les offres N-Tiers J2EE CORBA Architecture Websphere COM/DCOM DNA Arbre de connaissance N-Tiers N-Tiers Architecture Serveurs Applications Websphere J2EE COM/DCOM DNA CORBA Silverstream WebLogic HahtSite iPlanet Client léger Jaguar Gemstone Applet Dhtml Citrix Java : Orion Serveur Mapping SGBD EJB servlet Scripting SGBDOO Com others JSP ASP cgi perl 1
Exemple de solution IBM Visual Age for Java Cobol/370 Java Java Cobol Serveur UNIX ou OS/390 Page JSP servlet JavaBean (interface) Service Applicatif SGBDR (DB2) WebSphere CICS ... 1
Exemple de solution mixtes J2EE - Corba Atelier Java Compilateur C Java Java C++ Serveur Unix Page JSP servlet EJB Composants Corba Connecteurs (OTM) SA - WebLogic Iona 1
Et la solution MicroSoft .. bientôt .NET .NET ? C# Serveurs NT Visual Interdev MTS (?) Internet Explorer HTML/CSS JavaScript Page HTML Script client Applet tech. Application Win32 Composant technique Java COM / DCOM COM+(?) Active X (?) dll Visual J++ Visual C++ 1
Les composants fonctionnement et standards SQL et JDBC... LDAP ... Object (RMI/IIOP) Http / https Données & existant référentiel Serveur WEB Serveur application Données entreprise Serveur de pages Servlet et EJB Scripting JSP socle technique applications ..XML. 1
1 - Le poste client Objectifs Poste léger déploiement simple administration Communication http simplicité (proxy) sécurité (https) Ergonomie Solutions & questions utilisation d ’un browser ‘ standard ’ limite sur la compatibilité des browsers et sur les extensions (plug-in et version JVM java) utilisation des protocoles propriétaires (RMI, activeX) Deux solutions à investiguer : HTML pur / applet java une alternative : DHTML (Javascript) Futur : XML et XHTML 1
2 - Le serveur WEB Objectifs Solutions & questions Flux pages http scalabilité sécurité Services présentation et réalisation des pages gestion Session & fail over appel des composants des autres Tiers Solutions & questions marché dominé par IIS Apache sécurité https Firewall / proxy JVM méthodes de scripting JSP, XSP ASP .. Et perl, python, solutions de gestion session (cookies, html marqué ...) 1
3 - Le serveur d ’application Objectifs médiateur entre les 2 environnements : 1 - WEB et client lèger 2 - existant (‘ legacy ’) introduction de la notion de composants ‘ métier ’ indépendance du socle technique réutilisabilité montée en charge scalabilité load balancing et notion de Fail Over Solutions & questions 3 modèles (*) Corba / COM / EJB réutilisabilité et composants : mythe ou réalité ? Administration (*) Le marché aujourd’hui est dominé par J2EE ... ... Maturité des implémentations 1
4 - L’intégration avec l’existant Objectifs interopérabilité accès données accès applications gestion des transactions multi environnements et applications Solutions & questions 2 modèles middleware de type messages (vers EAI) connecteurs propriétaires persistance des objets mapping relationnel SGBOO Mapping XML ... Le marché des EAI arrive à maturité ... ... Format d’échanges propriétaires >> XML 1
Exemple : de la conception à l ’implémentation Générer les squelettes de classes le schéma relationnel Persistance HTML/CSS JavaScript Java Java Java SQL Poste client Serveur Page HTML Script Applet Page JSP, servlet Composant EJB Base de données Il y a des outils de génération dans les 2 sens entre schéma relationnel et classes Java. Browser SGBDR Serveur d’Applications 1