128 ORGANIZACIJA ZNANJA 2008, LETN. 13, ZV. 3
V San Franciscu je od 6. do 9. maja 2008 potekala
konferenca JavaOne, namenjena platformi java. Sodi
nedvomno med največje dogodke informacijske teh-
nologije, saj ga obišče več tisoč strokovnjakov s tega
področja. Letošnja konferenca je potekala pod geslom
“Java + You”, s čimer so poskušali poudariti dejstvo,
da ta tehnologija na tak ali drugačen način vpliva na
ekosistem potrošnika, torej na vsakega izmed nas. Med
statističnimi podatki tako najdemo, da naj bi bilo v upo-
rabi 6 milijard naprav, ki delujejo na osnovi tehnologije
java (http://www.sun.com/aboutsun/media/presskits/
javaone2008/index.jsp).
Na urniku konference je bilo preko 300 predavanj, ki so
potekala v 11 vzporednih sekcijah. Kljub temu je bilo
moč čutiti, da je poudarek letošnje konference na proiz-
vodu JavaFX, ki predstavlja jedro platforme java, bogatih
spletnih aplikacijah (RIA) in skriptnih jezikih. Težišče
razvoja se tako spet nagiba na stran odjemalcev, pri čemer
je trend gradnja bogatih spletnih odjemalcev, ki vsebujejo
podobne grafične elemente kot klasične namizne aplika-
cije.
COMMUNITYONE
Pred glavno konferenco JavaOne je potekala enodnevna
konferenca z naslovom CommunityOne 2008. Dogodek
je namenjen vsem tistim, ki jih zanima področje odprte
in prostodostopne kode. Tako se tukaj zberejo razvijalci,
odjemalci in ponudniki tovrstnih proizvodov.
Konferenca je bila razdeljena na več vzporedno organizi-
ranih predavanj.
Operacijski sistem OpenSolaris
Največji poudarek konference CommunityOne je bil
prav OpenSolaris kot SUN-ov prispevek k odprti kodi.
Na konferenci so delili tudi DVD-je z operacijskim siste-
mom.
OpenSolaris je operacijski sistem, ki je v svoji prvi verziji
enak SUN-ovemu Solaris OS. To izvorno kodo je SUN
predal v odprtokodni projekt (ne celotno kodo, ampak
njene sestavne dele). SUN kot razloge za prehod v odpr-
tokodni način razvoj navaja naslednje:
• Model razvoja z odprto skupnostjo prinaša priložnosti
za sodelovanje med Sunovimi inženirji in skupnostjo
uporabnikov.
• Veliko uporabnikov sistema Solaris OS je zahtevalo
odprto kodo.
• Omogočeno je sodelovanje v mnogih projektih, ki
zahtevajo odprto kodno programsko opremo itd.
Trenutne distribucije OpenSolaris delujejo na procesorjih
SPARC kot tudi na x64/x8.
Linux OS
Predavanja so bila namenjena novostim pri različnih di-
stribucijah (openSUSE, Ubuntu in Fedora). Najavili so
openSUSE, verzijo 11.0, ki bo vsebovala: KDE 4.0 in 3.5,
GNOME 2.22, NetworkManager 0.7, PulseAudio, Tas-
que, OpenOffice.org 2.4, Banshee 1.0. Največ izboljšav
je bil deležen program za nameščanje, ki je poenostavljen
in hitrejši.
NetBeans
Na predstavitvah orodja NetBeans IDE so poudarili, da
je nova verzija (6.x) bistveno hitrejša, kar je bil prej eden
izmed glavnih očitkov. Na samih predstavitvah je bilo
dejansko videti hitro odzivnost orodja. NetBeans sicer
še naprej daje velik poudarek razvoju spletnih aplikacij.
Tako so npr. predstavili razhroščevalnik za javascript, ki
deluje neodvisno od spletnega pregledovalnika. Podpora
skriptnih jezikom je res široka, tako NetBeans podpira
tudi PHP na strežniku in Ruby pa tudi delo z aplikacijski-
mi strežniki; še posebej je dobro podprt GlassFish.
PRIHAJAJO^E NOVOSTI PLATFORME
JAVA
Glede novosti bi lahko dejali, da je java postala zrela
tehnologija. Razvoj poteka v skupnosti in se osredotoča
predvsem na enostavnejšo uporabo in večjo učinkovitost.
Java se seveda spreminja, vendar ne hitro in korenito,
KONFERENCA JAVAONE 2008
doi:10.3359/oz0803128 1.25: DRUGI ČLANKI ALI SESTAVKI
M
129ORGANIZACIJA ZNANJA 2008, LETN. 13, ZV. 3
ampak skrbno, s pretehtanimi spremembami in novostmi,
ki jih potrebuje informacijska industrija. Kot takšno lah-
ko javo jemljemo kot dolgoročno platformo, ki bo igrala
pomembno vlogo naslednja desetletja. JCP (Java Com-
munity Process) deluje tako, da se inovacije, ki nastajajo
v skupnosti, prenesejo v formalno specifikacijo.
Javo SE 7 pričakujemo v prvi polovici leta 2009. Decem-
bra leta 2006 je bila izdana Java SE 6, ki je uvedla števil-
ne novosti in izboljšave (API spletnih storitev, podpora
skriptnim jezikom, prenovljeni API za podatkovno bazo,
izboljšave Swinga, nadzor in upravljanje, vgrajene anota-
cije, prevajalnika API, integracija z varnostnimi storitvami,
kakovost, združljivost in stabilnost). Trenutno jo uporab-
lja 7 milijonov razvijalcev jave. Vsak mesec je približno
700.000 prenosov JDK-ja, 90,7 odstotkov osebnih računal-
nikov, ki so priključeni v internet, pa ima nameščeno javo.
Iz tega je razvidno, da je java prešla v fazo zrelosti. Nova
verzija jave bo na voljo poleti 2009. Prva polna verzija
JavaFX SDK je bila najavljena za jesen 2008. Vmes redno
prihajajo posodobitve, kjer je poudarek predvsem na učin-
kovitosti in popravkih. Trenutno je na voljo Java SE 6u5p
“Performance Relese”, kjer so optimizirane osnovne knjiž-
nice in virtualni stroj. Razvoj temelji na skupnosti in rezul-
tat tega je tudi, da ima prostodostopna distribucija Linuxa
Ubuntu od verzije 8.04 naprej integrirano Java SE 6. Pri
razvoju Java SE 7 se osredotočajo predvsem na podporo
več jezikom. Virtualni stroj, ki je namenjen enemu jeziku,
je preteklost. V zadnjem času so v porastu skriptni jeziki,
ki omogočajo enostaven in predvsem hiter razvoj novih
aplikacij. Projekt Da Vinci Machine se ukvarja z razširit-
vijo osnovne arhitekture virtualnega stroja java, tako da
bo podpiral večjezičnost. Namen je, da bi drugi, predvsem
dinamični programski jeziki tekli na (J)VM enako učinko-
vito kot java.
Modularnost pomeni boljšo ponovno uporabo, tako pri
razvoju kot pri nameščanju. Pri razvoju gre za boljšo
ponovno uporabo kode, pri nameščanju pa za boljšo po-
novno uporabo binarnih datotek. Uvedena je nova ključna
beseda “module” in novi format pakiranja (JAM datoteč-
ni format za distribucijo).
Osnovni koncepti modularnosti v programskem jeziku
java:
• Deklariramo novi model z imenom org.netbeans.core,
kamor spada tudi razred Debugger.java:
module org.netbeans.core;
package org.netbeans.core;
public class Debugger {
... new ErrorTracker() ...
}
• Razred ErrorTracker.java iz paketa org.netbeans.core.
utils je prav tako del modula org.netbeans.core. V tem
primeru je dostop do razreda ErrorTracker in metode
getErrorLine omejen znotraj modula org.netbeans.
core:
package org.netbeans.core.utils;
module org.netbeans.core;
module class ErrorTracker {
module int getErrorLine() { ... }
}
• Informacijska datoteka modula org/netbeans/core/mo-
dule-info.java opisuje modul in odvisne knjižnice:
@Version(“7.0”)
@ImportModule(name=”java.se.core”, versio
n=”1.7+”)
module org.netbeans.core;
V novi verziji jave bo prav tako veliko pozornosti na-
menjeno upravljanju in vizualni predstavitvi virtualnega
stroja (VisualVM).
Spremembe na strani bogatega odjemalca bodo zajemale
tako Swing kot aplete. Javanski programčki bodo do-
živeli spremembe v načinu namestitve (Java Web Start)
in v načinu uporabe, saj jih bo možno uporabljati v obliki
majhnih programčkov, ki delujejo tudi zunaj spletnega
brskalnika. Na področju bogatih odjemalcev je na pohodu
Java FX, ki je podrobneje opisana v nadaljevanju.
Java EE 6 bo v novi različici doživela kar nekaj spre-
memb, ki pa ne bodo tako obsežne kot pri prejšnji verziji.
Pred dvema letoma, ko je bila izdana Java EE 5, je bilo
glavno vodilo enostaven razvoj. Do sedaj je bila Java
EE 5 prenesena trimiljonkrat kot samostojno ogrodje
ali v okviru razvojnega ogrodja Java NetBens. Glede na
pripombe se odločajo, kaj bo spremenjeno v naslednji
verziji.
Pripombe glede velikosti ogrodja so pripeljale do iskanja
rešitev glede pravilne velikosti, ki bi omogočala modu-
larnost, fleksibilnost, osredotočanje na določeno področje
in poenostavitve. To bodo rešili s profili (npr. spletni pro-
fil, ki bo namenjen razvijalcem internetnih aplikacij, ali
profil za telekomunikacijsko industrijo …) Takšni profili
bodo obsegali komponente, ki bodo namenjene določeni
skupini razvijalcev … Vpeljali bodo tudi proces klestenja,
pri čemer bodo nekatere komponente postale opcijske
(npr. EJB ali JAX-RPC). V ta namen bo nastala speci-
fikacija EJB, 3.1, v lahki obliki. Prav tako bodo delali
na razširljivosti ogrodja. Omogočili bodo enostavnejšo
uporabo različnih knjižnic in vpeljali skriptne jezike kot
prvorazredne programske jezike.
V verziji 6 bodo nadaljevali tudi s paradigmo enostav-
nega razvoja, s poudarkom na spletnih aplikacijah (Web
Container). Spletne aplikacije bodo poenostavljene z
oznakami za spletne aplikacije, razvoj bo potekal brez
POROČILO
130 ORGANIZACIJA ZNANJA 2008, LETN. 13, ZV. 3
urejanja datotek Web.xml, omogočena bo samostojna
registracija tretjih knjižnic, podprt bo razvoj spletnih sto-
ritev RESTful (JAX-RS) in razširitev s skriptnimi jeziki.
Aplikacijski strežnik GlassFish, V3, je naslednja večja
izdaja aplikacijskega strežnika, ki se razvija pod okriljem
skupnosti. GlassFish, V3, ima modularno, lahko in razšir-
ljivo arhitekturo. Modularna arhitektura omogoča, da je
osnovno jedro aplikacijskega strežnika manjše od 100Kb
in da se zažene prej kot v sekundi. Glavne značilnosti
aplikacijskega strežnika GlassFish, V3:
• odprta, modularna in razširljiva platforma,
• hiter, enostaven in zanesljiv aplikacijski strežnik,
• nameščanje brez ponovnega zagona,
• podpora za različne jezike (JRuby/Rails, Jython/Djan-
go, Groovy/Grails, javascript …),
• podpora OSGi in Java EE 6,
• integracija znotraj razvojnega ogrodja NetBeans.
NOVA PLATFORMA ZA BOGATE ODJE-
MALCE JAVA FX
Java FX je družina proizvodov za izdelavo bogatih inter-
netnih aplikacij (RIA). V času aplikacij spleta 2.0 je po-
membno predvsem hitro in enostavno razvijanje grafično
bogatih aplikacij. Lani so JavaFX prvič predstavili, letos
smo lahko videli delujoče internetne aplikacije. Uradno
naj bi zaživela z dodatkom za Javo SE 6 v drugi polovici
tega leta.
Java FX platforma omogoča kreiranje interaktivnih vse-
bin, aplikacij in storitev, od namiznih sistemov, mobilnih
naprav do interaktivne televizije, pri čemer je prednost,
da se enaka koda izvaja na različnih napravah.
Slika 1: Razvojno in izvajalno okolje Java FX
V juniju 2008 je napovedana predpremiera Java FX SDK
za predhodno registrirane uporabnike, JavaFX Mobile pa
na pomlad 2009. Trenutno je preizkušanje možno s po-
močjo beta verzije vtičnika za razvojno okolje NetBeans
(JavaFX NetBeans Beta Plugin) ali prevajalnika Java
FX, zadnjo verzijo pa lahko dobimo na spletnem naslovu
http://openjfx.java.sun.com/hudson/job/openjfx-compiler/
lastSuccessfulBuild/artifact//*zip*/archive.zip.
Na letošnji konferenci je Sun predstavil dva proizvoda iz
družine JavaFX, in sicer: Java FX Script in FX Mobile.
Java FX Script je zelo učinkoviti skriptni jezik za krei-
ranje bogatih odjemalcev in predstavitev multimedijskih
vsebin na osnovi java tehnologije. Java FX Script poeno-
stavlja proces gradnje bogatih uporabniških vmesnikov
za programerje, oblikovalce in avtorje vsebin. S pomočjo
Java FX Script se zmožnosti aplikacijskih vmesnikov
Java Swing, Java 2D in Java 3D varno prenašajo na raz-
lične naprave brez lokalnih nameščanj. Java razvijalci
lahko trenutno uporabljajo vtičnik Java FX Script, name-
njen razvojnemu okolju NetBeans. Lastnosti:
• Java FX Script uporablja deklarativno sintakso za
specifikacijo komponent uporabniških vmesnikov.
• Skozi deklarativno gradnjo dosežemo inkrementalno
evalvacijo.
• Java FX bo deloval v vseh glavnih razvojnih okoljih,
vključno z NetBeans, ki je referenčna implementacija.
• Za razliko od številnih drugih skriptnih jezikov je
Java FX Script statično tipiziran in ima podobno
strukturo kode, ki omogoča ponovno uporabo in en-
kapsulacijo, kar je dobro za vzdrževanje in gradnjo
velikih programov.
• Java FX Script je zmožen graditi uporabniške vmesni-
ke vseh velikosti in zahtevnosti.
• Omogoča enostavno uporabo Swinga, ki je eno od
najboljših razvojnih ogrodij za uporabniške vmesnike.
Dinamično strukturo jezika dobimo z modelnim pristo-
pom, kjer se sprememba modela avtomatsko preslika na
pripadajočo komponento. To dosežemo z metodo “bind”,
ki predstavlja dvosmerno povezavo.
Sledi primer enostavnega programčka JavaFX Script, ki
odpre okno z gumbom. Sprememba modela, ki jo izvede-
mo s klikom na gumb, se dinamično izvede.
import javafx.ui.*;
class HelloWorldModel {
attribute saying: String;
}
var model = HelloWorldModel {
saying: “Hello World”
};
Frame {
title: “Hello World JavaFX”
width: 200
content: Button {
POROČILO
M
T
131ORGANIZACIJA ZNANJA 2008, LETN. 13, ZV. 3
text: bind model.saying
action: function():Void {
model.saying = “JavaFX is cool”
}
}
visible: true
};
Java FX Mobile je kompletno mobilno izvajalno in
aplikacijsko okolje, zgrajeno na odprtih tehnologi-
jah java in Linux. Procesorske in omrežne zmožnosti
današnjih mobilnih naprav imajo potencial za bogate
internetne vsebine. JavaFX Mobile, ki je zgrajena na
osnovi platforme Java ME, je tehnologija, ki omogoča
izkoriščanje sposobnosti obstoječih naprav. Platformo
Java ME ima danes že več kot dve milijardi mobilnih
naprav. Sun pričakuje, da bo Java FX Mobile vodilna
tehnologija za bogate internetne aplikacije na teh na-
pravah. Celo več, pričakuje se, da bo to tehnologija za
vse odjemalce (mobilne naprave, namizni računalniki,
TV …). Ker Sun sodeluje z različnimi partnerji na po-
dročju mobilnih naprav tudi na drugih aplikacijskih
nivojih, vključno s srednjim slojem, to ponuja dodatne
prednosti in gladek ter konsistenten prehod na nove
tehnologije v naslednjih letih.
IZBIRA IN PRIMERJAVA RAZLI^NIH
RAZVOJNIH OGRODIJ ZA SPLETNE AP-
LIKACIJE
Prav gotovo je bil eden od glavnih poudarkov letoš-
nje konference JavaOne razvoj spletnih aplikacij. Ena
od tem, ki se nanaša na to področje, je izbira pravega
ogrodja za razvoj teh aplikacij. Na voljo je ogromno
(preko sto) različnih ogrodij, zato je pomembno, da iz-
beremo takšno, ki ustreza našim potrebam. Vsa ogrodja
niso enaka, zato je pomembno, da izpostavimo zahteve
in najdemo način, da zahteve izpolnimo. V pomoč so
nam lahko kriteriji, ki jih Richard Pack (avtor) navaja
na osnovi večletnih izkušenj, zakaj je izbira ustreznega
ogrodja pomembna:
• Ogrodje je lahko zahtevno za uporabo in razumevanje
za sodelujoče v projektu.
• Programerji lahko pišejo kodo, ki ni ponovno uporab-
na.
• Transport Ajax je neenoten.
• Neposredna trajnost povpraševanja, seje ali konteksta.
• Omejena dokumentacija.
• Neenoten dogodkovni model.
• Neuporabnost za tradicionalne oblikovalce spletnih
strani.
• Z naraščanjem aplikacij je konfiguriranje ogrodja
oteženo.
• Ni možnosti za uporabo razhroščevalnika.
• Možnost uporabe pogleda na način kontroler.
• Tehnologija JSP predstavlja pri velikih projektih noč-
no moro.
• Hitrost nameščanja.
Tradicionalni kriteriji za izbiro ogrodja:
• kako dolgo traja, da napišemo aplikacijo, ki nekaj iz-
piše (test “Hello World”),
• učinkovitost (Filter ali servlet),
• pogled dekoracijskega stila (ali se uporabljajo šablone
ali JSP/Taglibs, kontrolni bloki java …),
• hitrost nameščanja,
• hitrost razvoja, ki jo presojamo s tremi vprašanji
(Kako hitro poteka učenje? Koliko časa traja, da do-
damo enostavno lastnost? Je spreminjanje lastnosti
enostavno?),
• obstoj vgrajenih mehanizmov preverjanja veljavnosti,
• internacionalizacija in večjezičnost,
• dokumentacija,
• možnost zaznamkov,
• skalabilnost,
• možnosti prenosa.
Zmeraj se moramo vprašati, kakšne so naše potrebe?
• Ali gradimo novo aplikacijo?
• Kako velika je ta aplikacija?
• Kakšni so naši scenariji uporabe?
• Ali se bo aplikacija pogosto spreminjala (gradimo za
prihodnost)?
• Ali v resnici potrebujem tritirno arhitekturo?
• Kakšna je velikost in kompetenca naše skupine?
Napredni kriteriji:
• podpora Ajaxu (integrirana ali povezana z zunanjimi
orodji),
• podpora skupnosti (aktivni neprekinjen razvoj),
• različni jeziki,
• zrelost,
• podpora tri-tirnosti (Spring, Hibernate),
• prijazni URL-ji,
• odjemalec/strežnik javascript,
• uporaba tega ogrodja tudi v drugem delu podjetja,
• izkušnje razvijalcev s tem ogrodjem.
Primerjava nekaterih najpogosteje uporablje-
nih ogrodij za spletne aplikacije:
Grovy/Grails
Vrsta uporabe: poglej/napiši
POROČILO
132 ORGANIZACIJA ZNANJA 2008, LETN. 13, ZV. 3
Prednosti Slabosti
• hitro nameščanje aplikacij
• enostavna konfiguracija
• integrirana Spring in
Hibernate
• lepa izdelava šablon
• počasen v primerjavi
z osnovnimi ogrodji
Google Web Toolkit (GWT)
Vrsta uporabe: visoko interaktivna
Prednosti Slabosti
• enostavnost, podobno
Swing/SWT
• veliko vgrajenih
gradnikov
• močna povezava med
javo in javascriptom
• projektna zasnova
• težavno nadzorovanje
razredov css
• vgrajene samo osnovne
komponente (rešeno z
GWT-Ext)
• trenutno ni podpore za
Javo 5/6
Struts 2
Vrsta uporabe: poglej/napiši, visoko interaktivna
Prednosti Slabosti
• prvorazredna podpora za
Ajax
• integracija z vsebnikom
Spring
• kontrolerji POJO ne zah-
tevajo dedovanja
• še zmeraj uporablja ve-
liko konfiguracije XML
• mapiranje v XML ostaja
tekoče
Tapestry
Vrsta uporabe: poglej/napiši, visoko interaktivna
Prednosti Slabosti
• uporablja označene šablo-
ne HTML
• učinkovito nameščanje
• enostavna konfiguracija
• prvorazredna podpora
Ajaxu
• lep graditelj form
• dokumentacija ne zajema
realnih problemov
• ni združljivosti za nazaj
med glavnimi verzijami
Wicket
Vrsta uporabe: visoko interaktivna
Prednosti Slabosti
• uporablja šablone označe-
ne HTML
• odlična dokumentacija
• komponente so razširljive
• vse narejeno v javi
• vse narejeno v javi
Grovy/
Grails
Google
Web To-
olkit
Struts 2 Tape-
stry
Wicket
Podpora
Ajax
da da da razšir-
jena
razšir-
jena
Jeziki java, Gro-
ovy
java - gene-
rirana
JSP,
OGNL
OGNL,
Prop
OGNL
Delovanje push pull push pull pull
Zrelost sorazmerno
mlad
mlad mlad zrel zmerna
Skupnost majhna,
vendar raste
majhna srednja velika,
aktivna
srednja,
aktivna
Podpora
tritirnosti
da ne da da da
Prijazni
URL-ji
ne da (z malo
dela)
niso
vgrajeni
da da
Tabela 1: Primerjava razvojnih ogrodij za spletne aplika-
cije
SPLETNE STORITVE RESTFUL
Na področju spletnih storitev imamo različne arhitekturne
pristope. Na eni strani je to storitvena arhitektura (SOA),
na drugi pa arhitektura virov (ROA), ki temelji na modelu
REST (REpresentational State Transfer). Kljub temu da
model REST ni nekaj novega, šele v zadnjem času pridobi-
va na popularnosti. V okviru procesa skupnosti java se pod
oznako JSR 311 (JAX-RS: The Java API for RESTful Web
Services) razvija specifikacija, ki določa aplikacijski vmes-
nik za spletne storitve REST. V razvoju so implementacije
Restlet, JBoss RESTEasy, Apache CXF, Jersey ...
REST v petih korakih:
1. Viri imajo svoj ID, ki je kar URI (npr. http://example.
com/widgets/foo). Vir je neki objekt, ki ga želimo
nasloviti. Pomembno je, da naslov resnično vsebuje
podatke in da imajo le-ti predvidljivo strukturo. ID
določimo z anotacijo @Path, relativno glede na na-
mestitveni kontekst. Anotacije lahko uporabimo na
razredih in metodah. Za spremenljive dele uporabimo
parametre.
@Path(“orders/{order_id}”)
public class OrderResource {
@Path(“customer”)
CustomerResource getCustomer(...) {...}
}
2. Povezovanje virov.
Informacije glede namestitvenega konteksta ponuja
UriInfo. UriBuilder ponuja možnosti enostavnega
kreiranja URI-jev za vire.
@Context UriInfo i;
OrderResource r = ...
UriBuilder b = i.getBaseUriBuilder();
URI u = b.path(OrderResource.class).build(r.id);
List ancestors = i.getAncestorResourceURIs();
URI parent = ancestors.get(ancestors.size()-1);
3. Uporabljamo standardne metode, ki jih zagotavlja
enotni vmesnik: GET (preberi, pridobi), POST (poso-
dobi ali kreiraj brez ključa), PUT (posodobi ali kreiraj
z id-jem), DELETE (briši).
@Path(“orders/{order_id}”)
public class OrderResource {
@GET
Order getOrder(@PathParam(“order_id”) String
id) {
...
}
}
4. Različne predstavitve podatkov. Različni formati
(HTML, PGN, GIF), različne strukture (XML, JSON),
podpora metapodatkom o vsebini s pomočjo glave
HTTP. Za določanje predstavitve podatkov uporablja-
mo anotacije @ProduceMime in @ConsumeMime.
5. Komunikacije brez stanja: dolgotrajni identifikatorji,
izogibanje sejam, povpraševanje se izvede neodvisno
od preostalih zahtevkov, vse, kar je potrebno za pro-
ces, vsebuje povpraševanje samo.
Glavne prednosti na strani strežnika so: horizontalno ska-
liranje, izbira alternativnega načina delovanja, shranje-
vanje v predpomnilniku, zmanjšana sklopljenost, dobro
delovanje z obstoječo spletno infrastrukturo. Na strani
odjemalca omogoča možnost zaznamkov, enostavno eks-
perimentiranje na brskalniku, široko podporo program-
skih jezikov, izbiro podatkovnih formatov …
Model REST upošteva lastnosti in rešitve obstoječega
standarda HTTP in preizkušenih vzorcev. Če model
REST primerjamo s storitveno arhitekturo (SOA), lahko
ugotovimo pomanjkljivosti pri varnosti in transakcijah.
SOA ima prednost pri velikih kompleksnih sistemih,
kjer z orkestracijo storitev sistem razslojimo in zagoto-
vimo fleksibilnost. Na drugi strani lahko REST s pridom
uporabljamo na različnih napravah, kjer standardi SOA
še niso upoštevani. V naslednjih letih se bo dejansko po-
kazalo, na katerih področjih ima določena arhitektura
prednost. Kot kaže sedaj, bo SOA prevladala predvsem
pri komunikaciji med znanimi entitetami, npr. znotraj
podjetja ali med poslovnimi organizacijami B2B. Arhi-
tektura virov pa bo uporabljena tam, kjer spletni vmesnik
predstavlja določeno konkurenčno prednost in tam, kjer
dostopamo do zunanjih podatkov.
AJAX
Ajax je pred nekaj leti prinesel možnost gradnje bogatih
spletnih aplikacj. Ajax (Asynchronus JavaScript XML)
temelji na javascriptovem ukazu XMLHttpRequest, ki
spreminja klasični model gradnje spletne aplikacije.
XMLHttpRequest omogoča asinhrono komunikacijo med
odjemalcem in spletnim strežnikom. To pa pomeni, da v
aplikaciji ni treba vedno znova prenašati spletne strani,
ampak lahko na sami spletni strani gradimo grafične ele-
mente, podobne tistim, ki jih poznamo v namiznih apli-
kacijah. Kljub temu da sta bila javascript in XMLHttpRe-
quest uvedena že leta 1997 v Intenet Explorer, pa Ajax
sedaj dejansko postaja ključna tema pri gradnji spletnih
aplikacij. Veliko napora je trenutno vloženo v standar-
dizacijo (npr. OpenAjax Alliance). Obstoječi pristopi v
platformi java so zaenkrat razpršeni in neenotni, obstajajo
številne knjižnice (RICO, Prototype, Dojo, Zimbra), ki pa
nimajo enotnih API-jev, zato so uporabniki teh knjižnic
vezani na izbrano knjižnico. Pričakovati je, da se bo to
področje standardiziralo preko projektov odprte kode,
JCP-ja in preko iniciative OpenAJAX Allience. Drug
vidik gradnje spletnih aplikacij Ajax je manko ustreznih
orodij. Na tem področju je velik napredek nova verzija
NetBeans, ki vsebuje učinkovito podporo javascriptu,
vključno z razhroščevalnikom, ki je neodvisen od splet-
nega pregledovalnika.
Marjan Vaupotič, Robert Vehovec
POROČILO