Construction d applications r[Please insert PrerenderUnicode{é} into  preamble]parties - Cours 4-
8 pages

Construction d'applications r[Please insert PrerenderUnicode{é} into preamble]parties - Cours 4-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
8 pages
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

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 ...

Informations

Publié par
Nombre de lectures 14

Extrait

Construction d’applications re´parties
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
Constructiondapplicationsre´parties Cours 45
Gilles Roussel Gilles.Roussel@univmlv.fr http://igm.univmlv.fr/~roussel/CORBA/
IR3
17 octobre 2006
Gilles Roussel
Les politiques du POA
Constructiondapplicationsre´parties
` AchaquePOAestassoci´eunensembledepolitiquesqui d´enissententreautres: 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
Constructiondapplicationsr´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´rencesdobjet? Comment avoir des objets persistants ? Quefairequandplusieursclientsacc`edentaumˆemeobjet?
Gilles Roussel
Les politiques du POA
Constructiondapplicationsre´parties
LespolitiquesdunPOAsontxe´esunefoispourtouteau momentdesacre´ation LespolitiquesduPOAracinenepeuventpaseˆtremodie´es Besoindecr´eerdesnouveauxPOApourchoisirses politiques POAorganis´esdefac¸onhi´erarchique`apartirduRootPOA POAcre´e´spar: poa.create POA(nom, manager, politiques); POAassocie´aumomentdesacre´ation`aunmanagerqui g`eresone´tat: re´cupe´re´depuisunautrePOA:poa.the POAManager() cr´e´eautomatiquementenpassantnull
Gilles Roussel
Constructiondapplicationsre´parties
Construction d’applications re´parties
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
Cre´ationdunnouveauPOA
Object o = orb.resolve initial references("RootPOA"); POA rootPOA = POAHelper.narrow(o); POAManager manager = rootPOA.the POAManager(); Policy[] policies = new Policy[] { ... } ; POA myPOA = rootPOA.create POA("child", manager , policies);
Gilles Roussel
Architecturege´ne´rale
Gilles Roussel
Constructiondapplicationsr´eparties
Constructiondapplicationsr´eparties
Construction d’applications re´parties
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
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
Constructiondapplicationsre´parties
La politique de gestion de la concurrence
Politique ThreadPolicy
Valeurs possibles/ RooPOA /pa´erdutfa ORB CTRL MODEL SINGLE THREAD MODE
Appelsconcurrentssurunmeˆmeobjetpeuventˆetre cone´sa`plusieursprocessusl´egers Possibilite´deforcerletraitementite´ratif ThreadPolicyValue v = ThreadPolicyValue.SINGLE THREAD MODEL; Policy p = rootPOA.create thread policy(v); Nonsupporte´parlORBactueldeSUN
Gilles Roussel
Constructiondapplicationsr´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´davoiruneactivationimplicitedesservants (pasdappela`activate object()ou activate object with id()) Cre´ationdelapolitiquea`aecteraunouveauPOA (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
Constructiondapplicationsre´parties
La politique de gestion des
identificateurs
Fixersoimˆemelesidenticateursdesobjets Permetdestockerdesinformationsdanslar´efe´rencede l’objet Les´etapes: Cr´eationdesidenticateurs: byte[] id = "Mon identificateur".getBytes(); Affection de l’indentificateur au moment de l’activation : childPOA.activate object with id(id, servant);
Gilles Roussel
Constructiondapplicationsre´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
La politique de gestion des identificateurs
Politique LifespanPolicy
Valeurs possibles/ RooPOA /tuafrd´epa TRANSIENT PERSISTENT
FaireensortequelIORdunobjetsoitlemeˆmedune exe´cutiona`lautredelORB Fixer l’identificateur (entier) et le port du serveur avec des proprie´te´sspe´ciques`alORBdeSun 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
Constructiondapplicationsre´parties
La politique de gestion des identificateurs
Politique IdAssignmentPolicy
Valeurs possibles SYSTEM ID USER ID
RooPOA /utfapa´erd
Forcerlade´nitiondesidenticateurparlutilisateur Cr´eationdelapolitique`aaecteraunouveauPOA: Policy p = rootPOA. create id assignment policy(IdAssignmentPolicyValue.USER ID); Interdit l’utilisation deactivate object() Incompatible avec la politiqueIMPLICIT ACTIVATION
Gilles Roussel
Constructiondapplicationsr´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
Fixerplusieursidenticateurs`aunmˆemeobjet Pourdi´erencierlesclientsacc´edanta`unmˆemeobjet Lese´tapes: Cre´ationdelapolitiquea`aecteraunouveauPOA: IdUniquenessPolicyValue v = IdUniquenessPolicyValue.MULTIPLE ID; Policy p = rootPOA.create id uniqueness policy(v); Activationmultipledunmeˆmeobjetavec activate objet()ouactivate object with id()
Gilles Roussel
Constructiondapplicationsr´eparties
La politique de gestion des identificateurs
Pard´efaut,dansunPOA,lesassociations identiant/servantsontstock´eesdansunetabledesobjets actifs (Active Object Map) Parde´faut,cettetableestutilise´epourretrouver,au momentdunappel,unservanta`partirdesonidentiant
Gilles Roussel
Constructiondapplicationsr´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
La politique de gestion des identificateurs
Commentidentierleclientcot´eserveur? Aucoursdelappeldem´ethodecote´serveur,lecontexte CurrentA(POleerpredtemrere´puce´get POA()) et l’identificateur (get object id()slasdanck´e)sto re´fe´renceduclient private Current getCurrent() throws InvalidName { Object current = orb(). resolve initial references("POACurrent"); return CurrentHelper.narrow(current); }
Gilles Roussel
Constructiondapplicationsr´eparties
Cre´erdesre´fe´rencessansactivation
Ilestpossibledecr´eerdesr´efe´rencessansactivation, cesta`dire,sanslesassocier`aunservant Pourcelailfautcre´erdesre´f´erences`apartirdutypeIDL comme suit : org.omg.CORBA.Object ref = poa.create reference with id(id,"IDL:type:1.0"); ouorg.omg.CORBA.Object ref = poa.create reference("IDL:type:1.0");
Gilles Roussel
Constructiondapplicationsre´parties
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents