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

Glassfish et Payara Java Discussion :

Mise à jour automatique d'application en cours d'utilisation


Sujet :

Glassfish et Payara Java

  1. #1
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut Mise à jour automatique d'application en cours d'utilisation
    Bonjour,

    J'ai une application "client lourd" qui fonctionne sur des postes industriels (connectés à des chaines de production).
    Cette application est un JAR qui tourne 24h/24h.

    La mise à jour (simple copie de la nouvelle version du jar) est une épouvantable galère car les postes sont difficiles d'accès et il n'est pas question de demander aux utilisateurs de cliquer quelque part pour télécharger quelque chose.

    J'ai fait un test en programmant, dans mon application, un thread qui va voir toutes les minutes dans un répertoire du réseau si une nouvelle version est présente. S'il trouve une nouvelle version, il la copie dans le répertoire local de l'application (poste industriel) puis lance la nouvelle version et arrête l'ancienne.

    Cela répond donc à mon besoin (pas d'intervention d'utilisateur, mise à jour à distance à n'importe quel moment). Cependant je trouve mon système un peu bricolé (forte dépendance du réseau, des noms de répertoires, perte de connexion, etc) et n'importe qui peut détruire le jar de référence du réseau s'il en a envie

    J'ai envisagé de remplacer la copie du jar par un chargement via une application serveur qui pourrait envoyer le jar+librairies par un port TCP/IP mais j'ai la nette sensation de ré-inventer la roue

    Donc je cherche à savoir si GlassFish pourrait faire la même chose avec plus d'efficacité :
    - rendre le répertoire contenant le JAR invisible depuis le poste client
    - possibilité pour le poste client de consulter GlassFish toutes les minutes pour installer une mise à jour "à chaud".
    Bien sûr, toute autre solution est la bienvenue ...

    Cordialement

    Népomucène
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  2. #2
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Le support de Java Web Start est peut-être une réponse à ton besoin, mais il faut redémarrer l'application pour éventuellement trouver une mise à jour.

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut Oui mais ...
    Bonjour Alexis,

    J'ai examiné la solution WebStart qui est très pratique dans d'autres cas ; mais les postes clients sont dispersés dans toute l'usine et difficiles d'accès (claviers et unité centrale enfermés dans des armoires métalliques étanches ).
    Par ailleurs, les ouvriers sur les chaines de fabrication travaillent avec un écran tactile et ne sont pas sensés arrêter et redémarrer leur application.

    Aussi, pour ce cas particulier, j'ai vraiment besoin d'une mise à jour "silencieuse".
    Penses-tu que GlassFish aurait la possibilité de servir une application cliente qui téléchargerait une nouvelle version quand elle existe ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Le JNLP de Java Web Start peut-être dynamiquement généré et modifié par une application hébergée dans GlassFish.
    Je ne suis pas persuadé de comprendre qui fait la mise à jour sur le poste de travail.

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut Qui fait la mise à jour sur le poste client
    Je ne suis pas persuadé de comprendre qui fait la mise à jour sur le poste de travail.
    Sur les postes de production, à l'heure actuelle, c'est moi qui fait les mises à jour "à la main" en copiant jar+librairies sur chaque poste (j'y passe une journée à chaque fois).

    Sur un poste de test, j'ai modifié mon application pour qu'un thread contrôle toutes les minutes s'il y a une nouvelle version et copie jar+librairies depuis un répertoire du réseau sur le poste local. La faille de sécurité est béante avec ce système car n'importe qui peut accéder à ce répertoire.

    Dans l'idéal, je souhaite que mon application cliente interroge toutes les minutes mon serveur d'applications. Si le serveur signale une nouvelle version, alors l'application cliente télécharge jar+librairies, puis se relance automatiquement.

    Ce que je ne sais pas c'est si GlassFish peut :
    - indiquer via une requête qu'une nouvelle version est présente
    - fournir un système du genre FTP pour récupérer les fichiers

    J'ai imaginé me faire une petite application serveur dédiée à cette tâche, mais si GlassFish le fait déjà ce serait ridicule.
    En revanche si tu penses que GlassFish n'est pas prévu pour cet usage très particulier ou en est trop éloigné alors je préfère laisser GlassFish et revenir à mon idée de "petite application serveur".

    Ton avis, quel qu'ilsoit, me fera gagner un temps énorme.

    Merci d'avance

    Népo
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    je dirais que les deux pistes sont:
    - Taches ordonnancées (Cron) dans Hudson
    - Binding Component - FTP de OpenESB (intégré dans GlassFish)

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Merci beaucoup pour ces pistes Alexis, je vais les examiner attentivement
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  8. #8
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut Abandon
    Bon,
    Vu la quantité de boulot que j'ai par ailleurs, je vais me contenter de JWS et rester dans le périmètre des solutions "approuvées".
    Je termine donc ce post ici.
    Merci à tous ....
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    ce qui me vient à l'esprit:

    l'applic serait sur glassfish et serait appelée par java web start.

    Lors d'une mise à jour de l'applic, tu redéploierais le jar sur glassfish puis à l'aide d'un petit soft d'aministration home made, tu enverrais un broadcast destiné à tous les clients en court d'activité sur un port d'écoute d'aministration des clients leur disant: la version actuelle est 1.X si vous n'êtes pas de cette version, terminer vous et appellez la nouvelle version.

  10. #10
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut bonne idée
    En effet, c'est ce type de solution que je vais adopter :
    - JWS pour le déploiement effectif
    - les postes clients vont ensuite interroger toutes les 5 minutes dans GlassFish un EJB capable de donner le numéro de version du jar.
    - si une mise à jour existe alors l'application affiche un message demandant à l'utilisateur de redémarrer immédiatement l'application.

    dans l'idéal, j'aurai aimé pouvoir forcer un redémarrage automatique de l'application cliente, forçant l'installation par JWS ... mais bon, cela ne semble pas possible.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. Mise à jour automatique d'application privée
    Par Flodelarab dans le forum Android
    Réponses: 3
    Dernier message: 18/12/2014, 15h05
  2. Réponses: 1
    Dernier message: 18/08/2013, 10h52
  3. [WD16] Mise à jour automatique d'application
    Par lololebricoleur dans le forum WinDev
    Réponses: 16
    Dernier message: 30/09/2011, 20h51
  4. Réponses: 4
    Dernier message: 09/03/2007, 19h19

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