Java Web Start - Java Web Start
În calcul , Java Web Start (cunoscut și sub numele de JavaWS , javaws sau JAWS ) a fost un cadru dezvoltat de Sun Microsystems (acum Oracle ) care permite utilizatorilor să pornească software-ul aplicației pentru platforma Java direct de pe Internet utilizând un browser web . Unele avantaje cheie ale acestei tehnologii au inclus actualizarea continuă a versiunii pentru aplicații distribuite la nivel global și un control mai mare alocării memoriei la mașina virtuală Java .
Java Web Start a fost distribuit ca parte a platformei Java și inclus în descărcările JRE și JDK. A fost depreciat de Oracle în Java SE 9 și eliminat în Java SE 11. Codul pentru Java Web Start nu a fost lansat de Oracle ca parte a OpenJDK și, prin urmare, inițial OpenJDK nu l-a acceptat. IcedTea-Web oferă o implementare independentă open source a Java Web Start care este dezvoltată în prezent de comunitatea AdoptOpenJDK , RedHat și Karakun AG și care este inclusă în programul de instalare oficial OpenJDK. În dreptul acestui OpenWebStart oferă o implementare open source bazată pe IcedTea-Web, dar oferă mai multe caracteristici și opțiuni de asistență comercială.
Funcționalitate
Spre deosebire de applet-urile Java , aplicațiile Web Start nu rulează în browser. În mod implicit, acestea rulează în același sandbox ca applet-urile, cu mai multe extensii minore, cum ar fi permisiunea de a încărca și salva fișierul care este selectat în mod explicit de utilizator prin dialogul de selectare a fișierului. Numai aplicațiile semnate pot fi configurate pentru a avea permisiuni suplimentare.
Web Start are un avantaj față de applet-uri prin faptul că depășește multe probleme de compatibilitate cu pluginurile Java ale browserelor și diferite versiuni JVM . Programele Web Start nu mai sunt o parte integrată a paginii web, sunt aplicații independente care rulează într-un cadru separat.
Web Start poate lansa și applet-uri nemodificate care sunt ambalate în fișiere .jar, scriind fișierul JNLP corespunzător. Acest fișier poate trece și parametrii appletului. Astfel de applet-uri rulează și într-un cadru separat. Este posibil ca lansatorul de applet să nu accepte anumite cazuri specifice, cum ar fi încărcarea clasei ca resursă.
La fel ca applet-urile, Java Web Start este multiplataforma .
Dezaprobare
Cu JDK9, Oracle a renunțat la mai multe tehnologii de implementare, inclusiv applet-uri și Java Web Start.
În martie 2018, Oracle a anunțat că nu va include Java Web Start în Java SE 11 (18.9 LTS) și mai târziu. Dezvoltatorii vor trebui să treacă la alte tehnologii de implementare. De atunci au apărut câteva alternative de sine stătătoare .
Implementare
Dezvoltatorul pregătește un fișier XML special cu extensie JNLP. Acest fișier descrie cerințele aplicației, locația codului, parametrii și permisiunile suplimentare (dacă există). Browserul descarcă acest fișier ca oricare altul și (urmând tipul său MIMEapplication/x-java-jnlp-file ) , îl deschide cu instrumentul Web Start. Instrumentul Web Start descarcă toate resursele necesare și lansează aplicația.
Java Web Start oferă o serie de clase în pachetul javax.jnlp care oferă diverse servicii aplicației. Sun a proiectat majoritatea acestor servicii cu scopul de a permite accesul controlat cu atenție la resurse (cum ar fi fișierele și clipboard-ul sistemului) în timp ce restricționează aplicația la operațiuni autorizate.
Sun a introdus versiunea 1.0 Web Start în martie 2001, în timp ce suportul Windows pe 64 de biți a fost adăugat doar în Java 6 (mai târziu de 64 de biți Java a fost disponibil pentru prima dată). Deoarece J2SE 1.4 Web Start vine ca o parte implicită a Java Runtime Environment (JRE) javaws, administratorii computerului nu mai trebuie să-l instaleze separat.
Protocol de lansare a rețelei Java (JNLP)
Programatorii vorbesc adesea despre Protocolul de lansare a rețelei Java ( JNLP ) în mod interschimbabil cu termenul „Web Start”. Protocolul JNLP, definit cu o schemă XML , specifică modul de lansare a aplicațiilor Java Web Start. JNLP constă dintr-un set de reguli care definesc modul exact de implementare a mecanismului de lansare. Fișierele JNLP includ informații precum locația fișierului pachet jar și numele clasei principale pentru aplicație, în plus față de alți parametri ai programului. Un browser configurat corect trece fișierele JNLP către un mediu Java Runtime Environment (JRE) care, la rândul său, descarcă aplicația pe computerul utilizatorului și începe să o execute. Dezvoltarea JNLP a avut loc în cadrul procesului de comunitate Java ca JSR 56. Include versiunea 1.0 originală, următoarea versiune de întreținere 1.5 și începând cu 2006, versiunea de întreținere 6.0 în așteptare.
Funcțiile importante de pornire web includ posibilitatea de a descărca și instala automat un JRE în cazul în care utilizatorul nu are instalat Java, iar programatorii să specifice ce versiune JRE are nevoie de un anumit program pentru a executa. Utilizatorul nu trebuie să rămână conectat la Internet pentru a executa programele descărcate, deoarece execută dintr-un cache menținut local . Actualizările software-ului se descarcă de pe Web și devin disponibile atunci când utilizatorul are o conexiune la Internet, ușurând astfel povara implementării.
Orice utilizator de computer poate utiliza JNLP pur și simplu instalând un client JNLP (cel mai frecvent Java Web Start). Instalarea poate avea loc automat, astfel încât utilizatorul final să vadă lansatorul clientului descărcând și instalând aplicația Java la prima executare.
JNLP funcționează în mod similar cu modul în care funcționează HTTP / HTML pentru web. Pentru redarea unei pagini web HTML , după ce utilizatorul face clic pe un link web, browserul trimite un URL către un server web , care răspunde cu un fișier HTML. Browserul solicită apoi resursele la care se referă acest fișier (imagini, css ) și, în cele din urmă, redă pagina după ce a primit suficiente informații. Redarea paginilor începe de obicei înainte de descărcarea tuturor resurselor; unele resurse care nu sunt critice pentru aspectul paginii (cum ar fi imaginile) pot continua ulterior.
JNLP reflectă acest proces; în același mod în care un browser web redă o pagină web, un client JNLP „redă” o aplicație Java . După ce utilizatorul face clic pe un weblink, browserul trimite o adresă URL către un server web, care răspunde cu un fișier JNLP (în loc de un fișier HTML) pentru aplicație. Clientul JNLP analizează acest fișier, solicită resursele specificate (fișiere jar), așteaptă recuperarea tuturor resurselor necesare și apoi lansează aplicația. Fișierul JNLP poate enumera resursele ca „leneș”, ceea ce informează clientul JNLP că aplicația nu are nevoie de resursele respective pentru a porni, dar le poate prelua ulterior când / dacă aplicația le solicită.
Exemplu
Exemplul de mai jos oferă un fișier JNLP simplu pentru a lansa applet-ul, specificând baza codului, sursa, clasa principală și dimensiunea ferestrei. Un astfel de fișier conține toate referințele necesare și este autosuficient pentru lansarea aplicației. Deoarece nu sunt solicitate permisiuni, codul va rula într-un sandbox. JNLP afirmă, de asemenea, că această aplicație poate rula offline (dacă este deja în cache) și ar trebui să fie actualizată ca proces de fundal.
<?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>
Compresie Pack200
Pentru a reduce dimensiunea unei aplicații Java Web Start, Sun Microsystems a introdus un sistem de compresie numit Pack200 în Java 1.5.0. Poate comprima un fișier jar mare la o nouăime din dimensiunea sa originală dacă conține doar clase Java.
Java Web Start a acceptat Pack200 de când a apărut prima dată, dar inițial această caracteristică a necesitat o cooperare de la server și o anumită experiență pentru a configura. Când Sun a introdus Java SE 6u10, suportul Pack200 a devenit disponibil fără a fi nevoie de suport special pentru server. Proiectanții de aplicații pot activa sau dezactiva această caracteristică în fișierele JNLP.
La conexiunile lente, Pack200 oferă o creștere a performanței în timpul de pornire și de descărcare a aplicației.
Aplicații Web Start semnate
În mod implicit, aplicațiile Java Web Start rulează „restricționat”, ceea ce înseamnă că nu au acces la anumite resurse de sistem, cum ar fi fișierele locale. Dar editorii pot elimina aceste restricții prin semnarea aplicațiilor Web Start cu jarsignerinstrumentul care vine cu JDK .
Alternative
Proiectul open source IcedTea oferă o implementare alternativă JNLP în IcedTea-Web . Începând cu versiunea 1.7.2, funcționează și pe versiuni mai noi, fără suport oficial JWS.
Pentru a rula aplicația bazată pe Java Web Start după lansarea Java 11, compania Karakun AG a lansat instrumentul open source OpenWebStart , bazat pe IcedTea-Web. Instrumentul include toate funcționalitățile IcedTea-Web și adaugă caracteristici extinse, cum ar fi instalatorii nativi pentru Mac OS, Windows și Linux. IcedTea-Web a fost creat cu sprijinul de la RedHat și AdoptOpenJDK .
Aplicații notabile
- ArgoUML - o aplicație de diagramare UML .
- CrossFTP - un client și un server FTP.
- Elluminate Live - un program de conferințe web / clasă virtuală.
- Ganymede - un sistem de gestionare a directorului de rețea cu licență GPL
- Genie Workbench - un set de instrumente de automatizare a producției de filme.
- Genevestigator , motor de acces la baza de date bioinformatică curată.
- Jake2 - Un port Java al Quake 2.
- JOSM - Editorul Java OpenStreetMap .
- muCommander Un manager de fișiere și Norton Commander clonează cu caracteristici SSH și ftp
- PoxNora - o perspectivă 3/4 , strategie pe rând , joc de cărți de colecție .
- Wurm Online - un simulator 3D de masivitate multiplayer online.
- yEd - un editor de grafice și diagrame.
Vezi si
- Zero Install , un sistem similar care funcționează pentru aplicații non-Java.
- ClickOnce , cadrul similar Microsoft .NET .