Кіріспе

Компьютерлік техникада Java Web Start (сондай-ақ JavaWS, javaws немесе JAWS деп те аталады) – Sun Microsystems (қазір Oracle) компаниясы әзірлеген, пайдаланушыларға Java платформасы үшін қолданба бағдарламаларын тікелей интернеттен веб-браузер арқылы іске қосуға мүмкіндік беретін қолданыстан шығарылған құрама. Бұл технология жаһандық деңгейде таралған қолданбалар үшін нұсқаларды үздіксіз жаңартуға және Java виртуалды машинасына жадты бөлуді жақсырақ бақылауға мүмкіндік береді. Java Web Start, Java SE 9-да қолданыстан шығарылғаннан кейін Java SE 11-де Java Platform құрамынан алынып тасталды. Oracle Java Web Start кодын OpenJDK құрамына қоспады, сондықтан OpenJDK бастапқыда оны қолдамады. IcedTea Web – Java Web Start-тың тәуелсіз ашық кодты іске асыруын ұсынады, қазіргі уақытта оны AdoptOpenJDK қауымдастығы, RedHat және Karakun AG әзірлейді және ол кейбір OpenJDK орнатушыларымен бірге келеді. Бұдан өзге, OpenWebStart – IcedTea Web негізіндегі, бірақ көбірек мүмкіндіктер мен коммерциялық қолдау опцияларын ұсынатын ашық кодты іске асыруды қамтамасыз етеді.

Функционалдылығы

Java апплеттерінен өзгеше, Web Start қолданбалары браузер ішінде іске қосылмайды. Дәстүрлі түрде олар апплеттермен бірдей қауіпсіздік ортасында жұмыс істейді, бірақ бірнеше шағын кеңейтулермен, мысалы, пайдаланушы файл таңдау диалогы арқылы тікелей таңдаған файлды жүктеуге және сақтауға рұқсат беру. Қосымша рұқсаттар тек қол қойылған қолданбаларға беріледі. Web Start апплеттерге қарағанда артықшылығы бар, себебі ол браузерлердің Java плагиндерімен және JVM-нің әртүрлі нұсқаларымен туындайтын үйлесімділік проблемаларын шешеді. Web Start бағдарламалары енді веб-беттің бір бөлігі емес, дербес қолданбалар болып табылады және жеке терезеде іске қосылады. Web Start тиісті JNLP файлын жасау арқылы jar файлдарына жиналған өзгертілмеген апплеттерді де іске қоса алады. Бұл файл апплет параметрлерін де жіберуге мүмкіндік береді. Мұндай апплеттер де жеке терезеде жұмыс істейді. Апплет іске қосу құралы, мысалы, класты ресурс ретінде жүктеу сияқты кейбір ерекше жағдайларды қолдамай қалуы мүмкін. Апплеттер сияқты, Java Web Start та платформааралық.

Қадірсіздік

JDK9-бен бірге Oracle апплеттер және Java Web Start сияқты бірнеше тарату технологияларын ескірген деп жариялады. 2018 жылдың наурыз айында Oracle Java SE 11 (18.9 LTS) және одан кейінгі нұсқаларында Java Web Start болмайтынын хабарлады. Дамытушылар басқа тарату технологияларына көшуі керек болады. Содан бері бірнеше дербес баламалар пайда болды.

Іске асыру

Жасаушы JNLP кеңейтімі бар арнайы XML файлын дайындайды. Бұл файл қолданбаның талаптарын, кодтың орналасқан жерін, параметрлерін және қосымша рұқсаттарды (бар болса) сипаттайды. Браузер бұл файлды кез келген басқа файл сияқты жүктейді және (application/x java jnlp файлы MIME түріне сәйкес) оны Web Start құралымен ашады. Web Start құралы барлық қажетті ресурстарды жүктеп алып, қолданбаны іске қосады. Java Web Start javax.jnlp пакетінде әртүрлі қызметтерді ұсынатын бірнеше класспен қамтамасыз етеді. Sun осы қызметтердің көпшілігін ресурстарға (мысалы, файлдар мен жүйелік буфер алмастырғышқа) қатаң бақыланатын қолжетімділікті қамтамасыз ету және қолданбаны рұқсат етілген операциялармен шектеу мақсатында жобалады. Sun Web Start-тың 1.0 нұсқасын 2001 жылдың наурыз айында ұсынды, ал 64 биттік Windows қолдауы тек Java 6-да (64 биттік Java алғаш рет қолжетімді болғаннан кейін) қосылды. J2SE 1.4 нұсқасынан бастап Web Start Java Runtime Environment (JRE) құрамына javaws деп аталатын стандартты бөлік ретінде кірді, сондықтан компьютер әкімшілері оны жеке орнату қажеттілігі тумайды.

Java желісін іске қосу протоколы (JNLP)

