87
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

ALBERTA KOLEDŢA · 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

  • 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