SlideShare a Scribd company logo
1 of 24
Download to read offline
Branko Namestnik
Robert Vehovec
IZKUŠNJE PRI UPORABI OGRODJA
JSF ZA PRENOVO SPLETNE
APLIKACIJE COBISS/OPAC
COBISS - Kooperativni online bibliografski sistem in servisi
• knjižnični informacijski sistem
• deluje že skoraj 30 let (od 1987)
• vključenih več kot 700 knjižnic
COBISS/OPAC je spletna aplikacija za iskanje in prikaz
gradiva v knjižnicah ter izvajanje različnih postopkov v zvezi
z izposojo gradiva.
Programska oprema COBISS/OPAC (1/2)
• iskanje po lokalnih bazah podatkov knjižnic in po vzajemni
bibliografski bazi podatkov COBIB.SI
• prikaz bibliografskih podatkov v različnih formatih
• prikaz podatkov o stanju zaloge na vzajemnem nivoju
• uporabniki lahko za posamezno publikacijo na enem mestu preverijo
celotno zalogo vseh knjižnic
• prikaz podatkov o stanju zaloge na lokalnem nivoju
• uporabniki lahko preverijo natančno zalogo za posamezno publikacijo v
knjižnici, vključno s statusom izposoje in možnostjo rezervacije gradiva
• možnost rezervacije gradiva
Programska oprema COBISS/OPAC (2/2)
• storitev Moja knjižnica uporabnikom omogoča
• podaljšanje gradiva
• preklic rezervacije gradiva
• vpogled v svojo zgodovino izposoje
• vpogled v stanje omejitev in dolgov z možnostjo poravnave terjatev s
spletnim plačilom preko Monete
• naročanje medknjižnične izposoje
• spremljanje naročil v medknjižnični izposoji
• nastavitve e-obveščanja
• košarica zapisov
• uporabniki lahko v košarico zapisov shranijo bibliografske zapise za namen
izvoza zapisov v različnih formatih
• dostop do številnih specialnih in tujih baz podatkov.
Uporaba COBISS/OPAC v Sloveniji v letu 2012
• 16 mio poizvedb
• 38 mio prikazov bibliografskih podatkov.
• preko 3 mio podaljšanj roka izposoje
• preko 500.000 rezervacij gradiva
• več kot 100.000 članov uporablja storitev Moja knjižnica
• okrog 1.000 hkratnih uporabnikov v konici delovnega dneva
(občasno tudi do 1.400 hkratnih uporabnikov)
Razlogi za prenovo programske opreme COBISS/OPAC
• menjava strežniške platforme
• aplikacije teče na operacijskem sistemu OpenVMS,
podpora zanj pa počasi ugaša
• OpenVMS trenutno deluje le na strežnikih ITANIUM,
kar zaradi visokih cen strežniške strojne opreme znatno podraži
obratovalne stroške aplikacije
• izboljšati podporo naboru znakov Unicode (UTF-8)
• trenutno uporabljamo pretvornike med posameznimi nabori znakov,
kar precej otežuje pripravo predlog strani za vključitev v aplikacijo
• omogočiti lažji razvoj
• proces razhroščevanja je na obstoječi arhitekturi otežen in neučinkovit
Izhodišča prenove programske opreme COBISS/OPAC
• Programski jezik naj bo java.
• Uporabniki programske opreme COBISS/OPAC so številni in
heterogeni, za dostop uporabljajo različne naprave.
• Podpora mora biti dobra in zanesljiva, saj je programska oprema
živ sistem, ki se prilagaja zahtevam uporabnikov, zato potrebuje
dolgoročno vzdrževanje.
• Zagotovljena mora biti skalabilnost. Tehnologija mora podpirati
delo nekaj tisoč uporabnikov hkrati in namestitev na več
strežnikih hkrati.
• Zagotovljena mora biti vključenost oblikovalca.
• Zagotovljena mora biti varnost. tehnologija mora omogočati
izdelavo varnih spletnih aplikacij.
Prototip spletne aplikacije z gradniki JSF
JSF je z bogato ponudbo komponent, ki omogočajo različne
implementacije (Oracle Mojarra, PrimeFaces, JBoss RichFaces,
Apache MyFaces itd.), dokaj privlačna tehnologija, saj omogoča hitro
in enostavno kreiranje oblikovnih predlog.
Čeprav so komponente lahko zelo kompleksni gradniki in se v ozadju
izvajajo dokaj kompleksne operacije, je uporaba te tehnologije
sorazmerno enostavna.
Kadar je potrebna interakcija odjemalca, je v komponente že
vključena tudi potrebna koda JavaScript.
Slabosti JSF
• Vključevanje oblikovalca v razvojni proces je težavnejše.
• Tehnologija narekuje, da so obrazci sestavljeni iz komponent JSF,
kar otežuje oblikovanje zahtevnejših obrazcev.
• Priložene knjižnice JavaScript so ozko specializirane, npr. Mojarra
ponuja le AJAX za podatke v formatu XML, ne pa tudi za JSON.
• Za usklajevanje stanja med strežnikom in odjemalcem se morajo
neprestano izvajati težke in kompleksne metode, ki vključujejo
preračunavanje skladiščenih podatkov v seji, obravnavanje
trenutnega zahtevka in pripravljanje nove vsebine v xhtml.
Hibridna rešitev s krmilniki Spring MVC
Da bi odpravili slabosti ogrodja JSF, smo zgradili hibridno rešitev, ki je
kombinacija JSF in ogrodja Spring MVC. Značilnosti te hibridne
rešitve so:
• Za upravljanje spletne aplikacije uporabljamo krmilnike
Spring MVC.
• V celoti smo zavrgli nefleksibilne komponente JSF za obrazce.
• JSF smo obdržali za oblikovanje oblikovnih predlog in postavitev.
Konfiguracija aplikacije – deskriptor razmestitve web.xml
kontekst
spletne
aplikacije
JSF
Spring MVC
Konfiguracija JSF - faces-config.xml
SpringBeanFacesELResolver omogoča, da lahko
komponente JSF uporabljajo Springova zrna, če gre za
upravljana zrna (@ManagedBean).
V našem primeru smo uporabili Springova zrna in Springove
dosege, zato ta nastavitev niti ni potrebna.
Konfiguracija Spring MVC - dispatcher-servlet.xml (1/2)
Konfiguracija Spring MVC - dispatcher-servlet.xml (1/2)
Krmilniki Spring MVC
• S krmilniki Spring MVC je upravljanje aplikacije centralizirano,
pregledno in fleksibilno.
• Na enem mestu imamo informacije o vseh akcijah in spletnih naslovih.
• Z anotacijami @RequestMapping definiramo preslikave URL-
naslovov v akcije.
• Običajno najprej definiramo preslikave na nivoju razreda, nato pa jih
dopolnimo na nivoju metod.
• V preslikave so lahko zajete specifične metode poizvedbe (GET, POST …),
deli URL-naslova, deli glave zahtevka, vrste medijskih tipov (npr.
»application/json«).
• Uporabimo lahko tudi regularne izraze.
• S temi preslikavami lahko uporabnikom ponudimo lepe in prijazne URL-
naslove akcij in vsebin.
Primer: krmilnik za iskanje bibliografskih zapiskov
Oblikovanje predlog in postavitev z JSF
• Glede na to, da se bodo na strežniku pripravljale le osnovne
vsebine in postavitve strani, je JSF s svojim sistemom za predloge
solidna izbira za gradnjo prikaza.
• Z elementi JSF Facelets (ui:composition, ui:inlcude, ui:define,
ui:insert, ui:decorate, ui:repeat, ui:fragment, ui:param) brez težav
sestavimo želeno vsebino za odjemalca.
• Končna podoba predstavitve se s podporo tehnologije AJAX
dopolni pri odjemalcu.
Primer: search.xhtml
Prikazana poenostavljena predloga JSF za iskanje. Vključuje obrazec za izbran iskalni
način (enostavno, napredno ali ukazno iskanje), prikaz rezultata z želeno predlogo in
izpis zgodovine iskanja, na koncu pa je definiran še skriptni blok, ki se v predlogi
postavitve vstavi na dno strani.
JSF brez h:form
S tem ko smo zavrgli nefleksibilne komponente JSF za obrazce ter
namesto h:form, h:inputText, h:commanButton in podobnih
sorodnih oznak začeli neposredno vključevati ustrezno kodo html,
smo zelo poenostavili oblikovanje zahtevnejših obrazcev.
Brez @ViewScope (1/2)
Ker ne uporabljamo več h:form, ni več avtomatsko
generiranega skritega polja javax.faces.ViewState, s
katerim se je ohranjalo stanje komponent JSF.
Ni več možno oziroma smiselno vključevati zrna z
obsegom pogleda (ViewScope).
• Ali smo s tem kaj na slabšem?
Brez @ViewScope (2/2)
Spletna aplikacija postane lažja in hitrejša.
• Vzdrževanje stanja uporabniškega vmesnika na strežniku je
problematično z vidika skalabilnosti aplikacije.
• Pri velikem številu uporabnikov je shranjevanje in nenehno
posodabljanje stanja precej obremenjujoče za strežnik, tako z
vidika procesiranja kot z vidika porabe spomina.
Alternativa?
• Asinhrono posodabljanje strani.
Trendi razvoja modernih spletnih aplikacija kažejo, da se
procesiranje podatkov in generiranje prikaza v vse večji meri
izvajata na odjemalcu.
Alternativa jsf.ajax: jQuery in RequireJS
Zamenjava ozko specializirane knjižnice jsf.ajax z bolj splošno in
široko uveljavljeno knjižnico jQuery prinese precej več prednosti kot
slabosti:
• Pretok podatkov s strežnika ni več omejen le na format XML,
podatki so lahko tudi v formatu JSON.
• Sami kontroliramo in optimiziramo obseg podatkovne
komunikacije.
• Spletni aplikaciji lažje dodamo potrebno stopnjo interakcije z
uporabnikom.
• Lažje vključujemo različne vnaprej pripravljene oblikovalske
rešitve in gradnike.
• Koda JavaScript je napisana modularno. Zahtevani moduli se
naložijo asinhrono z RequireJS.
Modularno napisana koda JavaScript
Zaključek
• S kombinacijo Spring MVC in JSF smo postavili razvojno ogrodje s
številnimi dobrimi lastnostmi.
• S krmilniki Spring MVC smo povečali skalabilnost aplikacije.
• S fleksibilnim mehanizmom za preslikave URL-naslovov v akcije lahko
uporabnikom prikažemo lepe in prijazne URL-naslove.
• S polnim izkoriščanjem potenciala, ki ga omogoča AJAX, bomo razvili
moderno interaktivno in uporabniku prijazno spletno aplikacijo.
• Za oblikovanje predlog in postavitev uporabljamo JSF Facelets. V celoti
smo zavrgli nefleksibilne komponente JSF za obrazce. Sedaj brez težav
vključujemo uveljavljene oblikovalske rešitve in skriptne knjižnice.
• S centraliziranim sistemom upravljanja s krmilniki MVC, redukcijo JSF na
najnujnejše oznake ter modularizacijo kode JavaScript razvijamo
programsko opremo z dolgoročnim potencialom, ki jo bomo lahko brez
težav vzdrževali in nadgrajevali tudi v prihodnje.

