Pourquoi un adaptateur d’objet?Construction Constructiond’applications d’applicationsr´eparties r´epartiesGilles Roussel Gilles RousselConstruction d’applications r´epartiesPOA POACours 4-5Concurrence ConcurrenceComment obtenir toujours les mˆemes r´ef´erences d’objet?Activation ActivationIndentificateurs IndentificateursComment avoir des objets persistants?Gilles RousselLa politique La politiqueGilles.Roussel@univ-mlv.frQue faire quand plusieurs clients acc`edent au mˆeme objet?de gestion de de gestion del’OAM l’OAMhttp://igm.univ-mlv.fr/~roussel/CORBA/Objets Objetstemporaires temporairesActivation Activationd’objets d’objetsIR3Persistance Persistance17 octobre 2006Gilles Roussel Construction d’applications r´eparties Gilles Roussel Construction d’applications r´epartiesLes politiques du POA Les politiques du POAConstruction Constructiond’applications d’applicationsr´eparties r´epartiesLes politiques d’un POA sont fix´ees une fois pour toute auGilles Roussel Gilles Roussel`A chaque POA est associ´e un ensemble de politiques qui moment de sa cr´eationPOA POALes politiques du POA racine ne peuvent pas ˆetre modifi´eesd´efinissent entre autres :Concurrence ConcurrenceBesoin de cr´eer des nouveaux POA pour choisir sesle mode d’attribution des identificateurs des objets au seinActivation Activationpolitiquesdu POA;Indentificateurs IndentificateursPOA organis´es de fac¸on hi´erarchique `a partir du RootPOALa politique la persistance des ...
` AchaquePOAestassoci´eunensembledepolitiquesqui d´efinissententreautres: le mode d’attribution des identificateurs des objets au sein du POA ; lapersistancedesre´fe´rences; le mode d’activation des servants ; la mode de localisation des servants; lemode`ledeconcurrence.
Gilles Roussel
Constructiond’applicationsr´eparties
Construction d’applications r´eparties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Construction d’applications r´eparties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Pourquoi un adaptateur d’objet ?
Commentobtenirtoujourslesmeˆmesre´fe´rencesd’objet? Comment avoir des objets persistants ? Quefairequandplusieursclientsacc`edentaumˆemeobjet?
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Construction d’applications r´eparties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Les politiques du POA
Politique ThreadPolicy
ImplicitActivationPolicy
LifespanPolicy
IdAssignmentPolicy
IdUniquenessPolicy
RequestProcessingPolicy
ServantRetentionPolicy
Gilles Roussel
Valeurs possibles RooPOA /tauef´drap ORB CTRL MODEL SINGLE THREAD MODE IMPLICIT ACTIVATION NO IMPLICIT ACTIVATION TRANSIENT PERSISTENT SYSTEM ID USER ID UNIQUE ID MULTIPLE ID USE ACTIVE OBJECT MAP ONLY USE DEFAULT SERVANT USE SERVANT MANAGER RETAIN NON RETAIN
Constructiond’applicationsre´parties
La politique de gestion de la concurrence
Politique ThreadPolicy
Valeurs possibles/ RooPOA /pa´erdutfa ORB CTRL MODEL SINGLE THREAD MODE
Appelsconcurrentssurunmeˆmeobjetpeuventˆetre confie´sa`plusieursprocessusl´egers Possibilite´deforcerletraitementite´ratif ThreadPolicyValue v = ThreadPolicyValue.SINGLE THREAD MODEL; Policy p = rootPOA.create thread policy(v); Nonsupporte´parl’ORBactueldeSUN
Gilles Roussel
Constructiond’applicationsr´eparties
Construction d’applications r´eparties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Construction d’applications re´parties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
La politique d’activation implicite
Politique ImplicitActivationPolicy
Valeurs possibles/ RooPOA /tefauard´p IMPLICIT ACTIVATION NO IMPLICIT ACTIVATION
Possibilite´d’avoiruneactivationimplicitedesservants (pasd’appela`activate object()ou activate object with id()) Cre´ationdelapolitiquea`affecteraunouveauPOA (politiquepard´efautduRootPOA): ImplicitActivationPolicyValue v = ImplicitActivationPolicyValue.IMPLICIT ACTIVATION; Policy iap = rootPOA.create implicit activation policy(v); Activationautomatiqueparlesme´thodes poa.servant to id()etpoa.servant to reference()
Gilles Roussel
Constructiond’applicationsre´parties
La politique de gestion des
identificateurs
Fixersoimˆemelesidentificateursdesobjets Permetdestockerdesinformationsdanslar´efe´rencede l’objet Les´etapes: Cr´eationdesidentificateurs: byte[] id = "Mon identificateur".getBytes(); Affection de l’indentificateur au moment de l’activation : childPOA.activate object with id(id, servant);
Gilles Roussel
Constructiond’applicationsre´parties
Construction d’applications r´eparties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Construction d’applications re´parties
Gilles Roussel
POA Concurrence Activation
Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Faireensortequel’IORd’unobjetsoitlemeˆmed’une exe´cutiona`l’autredel’ORB Fixer l’identificateur (entier) et le port du serveur avec des proprie´te´sspe´cifiques`al’ORBdeSun com.sun.CORBA.POA.ORBServerIdet com.sun.CORBA.POA.ORBPersistentServerPort Forcer un choix reproductible des identificateurs d’objet : LifespanPolicyValue v = LifespanPolicyValue.PERSISTENT; Policy p = rootPOA.create lifespan policy(v);
Gilles Roussel
Constructiond’applicationsre´parties
La politique de gestion des identificateurs
Politique IdAssignmentPolicy
Valeurs possibles SYSTEM ID USER ID
RooPOA /utfapa´erd
Forcerlade´finitiondesidentificateurparl’utilisateur Cr´eationdelapolitique`aaffecteraunouveauPOA: Policy p = rootPOA. create id assignment policy(IdAssignmentPolicyValue.USER ID); Interdit l’utilisation deactivate object() Incompatible avec la politiqueIMPLICIT ACTIVATION
Gilles Roussel
Constructiond’applicationsr´eparties
Construction d’applications r´eparties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
Construction d’applications re´parties
Gilles Roussel
POA Concurrence Activation Indentificateurs La politique de gestion de l’OAM Objets temporaires Activation d’objets Persistance
La politique de gestion des identificateurs
Politique IdUniquenessPolicy
Valeurs possibles UNIQUE ID MULTIPLE ID
RooPOA /ute´afapdr
Fixerplusieursidentificateurs`aunmˆemeobjet Pourdiff´erencierlesclientsacc´edanta`unmˆemeobjet Lese´tapes: Cre´ationdelapolitiquea`affecteraunouveauPOA: IdUniquenessPolicyValue v = IdUniquenessPolicyValue.MULTIPLE ID; Policy p = rootPOA.create id uniqueness policy(v); Activationmultipled’unmeˆmeobjetavec activate objet()ouactivate object with id()