MagistraDarbuTemas

Pēdējais mainījis Administrator 2011-06-06 17:13

Aug 13 2010

Tēma: Objektorientācijas, funkcionālās programmēšanas un tīmekļa prototipu izstrādes pamati valodā Scala

Apraksts: Programmēšanas apguve mūsdienās nozīmē dažādu algoritmu, datu struktūru, projektēšanas šablonu (design patterns, ietvaru, daudzpavedienu lietotņu utml. mācīšanos. Visbiežāk šādas lietas apraksta vai nu mākslīgā "algoritmiskajā valodā" (teiksim, Corman, Leiserson, Rivest "Introduction to Algorithms"), vai C++ (Gamma, Helm, Johnson, Vlissides "Design Patterns"), vai Java (vairākas grāmatas par Web projektēšanas šabloniem un ietvariem - t.sk. literatūra par Spring ietvaru/framework).

Ideja šim maģ.darbam - ilustrēt dažādas programmēšanas idejas (it īpaši tās, kas vajadzīgas tīmekļa lietojumprogrammu izstrādē - t.i. objektu/relāciju ietvarus, MVC, sesijas stāvokļa saglabāšanu, HTML skatu ģenerēšanu) ar Scala, jo šī valoda apvieno scenāriju valodu kompakto pierakstu ar C++/Java (un faktiski vēl attīstītāku) tipu un mainīgo statiskās deklarēšanas sistēmu, t.i. ir labi piemērota sarežģītu algoritmu visai īsam pierakstam. Darba rezultāts varētu izskatīties kā atsevišķas nodaļas mācību grāmatai; uzsvars arī pārējā maģ.darbā būtu - kvalitatīva rakstīšana, tehnisku ideju attēlošana pārskatāmos gabaliņos un gabaliņu apzīmēšana (chunking and labeling) - pa ceļam iepazīstot populāras tehnisko dokumentētāju pieejas, piemēram Information Mapping metodi - sk. http://www.infomap.com/index.cfm/themethod . Iespējamais "zilais sapnis" - panākt, lai valodai Scala būtu ievad-mācību materiāls, kas ļautu ātri apmācīt cilvēkus, kuri nodarbosies ar tīmekļa lietotņu (jeb Web aplikāciju) izstrādi. (Līdzīgi kā bija Accentures vasaras kursi - Software Engineering Fundamentals priekš Java; vai arī Alinas Vasiļjevas "tīmekļa programmēšanas" kurss maģistratūrā). Uzmanības centrā nevis valodas sintakses apguve, bet universālas programmēšanas idejas.

Avoti:

  1. Scala Overview - http://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaOverview.pdf
  2. The Definitive Guide to Lift - http://the-lift-book.googlegroups.com/web/master.pdf?gda=pQzsqDwAAADlLWfaIGSuND9v7AB46pO0n447b8lHK5XNintQ6m4jsphQBWRFAWHsPl_3piZ--U79Wm-ajmzVoAFUlE7c_fAt
TĒMA: Semantiski anotētu datu daudzdimensiju pārlūkošana

Apraksts: Ikvienai Web lietotnei, kurā attēlojams liels daudzums līdzīga tipa objektu (preču apraksti, cilvēku kontaktinformācija, tautasdziesmas, fotogrāfijas, ziņu raksti, biznesa dokumenti, utml.) ir vajadzīgas vairākas navigācijas sistēmas. Parasti Web lietotnēs izmanto divus mehānismus - sadalīšanu kategorijās pēc kādas pazīmes un arī meklēšana pilnā tekstā ar atslēgvārdu palīdzību. Dažos gadījumos ar to vien ir par maz - un vajag piedāvāt lietotājam iespēju filtrēt objektus pārmaiņus pēc dažādām pazīmēm. Šādas daudzdimensiju pārlūkošanas (facetted browse) piemēri ir sastopami e-komercijā. Piemēram, kā Amazon.com tirgojas ar digitāliem fotoaparātiem. Sk. http://www.amazon.co.uk/Digital-Cameras-Accessories-Photography-Bundles/b/ref=amb_link_64355965_6?ie=UTF8&node=560836&pf_rd_m=A3P5ROKL5A1OLE&pf_rd_s=left-1&pf_rd_r=1NGP4F6W65BM6N5ZSWS1&pf_rd_t=101&pf_rd_p=211901487&pf_rd_i=560834 (t.i. lietotājs var filtrēt fotoaparātus pēc vismaz 8 dažādiem parametriem - t.sk. ražotāja, megapikseļiem, optiskā palielinājuma, skatu meklētāja ekrāna īpašībām, cenas, utml.) - pie tam, izvēloties jebkuru filtru kombināciju, ir redzams, cik vēl rezultātu ir atlicis, un vai jāpievieno/jānomet kādi no filtriem. Tur pietiek ar pietiekami elastīgi saveidotiem SQL pieprasījumiem.

Ideja maģ.darbam: Praksē ir sastopami arī tādi gadījumi, kad līdzīgi objekti jāmeklē vairākās datu krātuvēs jeb datubāzēs. Piemēram, ja Amazon.com vietā līdzīgu servisu gribētu izveidot portālā "Salidzini.lv", tad vajadzētu apstaigāt fotokameru datus pa visiem Interneta veikaliem, kur tos tirgo (viņi savu datubāzu struktūru nemaz neatklāj; šādi dati ir jāapstaigā). Vai arī - dziesmu vietnē būtu daļa publiski pieejamu dziesmu (teiksim, tautasdziesmas), kuras glabātos uz centrālā servera (public domain), bet ar autortiesībām aizsargātās dziesmas - uz citiem serveriem. Šādā gadījumā nav praktiski veidot vienu lielu datubāzi (jo tā būtu visu laiku jāsinhronizē - turklāt varētu rasties arī juridiski šķēršļi, jo ar autortiesībām aizsargātus materiālus nemaz nedrīkst izvietot uz visu valstu serveriem. Šajā gadījumā tehnoloģisks risinājums ir - regulāri ievākt nevis pašas dziesmas vai pilnus ierakstus par fotokamerām, bet gan viņu semantiskus (RDF) datus (līdzīgi kā to dara RSS sindikācija). Un veidot Semantiskā tīmekļa lietojumprogrammu (izmantojot Javas RDF-iskās bibliotēkas - Jena vai Sezame; un SPARQL pieprasījumus), lai iegūtu daudzdimensiju pārlūkošanai nepieciešamos datus un varētu zīmēt Web lietojumprogrammā atbilstošus navigācijas paneļus - kur hipersaites vestu uz attiecīgā resursa īsto atrašanās vietu. Iespējamais "zilais sapnis" - izveidot nelielu mūzikas servisu, kurš ļautu vienā daudzdimensiju pārlūkā meklēt dažādas Public Domain (un pēc lietotāja izvēles - arī ar autortiesībām aizsargātas dziesmas) - neglabājot visus nepieciešamos datus pastāvīgi uz viena servera, bet gan ļaujot lietotājam dinamiski pieslēgt viņu interesējošos repozitorijus.

Avoti:

  1. MIT projekts Exhibit - http://www.simile-widgets.org/exhibit/
  2. Extending Facetted Navigation for RDF Data - http://iswc2006.semanticweb.org/items/Oren2006nx.pdf
  3. Jena Framework and inference engine - http://jena.sourceforge.net/inference/
TĒMA: REA (Resources, Events, Agents) modelis grāmatvedības un ERP sistēmās un atskaišu iegūšana

Apraksts: Uzņēmumu informācijas sistēmām ir jāuzskaita gan ekonomiskie notikumi (events - kuru laikā mainās uzņēmuma aktīvu vērtība), gan arī visdažādāko veidu solījumi (commitments - piemēram, pasūtījumi, līgumsaistības, cita veida attiecības ar klientiem un piegādātājiem). Visbiežāk to dara, izveidojot sarežģītas sistēmas ar simtiem vai tūkstošiem relāciju tabulu, kur no biezā klienta vai Web formas var ievadīt visdažādākos datus. Šādi piemēri ir gan Accenturē iecienītās sistēmas SAP un Oracle eBS, gan arī mazākas sistēmas, ko lieto tepat Latvijā - Microsoft Axapta, Microsoft Navision, FMS Horizon, Tildes Jumis, Zalktis, HansaWorld Latvia, un daudzas citas. Tomēr šai ERP risinājumu daudzveidībai (katram ražotājam ir sava DB shēma, atskaišu ģenerators, programmas loģika) ir arī savas ēnas puses. Ir grūti panākt, ka ievadītie dati un lietojumprogrammas loģika ir korekti itin visos aspektos mainīgas likumdošanas apstākļos. Var viegli izrādīties, teiksim, ka norēķinu apakšsistēmā var ierakstīt visādus Latvijā populārus norēķinu veidus (maksājumus pa daļām, avansus un priekšsamaksas, utml.), bet vienlaikus - parādu uzskaites apakšsistēmā (Accounts Receivable) un nodokļu apakšsistēmā (PVN atskaitījumi) netiek līdzi visiem pieņēmumiem, kas iespējami norēķinu apakšsistēmā. No ļoti daudzām tabulām ir arī mokoši ģenerēt atskaites (gan drukāt pamatojumdokumentus - pasūtījumus, pavadzīmes, rēķinus; gan arī statistiskas atskaites). Turklāt šie risinājumi parasti ir par maksu - ar tiem ir grūti eksperimentēt, un tos mēdz būt grūti savā starpā savietot un integrēt.

Ideja maģ.darbam: Definēt OWL ontoloģiju starpslāni, kas būtu noderīgs Latvijas praksē sastopamo grāmatvedības/ERP notikumu atspoguļošanai - pie tam izmantot semantiski vienkāršu REA modeli (kas ikvienu ekonomisku notikumu vai solījumu apraksta kā mijiedarbību starp resursiem un aģentiem). Iepazīties ar Openbravo (atvērta pirmkoda grāmatvedības/ERP sistēmu, kas saprogrammēta valodā Java), izmantot ontoloģiju datu apmaiņai un korektuma pārbaudei. Pievienot atskaišu ģenerēšanu, kas notiktu no šiem ontoloģiski attēlotajiem datiem (nevis pa taisno no datubāzes, kuras struktūra var būt pārāk sarežģīta un nepiemērota, lai parādītu biznesa notikumu būtību). Iespējamais "zilais sapnis"- izveidot komplektu ar JasperReports (Javas atskaišu ģenerēšanas bibliotēka), kas ļautu iegūt aptuveni 6 galvenos pamatdokumentu veidus - gan no pircēja, gan no pārdevēja viedokļa. Atskaites ģenerēt no izstrādātās ontoloģijas datiem. Apsvērt iespēju šo atskaišu komplektu izmantot no dažādām grāmatvedības sistēmām (piemēram, gan Openbravo, gan Zalktis).

Avoti:

  1. Openbravo dokumentācija - http://wiki.openbravo.com/wiki/
  2. Pieredze Openbravo latviskajā lokalizācijā - http://odo.lv/Openbravo/
  3. JasperReports - http://jasperforge.org/plugins/project/project_home.php?projectname=jasperreports
  4. REA Based Enterprise Business Domain Ontology Construction - http://www.academypublisher.com/ojs/index.php/jsw/article/viewFile/0505522529/1724
  5. Bila Makkartija mājaslapa - https://www.msu.edu/~mccarth4/
  6. Positioning REA as .. Ontology - http://www.aisvillage.com/rea25/program/gailly.pdf
Tagi:
Izveidojis Kalvis Apsītis 2010-08-13 18:22
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation