JUpdater
Deweloperzy | Andreas Launila |
---|---|
Wersja stabilna | 0,5 / 24 marca 2006 r |
System operacyjny | Niezależna od platformy |
Typ | Narzędzie do automatycznej aktualizacji |
Licencja | LGPL |
Strona internetowa | www.lokorin.com/jupdater/ |
JUpdater to projekt, którego celem jest stworzenie narzędzia umożliwiającego programistom szybkie wdrażanie kontroli wersji w programach Java . Narzędzie zapewnia, że użytkownik zawsze może być powiadamiany o nowych wersjach i łatwo aktualizować do najnowszej wersji z poziomu programu, bez konieczności robienia czegokolwiek. Narzędzie pobiera tylko nieaktualne pliki, oszczędzając przepustowość.
JUpdater jest podzielony na dwie części. Mały klient Java, który można łatwo zaimplementować w istniejących programach, oraz PHP , która śledzi wersje i dostarcza klientowi wszystkich potrzebnych informacji. Projekt jest wciąż w fazie rozwoju, prawdopodobnie zawiera błędy. Każdy program, który ma być aktualizowany przez JUpdater, musi być zawarty w pliku jar .
Klient
Mały pakiet klas, klient JUpdater, musi zostać dodany do programów, aby mogły porównywać swoje wersje z centralnym serwerem. Klient wymaga środowiska JRE 1.5 lub nowszego.
Klient udostępnia trzy główne operacje.
- Zaktualizuj określony plik jar, porównując sumy kontrolne MD5 wszystkich plików , odbywa się to w kilku krokach opisanych poniżej.
- Sprawdź, czy na serwerze dostępna jest nowa wersja, używając atrybutu Implementation-Version w manifeście jar .
- Sprawdź, czy dostępna jest nowa wersja i uzyskaj odpowiedni dziennik zmian, używając atrybutu Implementation-Version.
interfejs do nasłuchiwania procesu aktualizacji . Te informacje mogą być następnie na przykład wyświetlane w graficznym interfejsie użytkownika.
serwer
JUpdater wymaga centralnego serwera, który zawiera informacje o najnowszej wersji. Klienci łączą się z serwerem w celu sprawdzenia czy są nowe wersje oraz pobrania zmian i dziennika zmian. Serwer wymaga PHP 4.3 lub nowszego i MySQL 4.0 lub nowszego.
Jak działa aktualizacja
Oto dogłębny opis tego, co faktycznie dzieje się za kulisami podczas przeprowadzania pełnego sprawdzania aktualizacji.
- Metoda updateJar instancji JUpdater jest wywoływana z nazwą pliku jar do aktualizacji i odpowiednią nazwą programu.
- Klient otwiera połączenie z serwerem i wysyła nazwę programu (poprzez HTTP Post).
- Serwer ustanawia sesję i odpowiada identyfikatorem sesji oraz adresem URL serwera dla tego programu. Od tego momentu klient i serwer są w sesji, a zatem serwer pamięta, jaki program klient chce zaktualizować podczas wszystkich dalszych żądań związanych z tą konkretną aktualizacją.
- Klient przechowuje odpowiedź serwera i wysyła żądanie listy plików z pliku jar serwera za pośrednictwem XML-RPC . Serwer odpowiada listą (pobraną z bazy danych serwera).
- Klient oblicza sumy kontrolne MD5 dla wszystkich lokalnych plików, które może znaleźć (przeglądając listę plików z serwera), pozostałe otrzymują sumę kontrolną równą 0. Następnie klient wysyła wynik do serwera (poprzez XML-RPC).
- Serwer sprawdza wszystkie sumy kontrolne MD5 z wpisami w bazie danych i zwraca listę wszystkich plików, dla których sumy kontrolne się nie zgadzają (tj. listę wszystkich plików, które są nieaktualne). Dla każdego nieaktualnego pliku odsyłana jest następująca tablica: [nazwa pliku, rozmiar, poprawne md5] (wszystkie te elementy są odczytywane z bazy danych).
- Jeśli nic nie jest przestarzałe, klient zatrzymuje się tutaj, w przeciwnym razie kontynuuje.
- Klient żąda dziennika zmian z serwera (poprzez XML-RPC). Serwer odpowiada wszystkimi zmianami (wprowadzonymi przez administratora) dokonanymi między wersjami klienta a najnowszą wersją.
- Klient wyświetla zmiany i pyta słuchacza za pomocą metody shouldStartDownloading() czy powinien pobrać pliki.
- Jeśli metoda zwraca false, klient zatrzymuje się tutaj, w przeciwnym razie kontynuuje.
- Klient rozpoczyna pobieranie nieaktualnych plików jeden po drugim do magazynu tymczasowego. Dla każdego pliku klient oblicza sumę kontrolną MD5 i upewnia się, że pasuje, w przeciwnym razie próbuje ponownie (aż do wyczerpania prób).
- Klient zaczyna łatać po pobraniu wszystkich nieaktualnych plików. Kopiuje aktualne pliki słoika do nowego pliku jar, a następnie zapisuje pobrane pliki do tego słoika. Gdy wszystko zostanie wykonane bez błędów, zastępuje stary słoik aktualnym słoikiem, tym samym kończąc aktualizację.
Zobacz też
Linki zewnętrzne
- JUpdater readme — plik readme aplikacji.