English version PROGRAM FORUM SPONZORJI MEDIJI GOSTOVANJA POVEZAVE PRESSCENTER


Simon Tutek, Janez Brest, Viljem Žumer,
Inštitut za Informatiko, FERI

Razvoj spletnih aplikacij z uporabo programskega ogrodja JCorporate Expresso



Opis tehnologij in področij:


• arhitektura spletnih aplikacij temelji na komunikaciji (zahteva, odgovor) med strežnikom in odjemalcem;
• strežnik Jakarta Tomcat je med najbolj razširjenimi vsebniki JSP;
• Servleti so javanska tehnologija za serviranje dinamične vsebine odjemalcu;
• JSP je nadgradnja Servlet tehnologije, ki omogoča ločitev vmesnikov od poslovne logike, kar posledično pohitri in poenostavi razvoj ter vzdrževanje spletnih aplikacij;
• datoteke ".war" so pakirane spletne aplikacije, pripravljene za namestitev na strežniku;
• uporabniško definirane značke nadomestijo javanske scriptlete in tako omogočijo strožjo ločitev javanskega koda od generiranega koda HTML;
• Jakarta Struts je ogrodje za implementacijo spletnih aplikacij po paradigmi MVC, kar še dodatno olajša implementacijo in vzdrževanje spletnih aplikacij.

 

Organizator festivala je
Multimedijski center Kibla, Maribor

 



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





  Oblikovanje : ZRCALO d.o.o.      Copyright KIBLIX 2003