Title: Institut National de Recherche en Informatique et en Automatique
1 Infrastructure pour la réplication de composants
Corba Vania Marangozova, Daniel
Hagimont Sirac INRIA Rhône-Alpes Vania.Marangozov
a_at_inrialpes.fr Daniel.Hagimont_at_inria.fr
2Motivations
- Composants
- Réutilisation de logiciels
- Configuration de propriétés non fonctionnelles
- Réplication
- Différentes utilisation tolérance aux pannes,
mode déconnecté, mise en cache - Gestion non fonctionnelle
- Gestion de la réplication comme une propriété non
fonctionnelle dans un environnement à base de
composants
3Besoins
- On doit permettre de configurer
- Quoi quest ce que lon réplique
- Cohabitation des techniques à base de RPC et de
réplication - Où sur quels sites on réplique
- Sorte de déploiement
- Quand le moment où on réplique
- Comment mise en uvre de la réplication
- Capture et restauration des données sur les sites
- Maintien de la cohérence
- Configuration implique gestion non fonctionnelle
4Corba Component Model (CCM) (1)
- Modèle abstrait
- Description des composants dans un IDL étendu
(IDL3) - Notion de ports
- facets / receptacles
- event sources / event sinks
5CCM IDL3
- struct Reservation
- typedef sequenceltReservationgt listReservations
- interface ManageReservations // Business
interface - string addReservation(in Reservation
reservation) - void removeReservation(in string
reservationId) - listReservations getReservations()
-
- valuetype SeminarEvt
- public string seminarDescription
-
- component Client // The client component
type - attribute string name // Attribute for
configuration - uses ManageReservations to_server // Used
interface - consumes SeminarEvt seminar // Used
interface -
- component Server // The server component
type - attribute string name // Attribute for
configuration - provides ManageReservations for_clients //
Provided interface - publishes SeminarEvt seminar // Provided
interface
6Corba Component Model (CCM) (2)
- Modèle de programmation
- Définit la relation entre composant et container
- Pour la gestion de propriétés non fonctionnelles
- Serveurs de container inspirés de ceux de EJB
- Modèle de déploiement
- Programme de déploiement
- Installation des implémentations des composants
(code) - Création des instances de composants sur les
machines - Interconnexions entre les composants (statiques)
7OpenCCM (1)
- Implantation de luniversité de Lille
- Un composant CCM et ses ports un objet Corba
- Code métier
- Fonctions dintrospection
- Fonctions dinterconnexion des ports
- Mapping IDL3 vers IDL2
- Fabrique un objet Corba à partir de tout ça
- Gestion des containers très primitive
8OpenCCM IDL2 généré
interface Client interface Server interface
ManageReservations ... // Does not
change interface Client CCMObject //
Client component void connect_to_server(in
ManageReservations connection) raises(...) Manag
eReservations disconnect_to_server()
raises(...) ManageReservations
get_connection_to_server() interface Server
CCMObject // Server component ManageReserva
tions provide_for_clients()
9OpenCCM programme de déploiement
//Obtain the component servers for
deployment. //Install component
archives //Create components //sh is the Server
instance manager //ch is the Client instance
manager Server s sh.create() Client c1
ch.create() // Configure components. s.name(Th
e Server) // Connect client and
server. ManageReservations for_clients
s.provide_for_clients() c1.connect_to_server(for_
clients) // Configuration completion,
launching s.configuration_complete()
10Choix pour linfrastructure de réplication
- Quoi quest ce que lon réplique
- Composants
- Pas systématique
- Où sur quels sites on réplique
- Configuré dans le programme de déploiement
- Quand le moment où on réplique
- Au déploiement
- Reconfiguration (redéploiement)
- Comment mise en uvre de la réplication
- Permettre de configurer des politiques
- Spécifique au composants (même si non
fonctionnel)
11Déploiement
- Spécifie quoi, où, quand il faut répliquer
- Interconnecte de façon cohérente (par rapport à
la réplication) les composants
Client
Server
Consistency link
Copie de Server
12Gestion de la cohérence
- Interposition pour gérer la cohérence
- Upcalls de capture/restauration de létat
Server
Client
Consistency link
Copie de Server
13Etat des lieux
- Implantation dans OpenCCM
- Pas doutils de génération
- Protocoles réalisés
- Entry consistency pour mise en cache (comme
Javanaise) - Mode déconnecté (réplicationjournalréconciliatio
n) - Applications
- Agenda INRIA
- Version CCM
- Version EJB
- Portage sur PDA
- Application bancaire (Césure)
- Article en cours
14Retour
- Intérêt dun modèle à composants comme CCM
- Liaisons statiques (manipulables)
- Étape du déploiement
- OpenCCM interception au niveau des containers
- Statique
- Dynamique
- Au déploiement
- À lexécution (?)
- Je vais me coucher !