Бағдарламашылар Java Network Launching Protocol (JNLP) туралы көбінесе «Web Start» терминімен бірдей мағынада қолданады. XML схемасымен анықталған JNLP протоколы Java Web Start қолданбаларын қалай іске қосу керектігін көрсетеді. JNLP іске қосу механизмін қалай жүзеге асыру керектігін анықтайтын ережелер жиынтығынан тұрады. JNLP файлдарына бағдарламаның басқа параметрлерімен қатар, jar пакетінің орналасқан жері және қолданбаның негізгі класының аты сияқты ақпараттар кіреді. Дұрыс конфигурацияланған браузер JNLP файлдарын Java Runtime Environment (JRE) ортасына жібереді, ол өз кезегінде қолданбаны пайдаланушының компьютеріне жүктеп, оны іске қосады. JNLP Java Community Process аясында JSR 56 ретінде әзірленді. Web Start мүмкіндіктерінің ішінде ең маңыздысы – пайдаланушыда Java орнатылмаған жағдайда JRE-ді автоматты түрде жүктеу және орнату, сондай-ақ бағдарламашыларға белгілі бір бағдарламаны іске қосу үшін қандай JRE нұсқасы қажет екенін көрсету мүмкіндігі. Пайдаланушы жүктелген бағдарламаларды орындау үшін интернетке қосылған болуы міндетті емес, себебі олар жергілікті кэштен іске қосылады. Бағдарламалық жасақтаманың жаңарулары интернеттен жүктеліп, пайдаланушы интернетке қосылғанда қолжетімді болады, бұл таратуды жеңілдетеді. Кез келген компьютер пайдаланушысы JNLP клиентін (көбінесе Java Web Start) орнату арқылы JNLP-ті пайдалана алады. Орнату автоматты түрде жүзеге асырылуы мүмкін, яғни соңғы пайдаланушы Java бағдарламасын бірінші рет іске қосқанда клиенттің жүктеліп, орнатылатынын көреді. JNLP веб үшін HTTP/HTML қалай жұмыс істейтініне ұқсас принциппен жұмыс істейді. HTML веб-бетін көрсету үшін пайдаланушы веб-сілтемені басып, браузер веб-серверге URL жібереді, ол HTML файлымен жауап береді. Браузер одан кейін осы файлда көрсетілген ресурстарды (суреттер, CSS) сұрайды және жеткілікті ақпарат алғаннан кейін бетті көрсетеді. Бетті көрсету әдетте барлық ресурстар жүктелместен басталады; беттің макетіне аса маңызды емес кейбір ресурстар (мысалы, суреттер) кейіннен жүктеле береді. JNLP осы процесті қайталайды; веб-браузер веб-бетті көрсеткендей, JNLP клиенті Java қолданбасын «көрсетеді». Пайдаланушы веб-сілтемені басқаннан кейін, браузер веб-серверге URL жібереді, ол қолданба үшін JNLP файлымен (HTML файлының орнына) жауап береді. JNLP клиенті осы файлды талдайды, көрсетілген ресурстарды (jar файлдары) сұрайды, барлық қажетті ресурстарды күтеді, содан кейін қолданбаны іске қосады. JNLP файлы ресурстарды «кешіктірілген» деп көрсетуі мүмкін, бұл JNLP клиентіне қолданбаны іске қосу үшін бұл ресурстар қажет емес екенін, бірақ қолданба сұраған жағдайда оларды кейінірек жүктеуге болатынын хабарлайды.

200- пакет сығымдалу

Java Web Start бағдарламасының көлемін азайту үшін Sun Microsystems Java 1.5.0 нұсқасында Pack200 деп аталатын қысым жүйесін енгізді. Егер үлкен jar файлы тек Java сыныптарын ғана қамтитын болса, онда ол бастапқы көлемінің тоғызынан бір бөлігіне дейін қысылуы мүмкін. Java Web Start Pack200-ді пайда болғаннан бастап қолдайды, бірақ бастапқыда бұл мүмкіндікті пайдалану үшін серверлік қолдау және белгілі бір білік қажет болды. Sun Java SE 6u10 нұсқасын шығарған кезде Pack200 қолдауы арнайы серверлік қолдаусыз қолжетімді болды. Бағдарлама жасаушылар JNLP файлдарында осы мүмкіндікті қосуға немесе өшіруге болады. Pack200 баяу интернет байланысында бағдарламаны іске қосу және жүктеу жылдамдығын арттырады.

Қолтаңбаланған Web Start қолданбалары

Әдетте Java Web Start қолданбалары "шектелген" күйде іске қосылады, яғни олар жергілікті файлдар сияқты кейбір жүйелік ресурстарға қол жеткізе алмайды. Бірақ баспагерлер өз Web Start қолданбаларына JDK құрамына кіретін jarsigner құралымен қол қою арқылы осы шектеулерді жойып жіберуі мүмкін.

Баламалар

Ашық бастапқы коды бар IcedTea жобасы IcedTea Web арқылы JNLP іске асырудың балама нұсқасын ұсынады. 1.7.2 нұсқасынан бастап ол ресми JWS қолдауы жоқ жаңа нұсқаларда да жұмыс істейді. Java 11-дің шығуынан кейін Java Web Start негізіндегі қосымшаларды іске қосу үшін Karakun AG компаниясы IcedTea Web негізіндегі OpenWebStart ашық бастапқы коды құралын жариялады. Бұл құрал IcedTea Web-тің барлық мүмкіндіктерін қамтиды және Mac OS, Windows және Linux үшін жергілікті орнату бағдарламалары сияқты қосымша мүмкіндіктерді ұсынады. IcedTea Web RedHat және AdoptOpenJDK қолдауымен жасалған.