More Related Content

Similar to Izkušnje pri uporabi ogrodja JSF za prenovo spletne aplikacije COBISS/OPAC

Inject your dependencies
Inject your dependenciesInject your dependencies
Inject your dependenciesStudio Pešec
 
Razvoj spletnih aplikacij
Razvoj spletnih aplikacijRazvoj spletnih aplikacij
Razvoj spletnih aplikacijIslam Mušić
 
Java Servlet in JSP
Java Servlet in JSPJava Servlet in JSP
Java Servlet in JSPOto Brglez
 
Splošni nasveti za spletne aplikacije
Splošni nasveti za spletne aplikacijeSplošni nasveti za spletne aplikacije
Splošni nasveti za spletne aplikacijeSamir Subašić
 
Ie8 - nove funkcionalnosti
Ie8 - nove funkcionalnostiIe8 - nove funkcionalnosti
Ie8 - nove funkcionalnostiValentin Bufolin
 
Developing a Web App from UX to Finish
Developing a Web App from UX to FinishDeveloping a Web App from UX to Finish
Developing a Web App from UX to FinishStudio Pešec
 
63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...
63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...
63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...Bojan Merela
 
Iskalniki Knjiznice
Iskalniki KnjizniceIskalniki Knjiznice
Iskalniki KnjizniceMiro Pusnik
 
MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...
MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...
MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...Andrej Tozon
 
Virtualization and cloud computing (in Slovene)
Virtualization and cloud computing (in Slovene)Virtualization and cloud computing (in Slovene)
Virtualization and cloud computing (in Slovene)Tomislav Rozman
 
Entity framework code first migrations
Entity framework code first migrationsEntity framework code first migrations
Entity framework code first migrationsAndrej Tozon
 

Similar to Izkušnje pri uporabi ogrodja JSF za prenovo spletne aplikacije COBISS/OPAC (12)

Inject your dependencies
Inject your dependenciesInject your dependencies
Inject your dependencies
 
Razvoj spletnih aplikacij
Razvoj spletnih aplikacijRazvoj spletnih aplikacij
Razvoj spletnih aplikacij
 
Java Servlet in JSP
Java Servlet in JSPJava Servlet in JSP
Java Servlet in JSP
 
Projektni Teden
Projektni TedenProjektni Teden
Projektni Teden
 
Splošni nasveti za spletne aplikacije
Splošni nasveti za spletne aplikacijeSplošni nasveti za spletne aplikacije
Splošni nasveti za spletne aplikacije
 
Ie8 - nove funkcionalnosti
Ie8 - nove funkcionalnostiIe8 - nove funkcionalnosti
Ie8 - nove funkcionalnosti
 
Developing a Web App from UX to Finish
Developing a Web App from UX to FinishDeveloping a Web App from UX to Finish
Developing a Web App from UX to Finish
 
63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...
63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...
63990272-BOJAN MERELA-Razvojno okolje za uporabniške vmesnike v vgrajenih sis...
 
Iskalniki Knjiznice
Iskalniki KnjizniceIskalniki Knjiznice
Iskalniki Knjiznice
 
MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...
MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...
MVVM in the Windows 8 and Windows Phone universe / MVVM v univerzumu Windows ...
 
Virtualization and cloud computing (in Slovene)
Virtualization and cloud computing (in Slovene)Virtualization and cloud computing (in Slovene)
Virtualization and cloud computing (in Slovene)
 
Entity framework code first migrations
Entity framework code first migrationsEntity framework code first migrations
Entity framework code first migrations
 

Izkušnje pri uporabi ogrodja JSF za prenovo spletne aplikacije COBISS/OPAC

  • 1. Branko Namestnik Robert Vehovec IZKUŠNJE PRI UPORABI OGRODJA JSF ZA PRENOVO SPLETNE APLIKACIJE COBISS/OPAC
  • 2. COBISS - Kooperativni online bibliografski sistem in servisi • knjižnični informacijski sistem • deluje že skoraj 30 let (od 1987) • vključenih več kot 700 knjižnic COBISS/OPAC je spletna aplikacija za iskanje in prikaz gradiva v knjižnicah ter izvajanje različnih postopkov v zvezi z izposojo gradiva.
  • 3. Programska oprema COBISS/OPAC (1/2) • iskanje po lokalnih bazah podatkov knjižnic in po vzajemni bibliografski bazi podatkov COBIB.SI • prikaz bibliografskih podatkov v različnih formatih • prikaz podatkov o stanju zaloge na vzajemnem nivoju • uporabniki lahko za posamezno publikacijo na enem mestu preverijo celotno zalogo vseh knjižnic • prikaz podatkov o stanju zaloge na lokalnem nivoju • uporabniki lahko preverijo natančno zalogo za posamezno publikacijo v knjižnici, vključno s statusom izposoje in možnostjo rezervacije gradiva • možnost rezervacije gradiva
  • 4. Programska oprema COBISS/OPAC (2/2) • storitev Moja knjižnica uporabnikom omogoča • podaljšanje gradiva • preklic rezervacije gradiva • vpogled v svojo zgodovino izposoje • vpogled v stanje omejitev in dolgov z možnostjo poravnave terjatev s spletnim plačilom preko Monete • naročanje medknjižnične izposoje • spremljanje naročil v medknjižnični izposoji • nastavitve e-obveščanja • košarica zapisov • uporabniki lahko v košarico zapisov shranijo bibliografske zapise za namen izvoza zapisov v različnih formatih • dostop do številnih specialnih in tujih baz podatkov.
  • 5. Uporaba COBISS/OPAC v Sloveniji v letu 2012 • 16 mio poizvedb • 38 mio prikazov bibliografskih podatkov. • preko 3 mio podaljšanj roka izposoje • preko 500.000 rezervacij gradiva • več kot 100.000 članov uporablja storitev Moja knjižnica • okrog 1.000 hkratnih uporabnikov v konici delovnega dneva (občasno tudi do 1.400 hkratnih uporabnikov)
  • 6. Razlogi za prenovo programske opreme COBISS/OPAC • menjava strežniške platforme • aplikacije teče na operacijskem sistemu OpenVMS, podpora zanj pa počasi ugaša • OpenVMS trenutno deluje le na strežnikih ITANIUM, kar zaradi visokih cen strežniške strojne opreme znatno podraži obratovalne stroške aplikacije • izboljšati podporo naboru znakov Unicode (UTF-8) • trenutno uporabljamo pretvornike med posameznimi nabori znakov, kar precej otežuje pripravo predlog strani za vključitev v aplikacijo • omogočiti lažji razvoj • proces razhroščevanja je na obstoječi arhitekturi otežen in neučinkovit
  • 7. Izhodišča prenove programske opreme COBISS/OPAC • Programski jezik naj bo java. • Uporabniki programske opreme COBISS/OPAC so številni in heterogeni, za dostop uporabljajo različne naprave. • Podpora mora biti dobra in zanesljiva, saj je programska oprema živ sistem, ki se prilagaja zahtevam uporabnikov, zato potrebuje dolgoročno vzdrževanje. • Zagotovljena mora biti skalabilnost. Tehnologija mora podpirati delo nekaj tisoč uporabnikov hkrati in namestitev na več strežnikih hkrati. • Zagotovljena mora biti vključenost oblikovalca. • Zagotovljena mora biti varnost. tehnologija mora omogočati izdelavo varnih spletnih aplikacij.
  • 8. Prototip spletne aplikacije z gradniki JSF JSF je z bogato ponudbo komponent, ki omogočajo različne implementacije (Oracle Mojarra, PrimeFaces, JBoss RichFaces, Apache MyFaces itd.), dokaj privlačna tehnologija, saj omogoča hitro in enostavno kreiranje oblikovnih predlog. Čeprav so komponente lahko zelo kompleksni gradniki in se v ozadju izvajajo dokaj kompleksne operacije, je uporaba te tehnologije sorazmerno enostavna. Kadar je potrebna interakcija odjemalca, je v komponente že vključena tudi potrebna koda JavaScript.
  • 9. Slabosti JSF • Vključevanje oblikovalca v razvojni proces je težavnejše. • Tehnologija narekuje, da so obrazci sestavljeni iz komponent JSF, kar otežuje oblikovanje zahtevnejših obrazcev. • Priložene knjižnice JavaScript so ozko specializirane, npr. Mojarra ponuja le AJAX za podatke v formatu XML, ne pa tudi za JSON. • Za usklajevanje stanja med strežnikom in odjemalcem se morajo neprestano izvajati težke in kompleksne metode, ki vključujejo preračunavanje skladiščenih podatkov v seji, obravnavanje trenutnega zahtevka in pripravljanje nove vsebine v xhtml.
  • 10. Hibridna rešitev s krmilniki Spring MVC Da bi odpravili slabosti ogrodja JSF, smo zgradili hibridno rešitev, ki je kombinacija JSF in ogrodja Spring MVC. Značilnosti te hibridne rešitve so: • Za upravljanje spletne aplikacije uporabljamo krmilnike Spring MVC. • V celoti smo zavrgli nefleksibilne komponente JSF za obrazce. • JSF smo obdržali za oblikovanje oblikovnih predlog in postavitev.
  • 11. Konfiguracija aplikacije – deskriptor razmestitve web.xml kontekst spletne aplikacije JSF Spring MVC
  • 12. Konfiguracija JSF - faces-config.xml SpringBeanFacesELResolver omogoča, da lahko komponente JSF uporabljajo Springova zrna, če gre za upravljana zrna (@ManagedBean). V našem primeru smo uporabili Springova zrna in Springove dosege, zato ta nastavitev niti ni potrebna.
  • 13. Konfiguracija Spring MVC - dispatcher-servlet.xml (1/2)
  • 14. Konfiguracija Spring MVC - dispatcher-servlet.xml (1/2)
  • 15. Krmilniki Spring MVC • S krmilniki Spring MVC je upravljanje aplikacije centralizirano, pregledno in fleksibilno. • Na enem mestu imamo informacije o vseh akcijah in spletnih naslovih. • Z anotacijami @RequestMapping definiramo preslikave URL- naslovov v akcije. • Običajno najprej definiramo preslikave na nivoju razreda, nato pa jih dopolnimo na nivoju metod. • V preslikave so lahko zajete specifične metode poizvedbe (GET, POST …), deli URL-naslova, deli glave zahtevka, vrste medijskih tipov (npr. »application/json«). • Uporabimo lahko tudi regularne izraze. • S temi preslikavami lahko uporabnikom ponudimo lepe in prijazne URL- naslove akcij in vsebin.
  • 16. Primer: krmilnik za iskanje bibliografskih zapiskov
  • 17. Oblikovanje predlog in postavitev z JSF • Glede na to, da se bodo na strežniku pripravljale le osnovne vsebine in postavitve strani, je JSF s svojim sistemom za predloge solidna izbira za gradnjo prikaza. • Z elementi JSF Facelets (ui:composition, ui:inlcude, ui:define, ui:insert, ui:decorate, ui:repeat, ui:fragment, ui:param) brez težav sestavimo želeno vsebino za odjemalca. • Končna podoba predstavitve se s podporo tehnologije AJAX dopolni pri odjemalcu.
  • 18. Primer: search.xhtml Prikazana poenostavljena predloga JSF za iskanje. Vključuje obrazec za izbran iskalni način (enostavno, napredno ali ukazno iskanje), prikaz rezultata z želeno predlogo in izpis zgodovine iskanja, na koncu pa je definiran še skriptni blok, ki se v predlogi postavitve vstavi na dno strani.
  • 19. JSF brez h:form S tem ko smo zavrgli nefleksibilne komponente JSF za obrazce ter namesto h:form, h:inputText, h:commanButton in podobnih sorodnih oznak začeli neposredno vključevati ustrezno kodo html, smo zelo poenostavili oblikovanje zahtevnejših obrazcev.
  • 20. Brez @ViewScope (1/2) Ker ne uporabljamo več h:form, ni več avtomatsko generiranega skritega polja javax.faces.ViewState, s katerim se je ohranjalo stanje komponent JSF. Ni več možno oziroma smiselno vključevati zrna z obsegom pogleda (ViewScope). • Ali smo s tem kaj na slabšem?
  • 21. Brez @ViewScope (2/2) Spletna aplikacija postane lažja in hitrejša. • Vzdrževanje stanja uporabniškega vmesnika na strežniku je problematično z vidika skalabilnosti aplikacije. • Pri velikem številu uporabnikov je shranjevanje in nenehno posodabljanje stanja precej obremenjujoče za strežnik, tako z vidika procesiranja kot z vidika porabe spomina. Alternativa? • Asinhrono posodabljanje strani. Trendi razvoja modernih spletnih aplikacija kažejo, da se procesiranje podatkov in generiranje prikaza v vse večji meri izvajata na odjemalcu.
  • 22. Alternativa jsf.ajax: jQuery in RequireJS Zamenjava ozko specializirane knjižnice jsf.ajax z bolj splošno in široko uveljavljeno knjižnico jQuery prinese precej več prednosti kot slabosti: • Pretok podatkov s strežnika ni več omejen le na format XML, podatki so lahko tudi v formatu JSON. • Sami kontroliramo in optimiziramo obseg podatkovne komunikacije. • Spletni aplikaciji lažje dodamo potrebno stopnjo interakcije z uporabnikom. • Lažje vključujemo različne vnaprej pripravljene oblikovalske rešitve in gradnike. • Koda JavaScript je napisana modularno. Zahtevani moduli se naložijo asinhrono z RequireJS.
  • 24. Zaključek • S kombinacijo Spring MVC in JSF smo postavili razvojno ogrodje s številnimi dobrimi lastnostmi. • S krmilniki Spring MVC smo povečali skalabilnost aplikacije. • S fleksibilnim mehanizmom za preslikave URL-naslovov v akcije lahko uporabnikom prikažemo lepe in prijazne URL-naslove. • S polnim izkoriščanjem potenciala, ki ga omogoča AJAX, bomo razvili moderno interaktivno in uporabniku prijazno spletno aplikacijo. • Za oblikovanje predlog in postavitev uporabljamo JSF Facelets. V celoti smo zavrgli nefleksibilne komponente JSF za obrazce. Sedaj brez težav vključujemo uveljavljene oblikovalske rešitve in skriptne knjižnice. • S centraliziranim sistemom upravljanja s krmilniki MVC, redukcijo JSF na najnujnejše oznake ter modularizacijo kode JavaScript razvijamo programsko opremo z dolgoročnim potencialom, ki jo bomo lahko brez težav vzdrževali in nadgrajevali tudi v prihodnje.