Uvod
Danes je ažurnost in dostopnost podatkov izjemnega
pomena. Zato se računalniške aplikacije selijo v popolnoma nova
okolja (splet, naprave PDA, celo domači gospodinjski aparati
itd.). Ključnega pomena je porazdeljenost in povezljivost aplikacij.
Visoka stopnja porazdeljenosti nam omogoča dostop do večih podatkovnih virov,
večjo dosegljivost aplikacij in učinkovito uporabo sistemskih virov. Visoka
stopnja povezljivosti pa omogoča medsebojno sodelovanje aplikacij in poveča
pretok podatkov in informacij.
Spletne aplikacije
Spletne aplikacije imajo veliko prednosti pred običajnimi
namiznimi aplikacijami. Omogočajo delo na daljavo, dostop do
oddaljenih ter porazdeljenih virov, dokaj enostavno povezljivost,
enostavnejše vzdrževanje itd. Moramo pa v spletnih aplikacijah
nekoliko bolje poskrbeti za varnost.
Spletne aplikacije so
postale mogoče šele s tehnologijami dinamičnih spletnih strani
(CGI, ISAPI, NSAPI, servleti, ASP, PHP, JSP, itd.) . Te tehnologije
za vsako odjemalčevo zahtevo ustvarijo novo stran, ki se nato
vrne odjemalcu kot odgovor.
V preteklosti so aplikacije implementirali
s tehnologijo CGI, ki se slabše prilagaja večjim obremenitvam.
Programi in skripte CGI močneje obremenjujejo strežnik, saj
ustvarjajo nove procese na strežniku za vsako zahtevo. Medtem
novejše tehnologije omogočajo izvajanje v nitih, ki se lahko
predpomnijo in tako razbremenijo strežnik. Trenutno so najpogosteje
uporabljene tehnologije PHP, ASP in JSP.
Arhitektura spletnih aplikacij
Spletne
aplikacije temeljijo na arhitekturi odjemalec/strežnik. Posebnost
teh aplikacij je komunikacija na osnovi zahtev in odgovorov.
Tako strežnik ne more ničesar poslati brez odjemalčeve zahteve.
Dvonivojska arhitektura je določena z odjemalcem in podatkovnim
strežnikom. Vsa poslovna logika se izvaja na odjemalcu, strežnik
pa hrani podatke.
Zelo neugodne lastnosti te arhitekture so:
obremenjevanje odjemalčevih sistemskih virov, težavno vzdrževanje
programske opreme na odjemalcih ter zahtevnejša implementacija
varnostnih mehanizmov.
Trinivojska arhitektura je sestavljena
iz predstavitvenega, vmesnega in podatkovnega nivoja. Predstavitveni
nivo generira pogled za odjemalca. Vmesni nivo implementira
poslovno logiko. Podatkovni nivo pa hrani podatke.
Ta pristop
odpravlja pomanjkljivosti dvonivojske arhitekture. Aplikacije
enostavneje vzdržujemo, pridobimo centralizran dostop do podatkov
ter logiko izvajamo na strežniku.
N nivojska arhitektura dodatno
razdeli vmesni nivo. To poenostavi porazdelitev aplikacij in
virov, lahko uporabimo različne varnostne mehanizme, lahko
uporabimo napredna upravljanja z bremenom, zagotavlja razpoložljivost
ob izrednih dogodkih itd.
.
Jakarta Tomcat
Strežnik Tomcat je eden najbolj popularnih vsebnikov za servlete
in JSP strani.
Strežnik se razvija in trži pod apache software
licenco, kar pomeni, da je brezplačen in ima prosto dostopen
izvorni kod.
Strežnik je zelo zmogljiv in razširjen. Uporablja
se kot samostojen strežnik, povezan s strežnikom Apache HTTP,
povezan v enega od mnogih aplikacijskih strežnikov J2EE ali
povezan v razvijalsko okolje.
Več o strežniku Tomcat: http://jakarta.apache.org/tomcat.
Servleti
Java Servlets je prva tehnologija, ki omogoča
javanske spletne aplikacije.
Ker so servleti javanska tehnologija,
omogočajo komponentno usmerjeno in arhitekturno neodvisno
implementacijo spletnih aplikacij.
Vsebniki servletov poskrbijo
za komunikacijo z odjemalcem, predpomnjenjem niti in inicializacijo
ter uničenje servletov.
HttpServlet je implementacija servleta,
ki prejema zahteve in pošilja odgovore po protokolu HTTP.
Njegova metoda service je imlementirana tako, da zahtevo
in odgovor posreduje metodam doGet, doPost, doPut itd.,
glede na metodo, ki je zapisana v zahtevi HTTP.
Več o java
servletih:
http://java.sun.com/products/servlet/
JSP
Tehnologija JSP (JavaServer Pages) omogoča hitrejše
in enostavnejše razvijanje spletnih aplikacij. Strani
JSP so datoteke z dodatnimi značkami JSP, ki se prevedejo
v servlet.
Navidezno se JSP strani servirajo, kot navadne
datoteke, katerim vsebnik zamenja značke JSP z njihovo vrednostjo.
Dejansko pa vsebnik prejme zahtevo po JSP strani, preveri
ali je stran že prevedena, če še ni, jo prevede v servlet
in nato v javanski zložni kod. Po preverjanju in ob morebitnem
prevajanju se pokliče njegova metoda service.
Tako lahko
strani JSP uporabimo za serviranje poljubnih datotek (npr.
tekstovnih, HTML, XML ali binarnih datotek).
Več o JSP
straneh: http://java.sun.com/products/jsp/
Pakiranje in namestitev spletnih aplikacij
Spletne aplikacije pakiramo v spletne arhive.
Spletni arhiv je datoteka s končnico ".war" in z natančno
določeno organiziranostjo imenikov in datotek.
Namestitev
spletne aplikacije zajema zgolj kopiranje datoteke ".war"
v določen imenik in morebitno ponovno nalaganje aplikacije.
Na novejše verzije strežnika Tomcat
lahko aplikacije namestimo kar preko spletnega vmesnika.
Uporabniško definirane značke
Uporabniško definirane značke nadomestijo značke
JSP. V času prevajanja strani JSP se nato te značke zamenjajo
s klici metod, ki implementirajo akcije teh značk.
Z uporabo
uporabniško definiranih značk lahko s strani JSP popolnoma
odstranimo javanski kod. Tako lahko prepustimo oblikovanje
strani specializiranemu oblikovalcu, ki lahko to opravi
bolje in hitreje. Hkrati pa dosežemo izredno visoko stopnjo
ponovne uporabnosti koda, saj značke niso omejene na
eno stran.
Značke implementiramo kot javanske razrede
in jih nato registriramo v knjižnice. Knjižnica je XML datoteka,
ki povezuje ime značke z razredom, ki implementira njeno
obnašanje.
Java standard tag library: http://java.sun.com/products/jsp/jstl/
Jakarta Taglibs: http://jakarta.apache.org/taglibs/
Ogrodje Jakarta Struts
Jakarta Struts je ogrodje za implementacijo spletnih
aplikacij po paradigmi MVC (Model - View - Controller),
kar še dodatno olajša implementacijo in vzdrževanje spletnih
aplikacij.
Aplikacije
razvite po paradigmi MVC so sestavljene iz treh nivojev:
model, pogled, in krmilnik. Takšna stroga ločitev nivojev
močno olajša razvoj in vzdrževanje kompleksnih aplikacij,
saj so spremembe koda velikokrat omejene zgolj na en nivo,
hkrati pa lažje lociramo napake.
Jakarta Struts nudi še veliko več. Že samo ogrodje nam
vsili uniformen postopek razvoja. Ogrodje nam prinese implementiran
krmilnik, kateremu registriramo naše akcije in bogato zbirko
uporabniško definiranih značk.
Uniformni postopek implementacije
vedno poteka na enak način.
Faza načrtovanja:
določimo akcije, ki jih bo naša
aplikacija implementirala,
nato določimo parametre
teh akcij in
poglede (strani JSP).
Implementacija:
najprej
ustvarimo podatkovne strukture,
nato implementiramo
akcije.
V fazi konfiguracije napišemo še datoteki web.xml in
struts-config.xml, v katerih registriramo naše servlete,
akcije, in preslikave akcij na naslednji pogled.
Struts spletno aplikacijo
zapakiramo podobno kot običajno spletno aplikacijo, nakar
jo namestimo na spletni strežnik.
Več o Jakarta Struts: http://jakarta.apache.org/struts