Software update. Wie realisieren?

Status
Nicht offen für weitere Antworten.

Anselmus

Bekanntes Mitglied
ho folks,

ich suche eine möglichkeit, installierte software einem update zu unterziehen. also es wird geprüft, ob die installierte version die aktuelleste ist und, falls nicht, wird eine neuer von einem server heruntergeladen und installiert.

gibt es da prinzpielle vorgehensweisenbei updates?

ich hab mir das so ein bißchen wie bei mozilla/firefox vorgestellt. aber leider konnte ich im quellcode nix ausfindig machen. vielleicht kann mich jemand mal auf die entsprechende stelle hinweisen.

ich brauche hier keine lösung. ich möchte nur mal eine high-level-übersicht, wie man updates macht...

viele grüße
stephan
 

Tobias

Top Contributor
@foobar: ?

@Anselmus: Deine Anwendung fragt einen voreingestellten Server "Gibt es eine neue Version?", der antwortet "ja" oder eben "nein". Bei "ja" holt deine Anwendung von einem voreingestellen / in der Antwort enthaltenen Pfad die neue Version und installiert sie - wie auch immer.
High Level genug?

mpG
Tobias
 

Anselmus

Bekanntes Mitglied
JWS ist prima, aber leider halt blos für Java ;)

@tobias:

gibts so was wie update server? ich weiß das es bei InstallShield sowas gibt, aber der ist ziemlich teuer...
 

AlArenal

Top Contributor
Ich brainstorme mal:

Du entwickelst ein Modul/eine Lib, welches zu einem Server Kontakt aufnimmt. Am besten macht man das über Port 80 (HTTP), weil da die Wahrscheinlichleit am gerinsgten ist, dass man durch eiine Firewall oder einen speziellen Proxy o.ä. geblockt wird.
Neben selbst entwickelten Protokollen, kann man natürlich auch gleich über einen Webservice gehen (XML-RPC, SOAP).

Der Client fragt beim Server die aktuelle Version an. Ist sie unterschiedlich zur vorhandenen, holt der Client das Delta (die geänderten Dateien zwischen eigener Version und der aktuellen) vom Server runter und legt es in einem temporären Verzeichnis ab. Direkt überschreiben ist nicht, da die Dateien ja gerade in Verwendung sind.

Nun veranlasst die Lib den Neustart der Anwendung, merkt dass in dem temp. Verzeichnis neuer Krims ist und kopiert erstmal um. Tricky wirds mal für nen Augenblick, wenn das Ding sich selbst updaten muss.

Das Ganze kann man natürlich beliebig erweitern:
- Authentifizierung: Ist die Lizenz des Client gültig, darf er also updaten?
- Benutzung spezieller Update-Archive die jemand manuell runtergeladen hat, falls es über das Auto-Update nicht klappt.
- Überprüfung der Cheksummen der übermittelten Dateien
- ...
 

Tobias

Top Contributor
@foobar: WebStart ist mir durchaus ein Begriff, aber ich habe einfach mal vermutet, dass Anselmus' Anwendung nicht permanent mit dem Netz verbunden sein will, sondern größtenteils offline läuft. Wie ein Virenscanner zum Beispiel, der sich ja auch ganz ohne Internet starten läßt und nur bei Gelegenheit seinen Server anruft, ob es ne neue Definitionsdatei gibt.
Daher die Frage, wie WebStart da rein passt? Ich hab noch nix mit WebStart gemacht, wenn das Ding also "magische" Fähigkeiten hat, will ich darüber gerne aufgeklärt werden...

@Anselmus: Ich habe keine Ahnung, ob es sowas vorgefertigt gibt. Wenn ist es aber wahrscheinlich teuer (oder OpenSource :)). Das für eine spezifische Anwendung selbst zu bauen dürfte aber nicht weiter schwierig sein, PHP kann SOAP, Java (und praktisch alle anderen wichtigen Sprachen) auch.

mpG
Tobias
 
F

fnassaj

Gast
Hallo,

ich möchte eine Update Mechanism in meiner Applikation implementieren und habe deinen Eintrag gelesen. Kannst du mir einige Details erwähnen oder sagen, wo und was ich lesen muss? meine IDE ist JDeveloper. Möchte keine Java Web Start benuzten.

Grüße


Anselmus hat gesagt.:
ho folks,

ich suche eine möglichkeit, installierte software einem update zu unterziehen. also es wird geprüft, ob die installierte version die aktuelleste ist und, falls nicht, wird eine neuer von einem server heruntergeladen und installiert.

