Navodila za izdelavo diplomske naloge

Podobni dokumenti
1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

Spoznajmo PowerPoint 2013

Microsoft Word - M docx

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Strojna oprema

Nameščanje Adopt Open Java Development Kit 8

Nameščanje Adopt Open Java Development Kit 8

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Diapozitiv 1

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

Orodje za izvoz podatkov

Slide 1

Excel 2016

Chapter 1

NAVODILA ZA IZPOLNJEVANJE OBRAZCA

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

Navodila Trgovina iCenter

Zadeva: Ponudba

PowerApps

PowerPointova predstavitev

Delavnica Načrtovanje digitalnih vezij

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Microsoft Word - M docx

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

INFORMATOR BIROKRAT 1/2011

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Vito Resnik RAZVOJ APLIKACIJE ZA NAROČANJE IN SPREMLJANJE MERITEV IZDELK

UPRAVLJANJE RAZPRŠENIH PODATKOV Shranjevanje, zaščita in vzdrževanje informacij, ki jih najbolj potrebujete

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadz

PowerPointova predstavitev

Si.mobil Si.most Najkrajša pot do vaših strank. Ljubljana,

PowerPointova predstavitev

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

RAČUNALNIŠTVO VARNOSTNA KOPIJA IN SLIKA DISKA Aleš Ovsenek Uvajanje novih izobraževalnih programov v srednjem poklicnem in strokovnem izobraževanju s

Uporaba preglednic za obdelavo podatkov B. Golli, PeF 15. november 2010 Kazalo 1 Uvod 1 2 Zgled iz kinematike Izračun hitrosti

Microsoft Word - CNC obdelava kazalo vsebine.doc

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika

Microsoft Word - A-3-Dezelak-SLO.doc

SETCCE Uporabniška navodila za namestitev in upravljanje komponente SETCCE proxsign v2.0.5 za MAC OS X [Nova generacija komponent SETCCE proxsign ] Id

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Nina Krmac IZBIRA ORODJA IN KNJIŽNIC ZA IMPLEMENTACIJO POROČIL V POSLOVNI APLIKACIJI Di

David Zakelšek SPLETNA PODPORA UČENJU MATEMATIKE Diplomsko delo Maribor, september 2013

ACAD-BAU-Analiza-prostorov

Oblikovanje in razvijanje spletnih strani

Standardi za označevanje dokumentov Razlogi za standardizacijo označevanja dokumentov, označevalni jeziki: MARC, RTF, Teχ, LaTeχ, SGML.

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov

Diapozitiv 1

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Microsoft Word - ARRS-MS-BR-07-A-2009.doc

CODEKS IP KAMERA

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

PowerPoint Presentation

Programska sprememba oddelka šole

Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki

INFORMATOR BIROKRAT 1/2011

ISOFT , računalniški inženiring

Vzpostavitev več nivojske varnostne infrastrukture S pomočjo Elektro Maribor, McAfee SIEM, CISCO ISE, NGFW Zorna Varga, Sfera IT d.o.o in Klemen Bačak

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

INTERAKTIVNE REŠITVE PROMETHEAN

Razlika med Office 365 in Office 2019

COBISS3/Medknjižnična izposoja

Obračun storitev v vrtcu in šoli

DCS-2330L_A1_QIG_v1.00(EU).indd

Elektronska pošta

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Milan Gabor Analiza varnostnih tveganj v mobilnih aplikacijah na platfor

Vedno pod nadzorom, kjerkoli že ste

PowerPoint Presentation

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Microsoft Word - M docx

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

Številka:

NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta

VISOKOŠOLSKI STROKOVNI ŠTUDIJ Računalništvo in informatika informatika POROČILO PRAKTIČNEGA IZOBRAŽEVANJA V podjetju Oblikovanje.com d.o.o. Murska Sob

DES

NETGEAR R6100 WiFi Router Installation Guide

PowerPoint Presentation

PowerPointova predstavitev

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

Brezplačno učenje zaposlenim in brezposelnim od 2018 do 2022 omogočata Ministrstvo za izobraževanje, znanost in šport ter Evropska unija iz Evropskega

DSI 2019

Microsoft Word - ARRS-MS-FI-06-A-2010.doc

Pridobivanje, integracija in prikaz podatkov za potrebe cenilcev

Microsoft Word - Navodila za uporabo 1.1.doc

Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

STROKOVNI PRISPEVKI Izboljšanje testiranja programske opreme študija primera Sašo Greblo CGS plus, d. o. o., Brnčičeva ulica 13, 1000 Ljubljana saso.g

Microsoft Word - M doc

PT9700PC9800PCN_SUG_US_SVN.book

Področje uporabe

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft PowerPoint - petek_16_30_B_Zabret [Read-Only] [Compatibility Mode]

STAVKI _5_

Transkripcija:

Črtomir Drofenik SPLETNA APLIKACIJA ZA GENERIRANJE POLJUBNO STRUKTURIRANIH DATOTEK Diplomsko delo Maribor, september 2011

I Diplomsko delo univerzitetnega študijskega programa Spletna aplikacija za generiranje poljubno strukturiranih datotek Študent: Študijski program: Mentor: Somentor: Črtomir Drofenik Računalništvo in informacijske tehnologije (UN) Red. prof. dr. Janez Brest Dr. Borko Bošković Maribor, september 2011

II

III ZAHVALA Zahvaljujem se mentorju prof. dr. Janezu Brestu za pomoč in vodenje pri opravljanju diplomskega dela. Prav tako se zahvaljujem somentorju dr. Borku Boškoviću. Hvala tudi dr. Mitji Leniču in Gregorju Zorcu. Posebna zahvala velja staršem, ki so mi omogočili študij.

IV Spletna aplikacija za generiranje poljubno strukturiranih datotek Ključne besede: spletna aplikacija, generiranje datotek, razpoznavanje in generiranje podatkovnih struktur, Apache Velocity UDK: 004.43:004.738.5(043.2) Povzetek V diplomski nalogi obravnavamo rešitve na področju pretvarjanja oz. prenašanja podatkov iz različnih podatkovnih virov v različne tipe datotek. V osrednjem delu se osredotočimo na izdelavo spletne aplikacije, s katero uporabniku omogočamo določanje strukture podatkov, ki jih bodo shranili v določen tip končne datoteke. Podrobneje opišemo tudi podatkovno strukturo, ki smo jo ustvarili, kakor tudi uporaba posebenega prejavalnika za generiranje datotek.

V Web application for generating custom structured documents Key words: Web application, generating documents, recognition and generation of data structures, Apache Velocity UDK: 004.43:004.738.5(043.2) Abstract In this thesis, we present the current most used applications for data converting from different data sources to different documents. In the main part we focus on the implementation of a web application that gives users the ability to manipulate the data structure and save this data to a specific output document. The data structure and the engine for generating documents that we used were also described.

VI VSEBINA 1 UVOD... 1 2 APLIKACIJE ZA DELO Z DATOTEKAMI... 2 2.1 OKDO DOCUMENT CONVERTER PROFESSIONAL... 2 2.1.1 Uporaba... 2 2.2 TOTAL EXCEL CONVERTER... 3 2.2.1 Uporaba... 4 2.3 ADVANCED XLS CONVERTER... 5 2.3.1 Uporaba... 6 3 NAČRTOVANJE APLIKACIJE ZA GENERIRANJE STRUKTURIRANIH DATOTEK... 8 3.1 NEODVISNOST OD OPERACIJSKEGA SISTEMA... 8 3.2 SKALABILNOST IN PRILAGODLJIVOST... 10 3.3 MANIPULACIJA KONČNE STRUKTURE PODATKOV... 12 4 SPLETNA APLIKACIJA ZA GENERIRANJE POLJUBNO STRUKTURIRANIH DATOTEK... 15 4.1 STRUKTURA APLIKACIJE... 15 4.1.1 Podatkovni viri... 16 4.1.2 Predloga... 16 4.1.3 Jedro... 16 4.1.4 Izhod aplikacije... 17 4.2 OBDELAVA PODATKOVNIH VIROV... 17 4.2.1 Obravnava preglednice... 17 4.2.2 Dodajanje novega paketa... 18 4.3 PREVAJANJE PREDLOGE... 19 5 ZAKLJUČEK... 23 6 LITERATURA... 24

VII UPORABLJENE KRATICE BMP DOC HTML JPG ODT ODS PDF TXT XLS XML Rasterski grafični datotečni format Microsoft Office Word dokument Hypertext Markup Language Slikovni datotečni format (JPEG) OpenOffice Writer dokument OpenOffice Calc dokument Portable Document Format Tekstovna datoteka Microsoft Office Excel document Extensible Markup Language

