GL5 2005-2006 1 P2P et OSGi Présenté par : Ben Saad Myriam Hentati Sonia Fatma Encadré par : Mr....

Post on 03-Apr-2015

113 views 6 download

Transcript of GL5 2005-2006 1 P2P et OSGi Présenté par : Ben Saad Myriam Hentati Sonia Fatma Encadré par : Mr....

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.