gibt es da prinzpielle vorgehensweisenbei updates?

ich hab mir das so ein bißchen wie bei mozilla/firefox vorgestellt. aber leider konnte ich im quellcode nix ausfindig machen. vielleicht kann mich jemand mal auf die entsprechende stelle hinweisen.

ich brauche hier keine lösung. ich möchte nur mal eine high-level-übersicht, wie man updates macht...

viele grüße
stephan
 

Anselmus

Bekanntes Mitglied
hi,

da meine update-routine mehr als ein programm updaten musste habe ich das nicht aus einer anwendung heraus gemacht. ich habe eine kleine externe anwednung, die über registry-einträge (ist windows software) die installationsverzeichnisse und versionsnummern findet.

ich habe das ganze mit NSIS (http://nsis.sourceforge.net/Main_Page) gemacht, dass eigentlich zum erstellen von installationsroutinen dient. das nsis skript läd im falle eines updates weitere nsis skripter herunter, die den eigentlichen update-vorgang durchnehmen.

falls du noch interesse hast, kannst mir auch ne pn schicken...

gtx
stephan
 

Anselmus

Bekanntes Mitglied
Wildcard hat gesagt.:
Oder auch mal den Code des Eclipse Update Managers zu Inspirationszwecken anschauen...


eclipse läd im falle eines updates immer das zu aktualisierende paket komplett runter. ich wollte aber nur die tatsächlichen neuerungen. jetzt muss ich natürlich dafür sorgen das nicht mehr genutzte teile gelöscht werden, was bei einem download des gesamten pakets entfällt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Frichard Dokumentation Agiler Software-Entwicklung Softwareentwicklung 4
C Software Entwickeln Softwareentwicklung 22
D Herangehensweise Software-Projekt Softwareentwicklung 1
Bluedaishi Software Kommerziell Vertreiben Softwareentwicklung 34
M Software Urheberrecht Softwareentwicklung 4
S Welche Programmiersprache für eine 3D-Software? Softwareentwicklung 6
R Software-Architekt (Schwerpunkt Java) Softwareentwicklung 9
Tobse Begrifflichkeit: Software mit physikalischen Schnittstellen Softwareentwicklung 16
M Jemand Erfahrung mit safety-critical software sprachen wie ada/SPARKL? Softwareentwicklung 0
T Gibt es eine Software die Texte für Skype automartisch (automassage) sendet ? Softwareentwicklung 4
B NFC/RFID Software zum einfachen Bezahlen Softwareentwicklung 1
Y Software Zertifikat Softwareentwicklung 12
T Software Lizenzverwaltung Softwareentwicklung 8
L Evaluierung von Software Softwareentwicklung 6
BinaryLogic Software für Projektplanung und -Entwicklung Softwareentwicklung 19
I Grundlegende Anforderungen an eine Software Softwareentwicklung 14
M Suche Task-Software (Groupware mit Anpassungsmöglichkeiten) Softwareentwicklung 3
K Mindestanforderung einer Software Softwareentwicklung 7
fastjack Zertifizierung von Software Softwareentwicklung 3
Mike90 Lizenz für eigene software Softwareentwicklung 9
F Aufwändes eines Software Projektes Softwareentwicklung 21
D Wie entwickelt ihr gute Software mit einem GUI? Softwareentwicklung 29
J Java Software nach C++ portieren Softwareentwicklung 6
I Lizensen etc bei kommerzieller Software Softwareentwicklung 13
D LGPL-Lizenz und Entwicklung kommerzieller Software Softwareentwicklung 19
Z Welche Software für Web Anwendungen/Spiel Softwareentwicklung 3
H Unterschied zwischen Software Technik und Engineering? Softwareentwicklung 7
K Software im Bereich Finanzen programmieren Softwareentwicklung 11
L Fragen zu Software Engineering Softwareentwicklung 6
M Software zur Erstellung eines Pflichtenhefts? Softwareentwicklung 15
S Open Source Software für UML Softwareentwicklung 8
I Software zum Erstellen von ER-Modellen Softwareentwicklung 12
C Lohnt es sich noch ein neues Projekt in C++ anstatt Java zu realisieren? Softwareentwicklung 4
T "IST-EIN" Beziehung in SQL realisieren? Softwareentwicklung 13
M Bidirektionale Assoziazion in Java realisieren? Softwareentwicklung 3

Ähnliche Java Themen

Neue Themen


Oben