1 Uvod Z računalnikom tvorimo in zapisujemo podatke, ki se hranijo v različnih podatkovnih virih, tvorjenih z različno programsko opremo. Trenutno najbolj popularni programi za takšna opravila so Word in Excel iz paketa Microsoft Office ter Writer in Calc iz paketa OpenOffice oz. LibreOffice. Podatki se mnogokrat hranijo tudi v podatkovnih bazah ali pa v kakšni drugi obliki. V vseh teh programih ustvarja uporabnik strukturirano ureditev podatkov, ki pa so seveda različno definirani. V diplomskem delu se bomo osredotočili na raziskavo trenutnih rešitev za pretvorbo strukture podatkov iz določenih podatkovnih virov v različne tipe datotek. Predstavili bomo osnovno idejo podatkovne strukture in generiranja podatkov ter uporabnost le-teh. Ogledali si bomo tudi našo rešitev, ki ima sposobnost sprejemanja več podatkovnih virov in prilagoditev novemu tipu datoteke, kakor tudi zmoţnost, da si uporabnik sam definira končno obliko ţelene datoteke. V drugem poglavju smo najprej predstavili trenutne rešitve za pretvarjanje oz. prenašanje podatkov iz enega podatkovnega vira v drugega ter prednosti in slabosti posamezmih programov. V tretjem poglavju bomo predstavili kako smo se lotili načrtovanja spletne aplikacije. V četrtem poglavju si bomo podrobneje ogledali gradnike oz. strukturo rešitve, razpoznavanja podatkov v različnih datotekah, delovanje generatorja dokumentov in opisali primer, kako dodati paket za obravnavo dodatnega podatkovnega vira.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 2 2 Aplikacije za delo z datotekami Na spletu je moţno dobiti mnogo rešitev za prenos podatkov iz enega podatkovnega vira v več različnih. Temu postopku rečemo pretvarjanje (ang. Converting). V tem postopku pretovorimo tip datoteke. Ti so ponavadi HTML (Hypertext Markup Language), XML (Extensible Markup Language), PDF (Portable document format), ali drugi tipi datotek. Rešitve so večinoma zasnovane v obliko programske opreme za enega uporabnika. So ponavadi plačljive in jih uporabniki morajo odkupiti. Naloţijo se na lokalni računalnik in niso dostopne preko spleta. V nadaljevanju si bomo ogledali nekaj plačljivih primerov programske opreme in njihove pomanjkljivosti. 2.1 Okdo Document Converter Professional Podjetje Okdo Software ponuja več različnih programov, ki omogočajo pretvorbo enega tipa datoteke v drugega. Z njihove spletne strani [8] si lahko uporabniki snamejo programsko opremo za specifičen tip datoteke, ki ga ţelijo dobiti kot končni produkt. Ogledali si bomo programski paket, ki omogoča prenos podatkov iz večih podatkovnih virov v en ţelen tip datoteke. Imenuje se Okdo Document Converter Professional in je naprodaj za 129,95 $. 2.1.1 Uporaba Program omogoča uporabniku, da označi več različnih datotetek znotraj uporabniškega vmesnika. Te datoteke so lahko JPEG (Joint Photographic Experts Group), PDF, MS Word, MS Excel, BMP (Bitmap Image File) in drugi. Znotraj grafičnega vmesnika se lahko dodajo tudi datoteke, mape in spletne strani, kakor tudi določi izhodni tip datoteke. Okdo Document Converter Professional uporabniku da moţnost, da si izbere več različnih tipov končnih datotek. Zaradi tega ima ta programski paket najvišjo ceno, kajti vse cenejše različice dovolijo prenos podatkov v samo en izhodni tip datoteke (npr. Okdo Excel to PDF Converter).

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 3 Slika 1: Delovanje aplikacije Okdo Document Converter Professional Aplikacija vsekakor izpolnjuje obljubljeno, in sicer pretvorbo podatkov iz ene datoteke v drugo. Vsebuje še dodatne moţnosti za konfiguracijo, ki so poudarjene na spletni strani ponudnika. Te so uporabne glede na individualne potrebe uporabnika. Aplikacija deluje samo na operacijskih sistemih Windows in ne omogoča uporabniku določanja izhodne strukture podatkov. 2.2 Total Excel Converter Pri podjetju CoolUtils so izdelali zelo enostaven in hiter programski paket, s katerim omogočajo pretvorbo tabel iz preglednic v različne datoteke. Aplikacija sprejema Excel (2003 in 2007) iz paketa Microsoft Office, OpenOffice formate (.odt,.ods) in.xml,.sql ter druge tipe datotek, ki vsebujejo tabele oz. preglednice (.wk2,.wks,.dbf,.tex,.dif). Končne izhodne datoteke so lahko Word (.doc in.docx), PDF, HTML, Access, TXT, ODT (Open Document Format Text), ODS (Open Document Spreadsheets) in še mnoge druge [9]. Z nadgradnjo omogoča tudi pretvorbo preglednic, ustvarjenih v programskem paketu

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 4 OpenOffice, v preglednico Excel. S tem omogoča kompatibilnost spletnega prikazovalnika. 2.2.1 Uporaba Total Excel Converter omogoča več načinov zagona programa nad neko datoteko. Ena moţnost je zagon programa iz ukazne vrstice (ang. Command line). Zaradi integracije aplikacije v operacijski sistem Microsoft Windows jo lahko poţenemo tudi z ukazom ConvertTo, ki se pojavi ob desnem kliku na datoteko. Zadnja, tretja moţnost je, da poţenemo samostojno aplikacijo, ki je prikazana na sliki 2. Pri zadnji izbiri imamo največjo moţnost dodajanja dodatnih podatkovnih virov, kakor tudi predogled končne datoteke. Ob kliku na "Convert" se zaţene programski čarovnik, ki vodi uporabnika skozi celoten prenos podatkov. Slika 2: Delovanje aplikacije Total Excel Converter Programska oprema Total Excel Converter je zelo praktična predvsem zaradi hitrosti in moţnosti predogleda končne datoteke, na ţalost pa je omejena samo na operacijski sistem Microsoft Windows. K pomanjkljivostim bi še lahko prišteli ceno, ki znaša 49,90 $ ter dejstvo, da nam ta aplikacija ne omogoča manipulacije s strukturo podatkov izhodne datoteke.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 5 2.3 Advanced XLS Converter Aplikacija omogoča prenos podatkov iz Excela v več različnih podatkovnih virov, primernih za podatkovne baze. Podjetje na svoji spletni strani [10] poudarja, da je algoritem, s katerim deluje ta program, zelo hiter tudi pri velikem številu podatkov znotraj preglednice. Vsebuje tudi sistem za zaznavanje stolpcev in vrednosti tako, da pri prenosu podatkov ustvarja primerne razčlenitve. Omogoča tudi predogled končne datoteke, urejanje podatkov po stolpcih, uporabo filtrov, spremembo imen, velikosti itd. Na spletni strani si lahko uporabnik prenese aplikacijo na računalnik, ampak le-ta je poizkusna različica. Za uporabo celotnega programa je potreben nakup. Na voljo so trije paketi. Prvi paket omejuje uporabnika na uporabo programa samo na enem računalniku, medtem ko drugi paket omogoča namestitev programa na deset, tretji pa na neomejeno število računalnikov znotraj podjetja. Cene za te pakete oz. licence so 29,95 $, 99,95 $ in 199,95 $. Slika 3: Prikaz delovanja aplikacije Advanced XLS Converter

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 6 2.3.1 Uporaba Aplikacija ima zelo preprost vmesnik, ki je predstavljen kot čarovnik oz. vodnik skozi procese prenosa. Na začetku mora uporabnik izbrati vhodno datoteko (ang. Source file) ali pa izberemo celotno mapo, v kateri so ţelene vhodne preglednice. Izbrati si moramo tudi lokacijo in tip izhodne datoteke (ang. Output file). Kot je prikazano na sliki 3, ima uporabnik moţnost spreminjanja, urejanja, preskakovanja in filtriranja podatkov, ki so v vhodni preglednici. Aplikacija ima tudi moţnost izpisa celotnega ukaza za izvajanje tega programa v ukazni vrstici. Ta funkcionalnost je uporabna pri ustvarjanju skript za kakšno večje opravilo. Prednost te programske rešitve predstavlja predvsem hitrost, pri kateri si pomaga s posebnim algoritmom za delo z velikim številom podatkov in moţnost, da lahko znotraj programa še dodatno manipuliramo podatke po specifičnih ţeljah. Aplikacija zazna tudi pomembne stolpce ter vrstice in temu primerno ustvari končno strukturo datoteke. Kot primer smo vzeli preprosto preglednico, prikazano na sliki 4. Slika 4: Primer preproste vhodne preglednice Nad to preglednico smo izvedli aplikacijo in dobili naslednji izhod: <Structure> <Field> <Field_Name>NAZIV</Field_Name> </Field> <Field> <Field_Name>NASLOV</Field_Name> </Field> <Field> <Field_Name>DRZAVA</Field_Name> </Field> </Structure> <Records>

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 7 <Record> <NAZIV>Janez Novak</NAZIV> <NASLOV>Razlagova ulica 22</NASLOV> <DRZAVA>Slovenija</DRZAVA> </Record> <Record> <NAZIV>Joţe Horvat</NAZIV> <NASLOV>Dunajska cesta 4</NASLOV> <DRZAVA>Slovenija</DRZAVA> </Record> </Records> </Root> Kljub dobro urejenim podatkom v končni izhodni datoteki aplikacija ne ponuja nobene moţnosti za spremembno oblike le-teh. Slaba stran tega je tudi to, da je rešitev uporabna samo na operacijskih sistemih Microsoft Windows.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 8 3 Načrtovanje aplikacije za generiranje strukturiranih datotek Vse aplikacije, ki smo jih navedli v prešnjem poglavju, so namenjene predvsem prenosu oz. pretvorbi podatkov iz ene datoteke v drugo datoteko, zato tudi ime "Converter". Pri naši aplikaciji bi se podatki tudi prenašali, le da bi imel uporabnik moţnost določiti strukturo podatkov izhodne datoteke. Rešitev bi omogočala generiranje dokumentov iz dveh datotek. Ena bi vsebovala podatke, ki jih ţelimo prenesti, medtem ko bi druga vsebovala opisano strukturo podatkov izhodne datoteke. Pri načrtovanju aplikacije moramo upoštevati tudi omejitve rešitev iz prejšnjega poglavja. Zato smo v nadaljevanju predstavili nekaj vprašanj, ki so zelo pomembna in izpostavljajo posamezne probleme prej omenjenih aplikacij: - Ali lahko deluje na različnih operacijskih sistemih? - Ali jo je moţno uporabiti s pomočjo spleta? - Ali je to aplikacijo moţno nadgrajevati (nov podatkovni vir)? - Kako aplikaciji zagotoviti sposobnost določanja strukture podatkov in ne samo tipov izhodne datoteke? V nadaljevanju bomo predstavili način, kako smo načrtovali našo spletno rešitev za reševanje omenjenih vprašanj. 3.1 Neodvisnost od operacijskega sistema Microsoft si je pred pribliţno dvajsetimi leti ustvaril monopol na področju operacijskih sistemov. Takrat je njegova popularnost skokovito rasla in s tem tudi razvoj programskih rešitev za reševanje najrazličnejših problemov. Te so še danes, tako kot računalniške igre, v večini delujoče samo na sistemih iz druţine Microsoft Windows. Zaradi tega so vsi uporabniki in podjetja, ki ţelijo uporabljat določene rešitve, prisiljeni v uporabo teh operacijskih sistemov. Koliko so sistemi iz druţine Microsoft Windows

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 9 dominantni po svetu, je razvidno iz grafa na sliki 5. Ta slika je predstavljena s pomočjo informacij, zbranih na spletni strani organizacije W3Schools [11]. Operacijski sistemi trenutno v uporabi Windows družina (86%) Mac (8%) Linux (5%) Ostali (1%) Slika 5: Najbolj uporabljeni operacijski sistemi Prvi problem, s katerim smo se spopadli, je ustvariti aplikacijo, ki bi delovala na večih platformah (ang. cross-platform). To pomeni, da bi na primer delovala na Microsoft Windows, Linux in Mac OS. To bi lahko zagotovili tako, da bi ustvarili aplikacijo v programskem jeziku Java. Največjo prednost tega jezika predstavlja sposobnost delovanja na različnih platformah. Zato, da deluje, mora imeti operacijski sistem nameščen javanski virtualni stroj oz. JVM (Java Virtual Machine) [12]. Z javansko aplikacijo bi torej lahko rešili problem z različnimi operacijskimi sistemi, če pa pomislimo na splošno uporabo te aplikacije, pa pridemo do naslednjega problema, ki je tesno povezan s prejšnjim. Kaj storiti, če bi uporabnik nameščen program ţelel uporabiti nekje drugje, kjer ni moţnosti za namestitev ali pa kjer bi bilo nameščanje časovno zelo potratno (npr. velika podjetja)? Prav tako bi se pojavil še problem nadgrajevanja programske opreme. To pomeni, da bi morali vse nameščene aplikacije nadgraditi posamično.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 10 Prvi problem, ki smo ga omenili, bi lahko rešili tudi tako, da se ne bi osredotočili na prilagajanje različnim operacijskim sistemom. Uporabniku bi preprosto ponudili moţnost zagona aplikacije na spletu. S tem bi zagotovili konstantno dosegljivost programske aplikacije, kakor tudi delovanje na različnih sistemih. Večina tehnologij, ki se razvija za mnoţično uporabo, se načrtuje kot del spletne aplikacije ali storitve. Zato jih ljudje lahko kjerkoli in kadarkoli uporabijo. Na primer Microsoft Office programski paket vsebuje program Word, ki predstavlja najbolj popularno orodje za urejanje besedil. Spletni gigant Google je izdelal svojo različico, ki je dosegljiva preko spleta in s katero je moţno urejati podobne tipe dokumentov. Vsak uporabnik spleta lahko s tem na preprost in hiter način napiše dokument, ki je po vsebini identičen Word-u. Vsekakor ima ta spletni urejevalnik besedil manj sposobnosti kot Microsoft-ov program, omogoča pa kljub temu intuitivno tvorjenje dokumentov in konstantno dosegljivost na spletu. Na osnovi omenjenih prednosti smo se tudi mi odločili za spletno aplikacijo. Pri tem smo morali izbrati eno od moţnih spletnih tehnologij oz. programskih jezikov, kot so npr.: - ASP - Java (JSP, JSF) - PHP - Python - Ruby - Perl - itd. Pri izbiri programskega jezika moramo upoštevati dejstvo, da mora biti streţniška aplikacija robustna, skalabilna in prilagodljiva. 3.2 Skalabilnost in prilagodljivost Aplikacije, ki smo jih podrobneje opisali v prešnjem poglavju, niso omogočale skalabilnosti in prilagodljivosti. To pomeni, če bi se pojavil nov tip preglednic ali pa bi

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 11 posameznik ţelel prenašati podatke iz kakšnega drugega podatkovnega vira, bi morala torej podjetja ustvariti nov, tako imenovam "Converter" za prenos vsebovanih podatkov ali pa bi uporabnik moral uporabiti kakšen drug program za prenos podatkov. Temu bi se lahko preprosto izognili, če bi bila aplikacija zgrajena tako, da bi jo bilo moţno nadgraditi z dodatno obravnavo novega datotečnega tipa. Naslednji problem bi torej predstavljala struktura aplikacije. Ta bi morala biti zasnovana tako, da bi lahko sprejemala nove vmesnike za obravnavo ţelenih podatkovnih tipov. Na sliki 5 je razvidna preprosta arhitektura aplikacije, s katero bi omogočali hitro delovanje, berljivost, razumljivost, skalabilnost in prilagodljivost. Znotraj skupine "Vmesniki" se skriva prednost naše zasnove. Vmesniki se za različno razpoznavanje podatkovnih virov samo dodajajo k naboru. Vmesniki Podatkovni vir/i Podatkovni razpoznavalnik 1 Podatkovni razpoznavalnik 2 Jedro aplikacije Podatkovni razpoznavalnik n Končna datoteka Slika 6: Struktura aplikacije Aplikacija bi kot vhod sprejela podatkovni vir, jedro bi odkrilo, za kakšni vir gre in ali ima vmesnik, ki lahko razpozna podatke iz njega. Ta bi nato vrnil podatke jedru, kjer bi se enostavno uredili in zapisali v končno datoteko. Aplikacija bi na koncu ustvarjeno datoteko vrnila kot izhod.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 12 V prešnjem podpoglavju smo ugotovili, zakaj bi bilo najbolje implementirati spletno aplikacijo. S prej omenjeno zasnovo bi pripomogli tudi k temu, da bi se aplikacija posodabljala samo na enem mestu, na streţniku. To pomeni, da bi se lahko izognili posodabljanju vsake posamezne aplikacije, nameščene na različnih računalnikih. Posodabljanje aplikacije bi bilo na ta način hitro in preprosto. 3.3 Manipulacija končne strukture podatkov Redko se pojavi primer, kjer podatki niso potrebni v določeni strukturi. Če je uporabnik zaposlen pri podjetju, kjer imajo določeno strukturo podatkov, mu aplikacija, ki prenaša podatke iz enega podatkovnega vira v drugega, ne bo pomagala. Večina dela bo tako ostala neopravljenega. Kot primer si poglejmo podatke iz slike 4 in uporabnikovo ţeleno vsebino datoteke: <Oseba> <Celotno_ime_osebe> Janez Novak </ Celotno_ime_osebe > <Drzava_kjer_zivi> Slovenija </ Drzava_kjer_zivi > </Oseba> Kot je razvidno iz primera, bi se pri velikem številu podatkov, takšna datoteka teţko ustvarila. Uporabnik bi imel ogromno dela z zapisovanjem manjkajočih značk, v tem primeru nizi med "<" in ">", kakor tudi s preglednostjo. Pri spremembi strukture, v katero bi lahko bil prisiljen zaradi posodabljanja datotečnega formata, bi se moralo vse znova urejati.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 13 Način, kako uporabniku omogočiti definiranje strukture podatkov, mora biti preprost in lahko razumljiv. Kot primer si poglejmo naslednjo kodo: <Student> <Name> student.ime </Name> <Surname> student.priimek </Surname> <YearOfBirth> student.letnik_rojstva </YearOfBirth> <Average> student.povprecje </Average> </Student> Iz tega je razvidna struktura podatkov, vsebovanih znotraj aplikacije. Na podoben način bi lahko uporabnik ustvaril ţeleno končno strukturo datoteke, ne glede na to, iz kateraga vira so podatki. Rešitev mora omogočati vnos takšne oblike besedila, da aplikacija lahko ugotovi strukturo podatkov. Zaradi potrebe uporabnika po točno specifični strukturi končne datoteke mora ta poleg vhodne datoteke (podatkovnega vira) podati tudi predlogo (opis strukture podatkov). Zato je potrebna sprememba strukture naše aplikacije, ki smo jo prikazali na sliki 6. Potrebno je dodati še predlogo (ang. Template), kot je vidno na sliki 7.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 14 Podatkovni vir/i Predloga Vmesniki Podatkovni razpoznavalnik 1 Podatkovni razpoznavalnik 2 Jedro aplikacije Podatkovni razpoznavalnik n Končna datoteka Slika 7: Struktura naše aplikacije

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 15 4 Spletna aplikacija za generiranje poljubno strukturiranih datotek Z napotki, ki smo jih opisali v prešnjem poglavju, smo implementirali aplikacijo, s katero si lahko uporabnik ustvari določene tipe datotek. Moţno je tudi definirati strukturo podatkov končne datoteke, kakor tudi ustvarjanje večih datotek iz ene same. Aplikacija je zapisana v programskem jeziku Java, ogrodje pa je bilo ustvarjeno v JSP (JavaServerPages) oz. JSF (JavaServerFaces) podobi [2]. Vsebuje tudi poseben prevajalnik, ki se izvede nad podano predlogo. Zato je potrebno poznavanje principov generiranja kode [4], osnove programskih jezikov [7], kakor tudi poznavanje prevajalnika in sintakse predloge. 4.1 Struktura aplikacije Strukturo obkroţa spletna aplikacija, ki sluţi samo kot nek posrednik potrebnih vhodnih podatkov. Zasnova, ki smo si jo zamislili, omogoča preprosto dodajanje paketov (vmesnikov). S tem smo zagotovili skalabilnost aplikacije, kakor tudi hitro prilagoditev poljubnemu tipu datoteke. Na sliki 8 je predstavljena popolna struktura naše rešitve. Spletni vmesnik Podatkovni viri Predloga Jedro Datoteke Slika 8: Struktura izdelane aplikacije

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 16 4.1.1 Podatkovni viri Posameznik ali podjetje tvorijo najrazličnejše datoteke, v katerih predstavijo podatke. Najbolj popularni programi za tvorjenje takšnik datotek so predvsem Word in Excel paketa Microsoft Office ter Writer in Calc iz paketa OpenOffice oz. LibreOffice. Mnogokrat se podatki hranijo tudi v podatkovnih bazah. Vsi ti podatki so predstavljeni na različne načine in tudi dostop do njih je zaradi tega različen. Z izjemo podatkovne baze morajo biti datoteke za potrebo te aplikacije v določeni obliki zato, da se laţje definira dostop do vsebovanih podatkov. 4.1.2 Predloga V prilogi se definira oblika ter kje in kako se bodo shranili podatki, ki smo jih prevzeli iz podatkovnega vira. Zanj aplikacija vsebuje tudi poseben prevajalnik, s katerim manipuliramo podatke, razpoznane iz prej podanega podatkovnega vira. Sposobnosti in omejitve predloge so podrobneje predstavljeni v podpoglavju 4.3. 4.1.3 Jedro Temelji aplikacije so zapisani v jedru. To je razdeljeno na notranje razrede in vmesnike, s katerimi se preoblikuje podatkovne vire v lastno podatkovno strukturo (Slika 9). Znotraj notranjih razredov se prevede tudi predloga, seveda samo, če je bila podana v pravilni obliki. Jedro Vmesniki Excel Notranji razredi SQL Slika 9: Zgradba Jedra

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 17 4.1.4 Izhod aplikacije Datoteka, ki je bila generirana iz podatkovnega vira in oblikovana glede na opisano strukturo podatkov v predlogi, predstavlja izhod aplikacije. Ta je shranjen kot tipična strukturirana datoteka, npr. xml ali html. Pomembno je predvsem pravilno poznavanje dostopov do obdelanih podatkovnih virov, kakor tudi poznavanje delovanja prevajalnika za predlogo. Omenjeni zadevi sta podrobneje opisani v podpoglavju 4.3. 4.2 Obdelava podatkovnih virov Podatki, ki so znotraj nekega podatkovnega vira, morajo biti primerne oblike, da jih je moţno razčleniti in porazdeliti v aplikacijsko specifično podatkovno strukturo. V naslednjem podpoglavju je opisan primer, kako naša aplikacija tvori podatkovno stukturo in s čim si pomaga. 4.2.1 Obravnava preglednice Uporabnik mora v primeru Microsoft Office Excel določiti prvo vrstico kot imena posameznih stolpcev. Pri razpoznavanju podatkov iz podatkovne baze to ni potrebno, saj se ţe s povpraševalnim (query) stavkom določijo posamezni stolpci. Tvorba prve vrstice je ključna, saj vso povpraševanje s strani predloge prihaja s klicom imena stolpca. Podatkovna struktura vrstice je zato izdelana tako, da vsebuje imena vseh stolpcev v podatkovnem viru in jih tako pretvarja v indekse številk, saj so vsi podatki znotraj vrstice (CDataRow) predstavljeni kot nizi v seznamu večih polj (ArrayList). Prednost uporabe prav te podatkovne stukture je podrobneje opisana v [5]. Pri vsem tem razpoznavanju podatkov sta pomembna vmesnika IDataProcessor in IDataTable, vsebovana znotraj notranjih razredov (slika 9) in vmesnikov. V njih so zapisane vse potrebne metode za dostop do podatkovne stukture. Zato ju mora vsak paket, ki bi bil dodan, implementirati tako, kot je razvidno iz slike 10.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 18 Slika 10: Razredni diagram za paket MS Excel Na sliki sta predstavljena vmesnika in paket za obravnavo Microsoft Office Excel dokumenta, kar pomeni, da bo imela aplikacija opravka s preglednico. V metodi process() je definiran dostop do podatkovnega vira in tvorjenje primerkov CPOITable. Ti kot parameter prejmejo list preglednice (sheet). Zaradi podatkovne strukture CDataRow se mora znotraj tabel določiti prva vrstica, zato razred CPOITable vsebuje metodo setfirstrow(). Nato se izvede createtable(), kjer se aplikacija sprehodi skozi vse neprazne celice in tvori seznam vrstic rowlist. Pri tem si pomaga s knjiţnico, ki jo je izdelalo podjetje Apache [6]. Znotraj tega razreda sta implementirani tudi metodi gettablename() in getrowlist(), ki pa se kličeta samo, kadar ju potrebuje prevajalnik za predlogo. Na koncu tvorjenja podatkovne strukture metoda process() znotraj CPOIProcessor vrne tekstovni del tako, da se mora samo še poslati datoteka v ţelenem tipu (.xml,.html itd.). 4.2.2 Dodajanje novega paketa Iz prejšnjega podpoglavja je razvidno, da je priprava podatkovne strukture precej preprosta. Programer bi na podoben način lahko definiral ţelene pakete za obdelavo različnih virov. Poudarek je predvsem na tem, da se implementirajo abstraktne metode obeh glavnih vmesnikov (IDataProcessor in IDataTable). Te so ključne za dostop prevajalnika predloge do ustvarjene podatkovne strukure. Odvisno je tudi, na kakšen način

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 19 je sestavljen podatkovni vir. Če bi uporabnik ţelel razpoznati podatke iz xml datoteke, potrebuje samo en primerek tabele. V primeru Excela to ni mogoče, saj lahko vsak list znotraj preglednice vsebuje različne podatke, do katerih mora biti zagotovljen dostop. Kadar dostopamo do podatkovne baze, velja enako kot za XML, saj lahko s povpraševanjem uporabnika zgradimo samo eno tabelo. 4.3 Prevajanje predloge Predloga, ki jo tvori uporabnik, mora biti napisana po določenih pravilih programskega jezika, ki se uporablja za obdelavo tega tipa dokumenta. Vse informacije o sintaksi in sposobnostih pogona so predstavljene v [3]. Posebnost predloge v tej aplikaciji je ta, da ima na kontekst dodano podatkovno strukturo za manipulacijo podatkov, omenjeno v prešnjem podpoglavju. Ta je lahko predstavljena na različne načine, odvisno od vira, mora pa vsebovati enoličen dostop. V primeru MS Excel datoteke je podatkovnih struktur toliko, koliko je v sami datoteki listov (sheet). Vsak od teh je dosegljiv z lastnim imenom, s katerim je označen znotraj datoteke. Primer sklicevanja na podatkovno strukturo znotraj predloge je: $List1 To sklicevanje kliče metodo getrowlist(), ki smo jo spoznali v podpoglavju 4.2. Da bi jo učinkovito uporabili, moramo napisati sledečo kodo: #foreach ( $vrstica in $List1) #end obdelava vrstic Prevajanje tega sklopa predloge omogoča prehod čez celotno podatkovno strukturo. Da pa bi dostopali do posameznega podatka znotraj vrstice, moramo vedeti, kako se imenuje stolpec, v katerem je podatek. Primer testnega dokumenta MS Excel je viden na sliki 4.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 20 Kot je razvidno iz dokumenta, morajo imeti tudi podatkovni viri določeno strukturo, da je podatke moţno na določen način razvrščati. Primer izpisa podatkov iz prvega stolpca je: #foreach ( $vrstica in $List1) #end $vrstica.get(»naziv«) Moč predloge je predvsem ta, da je moţno dodajanje znakov, ki se ne bodo prevajali kot del jezika, ampak jih bo le-ta preskočil. Primer izpisa podatkov v neki poljubni obliki: #foreach ( $vrstica in $List1) <oseba> <naziv>$vrstica.get(»naziv«)</naziv> <naslov>$vrstica.get(»naslov«)</naslov> </oseba> #end Ob prevajanju zgornjega dela predloge bi končna datoteka izgledala tako: <oseba> <naziv>janez Novak </naziv> <naslov>razlagova ulica 22</naslov> </oseba> <oseba> <naziv>jože Horvat</naziv> <naslov>dunajska cesta 4</naslov> </oseba> <oseba> <naziv>zlatko Kovačič</naziv> <naslov>trubarjeva ulica 23</naslov> </oseba>

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 21 Iz primera je razvidno, da je končna oblika zgrajena kot XML. Če pa bi bilo potrebno podatke pokazati v obliki HTML, bi v predlogo napisali: <html> <head> <title>generirana tabela</title> </head> <body> <table border=1> #foreach ( $vrstica in $List1) #if($vrstica.getrownumber() == 0) <tr> <td>naziv<td> <td>naslov<td> </tr> <tr> <td>$vrstica.get(»naziv«)</td> <td>$vrstica.get(»naslov«)</td> </tr> #{else} <tr> <td>$vrstica.get(»naziv«)</td> <td>$vrstica.get(»naslov«)</td> </tr> #end #end </table> </body> </html> Dokument, ki bi bil ustvarjen ob prevajanju zgornje predloge, bi znotraj brskalnika izgledal tako, kot je prikazano na sliki 11.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 22 Slika 11: Izgled generirane tabele S to spremembo je razvidna tudi uporaba stavka if-else, za katerega je seveda potrebno poznavanje razreda CDataRow. Ta vsebuje poleg getrownumber() tudi metodo getdate(), s katero se izpiše datum in čas kreiranja dokumenta. Z njima si programer lahko pomaga pri gradnji oblike končnega dokumenta.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 23 5 Zaključek V diplomski nalogi smo spoznali aplikacije za delo z datotekami in njihove omejitve. Z implementacijo naše aplikacije smo poskušali odpraviti te omejitve. Izdelali smo spletno aplikacijo, s katero smo dosegli neodvisnost od operacijskih sistemov. Rešitev smo zasnovali tako, da je čim bolj prilagodljiva in skalabilna. Z vmesniki, ki predstavljajo temelj aplikacije in sluţijo kot razpoznavalniki, smo omogočili hitro in preprosto prilagajanje različnim podatkovnim virom. V aplikacijo smo vključili tudi poseben prevajalnik, s katerim smo omogočili generiranje datotek glede na strukturo podatkov, ki jo uporabnik določi. Ta prevajalnik ponuja različne funkcionalnosti in zahteva tudi posebno sintakso. Z našo spletno aplikacijo za generiranje poljubno struktoriranih datotek smo rešili omejitve, ki smo jih zaznali pri drugih programskih rešitvah. Aplikacija se lahko ponaša s hitro odzivnostjo in prilagodljivostjo. Uporabniku ponuja popoln nadzor nad strukturo podatkov končne datoteke. S samim napredovanjem računalniških tehnologij se bodo tudi v prihodnosti pojavlali novejši in drugačni podatkovni viri, ustvarjeni v najrazličnejši programski opremi. Z našo aplikacijo se bomo lahko tem virom hitro prilagodili in s tem zagotovili še širši nabor razpoznavanja podatkovnih virov. Naslednji korak v razvoju te rešitve bi predstavljala nadgradnja aplikacije v spletno storitev zato, da bi lahko uporabniku omogočili še hitrejšo odzivnost, programerjem pa orodje za kompleksnejšo delo s podatki in obliko poljubno strukturiranih datotek.

