IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OGSi Java Discussion :

[OSGi] Service model vs. extender model


Sujet :

OGSi Java

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut [OSGi] Service model vs. extender model
    Bonjour à tous,

    Voila, je me (re)mets à bosser sur OSGI. Je cherche à changer l'architecture de mon application pour en faire une application à base de plugins. Je lisais cette page :

    http://felix.apache.org/site/apache-...nstration.html

    Ceci dit, il y est fait mention de service model et d'extender model.

    Quelqu'un peut-il m'expliquer la différence entre ces deux modèles ?

    Merci beauoup

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut (oui encore moi )

    Alors ils expliquent (très) rapidement au début de l'article la différence.
    En fait pour faire une application extensible en terme de fonctionnalités :
    • un bundle qui a tout un set de services différents qu'il active ou désactive à la demande (configuration, dynamiquement, ...), c'est plutôt le service model, où l'extensibilité de ton appli est pas obligatoirement basée sur différents bundles
    • chaque fonctionnalité est empaquetée dans un bundle, et pour en ajouter/supprimer, il te suffit d'installer/désinstaller un bundle, c'est plutôt le extender model

    Ceci dit c'est du vocabulaire uniquement, il faut surtout analyser ses besoins avant et déterminer ce qui a un sens dans la séparation des services. En général tu as un mélange des deux : plusieurs bundles qui ont chacun plusieurs services, qui peuvent être déployés ou non.
    La séparation des fonctionnalités et services entre bundles est plutôt compliquée et chacun a sa vision des choses, la question à se poser est : quelles sont les services et fonctionnalités dont j'aurai toujours besoin ensemble, alors il peut être sensé de les mettre dans les mêmes bundles.
    Mais bon y'a pas de réponse universelle et vaut mieux résoudre au cas par cas.
    Je dévie de la question un peu mais pour résumer : te casse pas trop la tête avec ce vocabulaire pour l'instant et réfléchis plutôt à ce qui est sensé pour ton application, comme savoir si ton appli est un bundle ou si tu préfères embarquer le framework, et ensuite de quelle modularité as-tu besoin (en terme de granularité, et de séparation des fonctionnalités). Trop de modularité n'est pas non plus souhaitable en général, car ça rend l'architecture complexe a comprendre et maintenir, pour des choses dont tu n'auras jamais besoin.
    De toute façon quelle que soit la solution que tu choisiras, tu devras sûrement séparer ou rassembler par la suite des choses que tu avais pas prévues

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Je rajouterai également qu'il est plus facile de gérer le cycle de vie des bundle que des services. A moins qu'il y ait des listener sur les services ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut
    Ok, j'y vois un peu plus clair, merci George7 (content d'avoir de tes nouvelles )

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Je rajouterai également qu'il est plus facile de gérer le cycle de vie des bundle que des services. A moins qu'il y ait des listener sur les services ?
    Certes les bundles sont gérés automatiquement par le framework. Mias c'est aussi plus lourd à mettre en place un bundle par service, il faut trouver le juste milieu
    Pour écouter et gérer les services, je trouve souvent le ServiceTracker mieux que les listeners (ils permettent notamment de détecter les services déjà en place lors du déploiement du tracker)

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Après consultation de la Javadoc il est effectivement possible d'être notifier de "l'arrêt" d'un service.
    J'avoue n'avoir utiliser le ServiceTracker uniquement pour récupérer la liste des services actifs sans savoir si je pouvais "écouter" l'ajout ou la suppression d'un service.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Construction de modeles et sous modeles via une requete
    Par zax-tfh dans le forum Entity Framework
    Réponses: 7
    Dernier message: 18/10/2011, 11h07
  2. Creation d'un Entity Model depuis un Model UML
    Par dogua dans le forum Entity Framework
    Réponses: 12
    Dernier message: 05/04/2011, 11h05
  3. Réponses: 4
    Dernier message: 02/12/2010, 10h04
  4. Modele EAV vs Modele Relationnel
    Par _Xavier_ dans le forum Schéma
    Réponses: 2
    Dernier message: 15/07/2009, 23h38
  5. [OSGi] Service dynamique simple
    Par bibilolo2 dans le forum OGSi
    Réponses: 25
    Dernier message: 02/04/2009, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo