Razvoj spleta in spletnih aplikacij

V zgodnjih 80 – tih letih je uvedba komunikacijskega protokola TCP/IP,
kot standarda za povezavo mnogovrstnih omrežij in izmenjavo informacij,
postavila temelje Internetu. Poenotenje tega
komunikacijskega protokola je omogočilo povezavo vseh vrst
računalniških virov in medsebojno izmenjavo podatkov – informacij. Vse
te povezave so gradile vse bolj razpredeno mrežo Internet.

1. Uvod

Seminarska naloga predstavlja temo o prihodnosti razvoja spletnih aplikacij. Opisal sem razvoj spletnih aplikacij od samega začetka pa vse do danes. Ob pisanju te seminarske naloge sem naletel na dosti zanimivih virov kot so članki ter predstavitve razvijalcev, programerjev ter samih uporabnikov, ki se ukvarjajo z spletnimi aplikacijami. Ti viri so mi bili v veliko pomoč saj so me usmerjali pri pisanju seminarske naloge. Čeprav nam skušajo čim bolj razložiti in prikazati ta »korak« v prihodnost, kako naj bi spletne aplikacije oziroma splet na splošno napredoval v prihodnosti, ostajam pri svojem osebnem mnenju, da nihče ne more zagotoviti, kako se bo splet razvil v naslednjih letih.

Namen seminarske naloge je, da skušam, čim natančneje opisati oziroma razložiti, kako spletne aplikacije delujejo ter kako se bi naj razvile v naslednjih letih.

2. Zgodovina spleta in njegov razvoj

Že kmalu potem, ko so se pojavili prvi računalniki, se je pojavila potreba, da bi dva ali več računalnikov lahko povezali med seboj – z namenom  prenašanja  podatkov med njima. Ta potreba je kmalu postala resničnost in razvila so se različna lokalna omrežja. Na začetku je bila ta možnost lokalno omejen samo na isto stavbo, redko kaj več.

2. 1 Razvoj spleta na splošno

Zgodovina spleta sega v leto 1961, ko je L. Kleinrock prvi predstavil koncept “preklapljanja paketov” za prenos podatkov in povezovanje računalnikov, kar je še sedaj osnova interneta. Leta 1969 je ARPA (Advanced Research Project Agency) po naročilu ameriškega obrambnega ministrstva izdelala omrežje, ki so ga imenovali ARPAnet. V zgodnjih 80 – tih letih je uvedba komunikacijskega protokola TCP/IP, kot standarda za povezavo mnogovrstnih omrežij in izmenjavo informacij, postavila temelje Internetu. Standardizacija – poenotenje tega komunikacijskega protokola je omogočilo povezavo vseh vrst računalniških virov in medsebojno izmenjavo podatkov – informacij. Vse te povezave so gradile vse bolj razpredeno mrežo Internet.

2. 2 Razvoj svetovnega spleta

Slika 1: Prvi spletni strežnik

Splet, svetovni splet ali z angleško kratico WWW je porazdeljen
hipertekstni (nadbesedilni) sistem, ki deluje v medmrežju. Hipertekstne
dokumente pregledujemo s programom, imenovanim brskalnik, ki s
spletnega strežnika dokument prenese in ga prikaže, navadno na
računalniškem zaslonu. Besedilnim spletnim dokumentom pravimo spletna
stran, smiselno povezanim spletnim mestom pa spletišče.

Začetki svetovnega spleta segajo v leto 1989, ko sta Tim Berners-Lee
in Robert Cailliau v Evropskem središču za jedrske raziskave CERN
razvila sistem ENQUIRE.

Slika 1:Prvi spletni strežnik Vir: http://sl.wikipedia.org/wiki/Slika:Premier_serveur_Web.jpeg

Bolj izdelan predlog za splet, kot ga poznamo danes, je Berners-Lee predstavil 12. novembra 1990, prvo spletno stran pa je spisal dan pozneje, 13. novembra na delovni postaji NeXT. Prek božičnih praznikov je Berners-Lee izdelal vsa potrebna orodja za delujoč splet: WorldWideWeb, prvi spletni brskalnik (ki je bil obenem tudi urejevalnik spletnih strani), ter spletni strežnik.

Osnovne temeljne zamisli hiperteksta so razvili že prej, npr. Projekt Xanadu Teda Nelsona in oN-Line System (NLS) Douglasa Engelbarta. Preboj, ki ga je izvedel Berners-Lee, je v tem, da je hipertekst združil z internetom. Spotoma je razvil še sistem globalnih enoličnih identifikatorjev za vire v spletu, zdaj poznanem kot URL.

3. Razvoj spletnih aplikacij

Razvoj spletnih aplikacij se je z odraščanjem spleta korenito spremenil. Še pred nekaj leti so na spletu kraljevale statične strani in redke aplikacije, ki so temeljile na preprostih strežniških skriptah, kot je na primer CGI (Common Gateway Interface).

Z leti je postalo očitno, da lahko splet ponuja še kaj več, kot le statične vsebine. S pojavom novih tehnologij kot so Java, aplikacijski strežniki, strežniški skriptni jeziki in XML, so dinamične vsebine začele kvantitativno in kvalitativno dosegati statične.

Spletne aplikacije postajajo vse bolj uporabne. Razvoj tehnologije je omogočil, da se na splet selijo celotni informacijski sistemi, med njimi aplikacije, ki so bile še nedavno v domeni specifičnih programskih okolij.

3. 1 Zgodovina razvoja Java aplikacij

Java aplikacije so bile že od njihovega pojava zanimive za spletno okolje. Sprva so zaživele v okolju spletnih odjemalcev v obliki Java programčkov oziroma apletov (Java Applet). Sami apleti so kar hitro dosegli svojo mejo uporabnosti, saj zaradi okolja odjemalca, v katerem le ti tečejo, niso zmožni učinkovito komunicirati z najrazličnejšimi podatkovnimi viri in aplikacijami.

Zato so se kmalu pojavile potrebe, za izvajanje Java programov na strežniški strani spleta. Pojavili so se servleti (Java Servlet), strežniški ekvivalenti apletom. Java servlet običajno prejme HTTP zahtevo (request) od spletnega brskalnika in na njeni podlagi generira ustrezen HTTP odgovor (response). Odgovor se najpogosteje posreduje v HTML obliki. Dokaj težavno oblikovanje HTML odgovora so odpravili JSP (Java Server Pages), predstavitveno naravnani servleti. JSP omogočajo vnos Java kode neposredno v HTML dokumente. Spekter uporabnosti servletov je torej neprimerno širši od apletov. Prav tako imajo servleti številne prednosti pred »konkurenčnimi« starejšimi tehnologijami, kot je na primer CGI (Common Gateway Interface).

3. 2 Ogrodje Ruby on Rails

Ruby  on Rails  (pogosto  tudi RoR  ali  le Rails)  je  odprto-kodno  ogrodje  za  gradnjo  spletnih aplikacij, ki je bilo javnosti prvic predstavljeno julija 2004. Prvo uporabno razlicico, Ruby on Rails 1.0 je njegov edini avtor, David Heinemeier Hansson, izdal v sredini decembra 2005

Rails  se  odlikuje  predvsem  po  enostavni  rabi,  ki  leži  v  temelju ogrodja – programskem jeziku Ruby, zmožnostjo grajenja uporabnih spletnih aplikacij z manj kode in minimalno nastavitvami, kot to omogočajo druga ogrodja.

3. 2. 1 Tehnologije povezane z Ruby on Rails

V viziji Web 2.0 (O’Reillyjevo poimenovanje naslednje generacija spleta) glavno vlogo igra skupek tehnologij, poimenovan Ajax (Asynchronous JavaScript and XML). Ajax je v osnovi namenjen  ustvarjanju  vtisa,  da  so  spletne  strani  bolj  odzivne  z  izmenjavo manjših  količin podatkov  s  strežnikom v ozadju mimo vednosti uporabnika. Tako  spletne  strani ni potrebno osveževati  za  vsako  interakcijo  uporabnika,  kar  močno  poveča  interaktivnost,  hitrost  in uporabnost spletnih strani. Ker je Ajax tako pomemben, si Rails pred njim ne more zatiskati oči in tako ponuja svojo rešitev – Ajax on Rails. Ajax on Rails ponuja številna pomagala, ki omogočajo enostavno in hitro gradnjo aplikacij s podporo Ajaxu.

  • Java aplikacije

Java servlet običajno prejme HTTP zahtevo (request) od spletnega
brskalnika in na njeni podlagi generira ustrezen HTTP odgovor
(response). Odgovor se najpogosteje posreduje v HTML obliki

  • ogrodje Ruby on Rails (Ror ali Rails)

odlikuje  se predvsem  po  enostavni  rabi,  ki  leži v programskem jeziku Ruby, z zmožnostjo grajenja uporabnih spletnih
aplikacij z manj kode in minimalno nastavitvami, kot to omogočajo druga
ogrodja.

 


Aplikacije Ajax in JavaScript

Aplikacije, ki še niso doživele povzdignjena v svet spletnih
tehnologij, so namenske aplikacije za vodenje delovnih procesov, kot so
recimo poslovne aplikacije. Čeprav je bilo že kar nekaj poskusov
izdelave teh aplikacij v spletnih tehnologijah, so večinoma neslavno
končali v nemilosti končnih uporabnikov.

4. Nove oblike spletnih aplikacij in  njihova prihodnost

»Ko
govorimo o novih oblikah tehnologij, ne moremo mimo spletnih
tehnologij. Dandanes se s to obliko tehnologij srečujemo praktično na
vsakem koraku – pri pregledu jutranjih novic,  pri listanju e-pošte, ki
se je nabrala od prejšnje ure, pri naročanju vstopnic za kino, pri
plačevanju položnic… Vse, kar je novega, je dandanes na internetu«

Vir: http://www.probit.si/slo/intouch/april071_6.php

Aplikacije,
ki še niso doživele povzdignjena v svet spletnih tehnologij, so
namenske aplikacije za vodenje delovnih procesov, kot so recimo
poslovne aplikacije. Čeprav je bilo že kar nekaj poskusov izdelave teh
aplikacij v spletnih tehnologijah, so večinoma neslavno končali v
nemilosti končnih uporabnikov.

Aplikacije, ki še niso doživele povzdignjena v svet spletnih tehnologij, so namenske aplikacije za vodenje delovnih procesov, kot so recimo poslovne aplikacije. Čeprav je bilo že kar nekaj poskusov izdelave teh aplikacij v spletnih tehnologijah, so večinoma neslavno končali v nemilosti končnih uporabnikov. Fantastične prednosti spletne tehnologije, kot so delo s poljubne lokacije kjerkoli po svetu, minimalni napori vzdrževalca za vzdrževanje in posodabljanje aplikacije, poljubno izbiranje izgleda uporabniškega vmesnika, vse to zbledi, ko se uporabniki lotijo dela. Če so prej uporabniki, že dodobra izurjeni v svojem delu, le nekajkrat na dan pogledali na ekran, da so se prepričali, ali računalnik še deluje, imajo sedaj mnogo več dela z miško, klikanjem, iskanjem pravilnega zaporedja ukazov, čakanjem na odgovor … Grafični vmesniki spletnih aplikacij enostavno ne omogočajo komoditete, ki so je uporabniki navajeni na osnovi namiznih aplikacij z bogatim naborom funkcionalnosti. Kar je še hujše, je to, da so precej počasnejši.

Ta prepad med tehnologijami naj bi sedaj zapolnila
nova tehnologija. Za primer sem vzel Google Suggest, ki vam ponuja
iskalne nize kar med tipkanjem, ali pa Google Maps, ki omogoča
interaktivno iskanje po kartah skoraj brez zakasnitve.

4. 1 Ajax tehnologija

Google
Suggest in Google Maps sta dva primera uporabe nove tehnologije,
imenovane Ajax. Ajax v bistvu ni nova tehnologija. Ajax je pristop,
način razmišljanja, kako izdelati spletno aplikacijo in pri tem
izrabiti najboljše od uveljavljenih spletnih tehnologij. Prvi, ki je to
ime javno uporabil, je bil Jesse James Garrett februarja 2005. Ajax
tako zajema naslednje tehnologije:

  • Statični predstavitveni nivo z uporabo XHTML in CSS,
  • Dinamični predstavitveni nivo z uporabo DOM (Document Object Model),
  • Izmenjava in manipulacija podatkov z uporabo XML in XSLT
  • Asinhroni prenos podatkov z uporabo XMLHttpRequest
  • JavaScript za povezovanje vseh tehnologij.

Bistvo Ajaxa je zmožnost izdelave bolj odzivnih interaktivnih aplikacij brez odvečnega in zamudnega nalaganja celotnih strani. To dosežemo z asinhrono, uporabniku zakrito izmenjavo paketkov podatkov med odjemalcem in strežnikom in z osveževanjem samo določenih odsekov spletne strani.  S tem uporabnikova zahteva ne sproži prenosa celotne strani, ampak se osveži samo njen »prizadeti« del, kar pripomore k bistveno odzivnejši, hitrejši in uporabnejši spletni aplikaciji.

4. 1. 1 Delovanje Ajax-a

Klasična spletna aplikacija se od namizne aplikacije loči predvsem po tem, da se predstavitev strani, ki se nam prikaže v brskalniku, generira za vsako uporabniško akcijo znova. To z drugimi besedami pomeni, da se za vsak klik v brskalniku celotna HTML-stran skupaj z vnesenimi spremembami in uporabniško zahtevo zapakira, pošlje na strežnik od koder je prišla, na strežniku se paket razpakira, preberejo se poslani parametri in uporabnikova zahteva.

Izvedejo se zahtevane rutine, kreira se nova HTML-stran, opremljena s predhodno vnesenimi spremembami in rezultati zadnje akcije. Stran se posreduje nazaj odjemalcu, kjer se prikaže v brskalniku. Kot je že iz zapisa poteka akcije razvidno, se pri takšnem načinu kreiranja HTML-strani po žici pretaka veliko za izvedbo nepotrebnih, podatkov, katerih pošiljanje sem ter tja stane veliko časa-uporabnikovega časa.

Slika 2: Primerjava spletnih aplikacij

Z uporabo Ajaxovega vmesnika se odpravi tako imenovana start-stop-start (HTML/HTTP) oblika dela s spletnimi aplikacijami. Ajax je dodatni sloj, ki se naloži na odjemalca in deluje kot posrednik med odjemalcem in strežnikom. Poskrbi za izris uporabniške strani v brskalniku in tudi za asinhrono posredovanje podatkov med odjemalcem in strežnikom v obliki XML-paketov. Tako uporabniku nikoli ni treba čakati pred prazno stranjo, da se naloži, ampak se proces izmenjave podatkov izvede, medtem ko lahko uporabnik normalno dela naprej. S tem Ajaxove spletne aplikacije izgledajo bolj namizne aplikacije kot pa spletne strani.

S posodabljanjem le določenega »prizadetega« dela strani  pa se bistveno zmanjša tudi količina podatkov, prenesenih po žici. Z osvežitvijo samo določenega dela HTML-strani dosežemo, da se po žici v smeri uporabnika prenesejo samo za osvežitev potrebni podatki, medtem ko se v smeri strežnika še vedno prenaša celotna spletna stran z vsemi spremembami.

Ajax je vsekakor tehnologija prihodnosti, ki je pripravljena in je na voljo za uporabo. Ajax aplikacije zapolnjujejo nišo hitrih strani, katerih poudarek ni na predstavitvi (sliki, zvoku) in se bodo na tem področju v prihodnosti najverjetneje precej razširile.

4. 1. 2 Slabosti Ajax tehnologije

Brskalniki ne prepoznavajo delovanja in sprememb na HTML-strani, ki jih povzroči Ajax, zato je lahko rezultat klika na gumb nazaj, če ni ta onemogočen, drugačen od tistega, kar pričakujete.

Če spletne strani niso opremljene z ustreznimi obvestili, lahko to uporabnika spravi v dilemo glede izvedenih akcij. Brskalnik se ne »zaveda« akcij, ki jih izvaja Ajax, zato je nujno, da programerji poskrbijo za obveščanje uporabnika o nalaganju podatkov, izvajanju akcij z ustreznimi vizualnimi elementi – kazalniki napredka.

JavaScript predstavlja temelj Ajaxa in je vgrajen neposredno v brskalnike. Različne implementacije JavaScripta v različnih verzijah oziroma tipih brskalnikov lahko pripeljejo do nezdružljivosti  aplikacij z različnim brskalniki. Tudi za to morajo poskrbeti programerji s testiranjem in prilagajanjem aplikacij za najrazličnejše brskalnike.

4. 2 JavaScript

JavaScript je predmetno orientiran programski jezik, ki se uporablja za izračunavanje in rokovanje z objekti na uporabniški strani. JavaScript sam po sebi ni uporaben – vanj ne moremo vnašati podatkov in nam jih tudi ne vrača. Sodelovati mora z predmeti na uporabniški strani in njihovimi lastnostni in postopki. JavaScript omogoča integracijo dokumentov HTML, spletnih komponent (Java, ActiveX…) in komponent plug-in tako, da postanejo spletne strani dinamične.

JavaScript je primer predmetno orientiranega skriptnega jezika, ki se izvaja na uporabniški strani komunikacije s spletnim strežnikom. Namenjen za izračunavanje in rokovanje z predmeti v brskalniku. Sam po sebi tako ni uporaben, potrebuje torej aplikacijo, znotraj katere se nahaja. Uporablja se na širokem področju:

  • upravljanje z okni in okvirji
  • meniji
  • predstavitev besedila in slik
  • upravljanje z zgodovino in s povezavami
  • delo s piškotki (cookies)
  • oblikovanja integriranih uporabniških vmesnikov
  • preverjanja vnesenih podatkov
  • pošiljanjem podatkov
  • časovnim nadzorom

4. 2. 1 JavaScript frameworks

JavaScript okolje zavzema zelo pestro izbiro aplikacij ter frameworkov. V tej točki sem omenil zgolj najuporabnejše oziroma najbolj priljubljene med uporabniki:

  • Dojo
  • Qooxdoo
  • Rico
  • Prototype
  • Yahoo user Interface Library
  • Mootools
  • Script.aculo.us
  • MochiKit
  • jQuery

Opisal pa bom zgolj dva tipa »Javascript frameworks«, ki sta po mojem mnenju najboljša primera za trenutno senzacijo na področju spletnega razvijanja in ustvarjanja.

4. 2. 2 Dojo

Slika 3: Dojo v uporabi

Dojo je program, ki nam zlahka omogoča grajenje dinamičnih spletnih
aplikacij v okolju, ki podpirajo Javascript. Komponente, ki jih Dojo
ustvarja lahko uporabimo, da bodo spletne strani lažje razumljive, bolj
funkcionalne ter bolj odgovorne. Oblikujemo lahko težko razumljive
uporabniške interface lažje, hitreje, pri tem pa še imamo možnost
animacije prehodov.

Uporabimo lahko nižje stopnje API z kompatibilnimi plastmi (layers) iz
Dojo za napis prenosne JavaScript-e in poenostavitev kompleksnih
skript.. Uporabimo lahko tudi elemente gradnje (build tools) za zapis
komandnih vrstic v Java skripti. Ta proces nam omogoča optimizirati
Java skripto z grupiranjem sestave datotek skupaj ter ponovno uporabo
teh skupin preko profilov (profiles).

Slika 3: Dojo v uporabi Vir: http://www.whenpenguinsattack.com/2007/04/24/top-5-javascript-frameworks/?articleid=890

Značilnosti:

  • »Multiple Points Of Entry«: Osnoven koncept oblikovanja v Dojo je“multiple points of entry” oziroma večtočkovni vnos. To pomeni, da lahko vsi uporabniki začnejo uporabljati program Dojo na nivoju kjer jim najbolje ugaja.
  • »Interpreter Independence«: Dojo zavaruje možnost za podporo skoraj vseh možnih jeder v sistemu podpirane z Java skripto koliko je le mogoče. To omogoča delovanje programa kot klasična knjižica za vse Javascript programerje v prehodu klienta, serverja in okolja programiranja namizja.
  • »Unifies several codebases«: grajen na osnovah kod: nWidgets, Burstlib, ter f(m).

4. 2. 3 Yahoo User Interface Library (YUI)

Yahoo User Interface (YUI) knjižica je sestava koristnih stvari in kontrol, zapisane v  JavaSkripti, za »gradnjo« interaktivnih spletnih aplikacij, ki uporabljajo tehnologijo DOM skripte, DHTML in AJAX. YUI knjižica vsebuje tudi vrsto CSS pripomočkov. Vse komponente v YUI knjižici so bile izdane kot odprti vir in so na voljo vsem uporabnikom.
 
