Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE > Modularisation (OSGi, SCA...)
Modularisation (OSGi, SCA...) Forum d'entraide sur les architectures modulaires à base de composants et services (OSGi, SCA...). Avant de poster -> Les cours OSGi
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/03/2011, 14h22   #1
Titi41
Membre habitué
 
Homme Romain Marteau
Développeur Java
Inscription : avril 2007
Messages : 375
Détails du profil
Informations personnelles :
Nom : Homme Romain Marteau
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 : 122
Points : 122
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
Titi41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 23h30   #2
verbose
Membre expérimenté
 
Inscription : juillet 2007
Messages : 729
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 729
Points : 530
Points : 530
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
verbose est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/03/2011, 11h53   #3
Nemek
Modérateur
 
Avatar de Nemek
 
Homme Logan
Développeur Java
Inscription : août 2005
Messages : 1 699
Détails du profil
Informations personnelles :
Nom : Homme Logan
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Java
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : août 2005
Messages : 1 699
Points : 3 678
Points : 3 678
+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.
Nemek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 17h49   #4
Titi41
Membre habitué
 
Homme Romain Marteau
Développeur Java
Inscription : avril 2007
Messages : 375
Détails du profil
Informations personnelles :
Nom : Homme Romain Marteau
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 : 122
Points : 122
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 !
Titi41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 10h32   #5
professeur shadoko
Membre Expert
 
Avatar de professeur shadoko
 
Homme
consultant/formateur Java SE
Inscription : juillet 2006
Messages : 774
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 64
Localisation : Autre

Informations professionnelles :
Activité : consultant/formateur Java SE

Informations forums :
Inscription : juillet 2006
Messages : 774
Points : 1 068
Points : 1 068
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!
professeur shadoko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 10h45   #6
Nemek
Modérateur
 
Avatar de Nemek
 
Homme Logan
Développeur Java
Inscription : août 2005
Messages : 1 699
Détails du profil
Informations personnelles :
Nom : Homme Logan
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Java
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : août 2005
Messages : 1 699
Points : 3 678
Points : 3 678
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" ?
Nemek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 14h48   #7
Titi41
Membre habitué
 
Homme Romain Marteau
Développeur Java
Inscription : avril 2007
Messages : 375
Détails du profil
Informations personnelles :
Nom : Homme Romain Marteau
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 : 122
Points : 122
OK, je vais étudier aussi ServiceLoader pour le début.
Merci
Titi41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h43.


 
 
 
 
Partenaires

Hébergement Web