Java-sovelma

Java-sovelma (Java Applet) on epäitsenäinen, asiakaskoneessa selaimen yhteydessä suoritettava
Java-ohjelma. Sovelmia ajetaan selaimessa, johon on tyypillisesti asennettu Java-virtuaalikone (JVM) tai Sunin AppletViewerillä, sovelmien testaamiseen tarkoitetulla työkalulla. Java-sovelmat sisältyivät jo 1995 julkaistuun Java-kielen ensimmäiseen versioon.

Noin vuodesta 2013 lähtien selaimista on poistettu vanha NSAPI-rajapinta, jolla sivuilla sai ajettua selain-plugineita. Vuosina 2015–2017 mahdollisuus ajaa sovelmia poistui kaikista valtavirran selaimista. Java-sovelmien lisäksi poistuvaa tekniikka käyttivät Adobe Flash ja Microsoft Silverlight.
Uusi WebAssembly muistuttaa jonkin verran Java-sovelmia.

Sovelmilla tehdään verkkosivuille vuorovaikutteisia ominaisuuksia, joita ei voida toteuttaa HTML:n avulla. Koska Java-tavukoodi on alustariippumatonta, sovelmia voidaan käyttää monilla käyttöjärjestelmillä kuten Microsoft Windows, Unix, Mac OS ja Linux.

Sovelmia on tehty eniten Java-kielellä, mutta  Java-alustan tuki sovelmille päättyy Java SE 8:n jälkeen.  Oraclen päätös lopettaa Java-alustan ja siihen pohjautuvien sovelmien tuki perustuu paljolti sovelmiin liittyviin turvallisuuskysymyksiin. 

 Teknistä tietoa 
Java-sovelmat ajetaan tietoturvasyistä hiekkalaatikossa, mikä estää niitä pääsemästä käsiksi paikallisiin tietoihin. Sovelman koodi ladataan web-palvelimelta ja selain joko näyttää sovelman verkkosivulle upotettuna tai avaa uuden ikkunan, jossa sovelma näytetään.
Sovelman näyttämiseen käytetään applet- tai object-HTML-elementtiä,
joista jälkimmäinen on nykyisin suositeltu käytäntö. W3.org Objects - APPLETW3.org Objects - OBJECT
Elementissä kerrotaan selaimelle, mistä sovelman tavukoodi ladataan, sekä sovelman
paikka ja koko verkkosivulla.

Java-sovelma periytyy luokasta java.applet.Applet tai Swing-sovelman tapauksessa javax.swing.Applet. Sovelman toteuttavan luokan on ylikirjoitettava luokasta metodit, joilla sen käyttöliittymä alustetaan.

 Java-sovelmien etuja 
Java-sovelmien käytöllä saavutetaan seuraavia etuja:
sovelmat toimivat kaikilla yleisillä alustoilla - Windows, Mac OS, Linux, jne.
sovelmat ajetaan hiekkalaatikossa, joten käyttäjän ei tarvitse luottaa koodiin; ajatus on, ettei Java-sovelmalla voi aiheuttaa vahinkoa tai muuta tietoturvariskiä
useimmat selaimet tukevat niitä
sovelmat tallentuvat yleensä selaimen välimuistiin, jolloin ne latautuvat nopeasti, jos sivulle palataan
käyttäjän suostumuksella sovelma voidaan ajaa myös laajemmin oikeuksin, mikä mahdollistaa monipuolisempia toimintoja (paikallisten tiedostojen käyttö, ohjelmien käynnistys, jne.)
sovelmien avulla voidaan työkuormaa siirtää palvelimelta asiakkaan puolelle, millä saavutetaan parempi skaalautuvuus suurilla käyttäjämäärillä

 Java-sovelmien haittapuolia 
Java-sovelmien käytössä on seuraavia haittapuolia:
sovelmien käyttö vaatii Sunin Java-liitännäisen, jota ei ole välttämättä asennettu valmiiksi kaikkiin järjestelmiin
sovelman latautuminen ja virtuaalikoneen käynnistys voivat aiheuttaa huomattavan viiveen ensimmäisellä ajokerralla
hyvien käyttöliittymien luomista Java-sovelmiin pidetään vaikeampana kuin HTML-pohjaisten käyttöliittymien luomista
oletusarvoisesti sovelmat ajetaan hiekkalaatikossa, mikä rajoittaa sen pääsyä paikalliseen järjestelmään; erityisesti tiedostojen ja leikepöydän käsitteleminen on mahdotonta
Sunin yrityksistä huolimatta epäyhteensopivuuksia joidenkin Java-sovelmien ja joidenkin JRE-versioiden välillä esiintyy
virtuaalikoneen virheiden seurauksena koko selain saattaa kaatua (harvinaista)

 Yhteensopivuusongelmat 
Sun Microsystems on nähnyt paljon vaivaa varmistaakseen yhteensopivuuden vanhojen Java-versioiden kanssa uusien versioiden ilmestyessä. Microsoft Internet Explorer, 1990-luvun lopun suosituin selain, sisälsi oletuksena Microsoftin itse kehittämän Java-virtuaalikoneen. MSJVM sisälsi joitakin lisäominaisuuksia, joiden käytöstä sovelmassa seurasi se, ettei kyseinen sovelma toiminut Sunin Javalla; epäyhteensopivuutta toiseen suuntaan ei ollut. Sun haastoi Microsoftin oikeuteen tavaramerkkirikkomuksesta, koska epäyhteensopivuus ja proprietary-laajennukset olivat vastoin Javan perusfilosofiaa.

Oikeustoimien takia Microsoft jäädytti oman virtuaalikoneensa kehittämisen. Seurauksena oli tilanne, jossa suurella osalla käyttäjiä oli käytössään huomattavan vanhentunut Java-virtuaalikone. Myöhemmin, lokakuussa 2001, Microsoft lopetti Javan sisällyttämisen Windows-asennukseen jättäen sen toimittamisen konevalmistajien vastuulle. Nykyisin useimmat uudet tietokoneet toimitetaan Sunin virallinen Java valmiiksi asennettuna.

 Vaihtoehdot 
Java-sovelmille on olemassa vaihtoehtoisia tekniikoita kuten DHTML ja Adobe Flash, jotka mahdollistavat osittain saman toiminnallisuuden toteuttamisen.

Java Web Start on Sunin toteuttama vaihtoehto sovelmille. Web Startilla toteutetut ohjelmat ajetaan selaimen ulkopuolella ja voidaan käynnistää siitä riippumatta. Sovelmien mahdollistamien toimintojen lisäksi Web Start -ohjelmat voivat yksinkertaisen kyselylaatikon avulla saada käyttäjältä oikeuden paikallisten tiedostojen tai leikepöydän käyttöön.

 Katso myös 
 Java

Viittaukset

 Aiheesta muualla 

Opas sovelmien kehittämiseen Sun Microsystemsiltä
Sunin esittelysovelmia
Sunin Java-virtuaalikoneen lataussivu

Luokka:Ohjelmointi
Luokka:World Wide Web
Luokka:Selainlaajennukset
Luokka:Java