ARCHITECTURE WEB – COURS IV [email protected] [email protected] (01 44 27 88 77) 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 1 / 76 OBJECTIFS • Introduction aux architectures réparties • Évolution du Middleware • Évolution de l’architecture des SI • Architecture N-Tiers Microsoft vs. Java (EJB - Entreprise Java Beans) • Web Services 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 2 / 76 PLAN • Du RPC aux composants • Évolution de l’architecture des SI • Microsoft DNA et .NET • Java J2EE • Web Services • Annexes 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 3 / 76 Introduction - Architecture Réparties • Avantages – Organisationnel • Décentraliser les responsabilités • Découpage en unité – Fiabilité et disponibilité • Individualisation des défaillances • Duplication des constituants de l’application – Performances • Partage de la charge – Maintenance et évolution 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 4 / 76 Introduction - Architecture Réparties (2) • Inconvénients – Mise en œuvre plus délicate • Gestion des erreurs • Suivi des exécutions – Pas de vision globale instantanée • Délai des transmissions – Administration plus lourde • Installation • Configuration • Surveillance – Coût • Formation • Achat des environnements 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 5 / 76 Du RPC aux composants 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 6 / 76 Le Middleware • Objectif : faciliter l'intégration d'architecture client/serveur/traitement applicatif/base de données, ainsi que le déploiement et la maintenance d'applications – Résoudre l’interopérabilité: unifier l’accès à des machines distantes – Résoudre l’hétérogénéité: être indépendant des SE et du langages des applications • Middleware = API+FAP • API: Application Program Interface – Si standard permet la portabilité • FAP: Format and Protocols – Permet de passer d’un espace d’adressage à un autre – Et d’une machine à une autre 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 7 / 76 Le Middleware - RPC • Les environnements répartis sont basés pour la plupart sur un mécanisme RPC ( Remote Procedure Call ). Client Serveur Middleware NT UNIX UNIX PC PC Sparc • Ce mécanisme fonctionne en mode requête-réponse – Le client effectue une requête (demande un service) – Le serveur traite la demande puis retourne la réponse au client 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 8 / 76 Le Middleware - Rôles avancés • Nommage – Identification logique (DNS) • Persistance – Assure la pérennité des données (liens vers SGBD) • Sécurité – Authentification, Autorisation, … • Transaction – Gestion avancée des transactions (ACID) • Événement – Message Oriented Middleware (MOM) 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 9 / 76 Définition d’une transaction • Unité indivisible de travail comprenant plusieurs opérations dont toutes ou aucune doivent être effectués pour protéger la cohérence des données – Ex: programme accédant et/ou modifiant des données persistantes (fichier ou BD) • Une transaction doit respecter les propriétés ACID – A: Atomicité - tout ou rien – C: Cohérence - respect des contraintes définies sur les données – I: Isolation - garantie de non interférence entre des transactions s’exécutant concurremment – D: Durabilité - état produit par la transaction ne doit pas être perdu 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 10 / 76 Middleware à objets • Structuration d’un middleware à base objets – Propriétés de l’objet (encapsulation, modularité, réutilisation, polymorphisme, composition) – L’objet est l’unité de désignation et de distribution • Trois solutions essentielles – CORBA de l’OMG – COM+ services de Microsoft – Java (RMI, JDBC, JTS, JNDI) 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 11 / 76 Évolution vers les composants • Évolution des middleware à objets vers les middleware à base de composants • COM+ et .NET pour Microsoft • CORBA 3 pour CORBA • Java Beans et Entreprise Beans pour Java 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 12 / 76 Composant • Module logiciel autonome pouvant être installé sur différentes plate-formes • Exporte différents attributs, propriétés ou méthodes • L’interface d’un composant représente son « mode d’emploi », les services disponibles (méthodes) • Peut être configuré • Capable de s’auto-décrire (introspection en Java: classe Class et classe Object) • Intérêt: briques de base configurables pour permettre la construction d’applications par composition 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 13 / 76 Conteneurs et structures d’accueil • Conteneurs – Encapsulation d’un composant – Prise en charge transparente de services systèmes (nommage, sécurité, transaction, persistance, …) – Prise en charge partielle des connecteurs (invocations et évènements) – Interposition entre le client et le composant • Structure d’accueil – Espace d’exécution des conteneurs et des composants 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 14 / 76 Évolution de l’architecture des SI 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 15 / 76 Architecture 3-Tiers • On distingue 3 couches dans les architectures 3Tiers – Client • Interface Homme-Machine (IHM) – Tiers du milieu • Regroupe l’ensemble de l’application – – – – Logique métier Présentation Interconnexion avec le reste du SI Connexions aux ressources – Données (ressources) • BD ou applications distantes 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 16 / 76 Architecture 3-Tiers Source: http://msdn.microsoft.com/library/en-us/dndna/html/vba4dna.asp 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 17 / 76 Architecture 3-Tiers (2) Le tiers client Le tiers du milieu (Middle tier) Le tiers ressource (EIS) Le côté serveur 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 18 / 76 Architecture Web N-Tiers • On distingue 5 couches dans les architectures N-Tiers – Client • Peut contenir un minimum d’interactivité (ex: JavaScript et la vérification des champs de formulaires) – Présentation • Logique de navigation (ex: JSP/Servlets, PHP/CGI) – Logique métier • Couche de traitement qui contient les classes métiers c’est-à-dire les classes couramment utilisées dans un secteur d’activité – Middleware • Interconnexion avec le reste du SI ou SI distant (ex: connexion aux bases de données (JDBC) ou entre composants) – Ressources: gestion de la persistance • Assure la pérennité des informations (SGBD, LDAP) 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 19 / 76 Architecture N-Tiers (2) Clients web Web services Le tiers web Le tiers du milieu Clients lourds Le tiers client Le tiers ressource (EIS) Web Services Le côté serveur 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 20 / 76 Tiers client Clients web Web services Le tiers web Le tiers du milieu Clients lourds Le tiers client Le tiers ressource (EIS) Web Services Le côté serveur 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 21 / 76 Tiers client (2) • Un browser Web – HTTP, HTTPS, XML • Un PDA – HTTP, HTTPS / WML, XML • Un client lourd – IIOP de CORBA, RMI de JAVA 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 22 / 76 Tiers présentation (au niveau Web) Clients web Web services HTML, XML / HTTP, HTTPS Web Serveur SOAP / HTTPS Web Container Scripts (Fast CGI) Autres extensions Contenu statique Le tiers client CGI scripts Le tiers web 7 / 02 / 2003 SQL, propriétaire XML, RMI / HTTP, IIOP, JRMP, JMS SOAP / HTTPS Le tiers ressource (EIS) Le tiers du milieu Web Services Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 23 / 76 Tiers présentation (2) • Reçoit les requêtes HTTP des clients et renvoi les réponses • Contient la logique du flot de présentation • Permet de faire la séparation entre présentation et logique métier • Support plusieurs types de clients 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 24 / 76 Technologies utilisées dans le tiers présentation • CGI/FastCGI (Common Gateway Interface) – C, C++, Perl, Tcl, Bash • ASP (Active Server Pages) / PHP – Scripting interprété • Servlets Java • JSP (Java Server Pages) – Scripting compilé en Servlet 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 25 / 76 Tiers du milieu (logique métier+middleware) Clients web Web services Le tiers web Le tiers du milieu Clients lourds Le tiers client Le tiers ressource (EIS) Web Services Le côté serveur 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 26 / 76 Tiers du milieu (2) • Gestion des composants – Implémente la logique métier (Business logic) – Offre des services aux composants • Tolérance aux fautes, disponibilité accrue • Passage à l’échelle (Scalability) • Équilibrage de charge (Load balancing) • Gestion des transactions • Sécurité 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 27 / 76 Tiers ressource Clients web Web services Le tiers web Le tiers du milieu Clients lourds Le tiers client Le tiers ressource (EIS) Web Services Le côté serveur 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 28 / 76 Tiers ressource (2) • Base de données – JDO, SQL/J, JDBC, ODBC, ADO.NET • Anciens systèmes (legacy systems) – Connecteurs J2EE , Protocoles propriétaires • ERP (Entreprise Ressource Planning) – Connecteurs J2EE , Protocoles propriétaires • EAI (Entreprise Application Integration) – Connecteurs J2EE , Protocoles propriétaires 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 29 / 76 Microsoft DNA et .NET 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 30 / 76 Architecture DNA /.Net (Distributed Internet Architecture) Source: http://msdn.microsoft.com/.../dnentdevgen/ html/msdn_windnawp.asp 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 31 / 76 DNA/ .NET (2) Source: http://www.autofieldguide.com/mag_images/020105a.GIF 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 32 / 76 DNA • Apporte des solutions à un ensemble de problèmes rencontrées dans les architectures distribuées • Technologies Microsoft – – – – – – – – Client/Présentation: Internet Explorer Serveur/Présentation: IIS Rendu et business: ASP, VBScript Composants: COM (Common Object Model) Communication entre composants: COM, MSMQ, COM+ Middleware business<->Données: ActiveX Data Objects, ODBC Accès aux données: OLEDB, ADO Persistance: SQL Server, Exchange, Active Directory, NTFS 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 33 / 76 .NET • .NET est une stratégie marketing de Microsoft • Remplacement de DNA • Composé de plusieurs parties – CLR (Common Language Runtime): moteur d’exécution équivalent à la JVM en Java – BCL (Base Class Library) – ASP.NET – CLS (Common Language Specification): standard Microsoft de l’API – CTS (Common Type System): type commun pour tous les langages – MSIL (Microsoft Intermediate Language): langage intermédiaire avant compilation en code machine 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 34 / 76 .NET (2) Source: http://www.ecoswitch.com/publications_liste/ dotnet/slide3.html 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 35 / 76 ADO .NET Dataset sont une vue en mémoire de la BD Les clients reçoivent les données en XML Source : msdn.microsoft.com/ 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 36 / 76 Java J2EE 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 37 / 76 Approche Java – J2EE • J2EE est un standard industriel – Architecture pour construire une application Java par composition de composant Java (EB) – .NET est une spécification • Technologies J2EE – Client/Présentation: applications clients, applets dans navigateur possédant une JVM – Serveur/Présentation: Serveur d’informations, Tomcat – Rendu et business: Servlet et JSP – Composants business: EJB (Entreprise Java Beans) – Communications entre composants: JMS (Java Message Service) – Données: JDO (Java Data Objects) – Accès aux données: JDBC – Persistance: Oracle Server 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 38 / 76 Serveurs applicatifs J2EE • Composé d’un serveur de composants • Application Java à base de composants • Hébergent – Des containers • Pages Web • Composants Métier (EJB) – Des services • • • • Nommage Base de données/Mapping sur Base Moniteurs transactionnels Déploiement ... – Des API sur les services • JDBC/JTS/JMS... 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 39 / 76 Exemples de serveurs applicatifs J2EE • Serveurs d'applications J2EE – Weblogic BEA, WebSphere IBM, Iplanet Sun, Oracle – WebObject (Jonhatan/Jonas) INRIA/BULL – Jboss (Version Gratuite) • Autres serveurs d'applications – Microsoft .Net / DNA Entreprise Servers – Zope (Python) – Serveur CORBA 3: OrbixWeb, Borland VisiBroker, IONA ORBacus 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 40 / 76 Architecture N-Tiers J2EE Applet container Applet Web container Servlet JSP J2SE EJB container EJB http/ssl Application Client Container Application Client Java Mail Java Mail JAF JAF J2SE J2SE rmi/ssl Databases J2SE - Protocoles Source: http://java.sun.com 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 41 / 76 Architecture N-Tiers J2EE (2) Source: http://java.sun.com 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 42 / 76 Architecture N-Tiers J2EE (3) Source: http://www.atermon.com/ j2eeArchitecture.htm 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 43 / 76 Architecture N-Tiers J2EE (4) • EJB : définit la façon dont les composant doivent être écrit et le contrat qu’ils doivent respecter avec le serveur d’application • RMI : communication inter-composants • JNDI : service de nommage • JDBC : connexion avec les bases de données • JTA : service de transaction • JMS : service de messagerie • JSP : servlet et Java Server Page adapté à la construction de composants réseau • Java IDL : permet l’intégration avec d’autres langages (en particulier à travers CORBA) • Java Connectors : intégration à des systèmes d’information existant • API XML 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 44 / 76 Architecture N-Tiers J2EE (5) • JavaMail Technology – Contrôle de l’envoi de mails – Fournisseur de services mails • JavaBeans Activation Framework (JAF) – Service de découverte et d’encapsulation de composants • Java Authentication and Autorization Service (JAAS) – Gestion de la sécurité dans les applications J2EE 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 45 / 76 JDO Source : http://www.java-application-servers.com/articles/app_servers.html 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 46 / 76 Services du container de pages Web • Servlet / JSP • Services internes – Gestion de la charge du serveur – Gestion des autorisations d’accès • Service externe – API Java 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 47 / 76 Services du container EJB • Environnement d’exécution fournissant des services au niveau du système – Services Interne • Gestion de la charge du serveur (cycle de vie, accès client, passivation …) • Service de nommage • Gestion des accès aux objets métiers – Services Externes • Gestion du Mapping sur base de données relationnelle • Gestion des transactions et des échanges de messages 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 48 / 76 Caractéristiques principales EJB • Éléments d’architecture – EB, conteneurs, serveurs, clients • Conteneurs isolent les beans du client et d’une implantation spécifique au serveur => portabilité • Conteneurs et serveurs implantent les mécanismes systèmes qui fournissent des services aux beans – – – – Transaction Persistance Autorisation Gestion mémoire 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 49 / 76 Caractéristiques principales (2) • EJB contiennent la logique applicative – Plus de routines contenant les règles métiers ou les accès aux bases de données par exemple 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 50 / 76 Contrats EJB • Modèle de développement uniforme pour les application utilisant les composants EB – Contrat coté client: fournir une vue uniforme du bean au client indépendante de la plate-forme de déploiement – Contrat coté conteneur: assurer la portabilité du bean sur différents serveurs EJB – Contrat coté « packaging » (ejb-jar file): fournir un format de fichier standard pour packager les beans 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 51 / 76 Types de Beans • Les EJB de type « Session » – Exécutent une tâche pour le client (ex: service de change pour une banque) • Les EJB « Entity » – Représentent un objet métier qui existe dans le système de stockage permanent (ex: compte client) • Les EJB « Message-Driven » – Traitent les messages asynchrones 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 52 / 76 Architecture J2EE Logique d'application IHM Logique métier Ses Ses Ses Accès données Ett Ses DBMS Ett Nommage, Sécurité, Cycle de vie, Accès concurrents, Transaction, Persistance Distribution, Equilibrage de charge, Tolérance de pannes 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 53 / 76 Les Beans de session sans état (Stateless) • Ils fournissent un service pour un utilisateur • Pas d’état conversationnel avec le client • Ne survivent pas à un crash du serveur • Ils sont destinés à vivre sur une courte période • Deux instances d’un même bean sont identiques 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 54 / 76 Les Beans de session avec état (Stateful) • Ils interagissent d'une manière conversationnelle • Maintiennent un état sur le client connecté • Ne survivent pas à un crash du serveur d'EJB • Une instance est hébergée par un seul thread • Une instance peut être partagée par plusieurs clients 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 55 / 76 Les Beans entités • Ils représentent les données persistantes • Ils survivent à un crash • Plusieurs clients peuvent utiliser des EJB qui "pointent" sur les mêmes données • L'instance EJB contient une copie des données du système de stockage • Les attributs d'un objet sont déposés sur un support persistant • Exemples de supports de persistance – Sérialisation – Accès à une base par JDBC 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 56 / 76 Propriétés des Beans entités • Quand plusieurs clients partagent un EJB entité ils – reçoivent leurs propres instances d'EJB – partagent les données sous-jacentes – n'ont pas à gérer la synchronisation sur les données • Il existe deux modes de gestion de la persistance des données – Container-Managed Persistence (CMP) • Le développeur ne développe pas les méthodes de gestion de la persistance • Le container gère l’accès à la BD – Bean-Managed Persistence (BMP) 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 57 / 76 Persistance • Gérée par le bean (via JDBC ou SGF) => CMP • Gérée par le conteneur (utilisation des container maintened fields): le code d’accès à la BD est délégué au conteneur => BMP • Dans les 2 cas le conteneur est responsable de la cohérence entre l’état du bean et l’état de la BD 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 58 / 76 Sécurité • Déléguée au maximum au conteneur – Simplifier la programmation et améliorer la portabilité • Support sécurité basé sur – API sécurité de Java – Méthodes liées à la sécurité peuvent être implantées par le conteneur – Attributs de sécurité définis dans le descripteur de bean utilisés en déploiement 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 59 / 76 Évolutions des middleware • Objets – CORBA (ORBIX, VisiBroker, OpenORB, …) – DCOM • Composant – J2EE (Websphere, Weblogic, JBOSS) – .Net • Web-Services 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 60 / 76 Web Services 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 61 / 76 Limitations des middleware • Passage à large échelle: Web • Protocoles hétérogènes entre architectures – IIOP, RMI, DCOM, J2EE, .NET – Firewall • Pas d’ouverture des services – Moteur de recherche sur services des composants inexistant • Trop de contraintes sur le client – Doit posséder les souches – Difficulté de construire dynamiquement 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 62 / 76 Limitations des middleware (2) • Inconvénients intrinsèques • Complexité – CORBA: IDL, JNDI – EJB: Container, JNDI • Pérennité: remise en question – CORBA, EJB, .Net • Prix – Plateformes – Compétences 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 63 / 76 Solutions existantes • Modification du protocole – RMI/IIOP • Passerelles – CORBA vers DCOM, .NET vers J2EE? • Portage d’applications existantes difficile • Solutions non standards 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 64 / 76 Web Services • Collection de fonctions packagées dans une même entité et publiées pour être utilisée sur le réseau – Interface XML sur un ensemble de services – Évolution naturelle des systèmes distribuées • Les Web Services sont des services offerts via le Web – Le fondement des Web Services est l’utilisation de messages XML transportés sur des protocoles standards comme HTTP • Protocoles simples et standards permettant une utilisation universelle • Interfaces au-dessus des architectures n-tiers existantes (.NET & J2EE) 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 65 / 76 Approche envisagée • Un nouveau protocole: SOAP – Basé sur XML • Portabilité – Véhiculé sur des protocoles existants déployés à grande échelle • HTTP, SMTP • Paradigme orienté service: WDSL – Définition de services offerts (en XML) • Découverte automatique des services (dynamicité): UDDI – Référentiel des Web Services (Pages jaunes/blanches) 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 66 / 76 Exemple d’invocation d’un Web Service Source : http://www.dotnetguru.org/articles/webservices/WebServices.htm 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 67 / 76 Questions ? ? ? ? ? ? 7 / 02 / 2003 ? Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 68 / 76 ANNEXES ANNEXES 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 69 / 76 Architecture CORBA 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 70 / 76 Comparaison de l’architecture .NET & J2EE Source : http://www.theserverside.com/resources/article.jsp?l=J2EE-vs-DOTNET 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 71 / 76 Comparaison de l’architecture .NET & J2EE (2) Un langage Plusieurs plate-formes Plusieurs langages Une plate-forme Source : http://www.sdmagazine.com/documents/s=733/sdm0103a/0103a.htm 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 72 / 76 Comparaison de l’architecture .NET & J2EE (3) .NET propose le même ensemble de services sous l'appellation de ServicedComponent. Le conteneur utilisé dans le Framework est COM+ COM+ fonctionne dans un environnement non managé avec une gestion de type différente de celle de .NET (Common Type System) Dans J2EE les transactions sont gérées en Java à l'aide des API JTA/JTS et l'ensemble des composants s'exécutent dans un seul et même environnement managé. Source : http://www.dotnetguru.org/articles/architecturedotnet.htm 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 73 / 76 Comparaison de l’architecture .NET & J2EE (4) Microsoft. NET C#, MultiLangage Langage J2EE Java différences essentielles C# a certains des JavaBeans et ajoute les metadata tags. L'intégration dans la syntaxe est différente. J2EE est plate-forme indépendant mais langage spécifique, .NET est langage indépendant mais plate-forme spécifique. Java core Similaire services API ASP.NET utilise tout les langages supportes dans .NET et est compile en code natif Servlet Présentation ASP.NET par le CLR. JSPs utilisent Java code (snippets, ou JavaBean références), compile en JSP bytecodes. CLR permet a du code de plusieurs langages d'utiliser un ensemble de composants Interprète CLR JVM partages. Win GUI Forms Composants Web similaire ne sont pas disponible en Java. WinForms et WebForms Swing composants Web sont complètement intègre a VisualStudio .net Forms JDBC, DB accès ADO.NET JDO, ADO.NET est construit a partir d'une architecture XML SQL/J .NET web services supposent un model de message base sur SOAP tandis que WebServices oui oui J2EE laisse le choix au developpeur. Implicit oui oui middleware Technologie Produit Standard J2EE est une specification, .NET est une strategie de produits Services BCL 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 74 / 76 L'architecture Web Services .NET Environnement totalement intégré Avantages : - homogénéité de l'ensemble de l'architecture permettant d'utiliser pleinement les ressources du système Windows et du Framework .NET - impact positif sur les performances et sur l'intégration de l'outil Visual Studio avec la plate-forme Inconvénients implique de posséder l'ensemble des produits de la gamme Microsoft .NET dont IIS Source : http://www.dotnetguru.org/articles/webservices/WebServices.htm 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 75 / 76 L'architecture Web Services J2EE J2EE fournie un ensemble d'APIs et d'interfaces dans le but de proposer plusieurs implémentations différentes. A l'heure actuelle, excepté le WebService Pack de Sun faisant office de RI (Reference Implementation), il n'existe aucun produit intégrant toutes ces APIs. Source : http://www.dotnetguru.org/articles/webservices/WebServices.htm 7 / 02 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB 76 / 76