Značilnosti:

Dva tipa komponent sta na voljo: komponenta »Utilities« in komponenta »Controls«. Komponenta »Utilities« se poenostavi z tehnologijo iskalnika (browser), ki se zanaša na »cross-browser DOM« skripto, kot vse spletne aplikacije z DHTML in AJAX karakteristikami. Komponenta »Controls« pa proizvaja visoko ineraktivno grafično vizualizacijo elementov za našo spletno stran. Vsi ti elementi se lahko naredijo v celoti na klientovi strani in nikoli ne zahtevajo osvežitev strani za ponovni prikaz strani.

Komponente Utilities:

  • »Animation«: Možnost izdelave kino efektov na spletnih straneh z animiranjem pozicije, velikosti, ali pa drugih karakteristik elementov spletne strani.
  • »Browser History Manager«: Razvijalci internetnih aplikacij želijo z opcijo »bookmark« ne samo targetirat vrsto strani, ampak še želijo uporabiti »iskalni gumb nazaj« za operiranje med aplikacijskimi zasloni. »Browser History Manager« nam ravno to omogoča.
  • »Connection Manager«: Ta komponenta ima integrirano podporo za oblikovanje sporočil, obravnavanje napak na straneh ter prenos datotek.
  • »DataSource Utility«: »DataSource« proizvaja inerface za pridobivanje podatkov od razporeda, XHR servisa, in ročnih funkcij z integracijo podpore »Connection Manager«.
  • »Dom Collection«: Enostavna DOM skripta, ki vsebuje CSS različne stile.
  • »Drag & Drop«: Ustvari objekte, ki jih lahko poljubno »poberemo« ter »odvržemo kjerkoli drugje na isti spletni strani.

Komponente Controls:

  • »AutoComplete«: Kontrola »AutoComplete« nam omogoča večjo inerakcijo med uporabniki z pomočjo opcije »text-entry«.
  • »Button Control«: S to kontrolo lahko ustvarjamo različne prikaze gumbov na straneh, kot so: »checkbox« gumb, radio gumb, »submit« in meni-gumbi.
  • »Koledar«: Koledar v YUI knjižici je grafični, dinamični prikaz določenega datuma.
  • »TabView«: Omogoča tabelični prikaz  vsebine.
  • »DataTable Control«: Ta opcija nam omogoča ustvarjanje tabel na več načinov kot so: urejevanje kolumn, opcija «scroll«, izbor vrstic, povečevanje oziroma zmanjševanje tabele in  urejevanje znotraj vrstice.
  • »Logger«: Logger nam omogoča hiter in enostaven način za napis sporočila.
  • »Slider«: Ta opcija ustvari drsnik, ki omogoča da lahko uporabnik pregleduje podatke na večji razdalji.
  • »Menu«: Aplikacijski stil »fly-out menus« potrebujejo zelo malo vrstic kode z Menu Control. Meni lahko proizvedemo v celoti v JavaSkripti, ali pa ga sestavimo po plasteh (layers) na vrhu neurejenega seznama.

Slika 5: Primer uporabe menija v programu YUI.

Slika 5: Primer uporabe menija v programu YUI.

Vir: http://developer.yahoo.com/yui/menu/

5. Zaključek

Ob koncu pisanja seminarske naloge sem prišel do zaključka, da kljub našem trdnem prepričanju in  sklepanju o nečem, kar še ne obstaja oziroma se še ni razvilo, ne moremo biti popolnoma  prepričani v to. Je pa vsekakor zanimivo opazovati razvoj spletnih aplikacij ter predvidevati kako se bodo razvijale v prihodnosti.

JavaScript sam po sebi ni uporaben, sodelovati mora z predmeti na uporabniški strani
in njihovimi lastnostni in postopki. Omogoča integracijo
dokumentov HTML, spletnih komponent (Java, ActiveX…) in komponent
plug-in tako, da postanejo spletne strani dinamične.

Ajax je pristop,
način razmišljanja, kako izdelati spletno aplikacijo in pri tem
izrabiti najboljše od uveljavljenih spletnih tehnologij.