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

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 375
    Points : 154
    Points
    154

    Par défaut Développement d'un logiciel orienté plug-in : Quelle techno ? OSGi ? JPF ?

    Bonjour,

    Je souhaite développer une application basée sur des plug-in.
    Ce sera une base à laquelle se grefferai des plug-in pour ajouter/enlever des fonctionnalités ou même modifier des formulaires.

    Je ne sais pas vers quoi me tourner.
    JPF : J'ai l'impression que ce n'est plus tenu à jour. Judicieux de partir sur une technologie plus supportée ?
    OSGi : Ce que j'ai le plus en vue. Mais j'ai lu que c'était dur à mettre en place. Et que la conception devrait être adaptée. Mais dans quel sens ? Je ne trouve pas de documentation répondant à mes interrogations.
    Java Plug-in technology : J'ai l'impression que c'est uniquement pour le développement web, avec des applets.
    SPI : Pareil, est-ce toujours supporté ?

    Est-ce que j'oublie des Framework ?
    Je en sais pas trop quoi penser... Comme ce concept de plug-in est nouveau pour moi, je n'ai pas beaucoup de recul et de connaissances.

    Donc si quelqu'un pouvait m'apporter un regard extérieur et connaisseur, ce serait super !
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 802
    Points : 651
    Points
    651

    Par défaut

    Je te recommande vivement OSGI qui est de très loin la solution la plus réputée. Je l'ai utilisé il y a quelques temps, je ne me rappelle plus trop, mais je n'ai rencontré aucune difficulté à la mise en oeuvre.

    A l'époque, j'avais suivi ce tuto : http://t-templier.developpez.com/tut...va/osgi/osgi1/

    Bon courage

  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 : 34
    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 208
    Points
    7 208

    Par défaut

    +1 pour OSGi

    Très simple et rapide à mettre en place.
    Là où je bosse nous utilisons l'implémentation Apache Felix.

    Le seul effort de conception à faire est de bien penser ton système en terme de plug-in. Ce qui n'est en rien spécifique à OSGi mais bien à ta problématique.
    Dans OSGi tu as tout un cycle de vie, un système de listener et de requêtage pour gérer ça simplement.
    Il faut bien garder à l'esprit qu'un bundle (module OSGi) peut disparaître à tout moment et qu'il faut constamment "checker" l'état du module avant de l'utilisater ou l'appeler.
    Il faut donc bien nettoyer les références partagées en cas d'erreur d'un module, ne pas trop dépendre de classe mais plutôt d'interface, etc.

    Je distingue deux forme d'utilisation OSGi
    1. Le mode "plateforme" : tu lances un main générique qui démarre le framework qui démarre automatiquement et/ou à la demande des modules. Utile si tu n'as pas de tronc "commun" fort entre les modules.
    2. Le mode "embarqué" (cas typique d'un système de plug-in) : ton application définit une API qui est partagé par tes plug-ins. C'est l'application qui configure et démarre le framework. C'est donc l'application qui a le contrôle sur la gestion des modules. Elle peut arrêter / démarrer les modules sur la base de règles fonctionnelles / action utilisateurs.
    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é
    Homme Profil pro
    Développeur Java
    Inscrit en
    avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 375
    Points : 154
    Points
    154

    Par défaut

    Merci pour vos deux retours.

    Je vais donc me diriger vers OSGi.

    Mon application ressemble plus au deuxième cas que tu as mis en avant, Nemek.

    J'attaque bientôt les dev. J’espère ne pas avoir trop de problèmes !

  5. #5
    Membre expérimenté
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    juillet 2006
    Messages
    1 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : juillet 2006
    Messages : 1 151
    Points : 1 626
    Points
    1 626

    Par défaut

    parent pauvre (mais propre sur soi) java.util.ServiceLoader
    facile à utiliser pour des greffons sur des services simples définis par des interfaces . Bien pour commencer à s'habituer (pas la richesse d'OSGI)
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (un peu de pub pour mon site: http://scrountch.info/java )

  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 : 34
    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 208
    Points
    7 208

    Par défaut

    Interressant je ne connaissais pas.
    Ayant un peu la flemme de potasser, j'aurai quelques questions:
    1. Peut-on avoir plusieurs fichier META-INF/services/com.developpez.MaClasse ?
    2. Le(s) fichier(s) est(sont)-il(s) rechargé(s) à chaque appel à la méthode "load" ?
    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

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    avril 2007
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 375
    Points : 154
    Points
    154

    Par défaut

    OK, je vais étudier aussi ServiceLoader pour le début.
    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/12/2008, 21h52
  2. Réponses: 0
    Dernier message: 03/08/2008, 17h35
  3. developpement orienté plug in en java
    Par henpower dans le forum Plateformes réactives et architectures modulaires
    Réponses: 3
    Dernier message: 13/02/2008, 03h10
  4. Réponses: 8
    Dernier message: 04/08/2006, 01h31
  5. Réponses: 10
    Dernier message: 11/10/2005, 12h16

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