réparti.Elle se base sur un ensemble de n÷uds, haque n÷ud tient deux agents : un lo ; un agent distant est utilisé pour la transmission les de déploiement, qui sont dénies par un langage
Trang 1Institut de la Francophonie
pour l'Informatique des Télécommunications de Bretagne École Nationale Supérieure
Ce stage a été réalisé ausein de l'équipeCAMA du Département informatiquede
GET - ENST Bretagne
Trang 2Toutd'abord,jetiensà mafamillequim'asoutenudansmesétudesetaussi
dans mon stage
mon Master et quime permetde fairele stage en F
Je tiens à Monsieur Fabien Dagnat pour m'avoir dirigé dans mes travaux
ts
Je Meriem Belguidoumde son supportetde sa opération dansmon stage
Je tous les membres du département Informatique de l'ENST Bretagne qui
m'ont parmi eux pendant ladurée du stage
sentiments etlesmeilleurs supports toutela durée de mes études et de mon stage
ennàmes :CuongTK,TramTH,TuanTAetUyen BK,quim'ont
donnédes bons repas à l'ENST Bretagne
Trang 3Ledéploiementdes devientde plusen plus Laplupartdesoutilsde
déploiementexistantsutilisentdes hniquesquinesontpas àlamesuredela
des :l'installation, ation,la ation,lamiseàjouretladésinstallation
réparti.Elle se base sur un ensemble de n÷uds, haque n÷ud tient deux agents : un
lo ; un agent distant est utilisé pour la transmission les de déploiement,
qui sont dénies par un langage de déploiement, entre les n÷uds Lors de la
quisont érésd'un déptdistant.Lesdép d'un osantsontvériéespar
lesystème de gestion des dép qui se base sur lesmoteurs de raisonnement etde
politique.Ledéploiementest aprèsqueleserreurspotentiellesaientété
plate-formeOSGiprend en hargelamanipulationdesunités debase appelléesbundles
de registrer et de her des en utilisant un registre de
Ellepermetégalementauxbundlesde partager leurs des, ainsi queleurs Le
déploiementde l'OSGiest réalisé par le de de vie tlesopérationsde
déploiement des bundles
:Systèmedistribué,déploiementréparti, dynamique,OSGi,
modèle de
Trang 4menttoolsuse hniques h not measure withthe y ofthe tered
the installation, the ation, the ation, the update and the uninstallation.For
is based on a whole of nodes, h node tains two agents : a lo agent
distant agent ates the lo agent for depoying the onents h are retrieved
depen-managementsystem basedontheenginesof reasoningand p The deployment
isstarted afterthe potential errorswere
plat-formdeals with handlingof the units bundle by providing deployment and
ser-by using a register It also allows bundles to share their des, and their
operationsof deployment of bundles
A prototype based on anOSGi implementation,is built to validate the
hi-Keywords : Distributed system, distributed deployment,
OSGi,model of
Trang 5Intro 1
1.1 Motivation 3
1.2 Les du déploiement 3
1.3 Étapes de déploiement 4
1.4 Déploiement réparti 5
2 État de l'art 6 2.1 Déploiement des systèmes d'exploitation 7
2.1.1 Windows 7
2.1.2 Linux 7
2.2 Les modèles de osants 7
2.2.1 Les EJBs 7
2.2.2 Corba Component Model- CCM 7
2.3 Les modèles de 8
2.3.1 Open Gatewa initiative-OSGi 8
2.3.2 Web 8
2.4 Les outils d'installation 9
2.4.1 Installshield 9
2.4.2 RPM 9
2.5 Les modèles de déploiement 10
2.5.1 Olan 10
2.5.2 Software Do k 10
2.5.3 ORYA 11
2.5.4 Lira 11
2.6 Synthèse 12
3 OSGi - Plate-forme de déploiement de 13 3.1 Intro 14
3.1.1 initiale 14
3.1.2 m he 15
3.1.3 Bundle 15
3.1.4 18
3.1.5 Programmation de OSGi 20
Trang 63.1.6 Plate-formes OSGi 21
3.2 OBR - de déploiementautomatique de l'OSGi 22
3.3 22
4 de déploiement réparti 24 4.1 Déploiement de osantsd'OSGi 25
4.1.1 25
4.1.2 Agent lo 26
4.1.3 Agent distant 29
4.1.4 Module de gestion des dép 30
4.1.5 Dépt 31
4.1.6 Langage de déploiement 32
4.2 Implémentation a XML-RPCet 33
4.2.1 Le osant de 33
4.2.2 Le osant d'administration 33
4.2.3 Le osant de déploiement 34
4.2.4 L'in in e graphique 34
Trang 71.1 Les du déploiement 3
1.2 de vie du déploiement 4
3.1 initialeOSGi 14
3.2 générale 15
3.3 m he 16
3.4 de vie d'un bundle 16
3.5 Contenud'un bundle 17
3.6 Exemple d'un manifeste 18
3.7 Registre de 19
3.8 ateuret l'in BundleContext d'un bundle 20
3.9 Comparation des implémentationsOSGi 21
4.1 de déploiementréparti 25
4.2 La négo de déploiement 26
4.3 L'agentlo 26
4.4 Le de 27
4.5 Le de déploiement 27
4.6 Le de gestionde dépts 28
4.7 Le de gestionde n÷uds 28
4.8 L'agentdistant 29
4.9 Le de 29
4.10 Le serveur de 30
4.11 Le tde 30
Trang 8Ce stage s'agit d'implanter et valider une au sein de l'équipe CAMA
1
du département informatique de l'ENST Bretagne à Plouzané, dans le du projet
SAUNA
2
qui vise à gérerun déploiement répartide
Lebutde stageest d'étudierledéploiementdanslesmodèlesde osants,de
ser-des systèmes d'exploitationetdes outils d'administration;d'étudier lessp
déploiement
3, une plate-forme de déploiement des
qui permet de réaliser le déploiement tralisé en orant les de base Dans
rapport,nousprésentons d'aborddanslapremière lamotivation,lesauteursetles
du déploiement.La 2présentelestravaux tssurledéploiement:
les modèles, les outils, les langages de dénition et le déploiement réparti La 3
détaille la plate-formeOSGi sur laquelle notre système, qui est dans la 4,
sebase Le rapport est terminépar les etpersp es
Trang 9Le déploiement
Trang 10Fig 1.1 Les du déploiement
dis-poniblepourl'usage.Denosjours,ledéploiementdevientimportantpour les
danslesentreprisesóle informatique tientplusieursordinateursetéquipements
sont reliées
Pourlagestiondel'environnement leserveur se hargede fournirunensemble
quipeuvent êtreinstalléessur lessites.Ilest interditàun utilisateur
ouen utilisantun CD d'installation fourni par le pro Cela permet à l'entreprise
d'assurer queles quisontdéployées, sont tes et queleur déploiement
est
sous environnements tel que Linux ou Windows L'administrateur du système
informatiquede l'entreprise a besoin d'une manièrede savoirles entre les
ap-et entre les sites En outre, la permet à l'entreprisede diminuer
le en réalisantles déploiements de automatisée età
Le déploiement à large helle est faiten basant sur un héma tenant 3 :
pro entrepriseet utilisateur (Figure1.1)
• Le pro fournit les à déployer sur les entreprises ou les teurs
utilisa-• L'entreprise prend en harge le déploiement sur les sites, elle peut aussi modier
a antla déployer
• L'utilisateurreprésentele site sur lequel est déployée Une fois
Trang 11l'appli-Fig 1.2 de vie du déploiement
de-puis la validation du pro jusqu'à l'installationet la désinstallationsur le site des
utilisateurs.La gure 1.2 le de vie du déploiement
1 Conguration &
2 Installation
L'installationapourbutd'installer emballéesurlesitedesutilisateurs
• Le transfert, il existe 2 modes de transfert : push, si le pro initialise letransfert, etpull, si l'utilisateurdemande l'installation
t les dernières possibilités oertes a ant l'installation L'utilisateur peut
personnalisée
• L'installation physique : Les paquets hiers) sont installés sur la
ation
Trang 12ins-4 & Misề jour
déjàinstallée Elleest réaliséề l'initiativede l'utilisateur oudu pro Dans
l'ap-puissent être transfertsetpuis être installés.Enn, ation
modierou lasupprimer
6 Désinstallation
de désinstallation est ladernière du de vie du déploiement
du déploiementréparti :
• Ladistributiondes osants:Ledéploiementdes sebasesur des
tions hétérogènesde osants
ré-partie se ose des osants qui devent être déployés sur des sites diérents
pré-dénis
• La des données des osants:Dansle óil ya plusieursvariantesd'un osantdontuneseuleest ée.Lesystèmepeutdynamiquement hanger
hangements doivent être réalisés en prenant en le problème de
des états/données des variantes etdes sites
• Les osants peuvent être founis par diérents pro
• Les osants peuvent faire partiede plusieurs en même temps
•
Trang 13État de l'art
Trang 142.1 Déploiement des systèmes d'exploitation
Au debutde l'installationde Windows, tous les hiersexigés pour l'installationsont
à partir de l'annuaire provisoire dans l'annuaire d'installation sur le disque dur
de l'ordinateur de Après que l'installation de mode des textes soit le
mode de GUI
1
En mode de GUI, l'utilisateur est pour l'information
employée pour adapter l'installation Pour un hier de réponse, qui est un hier
des textes qui permet à l'administrateur de fournir l'informationqui doit être unique à
haque ordinateur ou à haque utilisateur, est UDF
2est un des types de hier de
réponse
FAI
3
estunoutilautomatiséd'installationpourinstalleroudéployerDebianGNU/Linux
LeFAI sebasesur desman ilpeut êtreutilisépour installerles
hierssimples destextes LeFAI est égalementemployépour mettreàjour lessystèmes
des Enterprise JavaBeans (EJB)[1℄est une àbasede
posants (appelé beans) pour le développement et le déploiement
distri-buées La hnologiedes EJBs propose un modèle de osant qui a pour ob de
hnolo-gieaaussi butde des osants(les beans)indépendantsdes plate-formes
Cela signie qu'un bean une fois développé doit pouvoir être déployé sur
Trang 15fournir et des auxin nomées pré-dénies appelées port.
dé-ployés Le taineur ore un ensemble de utilisés par la plupart de systèmes
OSGi[4, 5, 6℄ est une sp ouverte pour le déploiement, dénie par l'OSGi
℄qui est fondé en1999 Laplate-formeOSGipermetàune diversité de
d'être hagéeet dansun serveur embarqué.Lesunités de basede l'OSGi
sont des bundles et des dont un bundle est un paquet jav de déploiement Un
bundlefournit un(des) dénispar les trats Dansle ólebundlejoueun
rle d'une bibliothèque,il ne fournit , il ne partagequedes
érer et l'utiliser
Wire lesdép de paquetssont aussigéréespar l'OSGide manière
auto-matique.Ces dép permettentdepartager du de entrebundlesen exportantles
in de L'OSGi ore également un support de gestion des versions : seule
ladernière version est utilisée
Dans un bundle, un ateur livré s'o e du démarage du bundle, il reçoit une
vers le texte BundleContext Cela lui permet d'enregistrer ses de
déploiement tralisé de bundles (Repository e)
hange de données entre les et les systèmes hétérogènes dans les
environ-nementsdistribués.Il s'agit d'un ensemblede exposées sur l'Internet
ousur un Intranet, par etpour des ou hines, sans intervention humaine,
eten temps réel Il existe deux hnologies derrièrele terme Web : les
• HTTP fournit toutes les opérations (GET, POST, PUT et DELETE, tiellement);
essen-•
Trang 16• utilisationdes standards hypermedia: HTML ouXML qui permettent de fairedes
Les Web WSreposentsur un ensemble de proto etde standards de base
hétéro-gènes:
4pour hange de messages
• Le hier WSDL
5pour la des messages, de leur type de données
• Uneentrée éventuelle dans un annuaire UDDI
6
di-verses plate-formes en se basant sur le proto HTTP, pour hange de données en
distribués
Installshield[8℄ est un outil de déploiement des Windows Il permet à
empaqueter, à installer, à désinstaller et à maintenir les Cet outil se base
sur un fournit par Windows appelé Windows Installer qui ore des moyens
de l'installation
7, l'installation est prise en
son
Le RPM P kage Manager (RPM)[9℄ est un système libre de gestion des paquets
indispensable sur distributions Linux tel que : Red Hat, Fedora, Mandriva
L'unitéde déploiement est un paquetRPM qui tient:
• Lesentêtes du hier RPM
• Lasignature à ensurer l'intégritéet/ou l'authen
Trang 17• L'entête tenantmeta-information:nomdepaquet,version, listedehiers,
• Une hivegzip
CertainsoutilsbaséssurRPMsontdéveloppéspourledéploiementautomatique:URPMI,
YUM,APT-RPM Ces outils permetde her etd'installerlepaquetet ses
du projet de l'INRIA Rhne-Alpes Cet environnement permet la
8dénit
osants en établissant les règles qui gèrent les in et qui indiquent
proto
L'OCL est une part d'une plate-forme qui fournit les outils pour la et
politiques de gestion
LeSoftware Do [11℄est une permettantde gérerledéploiement
d'appli-développépar l'équipe Lo kheed Martin, dans le de l'OLLA,un
environne-ment oré d'apprentissage qui permet de partager des tenus multi-médias
re-gistreetde érerdes événementsd'un hangementduregistre;un release do réside
aupro quifournitun registred'informationsur lesversions de ;unagent
Trang 18des hes sp du déploiementaunom des pro etdes
teurs; unsystèmede messagerieWAM/E
9utiliséapour butde transmettredesmessages
etévénements entre lesagentsdu release do et du eld do
ORYA[12℄ est une plate-forme orant un support automatisé aux du
de vie du déploiement, développée au laboratoire LSR de Grenoble ORYA est basé sur
la réutilisation et l'intégration des outils de déploiement existants ORYA dénit une
des diérents et entités du déploiement, ainsi qu'une
permettantde faireinteropérer des outils hétérogènes etne se t pas
• niveau du pro : représenté par le serveur
• niveaude l'entreprise:représentéparleserveur d'entreprise, ilest hargéde fournirunevueglobaledel'entrepriseetdexerlespolitiquesdedéploiementdel'entreprise
• niveau des sites :les hines sur lesquelles ledéploiementv se réaliser
Sur les niveaux, les entités sont selon un héma XML qui dénit
l'informa-tion pour le pro de déploiement ORYA permet l'automatisation du déploiement
important du langage, il permet au moment du déploiement de prendre en
l'état de l'environnement et/ou les politiques de déploiement des diérents et de
de la gestion de réseau Lira réalise sur les deux niveaux : le niveau de
deux typesd'agent:
MIBs
10
• L'agent de serveur qui est lié à un ordinateur dans le réseau, il est responsable
opérationssur des variables déniespar son MIB
Liradénitun agent de gestionqui lui-mêmesoitun agent de
agent peut a oirun MIBet répondreaux agentsde plus haut niveau L'agent de gestion
réinterpréterait lesdemandes de (et état) qu'ilreçoit dans des demandes,
ildevrait env yer auxagentsdes osants qu'il trle
LiradénitaussiunensembledebasededénitionsstandardiséesdeMIBpour haque
type d'agent
9
Wide-AreaMessaging/Eventsystem
Trang 192.6 Synthèse
de vie d'une La totalité des outils réalise un déploiement tralisé
Certains outils sont sp d'un système d'exploitation, d'un genre de réseaux ou
d'un type de osant Ils ne permettent pas de résoudre les problèmes trés du
déploiement réparti(lirela 1.4)
Trang 20OSGi - Plate-forme de déploiement de
Trang 213.1 Intro
Cette partie présente les grands es de la plate-forme dynamique de
dé-taillés dans les domaines pour lesquels ils ont été dénis Le hapitre débute
dansle delaplate-formeOSGi.Unbundlefournit un(des) quela
3.1.6 termine partieen présentant lesimplémentations OSGiet en les t
La première motivation de l'OSGi était de dénir un modèle
d'administra-tion d'un de passerelles dans lequel l'administrationest transparente à l'utilisateur
b des qui luisont oerts Ce modèleest illustrépar lagure 3.1
$GHOH
5pVHDX 'RPRWLTXH
%XQGOHV
3DVVHUHOOH26*L
'pSORLHPHQW :(%
8VDJHU
&RQVROH
6HUYHXU 2SpUDWHXU GHOD 3DVVHUHOOH
6HUYHXU )RXUQLVVHXU GHVHUYLFH GLVWULEXWHXU pOHFWULFLWp
6HUYHXU )RXUQLVVHXU GHVHUYLFH VRFLpWp JDUGLHQQDJH
&HQWUDOH DODUPH
,QWHUDFWLRQV
&DPHUD VXUYHLOODQFH
8VDJHU$JHQW
KRUVIR\HU
Nousrappelons,unepasserelleestunintermédiaireentreunréseauouvertetunréseau
lo privé Le réseau joint la passerelle à des équipements de l'usager nal Ces
prévuespour êtrebien àunréseauouvert.Lapasserelle permetde résoudre
Elleest administrée par un opérateurqui gère le déploiementdes fournis par les
Trang 223.1.2 m he
généraleOSGiest danslagure3.2 Laplate-formeOSGiprend
en harge lamanipulation des bundlesen fournant des de déploiement et
d'exé-Ellese base sur la hine virtuellejav (JVM)
Matériel
Pilote Pilote
Pilote Pilote
Système d’exploitation Java VM
OSGi
Bundle Bundle Bundle
services
dé-ployées sur laplate-forme sous forme des unités de livraison appelées bundlesqui seront
détaillésdansla 3.1.3.Laplate-formeoreaux d'unepartunregistre
ser-Le déploiement de la plate-forme,réalisé par la he de de vie, les
hargementde ilpermetàpartagerdes entredesbundlesen implémentant
un hargeur de
Un bundle est une unité jav de déploiement Une fois un bundle est installé sur la
plate-formeOSGi,son de viedépend des de déploiement (gure3.4) :
• INSTALLED: le bundlevientd'être installéou d'être misà jour
• RESOLVED : lesdép du bundlesont résolues
• STARTING : le bundleest en train d'êtredémaré, l'état est ACTIVE
• ACTIVE : lebundle est en
• STOPPING : le bundleest en train de s'arrêter, l'état est RESOLVED
•