Aucun titre de diapositive

publicité
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
Téléchargement