Cours 5: Communication par objets repartis Flashcards
Definir l’appel de methode a distance.
• Modele objet: references aux objets, interfaces, methodes, exceptions, ramasse-miettes.
• Proxy: se presente comme un objet local, ses methodes serialisent les arguments, transmettent la requete au module de communication et retournent la reponse recue.
• Repartiteur: recoit les requetes dans le serveur et les
communique au squelette correspondant.
• Squelette: recoit les requetes pour un type d’objet, deserialise les arguments, appelle la methode correspondante de l’objet reference et serialise la reponse a retourner.
• Module de communication: envoi de requete client (type, numero de requete, reference a un objet, numero de methode, arguments), la requete recue par le serveur est envoyee au repartiteur et la reponse est retournee.
Definir le module des references reseau.
• Table des objets importes (pour chaque objet distant utilise, adresse reseau et adresse du proxy local correspondant),
• Table des objets exportes (pour chaque objet utilise a
l’exterieur, liste des clients, adresse reseau et adresse locale).
• Lorsqu’une reference reseau est recue, son proxy ou objet local est trouve ou un nouveau proxy est cree et une entree ajoutee dans la table.
• Lorsqu’un objet reseau local est passe en argument, son adresse reseau le remplace et il doit se trouver dans la table des objets exportes.
Definir les services pour l’appel de methodes distantes.
• Service de nom: permet d’obtenir une reference objet reseau a partir d’un identificateur/nom.
• Contextes d’execution: le serveur peut creer un fil d’execution pour chaque requete.
• Activation des objets: le serveur peut etre demarre
automatiquement lorsqu’une requete pour un objet apparaıt (message augmentation de salaire pour le budget qui est stocke sur disque dans un fichier de chiffrier).
• Stockage des objets persistents.
• Service de localisation.
Definir Java RMI et son fonctionnement.
• Ne fonctionne que de Java a Java.
• S’applique a tout type qui implante l’interface Remote.
• Les methodes doivent accepter l’exception RemoteException.
• Les arguments seront envoyes et la valeur retournee sert de reponse.
• Ces arguments doivent etre des types primitifs, des objets reseau, ou des objets qui implantent l’interface Serializable (le graphe complet d’objets rejoints par un argument peut etre transmis).
• Le type des objets serialises contient une reference a la classe. La classe peut etre telechargee au besoin par le recepteur.
• Le type des objets reseau contient une reference a leur classe proxy (stub) qui peut etre telechargee au besoin.
• Le RMIregistry maintient une table (nom, reference reseau) pour obtenir une reference a un objet desire qui se trouve sur un ordinateur donne. Un nom a la forme:
//hostname:port/objectName.
• rmic peut etre utilise pour creer les proxy a partir du code des classes compilees. Le repartiteur est generique et fourni en librairie.
• Les appels distants peuvent etre servis par des fils d’execution differents, surtout s’il viennent de clients (connexions) differents.
Que sont les conteneur EJB?
• Logiciels comme JBoss (Red Hat), WebSphere (IBM),
NetWeaver (SAP), WebLogic (Oracle), Geronimo (Apache), GlassFish (Sun).
• Recoit les requetes d’objets/clients locaux ou distants (RMI, RMI-IIOP, Web Services, JMS) qui fournissent l’interface usager.
• Les requetes sont validees et dirigees vers les objets de session qui sont references ou crees au besoin (Business logic).
• Les objets entites sont accedes par les objets de session et leur etat est gere et mis a jour dans la base de donnees selon ce qui a ete specifie dans les annotations (Persistence).
Quels sont les roles selon EJB?
• Bean provider: fournisseur des composantes de l’application.
• Application assembler: concepteur de l’application qui
assemble les composantes pour obtenir les fonctions desirees.
• Deployer: responsable du d´eploiement de l’application dans un environnement adequat.
• Service provider: specialiste des systemes repartis qui s’assure du niveau de service desire.
• Persistence provider: specialiste des bases de donnees.
• Container provider: specialiste de l’environnement d’execution des composantes Java.
• System administrator: administrateur du systeme informatique qui s’assure que le systeme fonctionne selon ce qui a ete concu.
Definir le remoting en C#.
- Fonctionne entre tous les langages supportes par le CLR: C#, C++, VB…
- Utilise la reflexivite pour generer le code client et serveur dynamiquement.
- Choix d’encodage binaire ou XML.
- Choix de canal TCP ou HTTP.
- Les objets qui heritent de MarshalByRef sont passes par reference a travers le reseau, les autres sont passes par valeur et doivent supporter l’interface ISerializable.
- Un objet deja cree peut etre exporte ou on peut enregistrer un type et l’objet est cree au moment de la requete selon un de deux modes (Singleton, Single call).
- Les references aux objets peuvent avoir une date d’expiration pour eviter d’avoir a verifier pour les references inutilisees; passe cette expiration elles n’existent plus.