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 Discussion :

Mise à jour d'application, plug-in


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur Business Intelligence
    Inscrit en
    Juin 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Business Intelligence

    Informations forums :
    Inscription : Juin 2011
    Messages : 108
    Points : 42
    Points
    42
    Par défaut Mise à jour d'application, plug-in
    Bonjour,

    je me demande comment sont gérés les plug-in en général, c'est-à-dire, comment est géré le fait qu'on puisse étendre un logiciel, et que tout s'articule correctement ?

    On peut prendre l'exemple des ERP, où on peut décider du jour au lendemain d'acheter un autre module, alors que tous les modules sont gérés dans la même application, la même interface, je crois.

    C'est la même question que pour la mise à jour d'une application.

    Comment tout cela se passe en général, au niveau code, etc., peu importe le langage de programmation, mais prenons l'exemple du langage Java par exemple ?

    Merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Il y a 2 concepts tres différents ici. Dans un programme ou tu peux acheter tout ou seulement une partie des fonctionnalités, la gestion se fait souvent au niveau des droits qui vont afficher les ecrans auquel tu as souscris et pas les autres (surtout si c'est une appli web). Il n'y a pas vraiment de plugin mais plutot des menus qui sont peuplés en fonction des droits.

    En ce qui concerne les plugins, qui permettent à une application de laisser les utilisateurs ajouter des fonctionnalités, comme le logiciel Eclipse, c'est plus compliqué.
    Tu peux par exemple definir une interface que tes plugins devront implementer (en fonction de ce à quoi ils servent) et charger les plugins au lancement de l'application.
    Un exemple:
    http://vincentlaine.developpez.com/t.../java/plugins/

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur Business Intelligence
    Inscrit en
    Juin 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Business Intelligence

    Informations forums :
    Inscription : Juin 2011
    Messages : 108
    Points : 42
    Points
    42
    Par défaut
    Ah les droits, je n'y avais pas pensé bêtement ! Oui...

    Je vais lire le cours du lien que tu m'as donné, je ne peux pas le faire tout de suite mais je ferais au plus vite ^^

    Merci !

  4. #4
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 469
    Points : 2 997
    Points
    2 997
    Par défaut
    En general, les systemes modulaires reposent sur:

    1. un systeme de detection et/ou d'installation de modules. En Java, OSGi fait ca: l'appli tourne dans un conteneur (le main est le conteneur, pas ton programme) qui est capable de recevoir des commandes pour ajouter/enlever, activer/desactiver un module. Ces conteneurs peuvent souvent etre configures pour charger tous les modules qu'il trouve dans un dossier par defaut.

    2.un systeme d'extension de "comportement" En general, la librarie ou le conteneur qui gere l'extensibilite (OSGi aussi a ca en Java, c'est Declarative Services; dans Eclipse il y a aussi le systeme de points d'extension par plugin.xml) decide d'une convention pour declarer les extensions. Typiquement, le conteneur dit "Je vais regarder le fichier `toto` de chaque module installe et pour chacun d'eux je vais faire ce qu'ils declarent dans ce fichier". Du coup, les modules declarent leurs extensions suivant la convention/specification de le container.
    Dans OSGi, c'est le MANIFEST.MF et d'autres fichiers lies depuis le MANIFEST.MF comme OSGI-INF/component.xml qui sont lus et qui disent a OSGi que telle ou telle extension est disponible. Un morceau de code "metier" consomme ensuite ces extensions. OSGi c'est un bon modele en la matiere, et il y a pas mal de presentations, dont certaines tres bien faites, qui expliquent mieux la modularite et l'extensibilte en general, et qui ensuite montrent comment OSGi fait ca.
    Dans Eclipse, c'est le fichier plugin.xml qui decrit les extensions (par exemple les menus) et le code d'Eclipse lui-meme lit ces extensions pour savoir quels menus afficher. Le modele Eclipse marche bien aussi, mais il est moins "beau" que celui d'OSGi, donc pour t'initier, prends OSGi en reference plutot.
    Une autre approche, compatible avec celles du dessus, consiste aussi maintenant a passer par des annotations plutot que des fichiers de declarations. Du coup, quand le conteneur va charger le module, en plus ou au lieu de lire un fichier specifique qui decrit les extensions, il peut aussi introspecter le code pour trouver des annotations qui definissent les extensions). En gros, un peu comme de l'injection de dependance (CDI, Spring) mais en plus dynamique, puisque tes modules et extensions peuvent etre dynamiquement installes/desinstalles.

    Bon, c'est une reponse vite-fait sur un sujet quand meme tres riche. Si tu veux aller plus loin, a mon avis, jette un oeil a comment marche OSGi, c'est vraiment de la belle modularite, a la fois au niveau theorique et pratique.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

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

Discussions similaires

  1. La mise à jour automatique des plug-in
    Par jinar dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 15/04/2008, 14h49
  2. mise à jour d'application
    Par hassancf dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/09/2007, 20h02
  3. Charge de travail pour mise à jour d'applications
    Par ishdiane dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 03/11/2006, 14h28
  4. [C#][ MSI] Comment effectuer une mise à jour d'application ?
    Par th3r1ddl3r dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/12/2005, 10h09

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