Java Web Start - Java Web Start

W obliczeniowej , Java Web Start (znany również jako javaws , javaws lub JAWS ) był ramy opracowany przez Sun Microsystems (obecnie Oracle ), który umożliwia użytkownikom uruchomić oprogramowanie dla platformy Java bezpośrednio z Internetu przy użyciu przeglądarki internetowej . Niektóre z kluczowych korzyści tej technologii to bezproblemowa aktualizacja wersji aplikacji rozproszonych na całym świecie oraz większa kontrola przydzielania pamięci wirtualnej maszynie Java .

Java Web Start była dystrybuowana jako część platformy Java i uwzględniona w plikach do pobrania JRE i JDK. Został wycofany przez Oracle w Java SE 9 i usunięty w Java SE 11. Kod Java Web Start nie został wydany przez Oracle jako część OpenJDK , a zatem OpenJDK pierwotnie go nie obsługiwał. IcedTea-Web zapewnia niezależną implementację Java Web Start o otwartym kodzie źródłowym, 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 implementację opartą na otwartym kodzie źródłowym, która jest oparta 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ą w tej samej piaskownicy, co aplety, z kilkoma pomniejszymi rozszerzeniami, takimi jak możliwość załadowania i zapisania pliku, który jest wyraźnie wybrany przez użytkownika w oknie dialogowym wyboru pliku. Tylko podpisane aplikacje mogą mieć dodatkowe uprawnienia.

Web Start ma przewagę nad apletami, ponieważ pokonuje wiele problemów z kompatybilnoś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, które działają w osobnej ramce.

Web Start może również uruchamiać niezmodyfikowane aplety spakowane w plikach .jar, zapisują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

W przypadku JDK9 kilka technologii wdrażania, w tym aplety i Java Web Start, zostało wycofanych przez firmę Oracle.

W marcu 2018 r. Oracle ogłosiło, że nie będzie zawierać Java Web Start w Java SE 11 (18,9 LTS) i nowszych. Deweloperzy będą musieli przejść na inne technologie wdrażania. Od tego czasu pojawiło się kilka samodzielnych alternatyw .

Realizacja

Wczesne wersje Java Web Start były dostarczane z menedżerem aplikacji, w którym można było uruchamiać np. aplikacje demonstracyjne firmy Sun

Deweloper przygotowuje specjalny plik XML z rozszerzeniem JNLP. Ten plik opisuje wymagania aplikacji, lokalizację kodu, parametry i dodatkowe uprawnienia (jeśli występują). 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 zawiera szereg klas w pakiecie javax.jnlp , które zapewniają aplikacji różne usługi. 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 programu Web Start w marcu 2001 r., podczas gdy obsługa 64-bitowego systemu Windows została dodana tylko 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 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 pliku pakietu jar i nazwa głównej klasy aplikacji, a także wszelkie inne parametry programu. Prawidłowo skonfigurowana przeglądarka przekazuje pliki JNLP do środowiska Java Runtime Environment (JRE), które z kolei pobiera aplikację na komputer użytkownika i rozpoczyna jej wykonywanie. Rozwój JNLP odbywał się w ramach Java Community Process jako JSR 56. Obejmuje oryginalną wersję 1.0, kolejne wydanie konserwacyjne 1.5, a od 2006 r. oczekujące wydanie konserwacyjne 6.0.

Ważne funkcje Web Start obejmują możliwość automatycznego pobierania i instalowania środowiska JRE w przypadku, gdy użytkownik nie ma zainstalowanego oprogramowania Java, a także określania przez programistów, której wersji środowiska JRE dany program potrzebuje do wykonania. Użytkownik nie musi pozostawać połączony z Internetem, aby uruchomić pobrane programy, ponieważ są one wykonywane z lokalnie obsługiwanej pamięci podręcznej . Aktualizacje oprogramowania pobierane są z sieci i stają się dostępne, gdy użytkownik ma połączenie z Internetem, co odciąża wdrażanie.

Każdy użytkownik komputera może korzystać z JNLP, po prostu instalując klienta JNLP (najczęściej Java Web Start). Instalacja może nastąpić 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 działa w sieci. W przypadku renderowania strony internetowej HTML po kliknięciu przez użytkownika linku przeglądarka przesyła adres URL do serwera WWW , który odpowiada plikiem HTML. Przeglądarka następnie żąda zasobów, do których odwołuje się ten plik (obrazy, css ), a na koniec renderuje stronę, gdy otrzyma wystarczającą ilość informacji. Renderowanie strony zwykle rozpoczyna się przed pobraniem wszystkich zasobów; niektóre zasoby, które nie mają kluczowego znaczenia dla układu strony (takie jak obrazy), mogą być kontynuowane później.

JNLP odzwierciedla ten proces; w taki sam sposób, w jaki przeglądarka internetowa renderuje stronę internetową, klient JNLP „renderuje” aplikację Java . Po kliknięciu przez użytkownika łącza internetowego przeglądarka przesyła adres URL do serwera WWW, który odpowiada plikiem 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 później pobrać, gdy/jeśli aplikacja ich zażąda.

Przykład

Poniższy przykład przedstawia prosty plik JNLP do uruchomienia apletu, określając bazę 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ż buforowana) 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="">
    <information>
        <title>Launch applet with 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="Ray diagram applet" 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 oryginalnego 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 specjalistycznej. Kiedy firma Sun wprowadziła Java SE 6u10, wsparcie Pack200 stało się dostępne bez potrzeby specjalnej obsługi serwera. Projektanci aplikacji mogą włączyć lub wyłączyć tę funkcję w plikach JNLP.

Na wolnych połączeniach Pack200 zwiększa wydajność 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ą jarsignernarzędzia dostarczanego z pakietem JDK .

Alternatywy

Projekt IcedTea o otwartym kodzie źródłowym 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 Javy 11, firma Karakun AG wydał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 .

Wybitne aplikacje

Zobacz też

Bibliografia

Zewnętrzne linki