GL5 2005-2006 1
P2P et OSGi
Présenté par :
Ben Saad MyriamHentati Sonia Fatma
Encadré par :
Mr. Mohamed Romdhani
GL5 2005-2006 2
Peer-To-Peer
GL5 2005-2006 3
Sommaire
Définition
Historique
Architectures
Avantages & Inconvénients
Applications
GL5 2005-2006 4
Peer-to-peer = d’égal à égal
• Tout nœud peut être simple client ou serveur de ses ressources (CPU, fichiers, …)
Système d'échange direct de ressources entre machines connectées en réseau.
Se distingue fondamentalement de l’architecture client / serveur.
Définition
GL5 2005-2006 5
1969 : première esquisse d'Internet, Arpanet s’appuie sur le
concept du P2P
1979 : premiers échanges de fichiers
1996 : première messagerie instantanée en P2P : ICQ
1999 : le moteur de recherche Gnutella : partage de fichiers sur
le web
1999 : Napster : échange de fichiers de musique en ligne
1999 : Seti@home : programme de calcul distribué
2000 : Groove : plate-forme de travail de groupe
2001 : première conférence P2P organisée par l’éditeur O’Reilly
Historique
GL5 2005-2006 6
Architectures
Centralisée.
P2P
Index centralisé et données décentralisées.
Pur P2P
Index décentralisés et données décentralisées.
GL5 2005-2006 7
Modèle client-serveur.
1 seul serveur stable est requis • Il sert d’index et de stockage des
données.• Ce serveur peut être constitué de
plusieurs machines stables.• Tolérance aux pannes,
extensibilité, …
Architecture centralisée
GL5 2005-2006 8
Index centralisé / Données décentralisées
Principe :• Chaque pair annonce à l’index la
liste des ressources qu’il sert.• Un pair requête l’index pour
connaître la liste des pairs qui servent une ressource.
• Le chargement des données se fait de pair à pair.
GL5 2005-2006 9
1
1 UN UTILISATEUR LANCE UNE REQUETE A LARECHERCHE D'UN FICHIER DONNE.
LE SERVEUR CENTRAL TRANSMET LA LISTE DES ORDINATEURS PROPOSANT LE FICHIER DEMANDE.
L'USER TELECHARGE LE FICHIER DIRECTEMENTA PARTIR D'UN ORDINATEUR RENSEIGNE PAR LE SERVEUR.
Index centralisé / Données décentralisées
GL5 2005-2006 10
Avantage : • Efficacité des recherches, facilité d'utilisation.
Inconvénients :• Complètement tributaire du serveur central.• Aucun anonymat n'est garanti.• Possibilité pour le serveur central de créer des
fichiers clients et des profils d’utilisateurs pour les revendre à des compagnies spécialisées.
Index centralisé / Données décentralisées
GL5 2005-2006 11
Index décentralisé / Données décentralisées
Principe :
• Découverte des pairs qui servent l’index.
• Les pairs qui servent d’index peuvent s’annoncer.
• Liaisons établies de proche en proche.
• Requêtes transférées et relayées.
• Fichiers transférés directement du demandeur au
donneur.
• Réseau en perpétuelle mutation.
GL5 2005-2006 12
Index décentralisé / Données décentralisées
LANCEMENT DE LA RECHERCHE POUR OBTENIR UN FICHIER.UNE REQUETE EST ENVOYEE AUX ORDINATEURS CONNUS PAR LE LOGICIEL.
SI LE FICHIER NE S'Y TROUVE PAS, CHACUN DE CES ORDINATEURS TRANSMET CETTE MEME REQUETE A SES PAIRS CONNUS ET ACTIFS A CET INSTANT.
L'INITIATEUR DE LA REQUETE RECOIT LA LISTE DES FICHIERS CIBLES AVEC LEURS LOCALISATIONS.
CONNEXION A L'ORDINATEUR EN QUESTION POUR RECUPERER LE FICHIER.
GL5 2005-2006 13
Index décentralisé / Données décentralisées Avantages :
• Grande souplesse, grande robustesse.• Anonymat (relatif) assuré car il n'y a pas de
serveur qui stocke des données sur les utilisateurs.
Inconvénients :• Anonymat => risques de piratage et d’échange de
données illégales.
GL5 2005-2006 14
Le P2P : Avantages
Échanges plus rapides• car plus directs.
Optimisation de l’utilisation de la bande passante du réseau• Équilibrage de la charge du réseau
Maintenance et coûts réduits• Ressources réparties
Résistance aux pannes• Réplication des ressources
Extensibilité• Passage de 100 à 10000 nœuds sans problème
Utilisation des ressources inutilisées• CPU, Stockage, …
GL5 2005-2006 15
Le P2P : Inconvénients
QoS
• Ligne peu fiable, débit peu élevé…
Sécurité
• Crackers
• Virus
• Confidentialité
• Authentification
Contenu trompeur
• Consistance
• Contradiction
Loi : Wild Wild Web
• Droit d’auteurs
• Contenu immoral
GL5 2005-2006 16
Applications Applications distribuées (Alternative au RPC) Répartition de stockage
• Multimédia, … Répartition de puissance de calcul Applications de collaboration Messageries instantanées Partage de fichiers Indexation et moteurs de recherche Jeux en réseau Enchères
GL5 2005-2006 17
OSGi (Open Services Gateway initiative)
GL5 2005-2006 18
Sommaire
Présentation
Motivations
Architecture Générale
Bundles
Services
Évènements du framework
Sécurité
Frameworks Open Source
GL5 2005-2006 19
Présentation
Corporation indépendante fondée en Mars 1999 par une quinzaine de sociétés “ membres ” : Sun Microsystems, IBM, Ericsson et autres.
Définit une norme pour développer et déployer des télé-services dans un ‘service gateway’ (serveur embarqué).
GL5 2005-2006 20
Présentation
OSGi permet la gestion de modules Java embarqués sur des équipements tels que :
• des plateformes de services résidentiels,• des téléphones mobiles,• des modems ADSL,• des équipements de mesure électrique,• des applications modulaires comme l'IDE
open-source Eclipse.
GL5 2005-2006 21
Présentation
OSGi repose sur :
• un modèle de déploiement simple.
• une gestion du cycle de vie des composants
(conteneur de composants).
• des définitions de services standards.
• des API pour exécuter et gérer des services
sur une passerelle.
GL5 2005-2006 22
Motivations
Indépendance de la plate-forme
Chargement/Déchargement de code dynamique• langage Java
Déploiement dynamique d’applications
Programmation orientée service dynamique
GL5 2005-2006 23
Architecture Générale
Un environnement OSGi comprend les entités suivantes :
• Passerelle OSGi (Service Gateway)
• Fournisseurs de service (Service Provider)
• Opérateur de la passerelle (Gateway Operator)
• Réseaux locaux et périphériques
GL5 2005-2006 24
Architecture Générale
Bundle- Unité de livraison et de déploiement sous forme d’une archive jar.- Unité fonctionnelle (offre des services).
Conteneur de composants
bundle
GL5 2005-2006 25
Cycle de vie d’un bundle
Le bundle a été installé correctement.
Toutes les classes que nécessite le bundle sont disponibles, il peut démarrer.
Le bundle est actif.
Retour à l’étatResolved.
Le bundle démarre,il enregistre ses services,et obtient les services dont il a besoin.
Le bundle est désinstallé, ilne peut plus changer d’état.
Le bundle s’arrête, il désenregistreses services.
GL5 2005-2006 26
Structure d’un bundle
Ressources
Servicesfournis
Packagesexportés
Activateur +objets métiers quiimplémentent les services
Fichier Manifest
Packagesimportés
Servicesrequis
GL5 2005-2006 27
Fournit des informations descriptives. Essentiel pour le framework. Décrit le déploiement et l’exécution.
Manifest
Manifest-Version: 1.0Bundle-Name: BundleHelloWorldBundle-SymbolicName: BundleHelloWorldBundle-Version: 1.0.0Bundle-Description: Bundle qui affiche Hello World !Bundle-Vendor: GL5Bundle-Activator: atelier.hello.ActivatorImport-Package: org.osgi.framework
GL5 2005-2006 28
Informations nécessaires au framework :
Manifest
GL5 2005-2006 29
Informations nécessaires au framework :
Manifest
GL5 2005-2006 30
Classe publique
• Implémente les 2 méthodes start() et stop() de
BundleActivator.
• qui reçoivent une référence sur un contexte.
Activator
GL5 2005-2006 31
start(BundleContext ctxt)• recherche et obtient des services requis auprès
du contexte et/ou positionne des listeners sur des événements.
• enregistre les services fournis auprès du contexte.
stop(BundleContext ctxt)• désenregistre les services fournis.• relâche les services requis.
Activator
GL5 2005-2006 32
Interface vers le framework • Passé lors des invocations de start() et stop() de
l’Activator.
Permet :• L’enregistrement de services.• L’obtention et la libération des services.• La souscription aux évènements du Framework.• L’accès aux ressources du bundle.• L’accès aux propriétés du framework.• L’installation de nouveaux bundles.• L’accès à la liste des bundles.
BundleContext
GL5 2005-2006 33
Une interface publique et des implémentations.
se trouvent dans des packages différents.
implémentation normalement non publique.
multiples implémentations possibles.
« emballés » dans les bundles.
Qualifiés par des propriétés.
Services
GL5 2005-2006 34
Enregistrement d’un service Le framework gére les services enregistrés en utilisant un
objet ServiceRegistration.
GL5 2005-2006 35
Recherche d’un service Le framework gére les références aux services en
utilisant un objet ServiceReference.
GL5 2005-2006 36
Services standards (1) Log Service
• Permet de journaliser des traces ou de se mettre en l’écoute de ces traces.
Http Service• Offre un serveur HTTP sur lequel les autres bundles
peuvent enregistrer des ressources ou des servlets. Device Access
• Permet l’utilisation de périphériques matériels (chargement de drivers, utilisation de matériel plug-and-play).
Service Tracker• Suit l’évolution d’un service (enregistrement,
modification, désenregistrement)
GL5 2005-2006 37
Services standards (2)
Configuration Administration Service• Gère la configuration de l’environnement OSGI.
Permission Administration Service• Gère les droits du bundle.
Preferences Service• Gère la personnalisation.
User Administration Service• Définit les droits des utilisateurs.
Package Administration Service• Autorise l’import et l’export de packages.
GL5 2005-2006 38
Évènements du framework
Le framework expose différents évènements aux bundles à travers le bundle context :
• ServiceEvent : signale l’enregistrement, le désenregistrement, et le changement de propriétés pour les objets services.
• BundleEvent : signale les changements dans le cycle de vie des bundles.
• FrameworkEvent : signale que le framework a démarré ou rencontré des erreurs.
GL5 2005-2006 39
Basée sur les permissions du JDK1.2
Définit 3 permissions standards :
• AdminPermission : Autorise l’accès aux fonctions d’administration du framework.
• ServicePermission : Contrôle l’enregistrement et la récupération de services.
• PackagePermission : Contrôle l’import et l’export de packages.
Sécurité
GL5 2005-2006 40
Knopflerfish
GL5 2005-2006 41
OSCAR
GL5 2005-2006 42
Passons à la démonstration
GL5 2005-2006 43
Bibliographie
Open Services Gateway initiative : http://www.osgi.org
Framework open source :• Richard Hall, « OSCAR, Open Service Container Architecture »,
http://oscar-osgi.sourceforge.net/• Knopflerfish OSGi : http://www.knopflerfish.org/
Complément de cours :• Donsez, Hall, Cervantes, Chomat
•http://www.adele.imag.fr/donsez/cours/osgi.pdf• Donsez
•http://www.adele.imag.fr/donsez/cours/p2p.pdf
Site P2P d’O'Reilly : http://www.openp2p.com/
GL5 2005-2006 44
Merci de votre attention.