[JAVA] online update

online update [JAVA] - Java - Programmation

Marsh Posté le 02-03-2005 à 10:14:25    

Bonjour,
voila, j'aimerais rajouter une fonctionnalité a un logiciel java genre LIVE Update, windows update, et Cie.
 
Je pense que tout ce qu'il y aura a checker sur le poste client est contenu dans un seul est unique jar.
 
Je pensais checker mon jar, comparer les fichiers contenus avec les fichiers de la dernière version sur un serveur distant, et mettre a jour mon jar en fonction des différences.
 
Est-ce la bonne solution? Peut-on modifier le jar de l'application alors qu'elle est deja lancée?(si oui les modifications seront prisent en compte lors du prochain demarrage de l'appli?)
 
Ou existe t'il des moyen plus facile ?(api et Cie)

Reply

Marsh Posté le 02-03-2005 à 10:14:25   

Reply

Marsh Posté le 02-03-2005 à 10:47:30    

Java webstart.
 
Le principe : tu décris dans un fichier xml les paramètres et les jars nécessaires au lancement de ton application.  
 
A chaque lancement webstart vérifie qu'il n'y a eu de modifications du fichier xml et le cas échéant charge les nouveaux jars.
 
Marche bien. J'ai une appli qui utilise ça et que tu peux tester sur http://eap.bug-sweeper.fr/

Reply

Marsh Posté le 02-03-2005 à 11:05:28    

replix a écrit :

Java webstart.
 
Le principe : tu décris dans un fichier xml les paramètres et les jars nécessaires au lancement de ton application.  
 
A chaque lancement webstart vérifie qu'il n'y a eu de modifications du fichier xml et le cas échéant charge les nouveaux jars.
 
Marche bien. J'ai une appli qui utilise ça et que tu peux tester sur http://eap.bug-sweeper.fr/


 
 
Avec une appli autonome je vais pouvoir m'en sortir?


Message édité par Bennnou le 02-03-2005 à 11:05:58
Reply

Marsh Posté le 02-03-2005 à 11:10:46    

Oui. Le principe est de versionner tes jars et de lui dire où ils se trouvent.
 
Par exemple pour mon appli :
 

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <jnlp codebase="http://www.virtual-soft.com/jars/">
  3.     <information>
  4.         <title>MineSweeper</title>
  5.         <vendor>Virtual Soft</vendor>
  6.         <homepage href="http://www.virtual-soft.com/"/>
  7.         <description>Application de gestion de bug</description>
  8.         <icon href="BSFico.png"/>
  9.     </information>
  10.     <security>
  11.         <all-permissions/>
  12.     </security>
  13.     <resources>
  14.         <j2se version="1.4.2*" href="http://java.sun.com/products/autodl/j2se"/>
  15.         <jar href="smartBug-client-0.7.9.jar" main="true"/>
  16.         <jar href="aopalliance.jar"/>
  17.         <jar href="aspectjrt.jar"/>
  18.         <jar href="binding-1.0rc3.jar"/>
  19.         <jar href="commons-logging.jar"/>
  20.         <jar href="commons-codec-1.2.jar"/>
  21.         <jar href="forms-1.0.5.jar"/>
  22.         <jar href="jdt-compiler.jar"/>
  23.         <jar href="jasperreports-0.6.4.jar" part="report" download="lazy"/>
  24.         <jar href="commons-beanutils.jar" part="report" download="lazy"/>
  25.         <jar href="commons-collections-2.1.jar" part="report" download="lazy"/>
  26.         <jar href="commons-digester-1.3.jar" part="report" download="lazy"/>
  27.         <jar href="looks-1.2.2.jar"/>
  28.         <jar href="uif-1.3.2.jar"/>
  29.         <jar href="spring.jar"/>
  30.         <jar href="validation-0.9.6.jar"/>
  31.         <package name="org.apache.commons.digester.*" part="report"/>
  32.         <package name="net.sf.jasperreports.*" part="report"/>
  33.         <property name="serverContext" value="apps/minesweeper-0.7.9"/>
  34.         <property name="port" value="80"/>
  35.         <property name="host" value="www.virtual-soft.com"/>
  36.         <property name="file.encoding" value="UTF-8"/>
  37.         <property name="clientId" value="@clientId@"/>
  38.     </resources>
  39.     <application-desc main-class="com.virtualsoft.smartBug.gui.SmartBugClient">
  40.         <argument>remote</argument>
  41.     </application-desc>
  42. </jnlp>


 
Ensuite si tu as besoin de mettre à jour ton appli tu génère un nouveau jar avec le numéro suivant et tu change ton fichier jnlp en conséquence.

Reply

Marsh Posté le 03-03-2005 à 11:56:38    

replix > interessante ton appli ...
t'aurais pas un peu pompé certaines icons (le status) et "concept" (le style des clés d'issues TRUC-145) de jira des fois? [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-03-2005 à 12:07:57    


Mea culpa sur les icones...   :whistle: . Si je vais plus loin, je ferai faire des icônes sur mesures. Pour l'instant, il ne s'agissait que de tester.
 
Pour le concept, je me suis basé sur plusieurs produits existants, sachant que les principes sont très proches d'une appli à l'autre...

Reply

Marsh Posté le 03-03-2005 à 12:28:19    

vu que ton appli coté serveur est web, ça aurait été chouette que ton appli cliente permette d'utiliser jira comme backend :) (ils ont une interface xml-rpc ou soap)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-03-2005 à 12:36:48    

En fait l'idée est de fournir un service en mode hébergée et loué mensuellement => je gère le client et le serveur.
 
De plus, je ne suis pas un grand fan de SOAP sur le concept. Pour l'avoir pratiqué en prod je trouve que c'est assez lourd.
 
Mon appli utilise une communication binaire encapsulée dans des flux HTTP. Cela me permet d'être beaucoup plus performant et très productif sur mes développements en ne me préoccupant pas du tout de la couche de communication.

Reply

Marsh Posté le 03-03-2005 à 13:25:27    

ha oui, j'ai vu le lien sur le site vers la lib qui gère ta couche de comm.; interessant, je connaissais pas :) mais ça "ferme" un peu le truc non? ou bien est-ce que ça permet aussi d'exposer le service comme soap ou xml-rpc le permettent?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-03-2005 à 14:22:45    

Je pourrai toujours décider d'ouvrir le service en proposant des interfaces SOAP ou XML-RPC.
 
Après c'est de la stratégie de développement.

Reply

Marsh Posté le 03-03-2005 à 14:22:45   

Reply

Marsh Posté le 03-03-2005 à 14:30:42    

et donc ça t'interessait pas de fournir un client pour jira plutot que de tout refaire... ? juste à cause du protocole ou bien par défi, ou bien tu as des idées differentes de jira? (au niveau modèle, back-end etc, manifestement le front end est different :D)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-03-2005 à 14:36:54    

C'est un projet de business. Si je fais un client pour Jira, il faut que je me mette d'accord avec eux, ...
 
D'autre part, mon idée est de fournir un service de gestion de projets informatiques (dont gestion de bugs) en ligne et non une licence et un produit à installer en local.

Reply

Marsh Posté le 03-03-2005 à 14:41:33    

ils engagent [:icon12]
et ptet qu'ils seraient interessés de te fournir une license pour tes services :)
enfin je demande ça par pure curiosité quoi; ici on utilise jira et on en est très content, au poins qu'on l'utilise déjà (et pê bientot encore plus) en dehors du secteur du developement it; donc forcément l'integration avec d'autres produits est un facteur important.
 
(de même que qd tu achetes n'importe quel front end tu t'assures que c compatible avec ta db existente etc...)
 
- encore une fois, c'est juste de la curiosité, pas des critiques


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed