Java Web Start

Java Web Start (JWS) – wycofana technologia umożliwiająca pobieranie i uruchamianie aplikacji napisanych w języku Java bezpośrednio z Internetu, bez konieczności ich wcześniejszej instalacji.

Opis

Formalnie wyspecyfikowana w JSR-56[1]. Odróżnia się od pozostałych apletów Javy tym, że uruchomiona aplikacja nie wchodzi w interakcje ze stroną internetową, z której został pobrany plik JNLP (stanowiący XML-ową definicję aplikacji i jej zależności) - tj. z poziomu JavaScript nie jest możliwa interakcja z aplikacją webstartową.

Rozwiązania webstartowe i aplety mogą być ładowane przez JNLP, a aplikacja JWS może korzystać z klasy java.applet.Applet - co często utrudnia odróżnienie tych technologii i zaklasyfikowanie konkretnej aplikacji jako apletu lub aplikacji webstartowej. Fundamentalną różnicą jest to, że aplet jest częścią serwowanego dokumentu i z poziomu JavaScript możliwe jest wchodzenie w interakcje z apletem, a webstart jest tylko technologią umożliwiającą elastyczne pobieranie i uruchamianie niezależnych aplikacji Javowych.

Pobranie „definicji” aplikacji webstartowej (JNLP) i zainicjowanie jej uruchomienia na maszynie wirtualnej Javy było zazwyczaj realizowane przez przeglądarkę internetową (stąd „web start” w nazwie). W teorii plik JNLP mógł zostać jednak przesłany m.in. e-mailem do innej osoby i wykorzystany przez nią do uruchomienia aplikacji webstartowej bez udziału przeglądarki internetowej.

Wycofanie

Technologia została oznaczona przez Oracle jako do wycofania w Java 9[2]. Kod webstartowy został ostatecznie usunięty w Oracle Java SE 11. Dostępne pozostają niezależne implementacje webstartu, np. IcedTea-Web[3].

Historia użycia w Polsce

W Polsce popularne było stosowanie apletów do składania podpisu certyfikowanego z poziomu aplikacji webowej, gdzie aplet był komponentem potrafiącym współpracować z czytnikiem kart. Z poziomu JavaScriptu możliwe było przekazanie do apletu treści do podpisania i odebranie wyniku, w tym przypadku podpisu elektronicznego. Po rozpoczęciu wycofywania apletów część rodzimych rozwiązań przeszła na „Web Start”.

W tych aplikacjach przeglądarka internetowa użytkownika zazwyczaj pobierała webstartowy plik JNLP z parametrami wejściowymi, najczęściej był to jednorazowy token uwierzytelniający, bądź token sesji. Aplikacja webstartowa uruchamiała się niezależnie od przeglądarki internetowej, komunikując się z lokalnymi mikroserwisami, by prowadzić interakcję z przeglądarką użytkownika.

Obecnie, ze względu na wycofanie tych technologii, podpisywanie dokumentów jest realizowane z dala od technologii webowych. W ramach W3C prowadzone są prace dotyczące udostępnienia API czytników kart poprzez Web Smart Card API[4].

Bezpieczeństwo

Aplikacje uruchamiane poprzez Java Web Start działają w piaskownicy. Program może jednak poprosić o pełny dostęp do systemu[5].

Przypisy

  1. The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 56 [online], jcp.org [dostęp 2024-04-23].
  2. The Definitive Guide To OpenWebStart [online], openwebstart.com [dostęp 2025-01-04].
  3. GitHub - AdoptOpenJDK/IcedTea-Web: The new home for IcedTea-Web [online], github.com [dostęp 2024-04-23] (ang.).
  4. Web Smart Card API [online], wicg.github.io [dostęp 2025-01-04].
  5. Informacje o Java Web Serwer. [dostęp 2009-05-15]. (ang.).

Linki zewnętrzne