Java Web Start
W informatyce Java Web Start (znany również jako JavaWS , javaws lub JAWS ) to przestarzała struktura opracowana przez firmę Sun Microsystems (obecnie Oracle ), która umożliwia użytkownikom uruchamianie aplikacji dla platformy Java bezpośrednio z Internetu za pomocą przeglądarki internetowej . Technologia ta umożliwia bezproblemową aktualizację wersji globalnie rozproszonych aplikacji i większą kontrolę nad alokacją pamięci do aplikacji Wirtualna maszyna Javy .
Java Web Start był dystrybuowany jako część platformy Java, dopóki nie został usunięty w Java SE 11, po jego wycofaniu z Java SE 9. Kod dla Java Web Start nie został wydany przez Oracle jako część OpenJDK , a zatem OpenJDK pierwotnie nie obsługiwał To. IcedTea-Web zapewnia niezależną implementację open source Java Web Start, która jest obecnie rozwijana przez społeczność AdoptOpenJDK , RedHat i Karakun AG i która jest dołączona do oficjalnego instalatora OpenJDK. Oprócz tego OpenWebStart zapewnia open source opartą na IcedTea-Web, ale oferuje więcej funkcji i opcji wsparcia komercyjnego.
Funkcjonalność
W przeciwieństwie do apletów Java aplikacje Web Start nie działają w przeglądarce. Domyślnie działają one w tej samej piaskownicy co aplety, z kilkoma pomniejszymi rozszerzeniami, takimi jak możliwość ładowania i zapisywania pliku, który jest jawnie wybrany przez użytkownika w oknie dialogowym wyboru pliku. Tylko podpisane aplikacje można skonfigurować tak, aby miały dodatkowe uprawnienia.
Web Start ma tę przewagę nad apletami, że rozwiązuje wiele problemów ze zgodnością z wtyczkami Java przeglądarek i różnymi wersjami JVM . Programy Web Start nie są już integralną częścią strony internetowej, są niezależnymi aplikacjami działającymi w osobnej ramce.
Web Start może również uruchamiać niezmodyfikowane aplety, które są spakowane w plikach .jar, pisząc odpowiedni plik JNLP. Ten plik może również przekazywać parametry apletu. Takie aplety również działają w osobnej ramce. Program uruchamiający aplety może nie obsługiwać niektórych szczególnych przypadków, takich jak ładowanie klasy jako zasobu.
Podobnie jak aplety, Java Web Start jest wieloplatformowa .
Dezaprobata
Wraz z JDK9 kilka technologii wdrożeniowych, w tym aplety i Java Web Start, zostało wycofanych przez firmę Oracle.
W marcu 2018 r. firma Oracle ogłosiła, że nie będzie zawierać Java Web Start w Javie SE 11 (18.9 LTS) i nowszych. Deweloperzy będą musieli przejść na inne technologie wdrażania. Od tego czasu powstało kilka samodzielnych alternatyw .
Realizacja
Deweloper przygotowuje specjalny plik XML z rozszerzeniem JNLP. Ten plik opisuje wymagania aplikacji, lokalizację kodu, parametry i dodatkowe uprawnienia (jeśli istnieją). Przeglądarka pobiera ten plik jak każdy inny i (zgodnie z typem MIME , application/x-java-jnlp-file
) otwiera go za pomocą narzędzia Web Start. Narzędzie Web Start pobiera wszystkie niezbędne zasoby i uruchamia aplikację.
Java Web Start udostępnia szereg klas w pakiecie javax.jnlp , które udostępniają różne usługi aplikacji. Firma Sun zaprojektowała większość tych usług w celu umożliwienia dokładnie kontrolowanego dostępu do zasobów (takich jak pliki i schowek systemowy) przy jednoczesnym ograniczeniu aplikacji do autoryzowanych operacji.
Firma Sun wprowadziła wersję 1.0 Web Start w marcu 2001 r., podczas gdy obsługa 64-bitowego systemu Windows została dodana dopiero w Javie 6 (później niż po raz pierwszy udostępniono 64-bitową Javę). Ponieważ J2SE 1.4 Web Start jest domyślną częścią środowiska Java Runtime Environment (JRE) o nazwie javaws
, administratorzy komputerów nie muszą już instalować go osobno.
Protokół uruchamiania sieci Java (JNLP)
Programiści często mówią o protokole Java Network Launching Protocol ( JNLP ) zamiennie z terminem „Web Start”. Protokół JNLP, zdefiniowany za pomocą schematu XML , określa sposób uruchamiania aplikacji Java Web Start. JNLP składa się z zestawu reguł określających, jak dokładnie zaimplementować mechanizm uruchamiania. Pliki JNLP zawierają informacje, takie jak lokalizacja słoika plik pakietu i nazwę głównej klasy aplikacji, oprócz wszelkich innych parametrów programu. Odpowiednio skonfigurowana przeglądarka przekazuje pliki JNLP do środowiska Java Runtime Environment (JRE), które z kolei pobiera aplikację na maszynę użytkownika i rozpoczyna jej wykonywanie. Rozwój JNLP odbył się w ramach Java Community Process jako JSR 56. Obejmuje oryginalne wydanie 1.0, kolejne wydanie konserwacyjne 1.5, a od 2006 r. Oczekujące wydanie konserwacyjne 6.0. [ wyjaśnij ]
Do ważnych funkcji Web Start należy możliwość automatycznego pobrania i zainstalowania środowiska JRE w przypadku, gdy użytkownik nie ma zainstalowanej Javy, a także możliwość określenia przez programistów, której wersji środowiska JRE potrzebuje dany program do wykonania. Użytkownik nie musi pozostawać podłączony do Internetu, aby uruchamiać pobrane programy, ponieważ są one uruchamiane z lokalnie utrzymywanej pamięci podręcznej . Aktualizacje oprogramowania są pobierane z sieci i stają się dostępne, gdy użytkownik ma połączenie z Internetem, co zmniejsza ciężar wdrażania.
Każdy użytkownik komputera może używać JNLP po prostu instalując klienta JNLP (najczęściej Java Web Start). Instalacja może przebiegać automatycznie, tak że użytkownik końcowy widzi, jak program uruchamiający klienta pobiera i instaluje aplikację Java przy pierwszym uruchomieniu.
JNLP działa w podobny sposób jak HTTP/HTML w sieci. W celu renderowania strony internetowej HTML po kliknięciu przez użytkownika łącza internetowego przeglądarka przesyła adres URL do serwera WWW , który w odpowiedzi przesyła plik HTML. Następnie przeglądarka żąda zasobów, do których odnosi się ten plik (images, css ), a na koniec renderuje stronę po otrzymaniu wystarczającej ilości informacji. Renderowanie strony zwykle rozpoczyna się przed pobraniem wszystkich zasobów; niektóre zasoby, które nie są krytyczne dla układu strony (takie jak obrazy), mogą zostać dodane później.
JNLP odzwierciedla ten proces; w ten sam sposób, w jaki przeglądarka internetowa renderuje stronę internetową, klient JNLP „renderuje” aplikację Java . Po kliknięciu łącza internetowego przez użytkownika przeglądarka przesyła adres URL do serwera WWW, który w odpowiedzi przesyła plik JNLP (zamiast pliku HTML) dla aplikacji. Klient JNLP analizuje ten plik, żąda określonych zasobów (plików jar), czeka na pobranie wszystkich wymaganych zasobów, a następnie uruchamia aplikację. Plik JNLP może wyświetlać zasoby jako „leniwe”, co informuje klienta JNLP, że aplikacja nie potrzebuje tych zasobów do uruchomienia, ale może je odzyskać później, gdy/jeśli aplikacja ich zażąda.
Przykład
Poniższy przykład przedstawia prosty plik JNLP do uruchamiania apletu, określający podstawę kodu, źródło, klasę główną i rozmiar okna. Taki plik zawiera wszystkie niezbędne referencje i jest samowystarczalny do uruchomienia aplikacji. Ponieważ nie są wymagane żadne uprawnienia, kod zostanie uruchomiony w piaskownicy. JNLP stwierdza również, że ta aplikacja może działać w trybie offline (jeśli jest już w pamięci podręcznej) i powinna być aktualizowana jako proces w tle.
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec= "1.0+" codebase= "http://ultrastudio.org/upload" href= "" > <informacje> <tytuł> Uruchom aplet z Web Start </title> <vendor> Foo Bar Inc. </vendor> <offline-allowed/> </information> <resources> <j2se version= "1.5+" href=
"http://java.sun.com/products/autodl/j2se" /> <jar href= "Ray-2.3-4ca60e46-0956-3f22-983c-e3ed986dfd03.jar" main= "true" /> </resources > <applet-desc name= "Aplet diagramu promienia" main-class= "raydiagramsapplet.Main" width= "300" height= "200" > </applet-desc> <update check= "background" /> </jnlp >
Kompresja Pack200
Aby zmniejszyć rozmiar aplikacji Java Web Start, firma Sun Microsystems wprowadziła system kompresji o nazwie Pack200 w Javie 1.5.0. Może skompresować duży plik jar do jednej dziewiątej jego pierwotnego rozmiaru, jeśli zawiera tylko klasy Java.
Java Web Start obsługuje Pack200 od samego początku, ale początkowo ta funkcja wymagała współpracy po stronie serwera i pewnej wiedzy do skonfigurowania. Kiedy firma Sun wprowadziła oprogramowanie Java SE 6u10, obsługa pakietu Pack200 stała się dostępna bez potrzeby specjalnej obsługi serwera. Projektanci aplikacji mogą włączać lub wyłączać tę funkcję w plikach JNLP.
Na wolnych połączeniach Pack200 zapewnia wzrost wydajności w czasie uruchamiania aplikacji i czasie pobierania.
Podpisane aplikacje Web Start
Domyślnie aplikacje Java Web Start działają „z ograniczeniami”, co oznacza, że nie mają dostępu do niektórych zasobów systemowych, takich jak pliki lokalne. Jednak wydawcy mogą usunąć te ograniczenia, podpisując swoje aplikacje Web Start za pomocą jarsigner
, które jest dostarczane z pakietem JDK .
Alternatywy
open-source IcedTea zapewnia alternatywną implementację JNLP w IcedTea-Web . Od wersji 1.7.2 działa również na nowszych wersjach bez oficjalnego wsparcia JWS.
Aby uruchomić aplikację opartą na Java Web Start po wydaniu Java 11, firma Karakun AG udostępniła narzędzie open source OpenWebStart, oparte na IcedTea-Web. Narzędzie zawiera wszystkie funkcje IcedTea-Web i dodaje rozszerzone funkcje, takie jak natywne instalatory dla systemów Mac OS, Windows i Linux. IcedTea-Web został stworzony przy wsparciu RedHat i AdoptOpenJDK .
Godne uwagi aplikacje
- ArgoUML – aplikacja do tworzenia diagramów UML .
- CrossFTP – klient i serwer FTP.
- Elluminate Live – program do konferencji internetowych / wirtualnych klas.
- Ganymede – system zarządzania katalogami sieciowymi na licencji GPL
- Genie Workbench – zestaw narzędzi do automatyzacji produkcji filmowej.
- Genevestigator , silnik dostępu do wyselekcjonowanej bioinformatycznej bazy danych.
- Jake2 — port Java Quake'a 2.
- JOSM – edytor Java OpenStreetMap .
- muCommander Menedżer plików i klon Norton Commander z funkcjami SSH i ftp
- PoxNora – perspektywa 3/4 , strategia turowa , kolekcjonerska gra karciana .
- Wurm Online – trójwymiarowy symulator fantasy online dla wielu graczy.
- yEd – edytor wykresów i diagramów.
Zobacz też
- Zero Install , podobny system, który działa dla aplikacji innych niż Java.
- ClickOnce , podobna platforma Microsoft .NET .