„Odzvonilo“ za Java aplete
Da li prestaju da rade veb aplikacije banaka i e-uprave?
U zvaničnoj objavi na Oracle blogu od 27. januara među programerima je odjeknula vest da će u narednoj verziji 9 Java platforme apleti postati zastarela tehnologija, pre nego što podrška za Java aplete potpuno ne nestane u budućim izdanjima Java platforme.
Najpre da naglasim, nema mesta za paniku. Sve veb aplikacije za e-bankarstvo koje rade sa apletima i pametnim karticama, e-Porezi, APR aplikacija za finansijske izveštaje i slične će raditi (ili neće raditi - kako kome i kako gde) i sutra i sledeće nedelje isto kao i do danas. Jedino su veb aplikacije koje koriste Java aplete „na udaru“. Ništa se ne menja kod nezavisnih aplikacija za e-bankarstvo koje se posebno instaliraju na računaru kao ni kod mobilnih aplikacija.
Vest je ipak značajna za programere ovih veb aplikacija i sve one koji planiraju budući razvoj i donose tehničke odluke o izboru tehnologije. Sada je vreme da se predvidi i planira ažuriranje aplikacija, pre nego što podrška za Java aplete istekne.
Java apleti su tehnologija koja omogućava transparetno pokretanje programa direktno iz veb pregledača. Kako ime tehnologije ukazuje, ovi programi pisani su na programskom jeziku Java (ili nekom od njemu srodnih jezika), danas verovatno najpopularnijem programskom jeziku. Kada korisnik poseti veb stranicu sa Java apletom, učitava se program koji zatim može da interaguje sa računarom, uređajima i podacima korisnika povezujući ih sa veb stranicom.
Apleti postoje još od devedesetih, a sve do poslednje decenije i renesanse JavaScripta1 i HTML5 bili su prihvatljivo tehnološko rešenje za veb aplikacije koje su trebale da naprave „nešto više“ - izvedu interaktivna izračunavanja, pokrenu komunikaciju u realnom vremenu, prikažu naprednu grafiku ili povežu veb aplikaciju sa drugim uređajima korisnika. Deo ovih mogućnosti nudio je i Adobe Flash Player, a kako je donosio nešto bolji korisnički doživljaj, Flash je postao popularniji izbor kada god je to bilo moguće (video stream, komunikacija, pristup mikrofonu i kameri, interaktivne igre…).
Od 2004. godine Java 1.5 dolazi sa ugrađenom podrškom za rad sa kriptografskim uređajima (PKCS#11 API), a krajem 2006. Java 1.6 je programerima omogućila lak direktni pristup pametnim karticama (PC/SC API). Kako je pokretanje Java apleta radilo u većini standardnih dekstop pregledača (Firefox, Safari, Internet Explorer…) i na većini operativnih sistema (Windows, Apple OSX, GNU/Linux) Java apleti su mogli da se naprave jednom i da rade skoro svuda. To je dovelo do toga da skoro sva rešenja za korišćenje pametnih kartica u veb aplikacijama koriste upravo tehnologiju Java apleta. Apleti su bili korak napred u odnosu na dotadašnja rešenja koja su zahtevala Internet Explorer i uporedivu ActiveX tehnologiju. „Applets are back!“ bila je zvanična poruka 2008. programerima.
I dok su JavaScript i HTML5 od tada istisnuli i Java aplete i Flash objekte skoro svuda, kada je u pitanju povezivanje sa kriptografskim uređajima nije se pojavila zgodna alternativa Java apletima. Većinu korisnika Java apleti danas asociraju na sajtove za elektronsko bankarstvo ili sajtove veb aplikacija e-uprave, preostala mesta gde se gotovo po pravilu koriste.
Od pojave Java apleta devedesetih računarska bezbednost je postala primarni aspekt. Sada je jasno da transparentno pokretanje programa sa raznih veb stranica nije baš tako dobra ideja. Česta ažuriranja krpila su rupe u platformi, a da bi pokretanje bilo manje transparentno i moguće samo uz dozvolu korisnika, počela su da obavezno iskaču upozorenja i zahtevi za stalna ažuriranja i nove dozvole. Samo ukoliko bi programeri obavili sve kako treba, ako bi aplet bio ispravno postavljen, i na računaru bile instalirane neophodne komponente, doživljaj aktiviranja apleta bi bio prihvatljiv. Otvaranjem sajta korisnik bi pri prvom učitavanju trebalo da proveri veruje li sajtu i autorima apleta da program (aplet) neće uraditi ništa štetno i u tom slučaju omogućiti pokretanje. Ipak u praksi, zbog čestih promena u platformi, ni programeri, a ni korisnici se sa ovim nisu snalazili. Apleti su postali sinonim za traumatsko iskustvo, a uz korisnike koji ne bi znali kako da procene mogu li apletu da veruju cela tehnologija je postala bezbednosni rizik.
Većina desktop veb pregledača je i pre ove najave iz Oracla potpuno onemogućila ili značajno otežala pokretanje Java apleta. Popularnost mobilnih platformi doprinela je nestanku Java apleta, oni se tamo nikada nisu ni pojavili. Možda je postojala nada da će Oracle ponuditi rešenje za oživljavanje ove tehnologije, ali najava daje jasan putokaz - prestanite da koristite Java aplete.
Java 9 se ne očekuje pre marta 2017, a tek kasnije verzije će izbaciti podršku za aplete. Ali Java apleti već sada uopšte ne rade u Google Chromu, ne rade u novom Microsoft Edge pregledaču, niti u 64-bitnom Mozilla Firefoxu. Podrška za „običan“ Firefox ističe krajem 2016. godine. Kako Oracle ne nudi perpsektivu za tehnologiju apleta jasno je da ne treba čekati Javu 9.
Programeri pomenutih veb aplikacija sada treba da smisle rešenja koja ne koriste aplete.
Jedna alternativna su nezavisni programi koji bi se instalirali na računar ili mobilni telefon, a sa kojima bi veb aplikacija mogla da razmenjuje podatke ili kojima bi aplikacija mogla da prepusti deo funkcionalnosti. Druga alternativa je razvoj ekstenzija za svaki pregledač posebno, barem one gde je moguće ostvariti traženu funkcionalnost. Treća alternativa je da u saradnji sa proizvođačima kriptografskih uređaja HTML5 tehnologije dobiju podršku za rad sa imenovanim, unapred prisutnim kriptograskim ključevima kroz sistemske interfejse za pristup uređajima.
Nezgodno je to što za razliku od Java apleta alternative ili još uvek ne postoje ili zahtevaju više paralelnih rešenja, zavisno od pregledača i operativnog sistema pa tek korisnici najpopularnije opcije mogu da računaju na sigurnu podršku (npr. samo za Microsoft Windows i Edge). Oracle predlaže korišćenje Java Web Start tehnologije koja omogućava pokretanje jedne Java aplikacije na svim sistemima, utoliko smanjujući raznolikost ali to ne donosi podršku za mobilne platforme, sa lošijim korisničkim doživljajem čak i u odnosu na aplete.
-
Treba naglasiti da JavaScript ne deli nikakve sličnosti niti tehnička rešenja sa Javom. U vreme nastanka JavaScripta, programski jezik Java je već bio popularan, pa je marketing i komplikovana korporativna politika jedan od razloga za slično ime. ↩