Les architectures réparties Les architectures réparties Les

1
Plan des cours
pProtocole HTTP et programmation serveur
pArchitectures multi-composants réparties
nPrincipes
nExemples
(CORBA, RMI, RMI/IIOP, J2EE)
pObjets distribués (Javabeans, EJB)
pWeb services (SOA, WSDL, SOAP, UDDI)
pProjet
Les architectures réparties
pobjets distribués
Approche orientée objet
Architectures distribuées
nExemples dapplication : agence de voyage en
ligne
nExemples dobjets distribués
pLogique applicative client (connexion, recherche
commandes)
pGestion sécurisée des paiements
pGestion des réservations
pInterrogation des fournisseurs de voyages
p
}objets distribués
Les architectures réparties
pInfrastructures middleware
nBut : gestion des communications entre les
objets hétérogènes via le réseau dans les
architectures distribuées
nExemples
pCORBA (OMG)
pRMI (Java)
pRMI/IIOP (Java)
pJ2EE (Sun)
p.Net (MicroSoft)
Les architectures réparties
pCORBA
nBut
pCommunication entre objets hétérogènes et distants
pInvocation de «services »entre objets dapplications
distribuées
nPrincipes généraux
pSéparation stricte Implémentation/Interface
pLocalisation transparente des objets
pAccès transparent aux objets
nCaractéristiques techniques
pArchitecture client/serveur
pObjets distribués ou non
pMulti-plateforme
Les architectures réparties
pCORBA Code
programmeur
Communication
logique
IIOP
Communication
réseau
Les architectures
pCORBA Client Servant
ORB ORB
TCPTCP
Stub Skeleton
COS
Naming
Service
Librairies
fournies
Système
dexploitation
Code généré
par le compilateur
IDL
Resolve Bind
2
Les architectures réparties
pCORBA
nLangages/protocoles
pIDL : langage neutre de spécification dinterfaces
§Représentation des interfaces (informations échangées)
dans le même langage
§Traduction (projection) des interfaces dans différents
langages (C, C++, SmallTalk, Ada95 et Cobol OO, Java,
Eiffel et Common Lisp)
§Traduction effectuée àla compilation (statique)
§Utilise un compilateur IDL spécifique au langage utilisé
pour produire
§Un stub/skeleton liéàun ORB
§Une description des interfaces des services
Interface Chat {
void SetMessage (in string auteur, in string texte);
}
Les architectures réparties
pCORBA
nLangages/protocoles
pIIOP : protocole de communication entre ORB
§Transmission des messages
§Implémentation de GIOP sur TCP
§Échange de message entre «ORB »
pDII : accès dynamique aux serveurs
§Permet de «court-circuiter »un ORB
§Découverte dynamique de nouveaux objets
§Construction et distribution dinvocation
§Réception de réponses
Les architectures réparties
pCORBA
nObjets/librairies
pORB : Couche «communication »intégrée aux objets
§Responsable des mécanismes nécessaires pour
§Trouver l'implémentation de l'objet pour la requête
§Préparer cette implémentation àrecevoir la requête
§Communiquer les données constituant la requête
§L'interface que voit le client est indépendante
§De l'endroit oùl'objet est situé
§Du langage dans lequel l'objet est implémenté
§Un ORB contient
§Une interface IDL
§Un support au service de nommage COS
§Un support IIOP
Les architectures réparties
pCORBA
nObjets/librairies
pStub : proxy client
pSkeleton : proxy serveur
nCORBA COS : services objets communs
pNaming Service : service de nommage permettant de
retrouver les objets servants pour les clients
pLife Cycle Service
pObject Transaction Service
pSecurity Service
p
}sinterfacent avec un ORB
Les architectures réparties
pCORBA
nExemple dutilisation
pFichier Chat.idl : interface Chat {
void setMessage (in string auteur, in string texte);}
pCompilation : idlj –fallTIE Chat.idl
Interface que doit implémenter le servant :
public interface ChatOperations {
void setMessage (String auteur, String texte); }
Interface distante que doit implémenter le servant :
public interface Chat extends ChatOperations,
org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity {}
Classe skeleton : Chat_Tie
Classe stub : ChatStub
Classe contenant des méthodes auxiliaires : ChatHelper
Les architectures réparties
pCORBA
nExemple dutilisation
pÀProgrammer
class ChatServant implements ChatOperations {
void setMessages (String auteur, String texte){} }
class ChatServer {
public static void main (String args[]){} }
class ChatClient {
public static void main (String args[]){} }
pLancement
§Serveur de noms (machine m1) :
tnameserv (depuis JDK 1.3)
§Serveur (machine m2) :
java ChatServer ORBInitialHost m1
§Client(machine m3) :
java
ChatClient
ORBInitialHost
m1
3
Les architectures réparties
pRMI
nMêmes principes de base que CORBA
nLimitéàJava (objets non hétérogènes)
nPlus de langage de spécification dinterfaces
nProtocole de communication : JRMP
pRMI/IIOP
nProtocole de communication : IIOP
nPermet linteropérabilitéentre RMI et CORBA
Les architectures
pRMI Code
programmeur
Communication
logique
JRMP
Communication
réseau
Client Servant
RMI RMI
TCPTCP
Stub Skeleton
JNDI
Librairies
fournies
Système
dexploitation
Code généré
par le compilateur
RMI
lookup Bind
Les architectures
Code
programmeur
Communication
logique
IIOP
Communication
réseau
Client Servant
RMI RMI
TCPTCP
Stub Skeleton
COS Naming
Service
Librairies
fournies
Système
dexploitation
Code généré
par le compilateur
RMI avec option iiop
Resolve Bind
pRMI/IIOP
Les architectures réparties
pRMI
nExemple dutilisation
pInterface Java :
package monchat;
import java.rmi.*;
public interface Chat extends Remote {
public void setMessage (String auteur, String texte)
throws RemoteException;}
pServeurs de noms :
§rmiregistry (méthodes lookup() et bind())
pCompilation : rmic monchat.Chat
Classe skeleton : ChatServant_Skel
Classe stub : ChatServant_Stub
Les architectures réparties
pRMI
nExemple dutilisation
pÀProgrammer
class ChatServant extends UnicastRemoteObject
implements Chat {
void setMessages (String auteur, String texte){} }
class ChatServer {
public static void main (String args[]){} }
class ChatClient {
public static void main (String args[]){} }
pLancement
§Serveur de noms (machine m1) : rmiregistry
§Serveur (machine m2) :
java -Djava.rmi.server.codebase=http://m1/
ChatServer
§Client(machine m3) :
java -Djava.rmi.server.codebase=http://m1/
ChatClient
Les architectures réparties
pCORBA +
RMI/IIOP
Client
RMI
Servant
RMI
RMI
RMI
Stub
Skeleton
COS Naming
Service
resolve
bind
Client
CORBA Servant
CORBA
ORB
ORB
Stub
Skeleton
JNDI bind
JNDI lookup
Réseau sur IIOP
4
Les architectures réparties
pRMI/IIOP
nExemple dutilisation (différences avec RMI)
pImplémentation du servant
class ChatServant extends PortableRemoteObject implements
Chat {
void setMessages (String auteur, String texte){…} }
pTranstypage complexe
pCompilation : rmic –iiop monchat.Chat
pPackages àimporter
§Javax.rmi (servant, serveur, client)
§Javax.naming (serveur, client)
pLancement
§Serveur de noms (machine m1) : tnameserv
§Serveur (machine m2) :
java -Djava.rmi.server.codebase=http://m1/ ChatServer
§Client(machine m3) :
java -Djava.rmi.server.codebase=http://m1/ ChatClient
Les architectures réparties
pInfrastructures middleware : conclusion
nPrincipes fondamentaux
pObjets client, servant et serveur
pInvocation dobjets distants transparente pour le client
pÉchange de messages conformes àdes descriptions
dinterfaces
pService de nommage
nLimites
pRequiert la programmation du serveur
pRequiert linscription dans le serveur de noms
pInterfaces Générées àla compilation (CORBA non-DII)
Mise en place «lourde »pour le développeur
Les architectures réparties
pInfrastructures middleware : conclusion
nGéré: accès aux services transversaux
pNommage (serveur de noms)
pTransactions
pPersistance
pSécurité…
nNon géré: optimisation des accès aux
ressources
pPools de connexion ou de threads
pActivation et désactivation des objets
pRépartition de la charge
pTolérance aux pannes
Les architectures réparties
pLarchitecture J2EE
nBut : développement, déploiement et exécution
des applications distribuées
nMêmes principes de base que les infrastructures
middleware
pCommunication synchrone (RMI/IIOP) et asynchrone
(JMS) entre objets distribués, serveurs de nom (JNDI),
intégration dobjets CORBA (JavaIDL)
nplus de nombreux services techniques
supplémentaires
pGénération dobjets transactionnels distribués (EJB),
gestion du cycle de vie des objets, gestion des
transactions (JTA et JTS), sécurité, accès aux BD (JDBC),
interfaces graphiques dynamiques (Servlets et JSP)
Serveur
dapplications
J2EE
Les architectures réparties
pLarchitecture J2EE
Client Web
Applet ou
client
autonome
Systèmes existants
(CICS, progiciels)
Serveur de BD
Container Web
Container EJB
Accès aux
systèmes
existants
Accès aux
bases de
données
Service
mail Service
transactions Communication
asynchrone
Service
De nommage Service
De sécutitéAccès aux
objets distants
Serv
let JSP
JSP
Bean Bean
Bean
Les architectures réparties
pRéférences
nCORBA
phttp://www.omg.org
phttp://corba.developpez.com/cours/
phttp://corba.developpez.com/presentation.htm
nRMI et RMI/IIOP
phttp://java.sun.com/products/jdk/rmi/
phttp://java.sun.com/j2se/1.4.2/docs/api/
nExemples de code RMI et RMI/IIOP
phttp://java.sun.com/developer/codesamples/index.html
phttp://thomasfly.com/RMI/rmi_tutorial.html
phttp://www-128.ibm.com/developerworks/java/rmi-
iiop/space.html
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !