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

Java EE Discussion :

Établir une interface entre un noyau et des plugins


Sujet :

Java EE

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut Établir une interface entre un noyau et des plugins
    Bonjour,

    Je suis en stage sur un projet de CRM que je dois réaliser en JEE et qui se compose d'un noyau principal auquel je dois pouvoir venir y greffer des plugins afin d'en étendre les fonctionnalités.

    Je dois donc identifier toutes les méthodes à mettre dans l'interface afin d'être sûr que les plugins soient compatibles avec le noyau (il s'agirai d'une sorte de contrat que le plugin s'engage à respecter pour venir se greffer au noyau).

    J'ai cependant du mal dans cette phase d'identification car je ne sais pas qu'elles sont les questions que je dois me poser.

    Pouvez-vous me donner des pistes de réflexion afin d'orienter mon analyse ?

    Merci d'avance pour votre aide,
    Mathieu

    PS : Si le sujet n'est pas dans la bonen catégorie veuillez m'en excuser je ne suis pas très doué pour bien placer mes questions..

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    Je vais préciser un peu.

    Je cherche à savoir comment créer dans mon application un connecteur pour plugin afin de pouvoir ajouter des modules par la suite.

    Je ne sais vraiment pas comment créer ce connecteur et je ne sais vraiment pas comment aborder ce problème.

    Pouvez-vous m'aider s'il vous plait ?

    cordialement,

    Mathieu

  3. #3
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Bonjour,

    peut être que OSGi pourra vous convenir :
    http://t-templier.developpez.com/tut...va/osgi/osgi1/

    il y a un forum dédié :
    http://www.developpez.net/forums/f16...tion-osgi-sca/
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    Merci je regarde ça tout de suite

    J'ai trouvé ça aussi dans mes recherches et je vais l'étudier aussi :
    http://vincentlaine.developpez.com/t...plugins/#LII-A


    Merci pour ton aide en tout cas fxrobin

  5. #5
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Disons qu'OSGi est assez réputé pour faire de la programmation modulaire. T'es un peu "tranquille" en faisant ce choix, même si tu dois d'abord te l'approprier.

    Après rien ne t'empêche de faire ton propre système, adapté à ton besoin, comme dans l'article de Vincent Lainé.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  6. #6
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,
    je te recommande aussi d'utiliser OSGI si tu as le temps de l'apprendre et l'appréhender, sinon oui, pour des trucs simplistes, tu peux utiliser le tutoriel de Vincent Laine. Mais saches que un des risques que tu pourrais à priori avoir dans ce cas, c'est la gestion du CLASSPATH si tu as plusieurs libs qui dépendent d'autres même libs MAIS avec des versions pour la même lib, ou bien en doublons, etc etc ...
    C'est pas aussi trivial du tout de gérer les classloader si on veut faire un système de plugins

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    Ok merci du conseil je vais effectivement me pencher sur OSGI en espérant que je puisse le maîtriser assez vite quand même ^^

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    C'est je pense un peu trop gros OSGi pour mon besoin.

    Moi à la limite j'aurai l'utilité de la couche service.

    J'aimerai surtout savoir les critères à prendre en compte pour répondre à des questions du genre :

    - Que doit fournir mon noyau d'application pour que les plugins fonctionnent ?
    - Que dois fournir les plugins pour s'adapter à mon noyau d'application ?

    Je ne sais pas si je suis assez clair mais merci de m'aider,

    Cordialement,
    Mathieu

  9. #9
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Chaque implémentation et architecture pour supporter des plugins est différente, c'est vraiment spécifique au besoin.
    Ce ne sera pas vraiment (voire pas possible) de t'aider sans en savoir plus sur ce que tu es censé attendre de te plugins.
    En gros, il faut plus de détails quoi
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    Ok alors par exemple un des premiers plugins que je devrai créer par la suite sera un service de ticketing.

    Le plugin devra permettre la création et gestion de ticket client (un client passe une demande = 1 ticket)

    Apres justement je dois créer une interface générique pouvant répondre à un maximum de besoin

  11. #11
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Disons que c'est juste dommage de ré-inventer l'eau tiède.
    Prends le temps de t'approprier OSGi, comme l'a dit aussi Paissad.
    Passe 2 jours complets dessus, sans penser (trop) à ce que tu vas en faire.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  12. #12
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Okay,
    bon, je vais essayer de résumer au max que possible
    On va supposer que tu vas avoir une interface qui va t'aider à définir les méthodes que devront implémenter tous les plugins
    Exemple:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public interface TicketPlugin {
      public void create(Ticket t);
      public void delete(Ticket t);
      // blablabla ...
    }
    Une des questions importantes qu'il faudra te poser maintenant, c'est : est ce que lorsque tu vas implémenter cette interface pour faire un plugin, est ce que tu auras besoin d'utiliser des librairies externes ou juste des classes du JDK
    Si oui, alors, tu peux te passer de OSGI (car on est dans un cas plus ou moins simple)
    Tu feras tes implémentations
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class Plugin1 implements TicketPlugin{
      // je fais mes implémentations ...
    }
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class Plugin2 implements TicketPlugin{
      // je fais mes implémentations ...
    }
    Ainsi, tu pourrais peut être suivre le tutoriel que tu as montré plus haut, mais je te conseille néanmoins de privilégier osgi
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  13. #13
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Si tu veux ensuite détecter tes classes à chaud, il faudra jouer avec de l'introspection et de l'instanciation dynamique de classe. C'est pratique

    Regarde l'API de Reflection en JAVA
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  14. #14
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Re-bonjour
    regarde ceci aussi, ça pourrait t'être suffisant
    http://ydisanto.developpez.com/tutoriels/java/services/
    C'est simple, clair et plutôt efficace pour de faire de p'tites choses.

    Bon courage.
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    Merci pour vos conseils. Je vais me pencher sur toutes vos solutions et notamment OSGi vu l'enthousiasme que vous lui portez

  16. #16
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 55
    Points
    55
    Par défaut
    En étudiant ServiceLoader je suis tombé sur cet article ( http://baptiste-wicht.developpez.com...?page=sommaire ) qui pourrait aider ceux qui ont les mêmes genres de problématiques que moi

    Cordialement,
    Mathieu

  17. #17
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Oui, en effet c'est un très bon tutoriel aussi.
    Ce ne sont pas les ressources qui manquent dans ce site ... y'a qu'à bien chercher en fait.
    Bon courage pour la suite en tous cas.
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

Discussions similaires

  1. Comment établir une relation entre deux tables
    Par Monta^^ dans le forum Hibernate
    Réponses: 15
    Dernier message: 30/04/2009, 19h54
  2. Réponses: 1
    Dernier message: 29/08/2008, 11h16
  3. Créer une Interface entre Delphi/Matlab
    Par Yearning dans le forum MATLAB
    Réponses: 1
    Dernier message: 29/03/2007, 09h12
  4. Réponses: 5
    Dernier message: 08/11/2006, 13h25
  5. [C#] établir une communication entre UsersControl ??
    Par Nycos62 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/12/2005, 13h54

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