Spletna aplikacija za generiranje poljubno strukturiranih datotek Stran 24 6 Literatura [1] Č. Drofenik, B. Bošković, J. Brest, Spletna aplikacija za generiranje poljubno strukturiranih datotek, Zbornik dvajsete mednarodne Elektrotehniške in Računalniške konference ERK 2011, 2011 [2] D. Geary, C. Horstmann, Core JavaServerFaces, 2007 (Sun Microsystems, Inc.) [3] J. D. Gradecki, J. Cole., Mastering Apache Velocity, 2003 (Wiley Publishing, Inc.) [4] J. Herrington., Code Generation in Action, 2003 (Manning Publication Co.) [5] M. N. Maurice, P. Wadler, Java Generics and Collections, 2006 (O'Reilly Media) [6] A. Vohra, D. Vohra., Pro XML Developement with Java Technology, 2006 (Apress) [7] V. Ţumer, M. Mernik, Principi programskih jezikov študentsko gradivo, 2001 [8] Spletna stran podjetja OkDo Software: http://www.okdosoft.com/default.html [9] Spletna stran podjetja CoolUtils: http://www.coolutils.com/totalexcelconverter [10] Spletna stran aplikacije: http://www.xls-converter.com/ [11] Spletna stran s statično uporabo operacijskih sistemov: http://www.w3schools.com/browsers/browsers_os.asp [12] Spletna stran za Java Virtual Machine: http://en.wikipedia.org/wiki/java_virtual_machine