Upload
lehanh
View
219
Download
0
Embed Size (px)
Citation preview
ALBERTA KOLEDŢA
Informācijas tehnoloģijas
Rita Granāte
Kvalifikācijas darbs
MĀJAS LAPAS IZSTRĀDE MAZO
ALKOHOLA PUDELĪŠU
KOLEKCIONĀRAM
Rīga-2014
2
Darba izpildes un novērtējuma lapa
Kvalifikācijas darbs kvalifikācijas iegūšanai
„Mājas lapas izstrāde mazo alkohola pudelīšu kolekcionāram” kvalifikācijas darba nosaukums
izstrādāts saskaľā ar studiju programmu Informācijas tehnoloģijas (studiju programmas nosaukums)
Ar savu parakstu apliecinu, ka darbs izstrādāts patstāvīgi.
Darba autors (-e): students (-e) Rita Granāte _______________ (Vārds, uzvārds) (paraksts, datums)
Iesaku darbu aizstāvēšanai.
Darba vadītājs (-a):
Mag.oec., vieslektore Nataļja Buļipopa ______________ (Amats, zinātniskais grāds, vārds, uzvārds) (paraksts, datums)
Atļaut aizstāvēt studiju programmas _________________________________ (studiju programmas nosaukums) kvalifikācijas darbu aizstāvēšanas komisijā.
Studiju programmas vadītājs (-a):
_______________________________________ ____________________ (Amats, zinātniskais grāds, vārds, uzvārds) (paraksts, datums)
Kvalifikācijas darbs aizstāvēts Alberta koledžas kvalifikācijas darbu aizstāvēšanas
komisijas
201_.gada _________________ sēdē un novērtēts ar atzīmi ________________
Kvalifikācijas darbu aizstāvēšanas komisijas
sekretārs(-e) _____________________________ (paraksts un tā atšifrējums)
3
ANOTĀCIJA
Kvalifikācijas darba tēma ir „Mājas lapas izstrāde mazo alkohola pudelīšu
kolekcionāram‖. Darba mērķis ir izstrādāt kolekcionāra mājas lapu, izmantojot
Zend Framework 2.0.
Lai sasniegtu darba mērķi, ir izvirzīti šādi uzdevumi:
1. veikt literatūras analīzi par mājas lapu izstrādi, t.s., mājas lapu izstrādes
valodām, programmproduktiem;
2. izpētīt IT standartus, kas saistīti ar mājas lapu izstrādi un datu publicēšanu
internetā;
3. analizēt ar mājas lapu izstrādi saistītos datu drošības aspektus;
4. izstrādāt kolekcionāra mājas lapu.
Kvalifikācijas darba veidošanā tika izmantota analīzes un sintēzes metode, grafiskā
metode, loģiski konstruktīvā metode, monogrāfiskā metode, dokumentu analīzes metode un
intervija. Darbs sastāv no ievada, trīs nodaļām, secinājumiem un priekšlikumiem, bibliogrāfiska
saraksta un grafiskās daļas, kā arī no diviem pielikumiem.
Pirmajā nodaļā tiek apskatīts mājas lapu izstrādes process, kā arī izpētītas un salīdzinātas
izstrādē izmantojamās programmēšanas valodas, PHP platformas un mājas lapas izstrādes rīki.
Otrajā nodaļā raksturoti galvenie Latvijas IT drošības standarti un starptautiskās
vadlīnijas, kā arī aprakstīti izplatītākie kolekcionāru mājas lapu drošības apdraudējumi un
veicamie drošības pasākumi.
Trešās nodaļas saturu veido apraksti par realizēto kolekcionāra mājas lapas izstrādes
procesu, kura ietvaros ir detalizētas prasības, izstrādāts risinājums un veikta tā testēšana, ievadīts
mājas lapas saturs, kā arī veikta mājas lapas publicēšana Interneta vidē. Pielikumā ir iekļauta
kolekcionāra mājas lapai izveidotā administratora rokasgrāmata, kā arī intervijas jautājumi.
Kvalifikācijas darba ietvaros tika izveidoti četri priekšlikumi, no kuriem būtiskākais
priekšlikums ir mājas lapas nereģistrētajiem lietotājiem pieejamās informācijas paplašināšana un
kontaktu formas izveidošana.
Darba apjoms ir 64 lpp, neieskaitot pielikumus. Tas satur 7 attēlus, 4 tabulas, 2
pielikumus, kuru apjoms ir 23 lpp. Darba izstrādē izmantoti 56 literatūras avoti.
Atslēgvārdi: jQuery Mobile, kolekcionāru mājas lapas izstrāde, PHP, Zend Framework.
4
ANNOTATION
Qualification thesis: "Websites Development for Miniature Bottle Collector". The aim is
to develop a collector's home page using Zend Framework 2.0.
The following tasks were set to achieve the goal:
1. to perform literary analysis of website development including website
development languages and software products for development;
2. to explore IT standards related to website development and publication of data
on the Internet;
3. to analyze data security aspects related to website development;
4. to develop a website for the collector.
Analysis and synthesis method, graphical method, logical constructive method
monographic method, document analysis method and interview method where used to create the
qualification job. The work consists of an introduction, three chapters, conclusions and proposals,
bibliographical list, graphic part, as well as from two appendixes.
Website development process, as well as researched and compared top programming
languages for website development, PHP platforms and website development tools are examined
in first chapter.
The main Latvian IT security standards, international guidelines, as well as the most
common security threads and measures to be taken in collector’s website are described in the
second chapter.
The third chapter contains description of collector's website development process that
includes detailed requirements, development and testing of the website, content preparation for
the website and publishing of the website. Administrator's guide created for collector's website
and interview questions are included in the appendixes.
Four proposals were created in qualification job, of which the most important proposal is
to extend information available for unregistered users and to create a contact form.
The amount of work is 64 pages, excluding appendixes amount. It contains 7 pictures, 4
tables, 2 appendixes with amount of 23 pages. 56 sources were used in the development of the
work.
Keywords: collector’s website development, jQuery Mobile. PHP, Zend Framework.
5
SATURS IEVADS ........................................................................................................................................... 6
1. MĀJAS LAPU IZSTRĀDE .................................................................................................. 8
1.1. Mājas lapu izstrādes valodu izpēte un to salīdzinājums .................................................. 11
1.2. PHP platformu izpēte un to salīdzinājums ...................................................................... 17
1.3. Mājas lapu izstrādes rīku izpēte un to salīdzinājums, izmantojot Zend Framework ...... 20
1.4. JavaScript platformas lietotāju saskarľu izstrādei .......................................................... 21
2. MĀJAS LAPU DROŠĪBA .................................................................................................. 23
2.1. IT drošības standarti un vadlīnijas .................................................................................. 23
2.2. Mājas lapu izplatītākie drošības apdraudējumi un risinājumi......................................... 25
3. KOLEKCIONĀRA MĀJAS LAPAS IZSTRĀDE ............................................................ 29
3.1. Prasību analīze ................................................................................................................ 29
3.2. Lietotāja saskarnes izstrāde............................................................................................. 30
3.3. Mājas lapas projektējums ................................................................................................ 32
3.4. Testēšanas scenāriji un rezultāti ...................................................................................... 38
3.5. Kolekcijas digitalizēšana ................................................................................................ 40
3.6. Kolekcijas datu ielāde ..................................................................................................... 41
3.7. Mājas lapas izvietošana .................................................................................................. 44
SECINĀJUMI .............................................................................................................................. 47
PRIEKŠLIKUMI ......................................................................................................................... 49
BIBLIOGRĀFISKAIS SARAKSTS .......................................................................................... 50
GRAFISKĀ DAĻA ...................................................................................................................... 57
PIELIKUMI ................................................................................................................................. 65
1. pielikums. Intervijas jautājumi mazo alkoholisko pudelšu kolekcionāram ........................... 66
2. pielikums. Administratora rokasgrāmatas izveide ................................................................. 67
6
IEVADS
Mājas lapa jeb tīmekļa vietne, ko autore kvalifikācijas darbā lieto kā sinonīmus, ir unikāls
informācijas un interaktīvu pakalpojumu sakopojums, kas sastāv no tīmekļa lappusēm un cita
veida datiem (attēliem, skaľām u.tml.). Mājas lapa ir aplūkojama kā izdevums (publikācija)
tīmeklī, un tās identitāti nosaka tematika, pieejamība auditorijai (jeb pakalpojumu lietotājiem) un
pastāvīga adrese.
Interneta plašās pieejamības un izmantošanas dēļ, tīmekļa bāzētas mājas lapas ir kļuvušas
ne tikai par produktu tirdzniecības kanālu, bet arī par rīku ierobežotas pieejamības informācijas
glabāšanai un izplatīšanai.
Teorijas analīzes rezultātā tika konstatēts, ka mājas lapas tiek izmantotas šādiem
nolūkiem: personiskām, biznesa, meklēšanas vai informatīvām vajadzībām.
Kvalifikācijas darba ietvaros tika izstrādāta personiskajiem nolūkiem izmantojama mājas
lapa mazo (līdz 50ml) alkohola pudelīšu kolekcionāram. Šīs mājas lapas izstrādes ideja radās,
palielinoties kolekcijas apjomam, jo kļuva arvien sarežģītāk noteikt, kuras no pudelītēm ir un
kuras nav kolekcijā. Lēmums par mājas lapas izstrādi tika pieľemts brīdī, kad kolekcijas
paplašināšanā iesaistījās vairāki cilvēki, jo vairs nebija iespējams efektīvi uzturēt kolekcijas
informāciju papīra formātā. Ľemot vērā, ka kolekcijas papildināšanā iesaistās vairāki cilvēki un
lēmums par pudelītes iegādi tiek pieľemts atrodoties ārpus mājām, radās prasība kolekcijas
informāciju nodrošināt apskatei gan datorā, gan ar mobilo ierīču palīdzību.
Kolekcijas datu izvietošana pie anonīma mājas lapas uzturētāja jau izstrādātā mājas lapā
ar nezināmu sistēmas drošības līmeni, rada būtisku risku ļaunprātīgas informācijas izmantošanai.
Līdz ar to tika izlemts mazo alkohola pudelīšu kolekcionāram izstrādāt savu mājas lapu. Ne
mazāk būtisks faktors mājas lapas izstrādei, bija arī iespēja to plānot atbilstoši kolekcionāra
vajadzībām un vēlmēm. Mobilo iekārtu atbalstam gala lietotāju saskarni bija paredzēts veidot
dinamisku, kas pielāgojās atkarībā no Interneta pārlūka platumam, kas kvalifikācijas darbā tika
realizēts.
Līdz ar to tika izvirzīts šāds kvalifikācijas darba mērķis: izstrādāt kolekcionāra mājas
lapu, izmantojot Zend Framework 2.0.
Kvalifikācijas darba mērķa sasniegšanai tika izvirzīti šādi uzdevumi:
literatūras analīze par mājas lapu izstrādi, t.s., mājas lapu izstrādes valodām,
programmproduktiem;
7
izpētīt IT standartus, kas saistīti ar mājas lapu izstrādi un datu publicēšanu
internetā;
analizēt ar mājas lapu izstrādi saistītos datu drošības aspektus;
izstrādāt kolekcionāra mājas lapu.
Kvalifikācijas darba veidošanā tika izmantotas šādas pētījumu metodes: analīzes un
sintēzes metode, grafiskā metode, loģiski konstruktīvā metode, monogrāfiskā metode, dokumentu
analīzes metode un intervija. Nosauktās metodes sekmēja efektīvāku informācijas iegūšanu,
sistematizēšanu, analīzi un aprakstīšanu, kā arī veicināja mājas lapas izstrādes procesu. Darba
izstrādē tika izmantoti dažādi literatūras avoti un interneta resursi.
Kolekcionāra mājas lapas izstrādē vienīgais ierobežojums bija izstrādei pieejamais
budžets, kas tika ľemts vērā izmantojamās programmēšanas valodas izvēlē un noteica bezmaksas
rīku izmantošanu mājas lapas izstrādē. Minētais ierobežojums neietekmēja, izstrādātās mājas
lapas mazo alkohola pudelīšu kolekcionāram, kvalitāti un apmierina visas kolekcionāra izvirzītos
izstrādes kritērijus kolekcijas pārvaldīšanai.
8
1. MĀJAS LAPU IZSTRĀDE
Tīmekļa vietne ir unikāls informācijas un interaktīvu pakalpojumu sakopojums, kas
uzbūvēts no tīmekļa lappusēm un cita veida datiem (attēliem, skaľām u.tml.). Vietne ir
aplūkojama kā izdevums (publikācija) tīmeklī, un tās identitāti nosaka tematika, pieejamība
auditorijai (jeb pakalpojumu lietotājiem) un pastāvīga adrese. Vietľu apjomi var būt dažādi - gan
tikai daži dokumenti, gan apjomīgi portāli. Vietnes robežas traktē brīvi. Tehniskā aspektā vietnes
ir datu kopumi, kurus to veidotāji vai īpašnieki novieto tīmekļa serveros [1].
Vietne ir veiksmīgs angļu valodas vārda site tulkojums un norāda uz noteiktu vietu tīmeklī
— kurā ir nenoteikts skaits savstarpēji savienotu lapu. Vietne var būt portāls, tīmekļa
žurnāls/blogs, albums, privātlapa cilvēka personiskās informācijas izvietošanai, un tamlīdzīgi [8].
Tīmekļa vietne ir dokumentu (tīmekļa lapu) kopa, kurai iespējams piekļūt ar tīkla
(Interneta, Intraneta) palīdzību. Tīmekļa lapas tiek veidotas HTML/XHTML valodā un var saturēt
tekstuālu informāciju, attēlus, mūziku, video, flash animācijas u.c. [4].
Visām no augstāk minētājām tīmekļa vietnes definīcijām, kopīgs ir tas, ka tīmekļa vietne
ir tīmekļa lappušu kopums. Tīmekļa vietnes identitāti nosaka tās tematika, pieejamība un
pastāvīga adrese.
Turpmāk kvalifikācijas darbā vienkāršības un saprotamības dēļ, tīmekļa vietnes vietā tiks
izmantots jēdziens mājas lapa.
Mājas lapas pēc to funkcionalitātes pārsvarā tiek izstrādātas personīgām, biznesa,
meklēšanas vai informatīvām vajadzībām [35]. Daži no galvenajiem mājas lapas izstrādes
uzdevumiem ir [35]:
• publicēt personiskā rakstura informāciju (kolekcijas vienumus, biogrāfiju, fotogrāfijas)
personīgajām vajadzībām;
• publicēt informāciju par uzľēmumu, tā sniegtajiem pakalpojumiem un produkciju, sniegt
palīdzību un atbalstu klientiem, kā arī pārdod uzľēmuma produktus tiešsaistē;
• pārlūkot Internetu, lai atrastu atbilstošās mājas lapas un uzkrātu informāciju par tām uz
serveriem;
• publicēt informāciju par iepriekš nezināmu notikumu, priekšmetu vai jēdzienu.
Internetā pieejamo mājas lapu ietekme uz sabiedrību šobrīd ir tik liela, ka tā ir grūti
aptverama. Lai gan pēc Starptautiskās Telekomunikāciju Savienības 2013.gada veiktā pētījuma,
iezīmējas tendence, ka 61% pasaules iedzīvotājiem vēl joprojām nav pieejams Internets [34].
9
Savukārt Interneta ietekme uz cilvēka dzīvi, kas dzīvo attīstītājās valstīs, ir ļoti nozīmīga un
ietekmē katru viľu dzīves aspektu.
Līdz ar to būtiskākas mājas lapu ietekmes sfēras ir šādas:
Atvieglo un padara cilvēku ikdienu daudz ērtāku [18]:
o rēķinu apmaksa no mobilajām ierīcēm;
o valsts sniegto pakalpojumu ērtāka pieejamība;
o apģērbu un un citu preču, t.s., pārtikas preču, pirkšana un pārdošana;
o mākoľu tehnoloģijas, kas nodrošina piekļūšanu pie personīgajiem failiem no
jebkuras vietas un jebkurā laikā.
Kalpo par uzľēmējdarbības attīstības un popularizēšanas rīku [28]:
o jauno darba vietu rašanās;
o izdevumu samazināšanās;
o tirgus paplašināšanās;
o pārdotās produkcijas daudzuma palielināšanās;
o produktu un pakalpojumu reklamēšana un popularizēšana;
o atgriezeniskās saiknes nodrošināšana un atbalsta sniegšana klientiem.
Veicina sociālo dzīvi [18]:
o komunikācijas uzturēšana ar jau pazīstamajiem cilvēkiem, kā arī jaunu
kontaktu veidošana visā pasaulē;
o personiskās informācijas izvietošana sociālajos tīklos;
o personīgo blogu rakstīšana.
Neskatoties uz mājas lapu dažādību un to plašām pielietojuma un izstrādes iespējām,
tomēr ir daži pamatprincipi un kvalitātes novērtēšanas kritēriji, kurus būtu jāievēro, izstrādājot
jebkuru mājas lapu.
World Best Websites (no angļu val. – Pasaules labākās mājas lapas) novērtē mājas lapas
pēc to [39]:
funkcionalitātes (pieejamība, ātrums, HTML kvalitāte, navigācija un saites u.c.);
dizaina (caurskatāmība, atbilstība lietotāju vajadzībām, izvietojums un sakārtotība,
iedarbība u.c.);
satura (satura kvalitāte un lietderīgums, pareizrakstības un gramatikas ievērošana,
meklēšanas iespējas u.c.);
http://www.worldbestwebsites.com/criteria.htm
10
oriģinalitātes (nestandarta risinājumi un inovācijas, radošums, atšķirtspēja, jaunāko
tehnoloģiju izmantošana u.c.);
profesionālisma un efektivitātes (sadarbības nodrošināšana, bezmaksas pakalpojumu
sniegšana, speciālu rīku piedāvāšana u.c.).
Katrs no kritērijiem sevī ietver vairākus apakšpunktus un no to izpildes ir atkarīgs
procentu skaits, kas tiks piešķirts attiecīgai mājas lapai [39].
Latvijā kārtība, kādā publiskās pārvaldes iestādes ievieto informāciju internetā, ir noteikta
Ministru kabineta 2007.gada 6.marta noteikumos Nr.171 un tie satur vispārējas, struktūras, satura,
tehniskās un citas prasības [7], bet privātā sektora informācija internetā netiek reglamentēta.
Kolekcionāru mājas lapas izstrādes procesam [17] tika izvirzīti šādi soļi (skatīt 1.1.att.):
Idejas, mērķa un uzdevumu formulēšana. Šī soļa ietvaros tika precizēta ideja
un izveidoti kolekcionāra mājas lapas izstrādes uzdevumi.
Izstrādes valodas, platformas un rīku izvēle. Šī soļa ietvaros tika veikta
iespējamo rīku, platformu un valodu apzināšana un izvēle (izvērstāk – 1.nodaļā).
IT drošības risku apskats. Šīs soļa ietvaros tika apzināti galvenie Kolekcionāra
mājas lapas izstrādē vērā ľemamie drošības riski, standarti un vadlīnijas drošības
risku mazināšanai (izvērstāk – 2.nodaļā).
Detalizēta prasību analīze. Šī soļa ietvaros tika veikta padziļināta prasību analīze
ar mērķi apzināt visas kolekcijas īpašnieka vēlmes un vajadzības (izvērstāk – 3.1.
apakšnodaļā).
Projektējuma izveide. Šī soļa ietvaros tika veikta gan datubāzes relāciju modeļa,
gan lietotāja saskarnes izkārtojumu izstrāde. (izvērstāk – 3.2. un 3.3.1
apakšnodaļās).
Izstrāde un testēšana. Šī soļa ietvaros tika veikta mājas lapas funkcionalitātes
sadalīšana pa moduļiem un mājas lapas izstrāde (izvērstāk – 3.3. apakšnodaļā).
Paralēli izstrādei tika veikta arī mājas lapas testēšana, jo sākotnēji konstatēto
kļūdu rezultātā var būt nepieciešama vēl papildus izstrāde. Testēšanas ietvaros tika
sagatavoti testa scenāriji un veikta testēšana atbilstoši šiem scenārijiem (izvērstāk
– 3.4. apakšnodaļā).
Datu digitalizācija un ielāde. Šī soļa ietvaros tika veikta datu pārnešana no
pagaidu mājas lapas, kā arī jauno pudelīšu pievienošana kolekcionāra mājas lapā
(izvērstāk – 3.5. un 3.6. apakšnodaļās).
11
Izvietošana. Šī soļa ietvaros tika veikta iespējamā hostinga nodrošinātāja izvēle,
domēna nosaukuma iegāde un izstrādātās kolekcionāra mājas lapas izvietošana uz
hostinga (izvērstāk – 3.7.apakšnodaļā).
Uzturēšana. Šī soļa ietvaros turpmāk tiks nodrošināts atbalsts kolekcionāra mājas
lapas darbības nodrošināšanai, kā arī iespējams papildinājumu ieviešana.
1.1.att. Mājas lapas izstrādes process [autores izstrādāts]
1.1. attēlā atspoguļotais mājas lapas izstrādes process tika realizēts mazo alkohola
pudelīšu kolekcionāra mājas lapas realizēšanā kvalifikācijas darba 3.nodaļā.
1.1. Mājas lapu izstrādes valodu izpēte un to salīdzinājums
Mūsdienās ir sastopamas daudz dažādas programmēšanas valodas, kuras tiek izmantotas
mājas lapu izstrādē un to funkciju attīstīšanā, piemēram, ASP.NET, PHP, ColdFusion, Perl,
Python, Ruby on Rails u.c.
BuiltWith statistikas datu pārskatos atspoguļotā informācija par programmēšanas valodu
izmantošanas īpatsvaru 2013. gadā, rāda, ka PHP ieľem lielāko īpatsvaru (38.52%), jo tā tiek
izmantota vairāk kā 24 692 359 mājas lapu izstrādē. Otrais lielākais īpatsvars ir ASP.NET
programmēšanas valodai (20.53%), kas tiek izmantota vairāk kā 19 365 837 mājas lapu izstrādē.
Pārējās programmēšanas valodas tiek izmantotas salīdzinoši retāk (skatīt 1.2 att.) [32].
1. Idejas, mērķa un uzdevuma
formulēšana
2. Izstrādes valodas,
platformas un rīku izvēle
3. IT drošības risku apskats
4. Detalizēta prasību analīze
5. Projektējuma izveide
6. Izstrāde un testēšana
7. Datu digitalizācija un
ielāde
8. Izvietošana
9. Uzturēšana
12
1.2.att. Programmēšanas valodu izmantošanas īpatsvars 2013.gadā [32]
Programmēšanas valodas izvēle bieži vien ir atkarīga no izstrādātāja personiskās
pieredzes un attieksmes. Daudzi izstrādātāji izvēlās izmantot PHP, jo tā ir brīvi pieejama. No
otras puses skatoties, ASP.NET, kura nav pieejama bez maksas, ieľem otro pozīciju mājas lapu
izstrādē. Viennozīmīgi var teikt, ka 2013.gadā ASP.NET un PHP ir savā starpā konkurējošas
programmēšanas valodas Web tehnoloģiju izmantošanā.
1.1.1. Programmēšanas valodu apraksts
Autore izvēlējas sīkāk izpētīt tikai PHP un ASP.NET programmēšanas valodas, jo tās pēc
statistikas datiem 2013.gadā ir visvairāk izmantotas mājas lapu izstrādē. Ľemot vērā to, ka tās
savā starpā ir konkurējošas, ir būtiski izpētīt, kādas priekšrocības un trūkumi piemīt katrai no
tām.
PHP programmēšanas valoda
PHP ir atklāta pirmkoda skriptu programmēšanas valoda, ko izstrādāja dāľu
programmētājs Rasmuss Lerdorfs 1995. gadā. Sākumā PHP pilnais nosaukums bija „Personal
Home Page”, kas vēlāk tika nomainīts uz PHP: Hypertext Preprocessor . Šobrīd tā ir viena no
lielākajām skriptu programmēšanas valodām visā pasaulē [28].
13
PHP ir programmēšanas valoda, kas galvenokārt tiek izmantota dažādu mājas lapu
izstrādei un uzturēšanai. Pašos pirmsākumos tā darbojās, lai atvieglotu darbu mājas lapu
izstrādātājiem un ļautu dažādās lapas daļās iekļaut dinamisku saturu. Piemēram, vienkārši
izveidot lapas, kurām ir vienāda izvēlne, viena un tā pati lapas galvene (header) un kājene
(footer) [10].
Laikam ejot arvien vairāk cilvēku sāka novērtēt šādas šablonu programmēšanas valodas
iespējas un sāka piedalīties tās izstrādē. PHP kā programmēšanas valoda tiek izstrādāta balstoties
uz atklātā koda principiem - praktiski jebkuram programmētājam jebkurā vietā uz pasaules ir
iespējas ielūkoties PHP programmēšanas valodas kodā, piedāvāt savus labojumus vai ieteikt kādu
vērtīgu papildinājumu [10].
Gadu gaitā PHP ir attīstījusies no vienkāršas šablonu programmēšanas valodas līdz
pilnvērtīgai programmēšanas valodai, kas atbalsta modernas programmēšanas pieejas - sākot ar
objektorientēto programmēšanu un noslēdzot ar darba virsmas programmatūras izstrādi,
izmantojot citas atvērtā koda bibliotēkas [10].
PHP ir salīdzinoši vienkārša programmēšanas valoda un daudzi to izvēlas kā savu pirmo
programmēšanas valodu, taču tikpat daudzi nonāk pie PHP pēc ilgstošas programmēšanas citās
valodās. Tieši tāpēc PHP piedāvā dažādus veidus kā pierakstīt savas konstrukcijas. Lai arī
sākumā tas varētu likties ļoti labi, jo rada izvēles brīvību un iespējas veidot savu programmēšanas
stilu, ar laiku vairums PHP programmētāju atzīst, ka tas var sagādāt arī lielas grūtības [10].
ASP.NET programmēšanas valoda
ASP.NET ir 21.gadsimta paaudzes objektorientēta programmēšanas valoda, kas tiek
izmantota uz standartiem bāzēto mājas lapu izstrādē un to attīstībā. 2002. gadā tā tika izstrādāta
Microsoft korporācijā un pilnā nosaukumā saucās Active Server Pages. Net, kas saīsinājumā
veido ASP.NET. ASP.NET ir daļa no .NET framework un ir sava veida turpinājums Microsoft
Active Server Pages (ASP) tehnoloģijai, kas veidots tā, lai tīmekļa aplikāciju izstrāde būtu līdzīga
Windows aplikāciju izstrādei [28].
ASP.NET ir pazīstama kā serveru puses programmēšanas valoda. ASP.Net darbojās uz
Windows servera, kur ir instalēts .Net Framework un Internet Information Server (IIS) [2].
Windows servera uzstādīšanai nepieciešams iegādāties licenci, kas rada izmaksas ASP.NET
izmantošanai, kā arī Microsoft piedāvā maksas rīkus produktīvai mājas lapu izstrādes
nodrošināšanai, izmantojot ASP.NET [50][52].
14
ASP.NET var nosaukt par Microsoft mūsdienu paaudzes izstrādāto programmēšanas
valodu. Lai strādātu ar ASP.NET, ir nepieciešams izmantot arī Web projektēšanas valodu
(HTML), klienta puses programmēšanas valodu (JavaScript), programmēšanas valodas
(C#.NET/VB.NET) un Web serveri (IIS/ ASP.NET Development Server) [28][33].
1.1.2. Programmēšanas valodu salīdzinājums un analīze
Tā kā kolekcionāru mājas lapas ir domātas informācijas attēlošanai par kolekcijas
vienumiem, tām ir jānodrošina kolekcijas satura viegla caurskatāmība, tā ērta pārvaldība, līdz ar
to ir nepieciešams izvēlēties atbilstošo programmēšanas valodu. Lai varētu noteikt, kura valoda ir
piemērotāka kolekcionāra mājas lapas izstrādei, tika veikts abu iepriekš aprakstīto
programmēšanas valodu salīdzinājums, kurš atspoguļots 1.1. tabulā.
1.1.tabula
Mājas lapu izstrādes valodu salīdzinājums [28]
Kritēriji Izstrādes valodas
ASP.NET PHP 1 2 3
Cena (Cost) Maksas Brīvi pieejama Valodu atbalsts (Language Support) Daudzas Nav
Redaktori (Editors) Visual Studio
Zend, Eclipse, Code
Lobster, Adobe
Dreamweaver, Net Beans,
Context Datu bāzes savietojamība (Database Compatibility)
MS-SQL, MySQL MS-SQL, MySQL
Kods (Coding) Objektorientēta programmēšanas valoda
Skriptu programmēšanas
valoda
Platforma (Platform Connectivity) Windows Vairākas
(Windows, Linux, UNX)
Atbalsts (Support) Atjauninājumus nodrošina
Microsoft
Informācija par
atjauninājumiem pieejama
forumos Izstrādes rīki (Tools) Pieejami Visual Studio
ietvaros Jāizmanto citu uzľēmumu
izstrādātie rīki Dizaina kods (Designing code) Automātiski Manuāli Datu kontrole (Data Controls) Ir Nav Validācijas kontrole (Validation Controls) Ir Nav
Cena
ASP.NET ir Microsoft izstrādāta tehnoloģija. Uzľēmumiem un citiem tās lietotājiem
nepieciešams pirkt ASP.NET tehnoloģiju no Microsoft. PHP ir brīvi pieejama tehnoloģija, līdz ar
15
to tās var tikt izmantotas bezmaksas. Tas ir liels arguments, kāpēc jauni mājas lapu izstrādātāji
izvēlās izmantot tieši šīs valodas nevis ASP.NET. Tas pats attiecās arī uz mazo uzľēmumu
īpašniekiem, kuriem bieži vien budžets ir ierobežots. No otras puses skatoties ASP.NET ir maksas
tehnoloģija, tomēr, neskatoties uz to, atrodas pietiekami daudz lietotāju, kas ir gatavi maksāt par
to un izmantot. Jāteic, ka pārsvarā tie varētu būt lielie uzľēmumi, kā arī daži jauni izstrādātāji,
kuri vēlās specializēties tieši ASP.NET programmēšanas valodā [28].
Operētājsistēma
ASP.NET aplikācijas jau sākotnēji ir izstrādātas, lai tās darbotos Microsoft Windows vidē.
Taču, ja tiek pievienota saistīta platforma, tad to var palaist arī UNIX vidē. PHP ir patstāvīgā
programmēšana valoda. Tās darbojās daudzās operētājsistēmās, piemēram, Windows, LINUX,
UNIX, Mac OS [28].
Valodu atbalsts
ASP.NET aplikācijas var tikt izstrādātas, izmantojot vairākās objektorientētās
programmēšanas valodās, piemēram, kā C#, C++, VisualBasicNET, Java, Python, Perl. Savukārt
PHP ir skriptu valoda, kuras neiekļauj citu valodu atbalstu [28].
Redaktori
ASP.NET ir izstrādāta Visual Studio vidē. Toties izmantojot PHP, pastāv vairākas iespējas,
kādu redaktoru izvēlēties. Šīs programmēšanas valodas darbība nav atkarīga no konkrēta
redaktora. Ir pieejami vairāki redaktori, kurus izmantot Windows vai Linux vidē. Izmantojot PHP,
var izvēlēties, piemēram, Zend, Eclipse, Code Lobster, Adobe Dreamweaver, Net Beans, Contex,
u.c. [28].
Datu bāzes savietojamība
Pārsvarā ASP.NET aplikācijās izmanto MS-SQL, kurš ir integrēts ar Visual Studio.
Datubāzes izveidošana ir salīdzinoši vienkāršs process un tajā ir viegli izveidot tabulas un
relācijas. Datubāzes diagrammas tiek izveidotas automātiski. Kā negatīvu aspektu, var minēt to,
ka MS-SQL nav pieejams bezmaksas. Izstrādātājiem tas ir jāiegādājas, lai varētu to izmantot.
Toties izmantojot PHP, bieži tiek pielietota MySQL relāciju datubāzu vadības sistēma. Tā ir viegli
saprotama un ir pieejama bez maksas. Ir jāteic, ka gan MS-SQL, gan MySQL var izmantot abās
šajās tehnoloģijās [28].
Kods
ASP.NET ir objektorientēta programmēšanas valoda, savukārt, PHP ir skriptu valoda.
16
Valda uzskats, ka objektorientētas valodas ir sarežģītākas un sākumā grūti apgūstamas, līdz ar to
nereti jaunie izstrādātāji izvēlās specializēties tieši PHP [28].
Atbalsts
Microsoft sniedz atbalstu un nodrošina izstrādātājus ar nepieciešamajiem ASP.NET
atjauninājumiem un papildinājumiem, kuri bieži vien notiek automātiski. Tas atvieglo izstrādātāju
darbu un mazina iespēju, ka tiek izmantota neatjaunināta ASP.NET versija. PHP izstrādātājiem
par iespējamiem atjauninājumiem informācija ir jāmeklē specializētos forumos un mājas
lapās [28].
Izstrādes rīki
Microsoft Visual Studio ir ietverti visi nepieciešami rīki, lai varētu veidot ASP.NET
aplikācijas. PHP tādas iespējas nav, jo tā ir patstāvīga programmēšanas valoda un tai ir jāizvēlas
atbilstošs redaktors [28].
Dizaina kods
ASP.NET nodrošina iespēju ģenerēt dizaina kodu, izmantojot Microsoft Visual Studio.
PHP pamatfunkcionalitātē nav iekļautas šādas iespējas, bet to ir iespējams izdarīt izmantojot trešo
pušu rīkus vai rakstot dizaina kodu pašam [28].
Datu kontrole
ASP.NET nodrošina rīkus automātiskai datubāzes satura attēlošanai. PHP datubāzes satura
attēlošana iespējama tikai ar manuāli izveidotu kodu [28].
Validācijas kontrole
ASP.NET nodrošina automātiskus validācijas mehānismus. PHP visas validācijas ir
jāveido manuāli [28].
Drošība
ASP.NET tehnoloģijai ir vairāki drošības moduļi un tehnikas, lai nodrošinātu
konfidenciālu datu drošību. PHP tehnoloģija arī paredz visus nepieciešamos drošības pasākumus
datu aizsardzībai, bet tie nav tik efektīvi kā varētu būt [28].
Apkopojot iepriekš aprakstīto, var secināt, ka gan ASP.NET, gan PHP ir savi plusi, kā arī
mīnusi. Izmantojamās tehnoloģijas ir jāizvēlas atkarībā no projekta specifikas un apjoma.
Kolekcionāra mājas lapas izstrādē liela nozīme ir izmaksām, līdz ar to turpmākai izstrādei tika
izvēlēta PHP tehnoloģija.
17
1.2. PHP platformu izpēte un to salīdzinājums
Ľemot vērā to, ka kvalifikācijas darba izstrādē tiks izmantota PHP programmēšanas
valoda, tad nākamais solis ir izpētīt, kādas PHP izstrādes platformas ir pieejamas un kura no tām
visvairāk atbilst kvalifikācijas darba izstrādes prasībām.
Balstoties uz Phpframeworks.com mājas lapā 2013.gada 27.decembrī publicētiem
balsojumu rezultātiem, tad (skatīt 1.3.att.) var novērot , ka pirmo PHP platformu piecinieku veido
tādas platformas kā YII, Codelgniter, CakePHP, Zend un Symfony [49].
1.3.att. PHP platformas pēc izstrādātāju balsojuma [49]
1.2.1. PHP platformu apraksts
Atbilstošas PHP platformas nodrošina izstrādātājiem iespēju izstrādāt ātrāk, efektīvāk un
vienkāršāk. Atbilstošas platformas izvēle ir svarīga, jo tā pievieno noturīgumu un lielāku iespēju
uz veiksmīgu izstrādes procesu.
Internetā ir pieejami dažādas platformas ar unikālām pieejām un izstrādātājiem
paredzētiem ieguvumiem.
Pamatā platforma sastāv no [23]:
1. Rīku apkopojuma – komplekts no iepriekšsagatavotām, ērti integrējamām
programmatūras komponentēm. Šādu rīku izmantošana izstrādātājam nozīmē, ka būs
jāraksta mazāk koda un saistībā ar to, arī ir mazāka iespēja kļūdīties. Tas arī nozīmē
Yii, 148
Codelgniter,
117
CakePHP, 83 Zend, 79
Symfony, 56
18
lielāku produktivitāti un iespēju vairāk laika veltīt lietām, kas nodrošina lielāku
pievienoto vērtību (mājas lapas specifiskās funkcionalitātes izstrādei).
2. Metodoloģijas – ―instrukciju‖, kā ir jāveic mājas lapu izstrāde. Strukturēta pieeja
sākotnēji var šķist ierobežojoša, bet patiesībā tā nodrošina izstrādātājiem iespēju strādāt
efektīvāk, kā arī risināt sarežģītus uzdevumus. Labāko prakšu izmantošana, kas ir
iekļauta metodoloģijā, garantē stabilitāti un uzturamību izstrādājamajām mājas lapām.
Yii
Galvenais Yii mērķis ir sniegt atbalstu Web 2.0 tīmekļa lapu izstrādē. Yii ir komponent-
bāzēta augstas veiktspējas PHP platforma, ar kuras palīdzību var veikt plaša mēroga mājas lapu
izstrādi. Yii ir izveidota, stingri balstoties uz objektu orientētās programmēšanas principiem, un ir
pieejama kopā ar plašu klašu aprakstu, kā arī visaptverošas pamācībām [53].
Yii nodrošina gandrīz visas iespējas, kas ir nepieciešamas Web 2.0 mājas lapu
izstrādei [53].
Zend
Zend Framework ir balstīts uz vienkāršību, objektu orientētās programmēšanas labākajām
praksēm, korporatīvi draudzīgu licencēšanu un rūpīgi pārbaudītu pamatkodu [54].
Zend Framework ir fokusēts uz drošāku, stabilu un modernu Web 2.0 mājas lapu un
servisu izstrādi. Tam ir pieejamas integrācijas ar visiem vadošajiem lietojumprogrammu saskarľu
nodrošinātājiem, piemēram, Google, Amazon, Yahoo!, Flickr, StrikeIron un
ProgrammableWeb [54].
CodeIgniter
CodeIgniter mērķis ir nodrošināt ātrāku mājas lapu izstrādi, lai nebūtu jāraksta visu no
jauna. Tas nodrošina bagātīgu bibliotēku klāstu dažādu nepieciešamo uzdevumu veikšanai, kā arī
vienkāršu saskarni un loģisku bibliotēku izvietojuma struktūru. CodeIngniter atļauj radoši
fokusēties uz mājas lapas izstrādi, minimizējot nepieciešamo kodu uzdevumu risināšanai [27].
CakePHP
CakePHP par savu galveno mērķi ir izvirzījuši strukturētas platformas nodrošināšanu, kas
ļauj PHP lietotājiem visos līmeľos ātri izstrādāt stabilas mājas lapas, nezaudējot izstrādes
elastību [26].
Symfony
Symfony mērķis ir paātrināt mājas lapu izstrādi un uzturēšanu, kā arī nodrošināt
risinājumu, lai nav nepieciešama atkārtota līdzīga koda rakstīšana.
19
Symfony ir paredzēta uzľēmuma līmeľu stabilu mājas lapu izstrādāšanai. Tas nozīmē, ka
ir nodrošināta pilna kontrole par konfigurāciju no direktoriju struktūras līdz pat iebūvētajām
bibliotēkām (gandrīz viss ir konfigurējams) [43].
1.2.2. PHP platformu salīdzinājums
Lai labāk izprastu katru no šīm platformām, tika veikts šo platformu salīdzinājums, kas ir
ir redzams 1.2. tabulā.
1.2.tabula
PHP platformu salīdzinājums [autores izstrādāts, balsoties uz [26; 27; 43; 53; 54]
Kritēriji PHP platformas Yii Codelgniter CakePHP Zend Symfony
Pēdējā versija 1.0 beta 1.5.4. 1.2.0.5875 1.11.4. 1.0.9. Objektorientēta izstrādes valoda
(MVC)
Vairāku datubāžu atbalsts (Multiple
DB)
Objektrelāciju kartēšana (ORM) - Datubāzes objekti Šabloni (Templates) - - Kešdarbe (Caching) Validācija (Validation) Ajax - Autorizācijas modulis (Auth Module)
-
Moduļi (Modules) - Cena (Cost) Brīvi
pieejama Brīvi
pieejama Brīvi
pieejama Brīvi
pieejama Brīvi
pieejama
Apskatot PHP platformu salīdzinājuma 1.2.tabulu, var redzēt, ka to funkcionalitātes
iespējas ir ļoti līdzīgas un atšķirības ir atrodamas tādos kritērijos kā objektrelāciju kartēšana,
šabloni, ajax, autorizācijas modelis un moduļi.
Līdz ar to, var secināt, ka Codelgniter platformu nebūtu vēlams izmantot izstrādē, jo tai
nav autorizācijas modeļa funkcionalitātes, kas nepieciešama mājas lapas pieejas ierobežošanai.
Savukārt, CakePHP un Symfony platformām nav paredzēti šabloni, kuru izmantošana
mājas lapas kodu padara pārskatāmāku un vieglāk uzturamu, kas ir būtisks mājas lapas izstrādes
aspekts.
Līdz ar to priekšplānā izvirzās divas PHP platformas: YII un Zend. Par lielāku YII
platformas priekšrocību izstrādātāji min tās ātrdarbību, savukārt, Zend platforma ir ieguvusi ļoti
lielu uzticamību izstrādātāju vidū [44].
20
Izpētot PHP platformu klāstu un to funkcionalitāti, var secināt, ka katrai platformai ir
savas priekšrocības un trūkumi. Izvēle, kādu platformu izmantot mājas lapas izstrādē, bieži vien
ir atkarīga gan no izstrādātāja subjektīviem kritērijiem, gan no dažādiem ārējiem faktoriem.
Autore izvēlējās izmantot Zend platformu, jo tā ir ne tikai viena no dominējošām PHP
platformām, bet arī tieši šī platforma tika izmantota kvalifikācijas praksē, kurā tika veikta
kolekcionāra pagaidu mājas lapas izstrādes.
1.3. Mājas lapu izstrādes rīku izpēte un to salīdzinājums, izmantojot Zend Framework
Integrētās izstrādes vides (Integrated Development enviroment – IDE) un redaktori palīdz
izstrādātājiem efektīvi atvieglot koda rakstīšanu. Lielākā daļa no IDE un redaktoriem atbalsta
dažādu valodu (PHP, HTML, JS) sintakses izcelšanu. Izstrādes vides nodrošina gan redaktoru
funkcijas, gan daudz citu papildus iespēju.
1.3.1. Redaktori
Redaktori pamatā nodrošina minimālu izstrādes atbalstu. Populārākie redaktori ir
Notepad++, Sublime Text un Bluefish.
Notepad++
Kā vienu no populārākajiem un ar funkcionalitāti bagātākajiem bezmaksas teksta
redaktoriem noteikti ir jāatzīmē Notepad++ [21].
Tas ir atvērtā koda C++ izstrādāts redaktors, kas sevī ietver ērti izmantojamas funkcijas
teksta apstrādei, satura aizvietošanu un meklēšanu vairākos failos vienlaicīgi, kā arī regulāro
ekspresiju atbalstu. Tam ir pieejami daudz dažādi paplašinājumi papildus funkcionalitātes
pievienošanai [21].
Sublime Text
Sublime Text redaktors ir ļoti iecienīts izstrādātāju vidū. Tā izskats ir atšķirīgs no visiem
citiem populārajiem redaktoriem, jo tā fons ir melns un teksts balts, kā arī tiek izmantotas citas
krāsas sintakses izcelšanai. Šis redaktors nodrošina ļoti daudz ātro taustiľu kombinācijas. Kā
viena no izceltām iespējām ir šī redaktora pilnā ekrāna režīms, kas ļauj noslēgties no citām lietām
un iedziļināties programmēšanā [42].
21
BlueFish
BlueFish ir cits atvērtā koda risinājums, kurš tiek orientēts uz koda rakstīšanu. Tas pamatā
ir paredzēts izstrādātājiem ar lielu pieredzi, kuriem papildus iespējas novirza un traucē koda
izstrādi [24].
1.3.2. Integrētās izstrādes vides
Integrētās izstrādes vides nodrošina daudz dažādu iespēju. Viens no ļoti svarīgiem
ieguvumiem, izmantojot šīs vides, ir ērta navigācija pa dažādām funkcijām, tā nodrošinot iespēju
vienkāršākā ceļā iepazīt svešu kodu. Cita ļoti svarīga funkcionalitāte, ko nodrošina tāda tipa
izstrādes vides, ir integrācijas ar dažādām platformām. Tās nodrošina arī citas papildus iespējas,
piemēram, atkļūdošanu, integrāciju ar GIT/SVN repozitorijiem, kā arī daļēji ievadīta koda
pabeigšanu, piedāvājot pieejamās funkcijas/mainīgos [16][22].
Izmantojot integrētās izstrādes vides, ir iespējams nodefinēt vienotus noteikumus koda
formatēšanai, lai vairākiem programmētājiem nebūtu sarežģīti lasīt vienam otra kodu. Šis faktors
ir ļoti svarīgs, ja pie viena projekta darbojas vairāki izstrādātāji [20].
Apskatot bezmaksas pieejamās integrētās izstrādes vides, vairākos resursos līderos tiek
izvirzītas NetBeans un Eclipse izstrādes vides. [16; 20; 22; 45] Abas šīs izstrādes vides nodrošina
ļoti bagātīgu funkcionalitātes atbalstu, līdz ar to, izpētot dažādus Interneta avotus, netika atrasti
konstruktīvi argumenti, kādēļ viena no šīm vidēm ir labāka nekā otra. Kā papildus faktoru ir
jāatzīmē tas, ka gan NetBeans, gan Eclipse nodrošina paplašinājumu Zend Framework2
platformas izmantošanai, kā arī atbalsta atkļūdotāja Xdebug atbalstu [29].
Abas šīs izstrādes vides tika uzstādītas un iepazītas izstrādes koda sagatavošanai.
Turpmākai izstrādei tika izvēlēta Netbeans IDE izstrādes vide, kuras izmantošana ir ērtāka, labāk
organizēta uzstādījumu pārvaldība un pilnvērtīgāka noklusējumu konfigurācija.
1.4. JavaScript platformas lietotāju saskarņu izstrādei
JavaScript platforma lietotāju saskarnei ir bibliotēka, kas satur JavaScript vadīklas,
funkcijas un metodes, kas padara vienkāršāku un ātrāku lietotāju saskarnes izstrādi, nodrošinot
atbalstu dažādām pārlūkprogrammām [51].
Kolekcionāra mājas lapā ir būtiski, lai mājas lapa būtu ērti izmantojama gan no datora,
gan no mobilās ierīces. Šī iemesla dēļ uzsvars tika likts tikai uz JavaScript platformām lietotāja
22
saskarnei, kas nodrošina atbalstu mobilo iekārtu Interneta pārlūku atbalstu (turpmāt tekstā mobilo
ierīču platforma).
Ir pieejamas vairākas mobilo ierīču platformas, kas nodrošina šādu funkcionalitāti.
Apskatot populārākas mobilo ierīču platformas, vairākos resursos līderos tiek izvirzītas jQuery
Mobile un Appcelerator Titanium Mobile platformas.
jQuery Mobile
jQuery Mobile skārien-optimizēta Web platforma (Touch-Optimized Web Framework)
viedtālruľiem un planšetdatoriem. Tā nodrošina atbalstu visu populārāko mobilo ierīču platformu
Interneta pārlūkiem. jQuery Mobile par pamatu tiek izmantots jQuery un jQuery UI (lietotāju
saskarnes bibliotēka), kā arī HTML5. Tai ir viegli saprotams kods, kas pakāpeniski tiek uzlabots.
jQuery Mobile platformas pamatmērķis ir „rakstīt mazāk, darīt vairāk‖. jQuery Mobile ļauj
izstrādāt modernu, elastīgu un efektīvu mājas lapas dizainu, kas vienādi izskatīsies visu
atpazīstamo viedtālruľu, planšetdatoru un datoru Interneta pārlūkos [37].
The M Project
The M Project ir viegli izmantojama JavaScript platforma, kas ietver HTML5 funkcijas.
Tas ir iecienīts izstrādātāju vidū dēļ objektorientētas arhitektūras, kas ērtā veidā ļauj nodalīt datus
un biznesa loģiku no lietotāja saskarnes. JavaScript platforma nodrošina atbalstu mājaslapu
attēlošanai dažādu ierīču Interneta pārlūkos, atvieglojot mājaslapu izstrādi planšetdatoriem,
telefoniem un datoriem [15].
Izvērtējot, kura no abām mobilo ierīču platformām būtu piemērotāka kolekcionāra mājas
lapas izstrādē, autore nonāca pie secinājuma izmantot jQuery Mobile, jo tā nodrošināto objektu
klāsts ir plašāks, izskats pievilcīgāks, kā arī tā nodrošina ērtāku funkcionalitāti dinamiska mājas
lapas izkārtojuma izveidei.
23
2. MĀJAS LAPU DROŠĪBA
Attīstoties tehnoloģijām, parādās mājas lapas, kas nav tikai kā izklaide vai informācijas
iegūšanas vieta, bet tās bieži vien satur sensitīvu personas informāciju, kā arī tas kļūst par
uzľēmējdarbības galveno sastāvdaļu - vietu, kur cilvēks var iepazīties ar uzľēmumu, tā
piedāvātajiem pakalpojumiem, pirkt un pasūtīt piedāvātās preces [12].
Šajās mājas lapās notiek arī galvenie uzľēmuma biznesa procesi – tiek uzkrāta
informācija par precēm un pakalpojumiem, klientiem, veiktajiem pasūtījumiem, iespējams,
veidotas arī atskaites, pārvaldīta uzľēmuma informācijas bāze un daudzi citi procesi. Tas ļauj
ietaupīt gan laiku, gan resursus un dod iespēju vadīt uzľēmumu praktiski no jebkuras vietas
pasaulē. Taču līdz ar to uzľēmums kļūst atkarīgs no mājas lapas, un tā kļūst par vienu no
galvenajām uzľēmuma vērtībām. Un tāpat kā uzľēmums aizsargā citas savas būtiskās vērtības –
rūpējas par ražotnes apsardzi, ugunsdrošību, darbinieku drošību – ir jānodrošina arī mājas lapas
drošība, jo no tā var būt atkarīga gan uzľēmuma reputācija, gan, iespējams, pat tālāka
pastāvēšana. Līdzīgi drošības aspekti attiecās arī uz kolekcionāru mājas lapu, jo sevišķi gadījumā,
kad kolekcionārs negrib publicēt savu kolekcijas saturu. Kolekcijas satura publicēšana var rosināt
ļaunprātīgu cilvēku interesi par kolekcionāru un kolekcijas atrašanas vietu [12].
2.1. IT drošības standarti un vadlīnijas
Pasūtot izstrādāt mājas lapu, bieži vien tiek aizmirsts par drošības prasībām vai arī tās tiek
uzskatītas par pašsaprotamām. Lielākā uzmanība tiek pievērsta mājas lapas funkcionālajām
prasībām un izstrādei.
Vēl viens būtisks aspekts ir drošību prasību nepareiza formulēšana, jo tās ir grūti
noformulēt, grūti dod izstrādātājiem konkrētu programmēšanas uzdevumu, kā arī grūti
pārliecināties par to ievērošanu un iekļaušanu izstrādē. Tomēr ir svarīgi atcerēties, ka bez
drošības prasībām nav drošas izstrādes, līdz ar to informācijas tehnoloģiju drošības tēma ir
aprakstīta dažādos standartos un vadlīnijās, kuras izstrādātajiem vajadzētu ievērot [3].
IT drošība ir ļoti apjomīga tēma, tāpēc autore izvēlējusies atspoguļoti tikai būtiskāko.
Atbildīgajiem par IT drošību vispirms vajadzētu [3]:
veikt aizsargājamo resursu identificēšanu;
veikt risku analīzi un no tās izsecināt, kādi ir būtiskākie apdraudējumi, kas attiecas
uz aizsargājamajiem resursiem;
24
atkarībā no apdraudējumiem ir jāizvēlas jomas, kas jāiekļauj IT drošības
noteikumu klāstā;
iepazīties ar standartu un vadlīniju ieteikumiem izvēlētājās jomās.
2.1.1. Standarti LVS ISO/IEC 27001:2013 un LVS ISO/IEC 27002:2013
Ar šī gada 31.oktobri Standartizācijas birojs publicējis jaunākās populāro IT drošības
sistēmas standartu redakcijas. Standarti LVS ISO/IEC 27001:2013„Informācijas tehnoloģija.
Drošības paľēmieni. Informācijas drošības pārvaldības sistēmas. Prasības‖ un LVS ISO/IEC
27002:2013 „Informācijas tehnoloģija. Drošības metodika. Prakses kodekss informācijas drošības
pārvaldībai‖ ietver saprotamas prasības informācijas drošības vadības sistēmas izveidošanai, tajā
skaitā informācijas aktīvu aizsardzību tehniskos, organizatoriskos un administratīvos aspektus.
Standarti ir piemēroti jebkuras nozares uzľēmumam vai organizācijai. Tie nodrošina informācijas
konfidencialitāti un datu aizsardzību. Jaunie standarti aizstāj LVS ISO/IEC 27001:2009 un LVS
ISO/IEC 27002:2008 [11].
Jaunajā redakcijā ľemti vērā ieteikumi no tiem uzľēmumiem, kas jau ir ieviesuši savās
informācijas drošības pārvaldības sistēmās IT drošības standartus un ieguvušas sertifikātus. Tāpat
izmaiľas tika veiktas, lai saskaľotu standartu struktūru ar citiem pārvaldības sistēmu standartiem.
Standarta strukturālā līdzība palīdzēs organizācijai taupīt finanses un laiku, apvienojot iekšējās
procedūras ar organizācijas politiku [11].
2.1.2. OWASP drošības vadlīnijas
Bez IT drošības standartiem, projektu vadītājiem un izstrādātajiem ir arī pieejami
būtiskāko Interneta lietojumu drošības problēmu apkopojumi un vadlīnijas, kurus izstrādājušas
nevalstiskās organizācijas visā pasaulē. Daudzi izstrādātāji tos izmanto par pamatu mājas lapu
izstrādē. Viena no šādām organizācijām ir Open Web Application Security Project.
The Open Web Application Security Project (OWASP) ir kopiena, kuras darbība ir veltīta
tam, lai uzľēmumiem būtu iespēja izstrādāt un uzturēt mājas lapas, kuras ir drošas un uzticamas.
OWASP bezmaksas piedāvā [25]:
mājas lapu drošības rīkus un vadlīnijas;
grāmatas par mājas lapu drošības testēšanu, drošā kodu izstrādi un droša kodu
pārskatu;
lokālas nodaļas visā pasaulē;
25
progresīvo pētniecību;
plašas konferences visā pasaulē;
adresātu sarakstus.
Visi OWASP izstrādāti rīki, dokumenti, forumi un tehnoloģijas ir brīvi pieejamas
ikvienam, kas vēlas uzlabot mājas lapu drošību. Lai nodrošinātu pēc iespējas efektīvāku mājas
lapu drošību, OWASP dalībnieki jaunus rīkus un standartus izstrādā ľemot vērā gan cilvēcisko
faktoru, gan esošo tehnoloģiju līmeni [25].
2.2. Mājas lapu izplatītākie drošības apdraudējumi un risinājumi
Uzbrucēji var izmantot dažādus ceļus, lai nodarītu bojājumus gan pašai mājas lapai, gan
arī uzľēmumam un tā reputācijai. Dažreiz šos uzbrukumu ceļus noteikt ir triviāls uzdevums, bet
dažreiz tas var būt pat ļoti grūti. Līdzīgi ir arī ar kaitējumu, ko tie var nodarīt - sākot ar
nekaitīgiem uzbrukumiem un beidzot ar liela mēroga uzbrukumiem, kas rada lielus zaudējumus
un var pat novest uzľēmumu līdz bankrotam [12].
Autore izvēlējusies tuvāk apskatīt trīs visizplatītākos mājas lapu drošības apdraudējumus,
kas varētu ietekmēt kolekcionāru mājas lapas drošību [12]:
informācijas noplūde, nekorekta sesiju pārvaldība;
XSS (starpvietľu skriptošanas) uzbrukumi;
injekcijas.
2.2.1. Informācijas noplūde, nekorekta sesiju pārvaldība
Šis drošības risks apdraud ikvienu mājas lapu, kurai ir lietotāju reģistrēšanas sistēma, t.s.,
kolekcionāru mājas lapas. Ja tā netiek pareizi pārvaldīta, jebkurš lapas apmeklētājs vai lietotājs
var piekļūt svešu lietotāju kontiem tīšuprāt vai pat gluži nejauši (nekorektas sesijas noildzes
gadījuma). Uzbrucējs, izmantojot informācijas noplūdi vai trūkumus autentifikācijas vai sesiju
pārvaldības funkcijās (piemēram, izpausti lietotājvārdi, paroles, sesiju identifikatori), var uzdoties
par citu lietotāju. Šāda ievainojamība var ļaut dažiem vai pat visiem lietotāju kontiem tikt
iespaidotiem. Tiklīdz uzbrukums ir veiksmīgs, uzbrucējs iegūst pilnu pieeju lietotāja datiem un
var veikt tās pašas darbības leģitīmā lietotāja vārdā. Visbiežāk šādu uzbrukumu mērķis ir
priviliģēti lietotāji, kā, piemēram, administratori [12].
26
Šāda tipa uzbrukumu veikt var gan anonīms ārējs lietotājs, gan reģistrēts lietotājs, kas var
mēģināt izmantot cita lietotāja kontu vai arī iekšējs lietotājs (uzľēmuma darbinieks), kas vēlās
noslēpt savas darbības [12].
Šādas problēmas rodas, ja tiek pielietota nepilnīga lietotāju autentifikācija (lietotāja
identitātes pārbaudes procedūra) un sesiju pārvaldība. Rezultātā, rodas trūkumi tādās jomās kā
atteikšanās (Log out), paroles pārvaldība, noildze (laika intervāls no lietotāja pieslēgšanās
sistēmai līdz brīdim, kad lietotājam tiek pieprasīta atkārtota autorizēšanās), "atceries mani" vai
"atceries paroli" ("Remember me" vai "Remember password"), slepenais jautājums, konta
atjaunināšana utt. [12].
Kolekcionāru mājas lapās šāda veida uzbrukumi var radīt iespēju neautorizētiem
lietotājiem piekļūt kolekcionāra mājas lapas saturam. Ļaunākajā scenārijā ar šāda veida
uzbrukumu neautorizētais lietotājs var veikt izmaiľas kolekcionāra mājas lapā.
Lai mazinātu vai likvidētu autentifikācijas ievainojamības risku, ir nepieciešams [47]:
nodrošināt vienu drošu rīku kopumu sesiju un autentifikāciju pārvaldībai. Šādiem
rīkiem ir jāattiecas uz drošības standartos un vadlīnijās definēto prasību
ievērošanu, kā arī jānodrošina vienkāršu saskarni izstrādes vajadzībām;
pastiprināti jāuzmanās, lai nepieļautu XSS trūkumus, kas var tikt izmantoti sesiju
identifikatoru zagšanai.
2.2.2. XSS (starpvietņu skriptošanas) uzbrukumi
Ja mājas lapā ir atrodama kāda lietojumprogrammas ievades forma, kas sniedz iespēju
lapas apmeklētājam ievadīt datus (kaut vai tikai komentāru), tā var kļūt par vietu starpvietľu
skriptošanas (XSS) uzbrukumiem. XSS uzbrukumi parasti ir līdzīgi injekcijām, ar kuru palīdzību
tiek ievadīti ļaunprātīgi skripti. Ja mājas lapa nav nodrošināta pret starpvietľu skriptošanu (XSS),
uzbrucējs, nosūtot tekstu ar uzbrukuma kodu var ievieto mājas lapā savu programmu, kas tiek
izpildīta lapas apmeklētāju pārlūkprogrammās, tādējādi iegūstot informāciju par apmeklētāja
datiem, piemēram, viľa lietotāja vārdu un paroli. Tīmekļa lietojumprogrammas, kas neveic tām
iesūtīto datu atbilstošu pārbaudi vai filtrēšanu, ļauj patvaļīgam kodam izpildīties uz klienta
datora. Tiek lēsts, ka nepilnības tīmekļa lietojumprogrammās, kas pieļauj šādas darbības, veido
lielāko daļu drošības ievainojamību mājas lapās. Lai gan starpvietľu skriptošanas (XSS)
uzbrukumu mērķis bieži vien ir lapas apmeklētājs, nevis pati lapa, šie injicētie skripti var arī
27
pārveidot lapas saturu. Mājas lapās, t.s., kolekcionāra mājas lapās, izmantojot šo ievainojamību,
uzbrucējs var [6]:
izpildīt kodu upura tīmekļa pārlūkā;
pārtvert lietotāja sesiju;
ievietot ļaunprātīgu saturu tīmekļa lapā;
pāradresēt lietotājus uz citu lapu;
pārľemt kontroli pār lietotāja pārlūku, izmantojot ļaunprātīgu programmatūru .
Uzbrucējs var būt jebkurš, kas var nosūtīt neuzticamus, nedrošus datus sistēmai. Tie var
būt gan parasti lietotāji, gan reģistrēti lietotāji. Visbiežāk šādas problēmas rodas, ja mājas lapā ir
atrodama ievades forma, kas ļauj lapas apmeklētājam ievadīt informāciju un publicē tos bez
jebkādas pārbaudes, filtrēšanas vai validācijas [6].
XSS draudu mazināšana pieprasa neuzticamo datu atdalīšanu no aktīvā pārlūka satura.
Veicamie drošības pasākumi [48]:
korekti apstrādāt neuzticamos datus atbilstoši HTML kontekstam (HTML BODY
taga, atribūta, JavaScript, CSS vai URL ietvaros), kurā saturs tiks ievietots;
atļauto simbolu pārbaudes ieviešana var palīdzēt pret XSS draudiem, bet tā
nenodrošina pilnīgu aizsardzību. Šādām validācijām noteikti ir arī jāpārbauda
garums, simboli, formāts un citi biznesa noteikumi pirms datu saglabāšanas,
izmanot ievaddatu validācijai paredzētas bibliotēkas (piemēram, AntiSamy vai
theJava HTML Sanitizer Project.);
izmantot pret XSS uzbrukumiem paredzētus rīkus (piemēram, Content Security
Policy).
2.2.3. SQL Injekcijas
SQL injekcijas ir vēl viena plaši izplatīta ievainojamība, kas rodas, ja netiek veikta
ievadīto datu validācija. Atšķirībā no XSS injekcijām, kuru mērķis ir mājas lapas apmeklētāji,
SQL injekcijas veido, lai uzbruktu pašai mājas lapai – precīzāk tā datubāzei [5].
Lielākā daļa SQL injekcijas uzbrukumu parasti norit caur mājas lapu datu ievades formu,
kuras ievadītie dati vēlāk tiek apstrādāti, izmantojot datubāzi (piemēram, reģistrēšanās vai
pieteikšanās forma). Taču tā nav vienīgā vieta, caur kuru uzbrucējs var uzdarboties. Ļoti plaši
izplatīta ir arī uzbrukumi caur URL jeb lapas adresi. Veiksmīgas injekcijas rezultātā var iegūt arī
jutīgo informāciju no datubāzes, to izmainīt (ievadīt, atjaunot, izdzēst), izpildīt administratora
28
darbības (piemēram, noslēgt datu bāzes pārvaldības sistēmu), vai pat izpildīt komandas ar servera
OS. Zagti, zaudēti vai bojāti dati, kas ir vērtīgi, var bojāt uzľēmuma reputāciju vai nest lielus
zaudējumus [5].
Šāda tipa uzbrukumu var veikt jebkurš, kas var nosūtīt neuzticamus, nedrošus datus
sistēmai – gan parasts lietotājs, gan reģistrēts lietotājs. Visbiežāk šādas problēmas rodas, ja
mājas lapā ir atrodama ievades forma, kuras dati tiek apstrādāti datubāzē (piemēram, pieteikšanās
forma), taču ievadītie dati netiek validēti, pārbaudīti vai filtrēti [5].
Kolekcionāru mājas lapās šāda veida uzbrukumi var radīt iespēju nokopēt mājas lapas
datubāzes saturu, izgūt lietotāju autorizācijas informāciju, veikt manipulācijas vai izdzēst datus
no datubāzes, tādējādi pārtraucot mājas lapas darbību.
Drošība ir viens no būtiskākajiem aspektiem, izstrādājot kādu lietotni, it īpaši, ja tā ir
pieejama tādā publiskā vidē kā vispasaules tīmeklis. Viena kļūme drošības ziľā, un visa klientu
informācija vai citi svarīgi dati var kļūt pieejami nepiederošām personām, modificēti vai pat
pazaudēti pavisam [5].
Tīmeklī ir pieejama ļoti plaša informācija par dažādām ievainojamībām un ir pieejami
dažādi rīki, kurus uzbrucējs var izmantot uzbrukumos mājas lapai pat tad, ja viľam nav īpašu
zināšanu mājas lapu izstrādē. Vislabāk izvairīties no drošības ievainojamībām izstrādes posmā,
kad tiek izlemts, kāda sistēmas arhitektūra tiks lietota, kā tiks organizēta saziľa ar datubāzi, kā
tiks pārvaldītas administrācijas funkcijas un autorizācijas mehānismi utt. Daudz vieglāk ir novērst
kļūdu, pirms tā ir radījusi nepatīkamas sekas. Tādēļ mājas lapas izstrādātājiem noteikti būtu
jāpievērš uzmanība, lai mājas lapa būtu nodrošināta pret iepriekš minētajiem trīs visbiežāk
sastopamiem draudiem [5].
Lai mazinātu un novērstu šāda veida draudus, neuzticamos datus ir nepieciešams glabāt
atsevišķi no komandām un pieprasījumiem. Iespējamie risinājumi [46]:
izmantot API (Application programming interface), kas pieļauj tikai
parametrizētus pieprasījumus.
gadījumā, ja tas nav iespējams, tad veikt speciālo simbolu izgriešanu vai
aizvietošanu.
veidot atļauto simbolu sarakstu un veikt atbilstošas pārbaudes pie formas
saglabāšanas.
29
3. KOLEKCIONĀRA MĀJAS LAPAS IZSTRĀDE
Kolekcionāra mājas lapas mērķis ir dot iespēju kolekcionāra šauram paziľu lokam ar
Interneta starpniecību redzēt kolekcijā esošos vienumus.
3.1. Prasību analīze [56]
Lai precīzāk noskaidrotu mājas lapas prasības un aptvertu reģistrējamās kolekcijas
apjomu, tika organizēta klātienes tikšanās ar kolekcijas īpašnieku. Tikšanās reizē kolekcijas
īpašnieks izteica šādas vēlmes:
iespēju redzēt mazo alkoholisko pudelīšu (turpmāk tekstā - pudelītes) bildes;
iespēju redzēt, no kuras valsts ir katrs vienums;
iespēju redzēt vienuma tilpumu un fasējuma veidu;
iespēju redzēt alkohola stiprumu un veidu.
Intervijas laikā (skatīt 1.pielikumu) tika noskaidrots, ka kolekcijas īpašnieks nevēlas, lai
kolekcija būtu pieejama publiski, bet vēlas, lai būtu iespēja ierobežot pieeju kolekcijas
apskatīšanai Interneta vidē.
Tika secināts, ka kolekcijas apskatīšana mājas lapā galvenokārt notiks iegādājoties jaunu
pudelīti, lai pārliecinātos, ka kolekcijā vēl tādas pudelītes nav.
Tikšanās laikā kolekcijas apjoms bija sasniedzis 487 pudelītes. Ľemot vērā jau lielo un
augošo pudelīšu skaitu, tika secināts, ka uzsvars ir jāliek uz ērtu un ātru pudelīšu meklēšanu. Šim
nolūkam ir nepieciešams pārdomāt, kā vislabāk strukturēt ievadāmo informāciju.
Diskutējot par to, cik un kādās valodās mājas lapai būtu jābūt pieejamai, tika pieľemts
lēmums izstrādāt to tikai vienā valodā. Pamatojums šādam lēmumam bija šaurā auditorija, kurai
šī mājas lapa ir paredzēta.
Runājot par kolekcijas papildināšanas biežumu, kolekcijas īpašnieks pastāstīja, ka jauno
pudelīšu pieaugums katru mēnesi ir dažāds. Tas atkarīgs no pudelīšu produkcijas aprites Latvijas
veikalos, kā arī kolekcijas īpašnieka, kā arī viľa draugu ceļojumiem uz citām valstīm.
Tika plānots, ka pēc mājas lapas izstrādes, kolekcijas uzturēšanu un jauno pudelīšu ievadi
veiks pats kolekcijas īpašnieks.
Intervijas laikā kolekcijas īpašnieks kā galveno prasību minēja iespējami īsāku mājas
lapas izstrādes laiku, kas nodrošinātu ātrāku pudelīšu kolekcijas informācijas pieejamību
Interneta vidē.
30
3.2. Lietotāja saskarnes izstrāde
Prasību analīzes laikā tika noskaidrots, ka kolekcijas apskatīšana mājas lapā galvenokārt
notiks iegādājoties jaunu pudelīti. Tas ļautu izvairīties no dublikātu iegādes, kas sekmētu
kolekcijas papildināšanu ar unikālām alkohola pudelītēm. Līdz ar to tika secināts, ka
kolekcionāra mājas lapas izstrādē jāizmanto tehnoloģijas, kas ļauj mājas lapu ātri un ērti apskatīt
attālināti ar mobilo ierīču palīdzību.
Autore pieľēma lēmumu par pamatu lietotāja saskarnei izmantot nodaļā 1.4 aprakstīto
jQuery Mobile platformu. Atbilstoši platformas nodrošinātajai funkcionalitātei ir jāizveido gan
izmantojamo krāsu kombinācijas, gan lietotāja saskarnes izkārtojumi.
3.2.1. Krāsu kombinācija
Mājas lapas izstrādes procesā pirms tiek pievienota jebkāda krāsa, attēli vai tipogrāfija, ir
jāapsver, kāda būs tās radītā noskaľa. Mājas lapai jāļauj apmeklētājiem nojaust tās stilu, misiju,
mērķus un saturu zemapziľas līmenī. Ja noskaľu izdevies radīt, tā ir sajūtama, taču tā nav
specifiska elementu kombinācija. Izmantotās krāsas ļoti spēcīgi ietekmē vispārējo mājas lapas
izskatu. Krāsu teorija tiek izmantota, lai paustu dažādas izjūtas un nozīmes. Pareizo krāsu izvēle
mājas lapai ir viens no visgrūtākajiem uzdevumiem [9].
Izstrādes procesā kolekcionāra mājas lapai tika izvēlēta neitrālā krāsu shēma, kurai
kontrastu piešķir dzeltenā krāsa. Šāds krāsu salikums veido klasisku un elegantu noskaľu. Par
piemēru var minēt MEA-CUPPA beķerejas mājas lapu (3.1.att.), kurā arī tika izmantoti šādi krāsu
toľi. Ir zināms, ka arī ar minimālo krāsu shēmu var radīt kontrastu un sniegt unikālu un efektīgu
vizuālo iespaidu [14].
3.1. att. MEA-CUPPA beķeras mājas lapa [14]
31
3.2.2. Mājas lapas lietotāju saskarne
Kolekcionāra mājas lapas lietotāju saskarnes viens no galvenajiem mērķiem ir kolekcijas
informācijas ērta attēlošana. Ľemot vērā kolekcijas specifiku, tad uzsvars tiks likts uz pudelīšu
attēliem, uz kura nospiežot, parādītos arī pudelītes apraksts.
Vēl viens svarīgs aspekts kolekcionāra mājas lapā ir ērta navigācija, lai ātri varētu atrast
attiecīgo pudelīti. Sākumlapā būs pieejama izvēlne ar valstu nosaukumiem un pudelīšu skaitu
tajā. Uzspiežot uz konkrētas valsts, tiks parādītas izvēlētā valstī ražotās pudelītes (valstu lapa),
kā arī papildus izvēlne, kurā varēs izvēlēties alkohola veidu, lai sašaurinātu attēloto pudelīšu
diapazonu. Tiks izveidota arī iespēja apskatīt izvēlētā alkohola veida pudelītes citās valstīs.
Tā kā kolekcionāra mājas lapu plānots arī apskatīt izmantojot viedtālruľus un
planšetdatorus, tad mājas lapas navigācija arī tiks pielāgota mobilās ierīces ekrāna platumam -
(līdz 560 px platumam). Mobilo ierīču mājas lapas lietotāju saskarnē galvenokārt mainīsies
pudelīšu attēla novietojumi, tas būs zem valstu vai alkohola veida izvēlnes. (skatīt 3.2.att.)
3.2.att. Lietotāju saskarne: A-Sākumlapa no 560 px platuma, B-Sākumlapa līdz 560 px platumam,
C- Valstu lapa no 560 px platuma, D-Valstu lapa līdz 560 px platumam. [autores izstrādāts]
A
B
C D
32
Ērtākai un ātrākai mājas lapas lietošanai, kolekcionāra mājas lapā tiks izvietotas arī
vairākas komandpogas:
o uz sākumlapu atgriešanas pogu;
o meklēšanas pogu;
o uz iepriekšējas lapas atgriešanas pogu;
o pogu, kas atvērs logu jaunas pudelītes pievienošanai;
o pogu, kas atvērs logu, kurā varēs mainīt mājas lapas iestatījumus (lietotāju
tiesības, valstu, veidu, fasējuma parametrus);
o darba beigšanas poga pogu.
3.3. Mājas lapas projektējums
Uzsākot mājas lapas projektējumu, atbilstoši prasībām tika izveidots datubāzes modelis
(skatīt 3.3.att.)
3.3.att. Datubāzes modelis [autores izstrādāts]
3.3.1. Datubāzes modelis Datubāzē tika paredzētas šādas tabulas:
Lietotāji – tabulā tiek glabāta mājas lapas lietotāju informācija. Papildus galvenajai
informācijai ir izdalītas divas pazīmes. Tabulas lauki:
o id – ieraksta identifikators;
o vards – lauks lietotāja vārda un uzvārda glabāšanai;
33
o epasts – lauks lietotāja e-pasta adreses glabāšanai. E-pasts ir viens no lietotāja
identifikatoriem. Šī iemesla dēļ e-pasta adresēm ir jābūt unikālām (ierobežojums
arī datubāzes līmenī);
o parole – lietotāja parole kriptēt veidā (MD5);
o apstiprināts – satur informāciju, vai lietotājs ir tiesīgs autorizēties sistēmā. Pēc
reģistrācijas lietotājiem tiek uzstādīts statuss ―neapstiprināts‖. Autorizēties sistēmā
varēs tikai administratora apstiprināti lietotāji;
o admins – satur informāciju, vai lietotājs ir administrators.
Valstis – tabulā tiek glabāta informācija par sistēmā pieejamajām valstīm (norādīšanai pie
pudelītēm). Tabulas lauki:
o id – ieraksta identifikators;
o kods – valsts apzīmējums, kas uzrādās adreses ceļā, atverot šīs valsts pudelītes
apskatīšanai;
o f_nos – karoga faila apzīmējums. Ielādētā faila nosaukums. Ceļš uz failu glabājas
mājas lapas uzstādījumos;
o nosaukums – valsts nosaukums.
Veidi – tabulā tiek glabāta informācija par sistēmā pieejamajiem dzērienu veidiem
(norādīšanai pie pudelītēm). Tabulas lauki:
o id – ieraksta identifikators;
o nosaukums – veida nosaukums;
o url – veida apzīmējums, kas uzrādās adreses ceļā atverot šīs veida pudelītes
apskatīšanai.
Fasejums – tabulā tiek glabāta informācija par sistēmā pieejamajiem pudelīšu fasējumu
veidiem (norādīšanai pie pudelītēm). Tabulas lauki:
o id – ieraksta identifikators;
o nosaukums – fasējuma nosaukums.
Ieraksti – tabulā tiek glabāta kolekcijas pudelīšu galvenā informācija, kā arī norādes uz citām
pakārtotajām tabulām.
o id – ieraksta identifikators;
o nosaukums – pudelītes nosaukums;
o stiprums – pudelītes satura alkohola stiprums;
o tilpums – pudelītes tilpums;
34
o valsts_id – id no tabulas valstis. Valsts id atbilstoši tam no kuras pudelīte nākusi;
o veida_id – id no tabulas veidi. Veida id atbilstoši dzēriena veidam;
o fasejuma_id – id no tabulas fasejums. Fasējuma id atbilstoši pudelītes fasējuma
veidam;
o pievienotaja_id – id no tabulas lietotaji. Lietotāja id, kurš veicis pudelītes
pievienošanu;
o atjaunots – pēdējais pudelītes informācijas atjaunošanas datums;
o izveidots – datums, kurā pudelītes informācija tika pievienota.
Bildes – tabulā tiek glabāta norāde uz pudelīšu bildēm. Tabulas lauki:
o id – ieraksta identifikators;
o f_nos – karoga faila apzīmējums. Ielādētā faila nosaukums. Ceļš uz failu glabājas
mājas lapas uzstādījumos;
o ieraksts – id no tabulas ieraksti. Ieraksta id, kuram bilde tika pievienota;
o lietotaja_id – id no tabulas lietotaji. Lietotāja id, kurš veicis bildes pievienošanu.
Bildes tika glabātas atsevišķā tabulā, lai nepieciešamības gadījumā mājas lapu var
papildināt ar iespēju vienumam pievienot vairāk par vienu bildi.
3.3.2. Failu struktūra
Veicot izstrādi ar Zend Framework, realizējamā funkcionalitāte tiek sadalīta pa moduļiem.
Katra moduļa mapju struktūra ir definēta, bet funkcionalitātes sadalījums un kā tiek izmantota šī
struktūra, ir izstrādātāja izvēle.[36]
Zend Framework2 mapju struktūra ir attēlota 3.1.tabulā.
3.1.tabula
Zend Framework2 mapju struktūra [autores izstrādāts]
Mape Apraksts
/config Mapē atrodas ZF2 konfigurācijas faili (piemēram, datubāzes pieslēguma
parametri).
/data Mapē tiek glabāti kopīgie mājas lapas dati (piemēram, kešatmiľa, meklēšanas
indeksa faili).
/module Mapē tiek glabāti visi mājas lapas moduļi.
/module/Test Moduļa galvenā mape. Tajā atrodas arī moduļa definīcijas fails Module.php. Tajā
tiek definēts, kur atrodas moduļa konfigurācija, kas ir jādara moduli ielādējot.
/module/Test/config Moduļa konfigurācijas mape. Konfigurācijas failā application.config.php tiek
definēts kādi kontrolieri tiek izmantoti, kādi URL ceļi ir izmantojami,
konfigurācijas mainīgie un cita konfigurācijas informācija.
/module/Test/src Moduļa izpildes kods.
/module/Test/src/Test Moduļa nosaukumvieta (namespace) izpildes kodam.
/module/Test/src/Test/Contr
oller
Mape kontrolieru failu izvietošanai.
35
3.1.tabulas turpinājums
/module/Test/src/Test/Form Mape formu failu izvietošanai.
/module/Test/src/Test/Model Mape moduļa failu izvietošanai (piemēram, DB tabulu un tabulu apstrādes funkciju
definēšanai).
/module/Test/view Kopējā mape izkārtojuma failu izvietošanai.
/module/Test/view/test Mape test nosaukumvietas izkārtojuma failu izvietošanai.
/module/Test/view/test/test Mape test nosaukumvietas test kontroliera izkārtojuma failu izvietošanai.
/public Mape publiski pieejamo failu izvietošanai (piemēram, *.css, *.js, attēlu). Šajā mapē
ir izvietots arī index.php fails, caur kuru tiek veikti visu pieprasījumu apstrāde.
/vendor Mape ārējo bibliotēku uzglabāšanai. Piemēram paša Zend Framework bibliotēkas
faili glabājas iekš šīs mapes.
3.3.3. Modulis Application
Modulis Application tiek izsaukts brīdī, kad notiek mājas lapas atvēršana, nenorādot
papildus URL ceļu.
Šī moduļa funkcijas:
pārsūtīt uz Collection moduli autorizētus lietotājus;
pārsūtīt uz Users moduli (Autorizācijas formu) neautorizētus lietotājus;
nodrošināt lapas galvenā izkārtojuma pieejamību.
Ľemot vērā moduļa funkcijas, tad tā sastāvs ir salīdzinoši vienkāršs. Papildus
konfigurācijas failiem tajā atrodas kontrolieris, kurš nodrošina pārsūtīšanu, kā arī galvenais
izkārtojuma (layout) fails.
3.3.4. Modulis Users
Mājas lapas lietotāji ir iedalīti 2 grupās: viesi un administratori.
Users moduļa galvenās funkcijas ir nodrošināt:
autorizāciju (pieslēgšanās sistēmai izmantojot autorizācijas formu);
autentifikāciju (tiesību pārbaude piekļūšanai moduļiem);
reģistrāciju.
Autorizācijas nodrošināšanai ir izveidots autorizācijas pārvaldības kontrolieris,
autorizācijas forma, lietotāju informācijas lasīšanas modulis (datus lasa no datubāzes).
Autorizācijai un lietotāja sesijai tika izmantota Zend Framework sesiju pārvaldības nodrošinātā
funkcionalitāte. [41, 39-59 p]
Autentifikācijas pārvaldība ir bāzēta uz piekļuves tiesību definēšanu dažādām URL
adresēm.
Tika definētas šādas piekļuves tiesības:
36
Neautorizēts lietotājs var piekļūt:
o login – autorizācijas lapa;
o register – reģistrācijas lapa;
Lietotājs (ne administrators) var piekļūt:
o collection – kolekcijas apskatīšanas lapa;
o pictures – ceļš caur kuru tiek nodrošināta piekļuve pie kolekcijas bildēm;
o search – meklēšanas lapa.
Administrators var piekļūt visām iepriekšējām un satura pārvaldības lapām.
Lietotāja grupa papildus sesijai tiek saglabāta arī iekš sīkdatnes (cookie), lai papildus
sesijas pārbaudei, pie katra pieprasījuma nebūtu jāpārliecinās par lietotāja grupas piederību.
Gadījumā, ja tiek pieprasīta kāda lapa, kur ir nepieciešamas administratora tiesības, tad gan katrā
pieprasījumā tiek veikta pārbaude, vai tiešām lietotājs ir tiesīgs piekļūt administratora
funkcionalitātei.
3.3.5. Modulis Collection
Kolekcijas informācijas attēlošanai ir izveidots modulis Collection.
Collection moduļa funkcijas:
attēlot kolekcijas vienumu saraktu atbilstoši izvēlētajiem kritērijiem;
nodrošināt valstu izvēlni un atlases funkcionalitāti;
nodrošināt veidu izvēlni un tās funkcionalitāti;
pudelīšu meklēšanu pēc dažādiem parametriem;
pudelītes informācijas attēlošanu;
pilna izmēra pudelītes attēla attēlošanu.
Nepieciešamā uzdevuma veikšanai tikai izveidoti trīs kontrolieri: Collection, Search un
Pictures.
Collection kontrolieris nodrošina visu nepieciešamo informāciju saistībā ar kolekcijas,
valstu un veidu informāciju. Kolekcijas pudelīšu saraksta identifikatori, kuri atbilst meklēšanas
kritērijiem tiek saglabāti sīkdatnē (cookie) un, izmantojot šo sarakstu, tiek nodrošināta
pārslēgšanās starp pudelītēm to apskatīšanas ekrānā. Šādi tiek nodrošināta arī korekta
pārslēgšanās pa nejaušā (random) secībā atgrieztu pudelīšu sarakstu.
Pictures kontrolieris nodrošina pudelīšu attēlu attēlošanu, kā arī nepieciešamības
gadījumā samazināto attēlu ģenerēšanu (ja attēls ir iztrūkstošs).
37
Mazāku attēlu ģenerēšanai tiek izmantota Webino bibliotēka [36].
Search kontrolieris tiek izmantots meklēšanas funkcionalitātes nodrošināšanai.
Meklēšanas kontrolierī par pamatu tiek izmantots Zend nodrošinātā Lucene meklētāja
integrācija [55][40, 317-356p].
3.3.6. Modulis Settings
Modulis Settings tika izveidots, lai nodrošinātu visas nepieciešamās satura pārvaldības
funkcijas.
Settings moduļa funkcijas:
reģistrēto lietotāju pārvaldība;
kolekcijas ierakstu pārvaldība;
valstu pārvaldība;
fasējumu pārvaldība;
veidu pārvaldība.
Katras pārvaldības funkcionalitātes nodrošināšanai tika izveidots atsevišķs kontrolieris,
forma un atbilstošie moduļi.
UsersManager kontrolieris nodrošina lietotāju pārvaldību. Atšķirībā no reģistrācijas
formas lietotāju pārvaldības formā ir iespēja norādīt vai lietotājs ir aktīvs, kā arī vai lietotājam ir
administratora iespējas. Lietotāja e-pasta adresei sistēmā ir jābūt unikālai.
CollectionManager kontrolieris nodrošina kolekcijas ierakstu pārvaldību. Kolekcijas
pārvaldnieka sarakstā tiek attēlotas pēdējās pievienotās 20 pudelītes, bet pārējo pudelīšu
piekļūšanai ir paredzēts izmanot Collection moduļa nodrošināto funkcionalitāti kolekcijas
apskatīšanai. Ja lietotājs ir administrators, tad, apskatot pudelītes, tam parādās papildus iespējas
atvērt rediģēšanas formu vai arī dzēst izvēlēto pudelīti. Līdzīgi ir iznesta arī jaunas pudelītes
pievienošanas poga lapas galvenē.
CountryManager kontrolieris nodrošina valstu informācijas pārvaldību. Valstu
pārvaldībā, papildus formas ievades lauku pārbaudēm, ir izveidotas pārbaudes, lai nevar
pievienot divas valstis ar vienādu valsts kodu, kā arī pārbaude, kas neļauj dzēst valsti, ja tā ir
norādīta pie kādas pudelītes.
TypesManager kontrolieris nodrošina veidu pārvaldību. Papildus formas ievades datu
pārbaudēm, veidu pārvaldībai ir pievienota pārbaude, kas neļauj izveidot divus veidus ar vienādu
URL, kā arī dzēst izmantotu veidu.
38
PackingsManager kontrolieris nodrošina fasējumu veidu pārvaldību. Papildus formas
ievades datu pārbaudei, fasējumu pārvaldībai ir pievienota pārbaude, kas neļauj dzēst izmantotu
fasējumu.
3.4. Testēšanas scenāriji un rezultāti
Mājas lapas testēšanai izvirzītie scenāriji:
1. Lietotāja reģistrācija:
reģistrācijas formas aizpildīšana, nenorādot visus obligātos laukus;
reģistrācijas formas nosūtīšana;
kļūdas paziľojumu pārbaude;
korektas reģistrācijas formas aizpildīšana;
reģistrācijas formas nosūtīšana;
autorizācijas pārbaude (jābūt neveiksmīgai);
lietotāja aktivizēšana, izmantojot administratora lietotāju;
autorizācijas pārbaude (jābūt veiksmīgai).
2. Kolekcijas apskatīšana:
autorizācija sistēmā;
kolekcijas lapas atvēršana;
valsts izvēle no saraksta un atvēršana;
veida izvēle no saraksta un atvēršana;
pudelītes informācijas apskatīšana;
pārbaudīšana, vai korekti pārslēdzās uz nākošajām pudelītēm;
pudelītes pilna izmēra bildes apskatīšana.
3. Kolekcijas meklēšana:
autorizācija sistēmā ar administratora lietotāju;
pudelītes meklēšana pēc valsts, veida, fasējuma, tilpuma, stipruma un nosaukuma;
pudelītes informācijas rediģēšana, pievienojot izvēlētu atslēgas vārdu nosaukumā;
izmaiľu saglabāšana;
meklēšana pēc izvēlētā atslēgas vārda.
4. Lietotāju pārvaldība:
autorizācija sistēmā ar administratora lietotāju;
39
lietotāju pārvaldības saraksta atvēršana;
lietotāja atvēršana rediģēšanai;
lietotāja vārda maiľa, nenorādot jaunu paroli;
datu saglabāšana;
lietotāja rediģēšana, norādot jaunu paroli;
datu saglabāšana;
jauna lietotāja pievienošana;
datu saglabāšana;
izveidotā lietotāja dzēšana.
5. Valstu pārvaldība:
autorizācija sistēmā ar administratora lietotāju;
valstu pārvaldības saraksta atvēršana;
izvēlētas valsts informācijas rediģēšana, nemainot karoga bildi;
datu saglabāšana;
jaunas valsts pievienošana, norādot eksistējušu kodu;
datu saglabāšana;
jaunas valsts pievienošana, pievienojot neatbilstošu attēlu;
datu saglabāšana;
jaunas valsts pievienošana norādot korektus datus;
datu saglabāšana;
izveidotās valsts dzēšana.
6. Veidu pārvaldība
autorizācija sistēmā ar administratora lietotāju;
veidu pārvaldības saraksta atvēršana;
veida pievienošana, norādot eksistējušu URL;
datu saglabāšana;
veida pievienošana, norādot korektus datus;
datu saglabāšana;
izveidotās veida dzēšana.
7. Fasējumu pārvaldība:
autorizācija sistēmā ar administratora lietotāju;
40
fasējumu pārvaldības saraksta atvēršana;
fasējuma pievienošana nenorādot nosaukumu;
datu saglabāšana;
fasējuma pievienošana, norādot korektus datus;
datu saglabāšana;
izveidotā fasējuma dzēšana.
8. Kolekcijas pārvaldība:
autorizācija sistēmā ar administratora lietotāju;
jaunas pudelītes pievienošana, nenorādot bildi un korektus datus;
datu saglabāšana;
jaunas pudelītes pievienošana, nenorādot bildi, bet norādot korektus datus;
datu saglabāšana;
jaunas pudelītes pievienošana, norādot nederīgu (mazāku par 350px) bildi, bet
norādot korektus datus;
datu saglabāšana;
jaunas pudelītes pievienošana, norādot derīgu bildi un korektus datus;
datu saglabāšana;
pievienotās pudelītes informācijas rediģēšana, nenorādot jaunu bildi (jāsaglabā
iepriekšējā);
datu saglabāšana;
jaunās pudelītes dzēšana.
Izstrādes ietvaros mājas lapa tika testēta pret augstāk izvirzītajiem testēšanas scenārijiem.
Testēšanas ietvaros tika konstatētas dažādas kļūdas, kas tika novērstas. Pēc izstrādes beigām visi
testēšanas scenāriji tika pārbaudīti atkārtoti. Atkārtotā pārbaudē kļūdas netika identificētas.
Pēc mājas lapas izvietošanas uz hostinga platformas arī tika veikta testēšanas scenāriju
pārbaude. Uz hostinga platformas arī rezultāti bija veiksmīgi.
3.5. Kolekcijas digitalizēšana
Kolekcijas digitalizēšanu var iedalīt 3 daļās [56]:
pudelīšu informācijas reģistrēšana;
pudelīšu fotografēšana;
41
pudelīšu fotogrāfiju apstrādāšana.
Pirms pudelīšu reģistrēšanas un fotografēšanas tika veikti sagatavošanās darbi. Pudelīšu
reģistrēšanai tika izveidota MS Excel tabula ar šādām kolonām [56]:
nr. ( numurs pēc kārtas);
nosaukums;
valsts;
veids (piemēram, konjaks, vodka);
fasējums (piemēram, stikls, stikls + kārba);
grādi;
tilpums.
Pudelīšu fotografēšanai no balta papīra tika izveidots vienmērīgi balts fons, un fotoaparāts
novietots uz statīva fiksētā pozīcijā. Statīvs ir nepieciešams, lai varētu fotografēt bez zibspuldzes.
Pēc dažām proves fotogrāfijām, viss bija sagatavots kolekcijas reģistrēšanas un fotografēšanas
uzsākšanai [56].
Pudelīšu fotografēšana tika veikta kolekcionāra klātbūtnē pēc kolekcionāra izvēlētas
secības. Pēc četru dienu sistemātiska darba visa kolekcija bija reģistrēta un safotografēta [56].
Nākošais solis bija uzľemto fotogrāfiju apstrādāšana. Pudelītes ir ļoti dažādos izmēros un,
neskatoties uz fotoaparāta statīvu, daļa no bildēm bija nedaudz ieslīpas. Lai apstrādātu attēlus tika
izvēlēta Google bezmaksas programmatūra „Picasa 3‖ [38]. Šī programma nodrošina ļoti ērtu
attēlu pamatapstrādi. Apskatot vairākas pudelītes, vienotam tika izvēlēts tās izgriezt ar malu
proporciju 5:8. Katrai pudelītei tik