Web jau daugeliui nebe
naujiena ir kiekvienas daug maž bent kažką yra girdėjęs apie stebuklingą žodį
“internetas” arba tokių, kurie dar nieko apie tai negirdėjo – darosi
mažuma(pvz. gentys Afrikoje). Interneto svetainės, portalai, blogai,
soc.tinklai etc. kasdien pateikia daugybę informacijos, dar daugiau šiukšlių.
Technologijų leidžiančių internete „suktis“ informaciniams ir kitokiems Web
puslapiams yra daugybė. Nusprendžiau, jog laikas pakalbėti ir padaryti trumpą
intro apie plačiausiai paplitusias, geriausiai žinomas priemones Web puslapiams
kurti. Niekam ne paslaptis, jog dinaminis šiandienos puslapių turinys kaip tik
ir generuojamas šiomis priemonėmis. Manau, kiekvienam, kartais besidominčiam Web
programavimu (ypač dirbantiems toje srityje), būtų puiku išmanyti ar bent
pačiupinėti daugelį šių technologijų, praplėsti akiratį ir pažiūrėti į tą patį
dalyką iš skirtingos perspektyvos. Trumpai susipažinsime su alternatyviomis
PHP, ASP .NET, Java JSP, Python technologijomis Web puslapių programavimui. Toliau
tikiuosi, jog šio straipsnelio skaitytojas yra susipažinęs bent su HTML ir
puslapių kūrimu. Jei ne, nebėda – pagrindų visada galima išmokti
www.w3schools.com.
I. PHP Hypertext
Preprocessor, prijaučiantiems C++
Medžiagos, kaip
pradėti kurti svetaines, internete apstu, todėl tereikia tik noro ir laiko.
Labiausiai paplitusi Web serverių aplinka – Apache, veikianti tiek Linux tiek
Windows OS. Šiuo metu Web kūrimui populiaru naudoti LAMP (Linux+Apache+MySQL+PHP) arba WAMP (Windows+Apache+MySQL+PHP) „kompleksą“, pvz.
EasyPHP, WAMP, XAMPP ir kt. Tai viskas iš programinės įrangos pusės, ko reikia,
norint pradėti kurti Web puslapius su PHP. Kartu gaunate ir MySQL reliacinę
duomenų bazę ir dar papildomų įrankių kaip – phpMyAdmin duomenų bazėms
administruoti/tvarkyti ir pan. LAMP sistemos labai paplitusios dėl savo
ekonomiškumo, nemokamų technologijų, todėl daug hostingo įmonių kaip tik ir
suteikia panašaus pobūdžio komplektaciją ir resursus už tikrai pigią kainą. Vis
gi – paklausa didelė.
Dar porą žodžių apie
PHP situaciją Lietuvoje - juokais galima būtų pasakyti, kad pas mus ja kalba
vos ne kas antras Web programuotojas arba prie visų darbo reikalavimų
„keiksmažodžių“ kaip CSS, jQuery ir etc. pretendentams visada yra parašyta – „PHP
išmanymas“. Taigi situacija kaip ir aiški – bent kažką suprasti PHP padangėje šiandien
yra „must have“.
II. ASP .NET – mėgstantiems C#, komponentinį
kūrimą ir daug XML’o
ASP (Active Server
Pages) Microsoft dar neseniai pakeista technologija, kurios kaip ir bandoma
atsisakyti, bet vis dar kai kur naudojama legacy sistemose. Principas toks pats
kaip ir PHP – HTML kode įterptos žymės, kurias interpretuoja
preprocesorius ir vykdo tarp jų parašytą kodą. ASP technologija veikia
išskirtinai Windows OS aplinkoje. Pati kalba senoje ASP versijoje – tiesiog JavaScript
mikstūra. ASP trūkumus Microsoft pakeitė naujesne ir aktyviai plėtojama
technologija ASP .NET (http://www.asp.net/),
kuri įnešė naują gaivaus vėjo gūsį. Pereita prie visiškai objektinių C# ir
Visual Basic kalbų, kurios žymiai lankstesnės, taip pat liko palaikoma ir atgaliniu
būdu suderinama ASP JavaScript atmaina. Naujas „Code Behind“ pricipas iškelia
HTML ASP kodą(dizainą) į vieną failą, o C# kodą į atskirą, todėl dizaineris ir
programuotojas gali dirbti vienu metu - taip įvedama papildoma tvarka. Nuo PHP
skirtumas čia toks, jog svetainės kodas gali būti ir sukompiliuotas į
bibliotekas – DLL(dynamic link library) ir vykdomas tiesiogiai CPU komandų
lygiu(native aplinkoje), kas teoriškai turėtų suteikti daugiau našumo, bet
visada taip pat priklauso ir nuo realizacijos. Žinoma C# yra lanksti, gana
šviežia ir atidirbta kalba, dabartiniu metu ypač populiari, todėl bent jau mano
manymu, Microsoft šiuo atveju išlošė, panaudodama ją Web puslapių kūrimui. Taip
pat yra realizuoti standartiniai komponentai, validavimas, kurie palengvina ir
pagreitina kūrimo procesą.
Komponentinis kūrimas
- iškart pasijaučia analogija su standartinių Windows formų kūrimu, todėl tokie
dalykai kaip login formos ir kita – jau realizuota out-of-the-box, telieka
įdėti komponentą į Web puslapį. Norint kurti ASP. NET puslapius susidaro
įspūdis, kad net nebūtina gerai žinoti HTML, kadangi daugelis HTML žymių
tiesiog pakeičiamos standartine ASP žyme, kuri atitinka komponentą (pvz.: <asp:TextBox> žymė pakeičia HTML <input type=”text”> ir pan.).
Serveris. apdorojęs puslapį, automatiškai pakeičia ASP žymes į atitinkamas
HTML, kurias jau gali suprasti naršyklė. Kitas įdomus žingsnis, jog puslapį
galima įsivaizduoti kaip vieną didelę HTML formą, kadangi dažniausiai visi
komponentai yra sudedami vienoje HTML puslapio formoje. Toks sprendimas
priimtas ne atsitiktinai - taip siekiama nuo visiškai būsenos
neišsaugojančio(stateless) HTML pereiti prie būseną išsaugojančio, nuoseklaus „su
atmintimi“ puslapio koncepcijos. ASP taip pat iškart palaiko šablonus(templates),
kurie realizuoti per MasterPage/ChildPage puslapių struktūrą ir leidžia
įtraukti vieną šabloną į kitą ir pan.
Susidūrus su ASP .NET
iškart pasimatys, jog XML taikomas labai plačiai – ypač aplikacijos ir serverio
konfigūracijoje. Aišku XML‘as prideda lankstumo, kaip gali būti sukomfigūruota Web
aplikacija, tačiau kartais gali pasirodyti ir jo pertekliškumas.
Pradėti programuoti
ASP .NET aplikacijas galima parsisiuntus Visual Studio įrankį. Express versija
prieinama nemokamai (http://www.microsoft.com/visualstudio/en-us).
Žinoma, pirmiausia reiktų išmokti C# programavimo kalbą siekiant toliau įžengti
į ASP .NET teritoriją. Sukurtas aplikacijas(puslapius) dažniausiai naudoja
verslo sektorius(enterprise), todėl ASP .NET hostingo paslaugų firmų Lietuvoje
nėra tiek daug, o pačios talpinimo paslaugos yra pakankamai brangios vien dėl
to, jog kainuoja Windows licenzijos. Užsienyje net nemokamų ir gerų hostingų
taip pat sunku surasti. Pasikurti savo serverį taip pat galima, jeigu
prieinamas Windows Server OS, kuri kartu jau integruoja ir IIS (Internet
Information Services), reikalingą ASP .NET veikimui. Instaliavus belieka tik
pasirinkti ir nustatyti, jog norite sukurti Web serverį. Pabaigai pridursiu,
jog dirbančių su ASP .NET Lietuvoje yra pakankamai nemažai ir dažniausiai, kaip
ir minėjau, ASP .NET labiau naudojamas didesnio verslo ar enterprise lygio
svetainėms kurti, tačiau niekas nesako, jog negalima panaudoti ir mažesniems
iššūkiams.
III. JavaEE JSP – write
once, run [almost] everywhere fanatikams
Nuo Web sprendimų
neatsilieka ir Java plėtojanti JSP (Java Server Pages) platformą JavaEE
pagrindu Web aplikacijoms kurti. Kūrimo principai panašus kaip ir prieš tai
minėtų technologijų: aplikacija susideda iš HTML JSP puslapių, kuriuose <jsp> žymomis aprašytas Java kodas, klientui pareikalavus puslapio Java VM(virtuali
mašina) apdoroja tai, kas parašyta ir sugeneruoja dinaminį turinį. Patys JSP
puslapiai nėra atskirai talpinami serveryje, o supakuojami į taip vadinamą WAR
(Web application archive) failą, kuris yra ne kas kita, o JAR failas su
papildomais MANIFEST failais ir papildoma XML konfigūracija. JSP puslapių
alternatyva – Java Servlet‘ai, klasės, kurios turi apibrėžtą API ir apdoroja
ateinančias užklausas.
Bendru atveju bet
kokio Java kodo vykdymas leidžia serveryje išnaudoti visas Java galimybes:
panaudoti EJB(Enterprise Java Beans) komponentus, multiplatformiškumą,
prisijungti legacy sistemas ir kt., kas išties yra puiku. Java aplikacijos ypač
paplito Enterprise verslo lygyje ir taikomos gan rimtoms užduotims spręsti.
Taip pat JavaEE nė kiek nenusileidžia spartos atžvilgiu nuo kitų technologijų
ir yra naudojamos realaus laiko situacijoms apdoroti, valdyti. Taip pat
plėtojamas Java Server Faces karkasas grafinei sąsajai kurti ir t.t.
Pradėti kurti JavaEE aplikacijas
nėra labai sudėtinga, tereikia susiinstaliuoti JavaEE palaikantį serverį, kurių
šiuo metu yra nemažai, todėl yra iš ko pasirinkti. Labiausiai paplitę ir
naudojami Apache Tomcat, JBoss, GlassFish,
Spring bei IBM WebSphere aplikacijų
serveriai. Jie realizuoja aplikacijos konteinerį, kuriame ir veikia sukurta
sistema. Taip pat serveriai turi valdymo bei monitoringo priemones, konsoles.
Mano bandymu metu labiausiai draugiškas naujam vartotojui buvo Apache Tomcat,
kuris pasileidžia ypač greitai - per 2-3 sekundes bei
pateikia neperkrautą ir patogų valdymo meniu, daug pavyzdžių. Masyvesnis
variantas – JBoss, kuris parašytas Apache Tomcat pagrindu, skirtas ypač rimtiems
enterprise projektams realizuoti.
Web hostingo paslaugos
paremtos JavaEE technologija kainuoja nemažai ir nėra jų labai daug(ypač
Lietuvoje sunku surasti), kadangi nėra tiek paplitusios kaip, pavyzdžiui, PHP
ir dažnai neįtraukiamos į paslaugų kompleksą. Vis dėlto, jei sprendimas
reikalauja tokių technologijų, galima pasinaudoti dedikuotų serverių
paslaugomis ar pan.
IV. Python/Ruby – besivaikant
naujovių arba ieškantiems nestandartinių sprendimų
Dar reikėtų pakalbėti
apie nestandartines, bet gan įdomias ir patrauklias kalbas Web sprendimams
realizuoti – Python ir Ruby. Šios kalbos pilnai objektinės OOP, labai „šviežios“,
greitai įgavo populiarumą dėl savo lankstumo, paprastumo. Joms yra nemažai
karkasų, kurie leidžia realizuoti norimas Web aplikacijas. Python kalbai - Django, Pylons, Grok,
Zope, o Ruby - Ruby on Rails, Ramaze,
Merb, Halcyon, Wuby
ir t.t. išties nemažai. Kiek teko susidurti su Python Web kūrimu, tai paėmus tą
patį Django, kurį, beje, naudoja ir Google AppEngine, iškart gauname šablonų
sistemą, standartines formas, MVC ir duomenų bazę out-of-the-box, belieka tik
teisingai sukonfigūruoti. Pats puslapių apdorojimas skaidomas pagal MVC
principus į Controller klases – pirmiausia sukuriama norimo puslapio klasė
paveldinti bazinę klasę ir index() metode apdorojama užklausa, generuojamas
dinaminis turinys. Taip sukurti puslapiai yra suregistruojami Django sistemos
sukūrimo metu, nurodant, kokiu keliu norime puslapį pasiekti. Principai
nesudėtingi, be to gauname ir visas Python funkcijas ir kalbos įmantrybes – Web
kūrimas tampa dar įdomesnis.
Pradėti kurti tokioms
sistemos išties nesudėtinga – tereikia įsirašyti Python ar Ruby ir parsisiųsti
pateikiamą serverio sistemą. Pats HTTP serveris yra realizuojamas atitinkamos
kalbos konstrukcijomis sukuriant specializuotą HTTP serverį. Be abejo, su
šiomis sistemomis dirbančių žmonių skaičius tikrai nėra didelis, o problema
tame, kad sudėtinga rasti tam tikslui ir specializuotą hostingą, todėl tokias
paslaugas siūlančių – vienetai. Na išeitis visada yra – dedikuoti serveriai
arba pasinaudoti paieškos giganto Google siūloma AppEngine paslauga. Rekomenduoju
išbandyti AppEngine vien dėl smalsumo, pasižiūrėti, kaip veikia paskirstyta
Google serverių sistema.
V. Apibendrinimas
Mokėti kažkurią kalbą –
tik pradžia Web kūrime, išmanyti kaip tai panaudoti – jau technologiniai
dalykai. Web kūrimas savaime įdomi ir labai labai plati sritis, nuolat
tobulėjanti. Tai, ko anksčiau nebuvo, pasirodžius pirmiesiems HTML puslapiams –
jQuery, JavaScript, CSS, AJAX, Flash, Silverlight ir kt. technologijos,
šiandien jau laikomos kaip ir de-facto reikalavimas dinaminiams, įspūdingiems,
konkurencingiems bei pilnaverčiams puslapiams kurti. Be šių „saldainiukų“ Web
dabartiniu metu jau nebeįsivaizduojamas. Todėl pradėjus gilintis į Web
programavimą vienoje vietoje niekada neteks ilgai užsistovėti. Visada siūlau pasidomėti
aprašytomis technologijomis ir net jas išbandyti, nes tikėtis, kad visko
išmokys mokykloje ar universitete, juo labiau profesionaliu lygiu – tiesiog per
daug naivu. Iki kito susitikimo – sėkmės Web platybėse.
Komentarų nėra:
Rašyti komentarą