Mendelova univerzita v Brnˇe Provoznˇe ekonomick´a fakulta
Manaˇ zersk´ a aplikace pro OS Android Bakal´ aˇrsk´ a pr´ ace
Vedouc´ı pr´ace: Ing. Jan Kolomazn´ık
ˇ Kryˇstof Stekoviˇ c
Brno 2013
2
ˇ Cestn´ e prohl´ aˇsen´ı Prohlaˇsuji, ˇze jsem tuto pr´aci: Manaˇ zersk´ a aplikace pro OS Android vypracoval samostatnˇe a veˇsker´e pouˇzit´e prameny a informace jsou uvedeny v seznamu pouˇzit´e literatury. Souhlas´ım, aby moje pr´ace byla zveˇrejnˇena v souladu s § 47b z´akona ˇc. 111/1998 Sb., o vysok´ ych ˇskol´ach ve znˇen´ı pozdˇejˇs´ıch pˇredpis˚ u, a v souladu s platnou Smˇernic´ı o zveˇrejˇ nov´an´ı vysokoˇskolsk´ych z´avˇereˇcn´ych prac´ı. Jsem si vˇedom, ˇze se na moji pr´aci vztahuje z´akon ˇc. 121/2000 Sb., autorsk´ y z´akon, a ˇze Mendelova univerzita v Brnˇe m´a pr´avo na uzavˇren´ı licenˇcn´ı smlouvy a uˇzit´ı t´eto pr´ace jako ˇskoln´ıho d´ıla podle § 60 odst. 1 Autorsk´eho z´akona. D´ale se zavazuji, ˇze pˇred seps´an´ım licenˇcn´ı smlouvy o vyuˇzit´ı d´ıla jinou osobou (subjektem) si vyˇza´d´am p´ısemn´e stanovisko univerzity o tom, ˇze pˇredmˇetn´a licenˇcn´ı smlouva nen´ı v rozporu s opr´avnˇen´ ymi z´ajmy univerzity, a zavazuji se uhradit pˇr´ıpadn´ y pˇr´ıspˇevek na u ´hradu n´aklad˚ u spojen´ ych se vznikem d´ıla, a to aˇz do jejich skuteˇcn´e v´ yˇse.
v Brnˇe 30.12.2013
....................................................
4
Pˇredevˇs´ım bych r´ad podˇekoval panu Ing. Janu Kolomazn´ıkovy, kter´ y se mnou konzultoval pr´aci a byl mi n´apomocen pˇri ˇreˇsen´ı probl´emu vznikaj´ıc´ıch pˇri programov´an´ı. D´ale bych chtˇel podˇekovat rodinˇe za podporu pˇri studov´an´ı a pˇri dokonˇcov´an´ı pr´ace. Zvl´aˇstˇe bych chtˇel podˇekovat sv´emu otci za podporu ze strany informaˇcn´ıho syst´emu Helios Green a odborn´e konzultace spojen´e s t´ımto syst´emem.
6
Abstract ˇ Stekoviˇ c, K. Management mobile application that is integrated with the Helios Green. Brno, 2013. This work describes general information about the Android OS and IS Helios Green. More deeply describes the integration of IS in mobile applications and application development
Abstrakt ˇ Stekoviˇ c, K. Manaˇzersk´a mobiln´ı aplikace integrovan´a s IS Helios Green. Brno, 2013. Pr´ace popisuje obecn´e informace o OS Android a IS Helis Green. Hloubˇeji se vˇenuje integraci IS do mobiln´ı aplikace a v´ yvoji t´eto aplikace
Key words — OS Android, IS Helios Green, Integration IS, Application Development
Kl´ıˇ cov´ a slova — OS Android, IS Helios Green, Integrace IS, V´ yvoj Aplikaci
7
8
Obsah 1 OS Android a IS HELIOS Green ´ 1.1 Uvod . . . . . . . . . . . . . . . . . . . . . 1.1.1 Operaˇcn´ı syst´em Android . . . . . 1.1.2 Informaˇcn´ı system HELIOS Green . 1.2 C´ıl pr´ace . . . . . . . . . . . . . . . . . . . 1.2.1 N´avrh aplikace . . . . . . . . . . . 1.2.2 Souˇcasn´ y stav . . . . . . . . . . . . 1.3 Metodika zpracov´an´ı . . . . . . . . . . . . 1.3.1 Spir´alov´ y model . . . . . . . . . . . 1.3.2 Vyuˇzit´ı modelu . . . . . . . . . . . 1.3.3 V´ yvoj aplikac´ı . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
11 11 11 11 13 13 13 14 14 15 15
2 Integrace s IS HELIOS Green 2.1 Vlastnosti IS HELIOS Green z pohledu integrace 2.1.1 Integrace pomoc´ı XML zpr´av . . . . . . . 2.1.2 Tˇr´ıda Konfigurace Android“ . . . . . . . ” ˇ 2.1.3 Sablony pro mobiln´ı aplikaci . . . . . . . . 2.2 Napojen´ı mobiln´ı aplikace na IS HELIOS Green . 2.2.1 Pˇrenos poˇzadavku . . . . . . . . . . . . . . 2.2.2 Pˇrihl´aˇsen´ı do IS . . . . . . . . . . . . . . . 2.2.3 Menu mobiln´ı aplikace . . . . . . . . . . . 2.2.4 Pˇrehledy faktur . . . . . . . . . . . . . . . 2.2.5 Operace nad fakturami . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
17 17 17 18 19 20 20 21 22 23 25
. . . . . . . . . . . .
27 27 27 27 28 28 29 31 32 33 33 33 34
3 Implementace manaˇ zersk´ e aplikace 3.1 Vytvoˇren´ı aplikace . . . . . . . . . . . . . 3.1.1 Nov´ y projekt . . . . . . . . . . . . 3.1.2 Stavba uˇzivatelsk´eho rozhran´ı . . . 3.2 Diagramy tˇr´ıd . . . . . . . . . . . . . . . . 3.2.1 Pˇrihl´aˇsen´ı k IS . . . . . . . . . . . 3.2.2 Menu aplikace . . . . . . . . . . . . 3.2.3 Seznam faktur . . . . . . . . . . . . 3.2.4 Operace s fakturami . . . . . . . . 3.3 Bezpeˇcnost aplikace . . . . . . . . . . . . . 3.3.1 Virtual private network . . . . . . . 3.3.2 Pouˇzit´ı protokol˚ u HTTP a HTTPS 3.3.3 Pouˇzit´ı autentikaˇcn´ıho token˚ u . . .
. . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
4 Zhodnocen´ı dosaˇ zen´ ych v´ ysledk˚ u a n´ avrh vylepˇ sen´ı 35 4.1 Zhodnocen´ı dosaˇzen´eho v´ ysledku . . . . . . . . . . . . . . . . . . . . 35 4.2 Moˇznosti dalˇs´ıch vylepˇsen´ı . . . . . . . . . . . . . . . . . . . . . . . . 35
9
5 Literatura
36
6 Pˇ r´ılohy
37
10
1 1.1 1.1.1
OS Android a IS HELIOS Green ´ Uvod Operaˇ cn´ı syst´ em Android
Android je rozs´ahl´ y operaˇcn´ı syst´em vytvoˇren´ y spoleˇcnost´ı Google, zaloˇzen´ y na ” open source platformˇe, jedn´a se tedy o poˇc´ıtaˇcov´ y software s otevˇren´ ym zdrojov´ ym k´odem. Slova ”otevˇren´ y k´od”zde reprezentuj´ı snadnou dostupnost, a to jak technickou, tak licenˇcn´ı. Jinak ˇreˇceno, uˇzivatel m˚ uˇze syst´em pˇri splnˇen´ı jist´ ych podm´ınek vyuˇz´ıvat zadarmo a tato licenˇcn´ı politika mu tak´e umoˇzn ˇuje pˇristoupit ke zdrojov´ ym k´od˚ um, kter´e n´aslednˇe vyuˇz´ıv´a nebo upravuje podle sv´ ych potˇreb. OS je ’ zaloˇzen na Linuxov´em j´adˇre 2.6 r˚ uzn´ ych verz´ı, kter´e zajiˇst uje zabezpeˇcen´ı syst´emu jako celku, spr´avu pamˇeti, spr´avu proces˚ u, pˇr´ıstup k s´ıti a ovladaˇc˚ um vˇsech vnitˇrn´ıch senzor˚ u a komponent. Jednotliv´e aplikace k funkc´ım j´adra nepˇristupuj´ı pˇr´ımo, ale prostˇrednictv´ım Android API. Android je tedy progresivn´ı operaˇcn´ı syst´em prim´arnˇe vyv´ıjen jako platforma pˇrev´aˇznˇe pro PDA, tablety a tzv. chytr´e telefony. Byl postaven od z´akladu, kter´ y umoˇzn´ı v´ yvoj´aˇr˚ um vytv´aˇret p˚ usobiv´e mobiln´ı aplikace, jeˇz mohou plnˇe vyuˇz´ıvat vˇsech vlastnost´ı, kter´e telefon nab´ız´ı, jako napˇr. z´akladn´ı funkce telefonu (obsluha mobiln´ıch hovor˚ u, pos´ıl´an´ı textov´ ych zpr´av (SMS), nebo vyuˇz´ıv´an´ı fotoapar´atu). Takto vybudovan´ y syst´em umoˇzn ˇuje v´ yvoj´aˇr˚ um vytv´aˇret bohatˇs´ı a soudrˇznˇejˇs´ı z´aˇzitky pro uˇzivatele. Android je postaven na otevˇren´em j´adˇre Linux a pouˇz´ıv´a vlastn´ı virtu´aln´ı stroj, kter´ y byl navrˇzen tak, aby optimalizoval pamˇet a hardwarov´e prostˇredky v mobiln´ım prostˇred´ı. Tato platforma se bude d´ale vyv´ıjet, protoˇze v´ yvoj´aˇrsk´a komunita pracuje spoleˇcnˇe na vytv´aˇren´ı inovativn´ıch mobiln´ıch aplikac´ı.“(1) K ofici´aln´ımu pˇredstaven´ı softwarov´e platformy Android doˇslo 5. listopadu ” 2007. v tento den tak´e vzniklo sdruˇzen´ı firem ”Open Handset Alliance”(d´ale OHA), kter´e v dobˇe zaloˇzen´ı zahrnovalo v´ıce neˇz 30 firem (v tˇechto dnech v´ıce neˇz 80), jako napˇr´ıklad firmy Intel, HTC, LG, Google, Motorola, T-Mobile, Samsung Electronics atd., a to z oblast´ı mobiln´ıch oper´ator˚ u, softwarov´ ych spoleˇcnost´ı, spoleˇcnost´ı vyr´abˇej´ıc´ıch polovodiˇcov´e souˇc´astky nebo v´ yrobc˚ u mobiln´ıch telefon˚ u. C´ılem OHA bylo vytvoˇrit otevˇren´e standardy pro mobiln´ı zaˇr´ızen´ı. v den ozn´amen´ı vzniku OHA byl rovnˇeˇz konsorciem pˇredstaven prvn´ı produkt zaloˇzen´ y na mobiln´ı platformˇe Android, jeˇz byl postaven na j´adˇre Linux verze 2.6. T´ımto krokem se Android, jako vlajkov´a lod’ OHA, dost´av´a na trh a zaˇc´ın´a jeho boj s konkurenc´ı, kter´a nen´ı nikterak mal´a ani slab´a (IPhone, Windows Mobile/Phone, Symbian OS, Palm OS atd.).“(2) 1.1.2
Informaˇ cn´ı system HELIOS Green
Informaˇcn´ı syst´em HELIOS Green je modern´ı ERP syst´em, kter´ y nab´ız´ı zejm´ena ” jednotnost a komplexnost, podklady pro strategick´e rozhodov´an´ı, kontrolu finanˇcn´ıch tok˚ u ˇci komfortn´ı podporu podle aktu´aln´ı platn´e legislativy. Pokr´ yv´a 11
vˇsechna oborov´a ˇreˇsen´ı a specifikace podnik´an´ı. Cel´ y t´ ym syst´emu HELIOS Green tak´e poskytne spolehliv´ y a trval´ y servis, kter´ y je z´akazn´ıky velmi oceˇ nov´an.“ (3) HELIOS Green je vystavˇen na modern´ı v´ıcevrstv´e architektuˇre, viz obr.1 Zna” men´a to, ˇze se mezi serverovou ˇc´ast, tvoˇrenou SQL serverem, a uˇzivatelskou ˇc´ast vkl´ad´a jeˇstˇe aplikaˇcn´ı server jako tˇret´ı ˇc´ast syst´emu. Toto ˇreˇsen´ı pˇrin´aˇs´ı v´ yhody v oblasti bezpeˇcnosti a optimalizace v´ ykonu. Aplikaˇcn´ı server znamen´a sn´ıˇzen´ı z´atˇeˇze SQL server˚ u, protoˇze maximum pr´ace s daty se prov´ad´ı pˇr´ımo na aplikaˇcn´ım serveru. Pˇri pouˇzit´ı klasick´e klient server architektury lze dos´ahnout zv´ yˇsen´ı v´ ykonu syst´emu pouze pos´ılen´ım hardwaru SQL serveru. To m˚ uˇze pˇri vˇetˇs´ım objemu datab´aze znamenat vysok´e investice. V pˇr´ıpadˇe v´ıcevrstv´e architektury lze zvyˇsovat v´ ykon takˇrka neomezenˇe, nebot’ Microsoft Windows Server standardnˇe podporuje moˇznost zapojen´ı v´ıce aplikaˇcn´ıch server˚ u do jednoho bloku. d´ıky unik´atn´ı technologii, na kter´e je HELIOS Green postaven, m˚ uˇze v r´amci jedn´e aplikace nab´ıdnout v´ıce druh˚ u klient˚ u, od klasick´eho windows“ klienta aˇz po specializovan´e klienty webov´ ych a mobiln´ıch platforem. ” HELIOS Green vyuˇz´ıv´a ˇsirok´e moˇznosti webov´ ych sluˇzeb, kter´e jsou syst´emem nejen konzumov´any, ale tak´e poskytov´any. Informaˇcn´ı syst´em podporuje integraˇcn´ı sc´en´aˇre B2B/B2C a m˚ uˇze zahrnovat r˚ uzn´a ˇreˇsen´ı pro internetov´e obchody nebo automaticky komunikovat pˇres rozhran´ı XML s jin´ ymi webov´ ymi sluˇzbami a vymˇen ˇovat si s nimi potˇrebn´e informace.“ (4)
Obr´azek 1: Tˇr´ı vrstv´ a architektura IS HELIOS Green
12
1.2 1.2.1
C´ıl pr´ ace N´ avrh aplikace
C´ılem moj´ı pr´ace je vytvoˇrit klientskou aplikaci pro OS Android, kter´a bude zobrazovat pˇrehled finanˇcn´ıch prostˇredk˚ u a seznamy nevyˇr´ızen´ ych faktur. V kaˇzd´em seznamu bude uˇzivateli umoˇznˇeno prov´est vhodnou operaci s jednotliv´ ymi poloˇzkami v seznamu. Aplikace by mˇela b´ yt modifikovateln´a ze strany IS pˇrid´an´ım nebo odebr´an´ım z´aznamu v tabulce, kterou bude aplikace vyuˇz´ıvat. V tabulce budou ˇ uloˇzeny vazby na ˇsablony a operace. Sablona specifikuje skupinu faktur, jeˇz odpov´ıdaj´ı jej´ımu n´azvu, napˇr. fakturace pˇrijat´a nebo fakturace vystaven´a. Pro kaˇzdou takovou ˇsablonu bude definov´ana skupina operac´ı, kterou lze prov´est s fakturou, kter´a je touto ˇsablonou naˇcten´a. Vazby na tyto operace jsou uloˇzeny ve stejn´e tabulce jako vazby na ˇsablony. Pro spr´avn´e ˇr´ızen´ı finanˇcn´ıch prostˇredk˚ u je potˇreba zn´at stav na bankovn´ım u ´ˇctˇe spolu s pˇredpokl´adan´ ymi v´ ydaji a pˇr´ıjmy. Pro tento u ´ˇcel by v aplikaci mˇel b´ yt pˇrehled, jeˇz by n´azornˇe zobrazil stav na bankovn´ıho u ´ˇctu. Zobrazil by sumu nov´ ych pˇrijat´ ych faktur, sumu faktur evidovan´ ych jako akceptovan´e, ale dosud se nezaplatily, a pˇredpokl´adan´e pˇr´ıjmy, to jest faktury, kter´e byly vystaveny z´akazn´ıkovi, ale doposud nebyly proplaceny. Aby bylo uˇzivateli umoˇznˇeno ˇr´ıdit“ finanˇcn´ı prostˇredky, je potˇreba, aby mˇel ” pˇrehledy pˇrijat´ ych a vystaven´ ych faktur a v kaˇzd´em pˇrehledu definovanou skupinu moˇzn´ ych operac´ı. Tyto dva pˇrehledy faktur jsou definov´any ˇsablonami. Vazby na tyto ˇsablony budou zaneseny do tzv. inicializaˇcn´ı tabulky, jeˇz bude aplikace vyuˇz´ıvat. Ve stejn´e tabulce jsou tak´e definov´any moˇzn´e operace. 1.2.2
Souˇ casn´ y stav
V souˇcasn´e dobˇe spoleˇcnost Asseco Solutions nab´ız´ı sv´ ym z´akazn´ık˚ um klientskou aplikaci pro Windows. Pokud si z´akazn´ık pˇreje funkcionalitu, kter´a nen´ı standardnˇe nab´ızen´a, m˚ uˇze si pˇrikoupit tzv. v´ yvojov´ y modul“ a st´at se tak v´ yvojov´ ym part” nerem spoleˇcnosti Asseco Solutions. Ve v´ yvojov´em modulu lze snadno mˇenit nebo pˇrid´avat st´avaj´ı funkcionality. Tento modul je urˇcen zejm´ena pro z´akazn´ıky, kteˇr´ı maj´ı vlastn´ı IT oddˇelen´ı a chtˇej´ı si syst´em pˇrizp˚ usobovat vlastn´ımi prostˇredky. Spoleˇcnost Asseco Solutions a jej´ı partneˇri samozˇrejmˇe nab´ızej´ı implementov´an´ı poˇzadovan´ ych funkcionalit na m´ıru, pokud z´akazn´ık nem´a k dispozici poˇzadovan´ y v´ yvojov´ y modul. Z´akazn´ık˚ um jsou tak´e nab´ızeny doplˇ nuj´ıc´ı aplikace a zaˇr´ızen´ı, kter´e poskytuj´ı moˇznosti, jeˇz na klasick´em“ Windows klientovi nejsou moˇzn´e. Napˇr´ıklad se m˚ uˇze ” jednat o elektronickou pokladnu nebo ˇcteˇcku ˇca´rov´ ych k´od˚ u pro identifikaci zak´azky pˇri pr´aci na skladˇe. Tyto aplikace komunikuj´ı s informaˇcn´ım syst´emem stejn´ ym zp˚ usobem jako klasick´ y Windows klient-tedy s aplikaˇcn´ım serverem.
13
Obr´azek 2: Doplˇ nkov´e aplikace pro IS
1.3 1.3.1
Metodika zpracov´ an´ı Spir´ alov´ y model
Model je zaloˇzen na iterativn´ım pˇr´ıstupu a prob´ıh´a v nˇekolika kroc´ıch, kter´e se neust´ale opakuj´ı, dokud nen´ı produkt hotov. Hlavn´ı myˇslenkou je zde navazov´an´ı nov´ ych ˇc´ast´ı na jiˇz d˚ ukladnˇe provˇeˇren´ y z´aklad. Z poˇc´atku se v´ yvoj prov´ad´ı na z´akladˇe hrub´e specifikace poˇzadavk˚ u, v pozdˇejˇs´ıch f´az´ıch je tato specifikace i po konzultaci se z´akazn´ıkem postupnˇe upˇresˇ nov´ana.
Obr´azek 3: Spir´ alov´ y model v´ yvoje softwaru
• Anal´ yza – stanoven´ı c´ıl˚ u, alternativ a rozsahu iterace • Vyhodnocen´ı – vyhodnocen´ı alternativ, identifikace a ˇreˇsen´ı rizik • V´ yvoj – v´ yvoj produktu a kontrola oˇcek´avan´ ych v´ ysledk˚ u 14
• Pl´anov´an´ı – pl´an pro pˇr´ıˇst´ı iteraci 1.3.2
Vyuˇ zit´ı modelu
Pro dosaˇzen´ı stanoven´ ych c´ıl˚ u je potˇreba si zad´an´ı rozdˇelit do nˇekolika ˇca´st´ı, kter´e se budou snadnˇeji dˇelat. Prvn´ı takov´ y c´ıl je pˇrihl´aˇsen´ı k informaˇcn´ımu syst´emu. Dalˇs´ı je naˇcten´ıch ˇsablon tvoˇr´ıc´ı menu aplikace. Tˇret´ı ˇca´st´ı bude naˇcten´ı faktur pro vybranou ˇsablonu z menu aplikace. A posledn´ı ˇc´ast´ı pro dokonˇcen´ı aplikace je naˇcten´ı operac´ı pro vybranou skupinu faktur. Pro pˇrihl´aˇsen´ı je nutn´e od uˇzivatele z´ıskat pˇrihlaˇsovac´ı u ´daje, s nimiˇz se dok´aˇzeme pˇrihl´asit k informaˇcn´ımu syst´emu. Od uˇzivatele je nutn´e dostat adresu serveru spoleˇcnˇe s implementovanou verz´ı. Dalˇs´ı u ´daj, kter´ y uˇzivatel bude zad´avat, je datab´azov´ y profil, se kter´ ym chce pracovat. Posledn´ı dva nutn´e u ´daje je uˇzivatelsk´ y login a heslo. Kaˇzd´a osoba, kter´a pracuje s informaˇcn´ım syst´emem, m´a pˇriˇrazen´ y uˇzivatelsk´ y login k jednoznaˇcn´e identifikaci. Tento login m˚ uˇze b´ yt pouˇzit i u v´ıce datab´azov´ ych profil˚ u. Po u ´spˇeˇsn´em pˇrihl´aˇsen´ı se naˇctou poloˇzky menu z inicializaˇcn´ı“ tabulky. Tato ” tabulka vznikla v´ yhradnˇe pro u ´ˇcel t´eto aplikace. Uchov´av´a v sobˇe vazby na ˇsablony a operace, jeˇz jsou touto aplikac´ı vyuˇz´ıv´any. V t´eto tabulce je tak´e zachycena hierarchick´a n´avaznost z´aznam˚ u mezi sebou. Pro poloˇzky menu jsou pouˇzity z´aznamy, kter´e nemaj´ı tuto vazbu zachycenou a jsou typu pˇrehled. Jejich typ je tak´e zanesen v t´eto tabulce. Spoleˇcnˇe s poloˇzkami menu je zobrazen pˇrehled finanˇcn´ıch prostˇredk˚ u. Po v´ ybˇeru poloˇzky z menu (ˇsablony) se odeˇsle na server poˇzadavek na naˇcten´ı dat pro zvolenou ˇsablonu. Informaˇcn´ı syst´em naˇcte ˇsablonu a vytvoˇr´ı zpr´avu, kde jsou obsaˇzeny faktury zvolen´e ˇsablony. Z´aroveˇ n jsou naˇc´ıt´any operace z inicializaˇcn´ı tabulky pro tuto ˇsablonu. Spoleˇcnˇe se seznamem faktur je opˇet zobrazen pˇrehled finanˇcn´ıch prostˇredk˚ u, aby klient mˇel neust´ale pˇrehled, kolik finanˇcn´ıch prostˇredk˚ u bude putovat do spoleˇcnosti a kolik ven. Aˇz si uˇzivatel kliknut´ım zvol´ı fakturu u n´ıˇz chce prov´est zmˇenu, zobraz´ı se uˇzivateli dialogov´e okno s naˇcten´ ymi operacemi a vybere si jednu z nich. Pot´e se odeˇsle informaˇcn´ımu syst´emu poˇzadavek na proveden´ı poˇzadovan´e operace. Jakmile je operace provedena, je klientovi odesl´an v´ ysledek operace a klientsk´a aplikace provede opˇetovn´e naˇcten´ı jiˇz naˇcten´e ˇsablony, protoˇze data, kter´a jsou moment´alnˇe naˇcten´a, uˇz nejsou aktu´aln´ı. 1.3.3
V´ yvoj aplikac´ı
Aplikace mohou b´ yt testov´any na skuteˇcn´em pˇr´ıstroji opatˇren´em operaˇcn´ım ” syst´emem Android nebo v jeho emul´atoru. Pro ˇradu v´ yvoj´aˇr˚ u je emul´ator z´akladn´ım ”testovac´ım zaˇr´ızen´ım”a usnadˇ nuje poˇc´ateˇcn´ı v´ yvoj a ladˇen´ı aplikac´ı. Z´avˇereˇcn´e zkouˇsky kompletn´ı funkˇcnosti aplikace jsou prov´adˇeny jiˇz na re´aln´em zaˇr´ızen´ı. My zde tento postup budeme ct´ıt a syst´em v´ yvoje t´ımto zp˚ usobem pouˇz´ıvat. V t´eto kapitole se budeme zab´ yvat instalac´ı, nastaven´ım prostˇred´ı a sady n´astroj˚ u pro v´ yvoj aplikac´ı. Pˇri programov´an´ı aplikac´ı pro Android budeme pouˇz´ıvat tyto n´astroje: 15
• Java Development Kit (JDK) • Android Software Development Kit (SDK) • V´ yvojov´e prostˇred´ı Eclipse • Android Develpment Tool (ADT) Verze SDK JDK a v´ yvojov´e prostˇred´ı Eclipse jsou k dispozici pro operaˇcn´ı syst´emy Windows, Mac OS a Linux. Neexistuje ˇza´dn´a v´ yhoda ve v´ yvoji na konkr´etn´ım operaˇcn´ım syst´emu, proto je volba OS ˇcistˇe na program´atorovi. V knize se budeme vˇenovat instalaci potˇrebn´ ych n´astroj˚ u a tvorbˇe aplikac´ı pod operaˇcn´ım syst´emem Windows (v ostatn´ıch OS je instalace a nastaven´ı prostˇred´ı obdobn´e). Java Development Kit (JDK) je soubor z´akladn´ıch n´astroj˚ u a knihoven pro v´ yvoj aplikac´ı a aplet˚ u pro platformu Java. Z´akladn´ı souˇc´ast´ı JDK je Java Runtime Environment (JRE), jeˇz slouˇz´ı pro spouˇstˇen´ı aplikac´ı i v´ yvojov´ ych n´astroj˚ u, d´ale pˇrekladaˇc, debugger atd. Jelikoˇz se aplikace pro Android programuj´ı v jazyce Java, je potˇreba JDK, resp. JRE nainstalovat. Software Development Kit (SDK) je bal´ıˇcek v´ yvojov´ ych n´astroj˚ u, kter´e umoˇzn ˇuje vytv´aˇret aplikace pro urˇcit´e operaˇcn´ı syst´emy, hardware platformy nebo hern´ı konzole. SDK ve sv´em nitru obsahuj´ı knihovny API, dokumentaci, uk´azky vyuˇzit´ı spolu se zdrojov´ ymi k´ody atd. Android SDK nen´ı vyj´ımkou. Obsah je totoˇzn´ y s jin´ ymi SDK a nav´ıc zde napˇr. najdeme knihovny Javy potˇrebn´e pro tvorbu v´ ykonn´ ych mobiln´ıch aplikac´ı pro OS Android, dalˇs´ı n´astroje pro v´ yvoj a ladˇen´ı aplikac´ı a v neposledn´ı ˇradˇe tak´e emul´ator - virtu´aln´ı mobiln´ı zaˇr´ızen´ı funguj´ıc´ı na vaˇsem poˇc´ıtaˇci. Pro programov´an´ı aplikac´ı pro Andoid postaˇc´ı klasick´ y textov´ y editor, ˇci jak´ekoliv prostˇred´ı umoˇznuj´ıc´ı programovat v Javˇe (Java IDE), jako napˇr. NetBeans, Oracle, JDeveloper, BlueJ nebo Eclipse. Zkuˇsen´ y v´ yvoj´aˇr vˇsak radˇeji vol´ı n´astroj, kter´ y mu umoˇzn´ı v´ yvoj aplikac´ı co nejjednoduˇsˇs´ım a nejkomfortnˇejˇs´ım zp˚ usobem. My zde zvol´ıme v´ yvojov´e prostˇred´ı Eclipse. D˚ uleˇzitou souˇca´st´ı je spr´avn´e a funkˇcn´ı nastaven´ı v´ yvojov´eho prostˇred´ı, kter´e usnadn´ı samotn´ y v´ yvoj aplikac´ı. Pro potˇreby v´ yvoje pro Android je nutn´e propojit prostˇred´ı Eclipse s Android SDK. Propojen´ı je reprezentov´ano pluginem Android Develpment Tool (ADT), jenˇz rozˇsiˇruje moˇznosti Eclipse a umoˇzn ˇuje t´ım rychlou tvorbu Android projekt˚ u. Pomoc´ı ADT program´ator obrˇz´ı v´ ykonn´e integrovan´e prostˇred´ı s editorem vizu´aln´ıch aplikac´ı, vlastn´ımi XML editory, lad´ıc´ımi panely a tvorbou APK bal´ıˇck˚ u pro distribuci aplikace.“(5)
16
2 2.1 2.1.1
Integrace s IS HELIOS Green Vlastnosti IS HELIOS Green z pohledu integrace Integrace pomoc´ı XML zpr´ av
Komunikace pomoc´ı XML zpr´av je velmi jednoduch´a, vˇzdy se skl´ad´a z jednoho poˇzadavku a jedn´e odpovˇedi. V prvn´ım kroku komunikace je potˇreba vyuˇz´ıt sluˇzby Data.asmx. Tato sluˇzba m´a implementovanou jen jednu metodu Getinfo, kter´a m´a dva parametry myCode a myValue. Prvn´ı slouˇz´ı k definici operace a druh´ y je nepovinn´ y. V naˇsem pˇr´ıpadˇe pouˇzijeme operaci GETREDIRECTINFO, kter´a n´am vr´at´ı adresu serveru, jeˇz n´as bude d´ale obsluhovat. IS HELIOS Green m˚ uˇze totiˇz bˇeˇzet paralelnˇe na nˇekolika webov´ ych serverech a pro rovnomˇern´e rozdˇelen´ı z´atˇeˇze na vˇsechny poˇc´ıtaˇce je nutno pouˇz´ıt v´ yˇse uveden´e sluˇzby. Pro dalˇs´ı komunikaci existuje na aplikaˇcn´ım serveru webov´a sluˇzba, kter´a se jmenuje ServiceGate.asmx. Tato sluˇzba implementuje ˇctyˇri metody pro vol´an´ı. Tabulka 1: Metody webov´e sluˇzby ServiceGate.asmx
Metoda
LogOn
LogOff
parametry profile username password language options sessionToken
N´ avratov´ a hodnota
sessionToken
1=u ´spˇeˇsn´e odlogov´an´ı 0 = uˇzivatel nebyl pˇrihl´aˇsen pˇr´ıpadnˇe ˇretˇezec zaˇc´ınaj´ıc´ı ERROR“ ” outputXml
ProcessXml sessionToken inputXml KeepAlive sessionToken ˇcas o kter´ y byla prodlouˇzena platnost pˇr´ıpadnˇe ˇretˇezec zaˇc´ınaj´ıc´ı ERROR“ ” LogOn metoda slouˇz´ı k pˇrihl´aˇsen´ı do syst´emu. Bez ˇra´dn´e autentizace nen´ı moˇzn´e z´ıskat ˇz´adn´e informace uloˇzen´e v IS. Tato metoda m´a celkem 5 parametr˚ u. Posledn´ı parametr options“ je nepovinn´ y a jeho hodnota m˚ uˇze b´ yt vynech´ana. v n´avratov´e ” zpr´avˇe je uveden tzv. sessionToken“. Pˇredstavuje identifikaci pˇrihl´aˇsen´ı uˇzivatele ” do syst´emu a je vyuˇz´ıv´an ostatn´ımi metodami toho rozhran´ı. Pouˇzit´ı metody LogOff ukonˇc´ı platnost sessionTokenu“, kter´ y uˇzivatel vytvoˇril ” pˇri vol´an´ı metody LogOn. Metoda ProcessXml zpracov´av´a poˇzadavky od uˇzivatele a je nejpouˇz´ıvanˇejˇs´ı metodou pˇri komunikaci s informaˇcn´ım syst´emem. Jej´ı parametry jsou sessionTo” ken“ a inputXml“. SessionTokenem“ se uˇzivatel autentizuje a v inputXml“ je ” ” ” 17
obsaˇzen dotaz klienta. Obsahem dotazovac´ı sekvence muˇze b´ yt 10 r˚ uzn´ ych struktur. v naˇs´ı aplikaci vyuˇzijeme jen tˇri, proto se budu zab´ yvat pouze tˇemito: • QUERYSELECT - v poˇzadavku je uvedeno ˇc´ıslo tˇr´ıdy, SQL pˇr´ıkaz a typ v´ ysledku (RECORDIDS, RECORDS, DATASET). SQL pˇr´ıkaz mus´ı b´ yt 0SELECT ˇci vol´an´ı uloˇzen´e procedury EXECUTE. v pˇr´ıpadˇe typu v´ ysledku RECORDIDS, RECORDS mus´ı SQL pˇr´ıkaz vracet pr´avˇe jeden sloupec, a to ˇc´ıslo (non)subjektu. • BROWSE - v poˇzadavku je uvedena identifikace pˇrehledov´e ˇsablony nebo pohledu. Vr´acen´a data lze filtrovat pomoc´ı uloˇzen´eho nebo sestaven´eho filtru. • RUN - v poˇzadavku je uvedena identifikace funkce a identifikace z´aznam˚ u ve formˇe RECORD elementu se z´akladn´ımi u ´daji o z´aznamu. IS spust´ı funkci pro zadan´e z´aznamy a vr´at´ı v´ ysledek spuˇstˇen´ı. Na stranˇe aplikaˇcn´ıho serveru je dotaz zpracov´an a n´aslednˇe je vygenerov´ana odpovˇed’ jako n´avratov´a hodnota metody. Metodou KeepAlive prodlouˇz´ıme platnosti sessionTokenu, o kolik byla prodlouˇzena se dozv´ıme z odpovˇedi serveru. 2.1.2
Tˇr´ıda Konfigurace Android“ ” V IS HELIOS Green se pouˇz´ıv´a pojem tˇr´ıda pro souhrn informac´ı, popisuj´ıc´ı datovou strukturu a funkˇcn´ı vlastnosti kaˇzd´eho z´aznamu. Kaˇzd´a tˇr´ıda reprezentuje samostatnou SQL tabulku, jej´ıˇz struktura je pops´ana pomoc´ı tzv. atribut˚ u ˇci vztah˚ u. Atribut popisuje jednotliv´ yu ´daj v SQL tabulce, kter´ y m˚ uˇze b´ yt typu ˇretˇezec, ˇc´ıslo, datum apod. Vztah definuje odkaz na jak´ ykoliv jin´ y z´aznam z IS. Tento odkaz je vˇzdy typu integer, protoˇze vˇsechny z´aznamy maj´ı sv˚ uj jednoznaˇcn´ y identifik´ator uveden´eho typu. Mimo definice datov´e struktury tˇr´ıda obsahuje vlastnosti vˇsech jejich z´aznam˚ u: • Poˇradaˇc - z´aznamy jedn´e tˇr´ıdy je moˇzno rozdˇelit na jednu ˇci v´ıce skupin, tyto skupiny se naz´ yvaj´ı poˇradaˇce. Pˇres tyto poˇradaˇce se pak pˇristupuje k vlastn´ım z´aznam˚ um - pˇrehledy z´aznam˚ u se vˇzdy spouˇst´ı pro vybran´ y poˇradaˇc. • Funkce - jde o seznam funkc´ı, kter´e je moˇzno spouˇstˇet pro jeden ˇci v´ıce z´aznam˚ u. Kaˇzd´a definice funkce obsahuje mimo n´azvu funkce, jm´eno volan´eho objektu, popis obecn´eho chov´an´ı funkce apod. ˇ • Sablony - mohou b´ yt dvoj´ıho typu. Pˇrehledov´e ˇsablony obsahuj´ı seznam u ´daj˚ u a form´aty zobrazen´ı. Pro ˇsablony tohoto typu je v IS nachyst´an n´astroj tzv. gener´ator ˇsablon“, kter´ y umoˇzn´ı ˇsablony tohoto typu vytv´aˇret pˇr´ımo uˇzivateli. ” Druh´ ym typem je ˇsablona, kter´a slouˇz´ı pro zobrazen´ı ˇci tisk u ´daj˚ u nad jedn´ım z´aznamem, pˇr´ıkladem m˚ uˇze b´ yt napˇr. tisk faktury pro z´akazn´ıka. • Formul´aˇrov´e ˇsablony - slouˇz´ı pro editaci jednotliv´ ych z´aznam˚ u. s kaˇzdou tˇr´ıdou je vˇzdy instalov´ana standardn´ı formul´aˇrov´a ˇsablona, kterou je ale moˇzno upravit 18
(pˇridat ˇci ubrat nˇejak´e atributy ˇci vztahy, blokovat u ´daje pro modifikaci apod.) a uloˇzit jako dalˇs´ı ˇsablonu, kter´a se pak pouˇzije napˇr. pro vybranou skupinu uˇzivatel˚ u. Tˇr´ıda Konfigurace Android“ vznikla v IS HELIOS Green pro u ´ˇcely mo” biln´ı aplikace, aby bylo moˇzno relativnˇe jednoduˇse uˇzivatelsky definovat pˇrehledy ˇci funkce, kter´e maj´ı b´ yt dostupn´e v mobiln´ı aplikaci. St´avaj´ıc´ı konfigurace odpov´ıd´a funkcionalitˇe dle zad´an´ı bakal´aˇrsk´e pr´ace, je vˇsak moˇzn´e pˇrid´avat nov´e konfiguraˇcn´ı z´aznamy ˇci vlastnosti cel´e tˇr´ıdy pro dalˇs´ı rozˇsiˇrov´an´ı funkcionality mobiln´ı aplikace. Jsou zde uloˇzeny ˇsablony a funkce kter´e jsou aplikac´ı vyuˇzity. Ve sloupci Typ je uveden typ z´aznamu o kter´ y se jedn´a. Z´aznamy se dˇel´ı do tˇr´ı typ˚ u: Pˇrehled, Funkce, Z´akladn´ı informace.
Obr´azek 4: Inicializaˇcn´ı tabulka
2.1.3
ˇ Sablony pro mobiln´ı aplikaci
V IS HELIOS Green je moˇzno relativnˇe jednoduˇse nadefinovat pˇrehledovou ˇsablonu pomoc´ı gener´atoru. Takovou ˇsablonu je pak moˇzno vyuˇz´ıt pro naˇc´ıt´an´ı dat do mobiln´ı aplikace. Z´ısk´a se tak moˇznost dodateˇcn´ ych u ´prav naˇc´ıt´an´ı dat, aniˇz by bylo nutno cokoliv upravovat v mobiln´ı aplikaci. Vlastn´ı gener´ator ˇsablon se spouˇst´ı vˇzdy nad pˇrehledem z´aznam˚ u, pro nˇeˇz m´a b´ yt ˇsablona vytvoˇrena. Nejdˇr´ıve je nutno vytvoˇrit seznam sloupc˚ u, kter´e maj´ı b´ yt zobrazeny. Je moˇzno dotahovat tak´e u ´daje ze z´aznam˚ u jin´ ych tˇr´ıd, kter´e jsou nav´az´any na z´aznam ze tˇr´ıdy, pro niˇz tvoˇr´ıme ˇsablonu, viz obr.5. Jakmile jsou definov´any jednotliv´e sloupce, je moˇzno na z´aloˇzce Vlastnosti ” atribut˚ u“ upravit form´at zobrazovan´ ych dat - nastavit ˇs´ıˇrku sloupc˚ u, zarovn´an´ı, fonty apod., viz obr.6
19
Obr´azek 5: Gener´ ator ˇsablon - v´ ybˇer atribut˚ u
Obr´azek 6: Gener´ ator ˇsablon - vlastnosti atribut˚ u
2.2 2.2.1
Napojen´ı mobiln´ı aplikace na IS HELIOS Green Pˇrenos poˇ zadavku
SOAP je protokol pro pos´ıl´an´ı zpr´av XML a je z´akladem webov´ ych sluˇzeb. Ostatn´ı ” standardy jako WSDL a UDDI vznikly aˇz pozdˇeji po uveden´ı SOAPu a jen d´ale rozˇsiˇruj´ı jeho moˇznosti a snadnost pouˇzit´ı. SOAP umoˇzn ˇuje zasl´an´ı XML zpr´avy mezi dvˇema aplikacemi a pracuje tedy na principu peer-to-peer. Zpr´ava je jednosmˇern´ y pˇrenos informace od odes´ılatele k pˇr´ıjemci, ale d´ıky kombinov´an´ı nˇekolika zpr´av m˚ uˇzeme pomoc´ı SOAPu snadno implementovat bˇeˇzn´e komunikaˇcn´ı sc´en´aˇre. Nejˇcastˇeji se SOAP pouˇz´ıv´a jako n´ahrada vzd´alen´eho vol´an´ı procedur (RPC), tedy v modelu poˇzadavek/odpovˇed’. Jedna aplikace poˇsle v XML zpr´avˇe poˇzadavek druh´e aplikaci, tak poˇzadavek obslouˇz´ı a v´ ysledek zaˇsle jako druhou zpr´avu zpˇet p˚ uvodn´ımu inici´atorovi komunikace. v tomto pˇr´ıpadˇe b´ yv´a webov´a sluˇzba vyvol´ana webov´ ym serverem, kter´ y ˇcek´a na poˇzadavky klient˚ u a v okamˇziku, kdy pˇres HTTP 20
pˇrijde soapov´a zpr´ava, spust´ı webovou sluˇzbu a pˇred´a j´ı poˇzadavek. V´ ysledek sluˇzby je pak pˇred´an zpˇet klientovi jako odpovˇed’.“ (6) 2.2.2
Pˇrihl´ aˇsen´ı do IS
Pro pˇrihl´aˇsen´ı je nutn´e zadat nˇekolik potˇrebn´ ych u ´daj˚ u, jsou to URL webov´e sluˇzby, datab´azov´ y profil, pˇrihlaˇsovac´ı login a heslo. Prvn´ı ˇca´st URL webov´e sluˇzby pˇredstavuje definici protokolu pouˇzit´ y pro komunikaci s IS, m˚ uˇze se jednat o HTTP nebo HTTPS, podle toho jak je aplikaˇcn´ı server IS nastaven. Dalˇs´ı ˇc´ast´ı URL adresy je IP adresa, kter´a jednoznaˇcnˇe identifikuje poˇc´ıtaˇc v s´ıti. A posledn´ı ˇc´asti URL adresy je sloˇzka implementace IS. (pˇ renosov´ y protokol)://(IP adresa)/(sloˇ zka implementace) http://192.192.192.50/green43 Datab´azov´ y profil definuje informaˇcn´ımu syst´emu, se kterou datab´az´ı m´a pracovat. Z´akazn´ık m˚ uˇze m´ıt v´ıce datab´azov´ ych profil˚ u. Napˇr´ıklad jeden je pro chod firmy, tzv. ostr´ y“ profil, a dalˇs´ı m˚ uˇze b´ yt urˇcen´ y pro testov´an´ı ˇc´ast´ı syst´emu, kter´e ” se moment´alnˇe lad´ı a zkouˇs´ı se jejich funkˇcnost, neˇz se pouˇzij´ı na ostr´em“ profilu. ” Datab´azov´ y profil vypad´a napˇr´ıklad: demoLCS_43 Login dostanou vˇsichni zamˇestnanci, kteˇr´ı se pˇrihlaˇsuj´ı do syst´emu. D´ıky tomu lze kaˇzd´emu zamˇestnanci nastavit pˇr´ıstupov´a pr´ava a omezit tak jeho pˇr´ıstup jen k urˇcit´ ym oblastem, kter´e potˇrebuje ke sv´e pr´aci. lcs
Obr´azek 7: Vyˇz´ ad´ an´ı pˇrihlaˇsovac´ıch u ´daj˚ u
21
2.2.3
Menu mobiln´ı aplikace
Poloˇzky menu mobiln´ı aplikace tvoˇr´ı ˇsablony, kter´e jsou uloˇzeny v inicializaˇcn´ı tabulce. Naˇcten´ı poloˇzek se provede SQL selectem, jeˇz pomoc´ı vhodn´e podm´ınky vybere spr´avn´e z´aznamy. select cislo_subjektu, nazev_subjektu, typ, id_poradac, id_sablona from lcs.qn_android where id_parent is null and typ = ’A’ order by reference_subjektu Tento SQL dotaz vybere koˇrenov´e z´aznamy, tzn. ty kter´e nemaj´ı vyplnˇen vztah id_parent na nadˇr´ızen´ y z´aznam, tud´ıˇz jsou rodiˇcem“. D´ale je potˇreba vybrat ” pouze z´aznamy typu pˇrehled“, proto mus´ıme rozˇs´ıˇrit omezovac´ı podm´ınku v´ yrazem ” typ = ’A’. Nakonec je SQL dotaz potˇreba zakomponovat do XML struktury, kter´a se bude zpracov´avat jako parametr metody ProcessXml na aplikaˇcn´ım serveru.
V t´eto XML struktuˇre je atribut SELECT, kter´ y napln´ıme v´ yˇse popsan´ ym SQL selectem. Jakmile m´ame vytvoˇrenou XML strukturu, zavol´ame metodu Connect.ProcessXml(String XML). Tato metoda se postar´a o pˇrenos poˇzadavku na aplikaˇcn´ı server, kde se d´ale zajist´ı spuˇstˇen´ı selectu nad SQL datab´az´ı, pˇreveden´ı naˇcten´ ych dat do XML form´atu typu QUERYSELECTRESULT a odesl´an´ı odpovˇedi zpˇet klientsk´e aplikaci. Odpovˇed’ vypad´a n´asledovnˇe:
Faktury doˇ sl´ e A 122 10788 Faktury vydan´ e 22
A 133 10837 Element QUERYSELECTRESULT obsahuje atribut STATE, kter´ y nese stav odpovˇedi. Dalˇs´ım d˚ uleˇzit´ ym elementem je Table1. Uvnitˇr tohoto elementu jsou v pˇr´ıpadˇe u ´spˇeˇsn´eho dotazu dalˇs´ı elementy podle projekce SQL dotazu, j´ımˇz jsme naˇc´ıtali tato data. 2.2.4
Pˇrehledy faktur
Spr´avou pˇrijat´ ych ˇci vydan´ ych faktur se rozum´ı zobrazen´ı seznamu faktur, kter´e jsou evidovan´e v IS jako pˇredpokl´adan´e v´ ydaje ˇci pˇr´ıjmy. Mezi pˇredpokl´adan´e pˇr´ıjmy patˇr´ı faktury, kter´e firma vystavila sv´ ym z´akazn´ık˚ um, ale doposud nebyly proplaceny. Do spr´avy vystaven´ ych faktur patˇr´ı doklady, kter´e byly vystaveny z´akazn´ık˚ um, ale z´akazn´ık doklad jeˇstˇe nezaplatil. Uˇzivateli je umoˇznˇeno prov´adˇet zmˇeny nad tˇemito doklady. Kaˇzd´a faktura, kterou firma dostane, ˇcek´a v IS, aˇz ji povˇeˇren´a osoba ovˇeˇr´ı a schv´al´ı. Jakmile je faktura schv´alena, odeˇctou se finanˇcn´ı prostˇredky a faktura se uˇz nepoˇc´ıt´a do pˇredpokl´adan´ ych v´ ydaj˚ u. Pˇrehledy faktur se naˇc´ıtaj´ı z IS pomoc´ı ˇsablon, definovan´ ych v konfiguraci IS. Identifikace ˇsablony (identifikaˇcn´ı ˇc´ıslo) se z´ıskala v pˇredchoz´ım kroku, pˇri naˇc´ıt´an´ı poloˇzek menu. Pro vlastn´ı zobrazen´ı seznamu je tedy nutno z´ıskat data pomoc´ı aplikace uveden´e ˇsablony. Naˇc´ıtan´ı obsahu ˇsablony pro vybranou poloˇzku z menu (faktury pˇrijat´e ˇci vydan´e) se provede XML dotazem, kter´ y zaˇc´ın´a elementem BROWSE. N´asleduj´ı atributy, kter´e urˇcuj´ı poˇradaˇc, v nˇemˇz je ˇsablona zaˇrazen´a. Identifik´ator ˇsablony je uloˇzen v atributu number, kter´ y je v elementu browseId. Dotaz na naˇcten´ı ˇsablony tedy vypad´a n´asledovnˇe:
Odpovˇed’ aplikaˇcn´ıho serveru je pomˇernˇe sloˇzit´a a dlouh´a, proto zde v nˇekolika pˇr´ıkladech uvedu jen elementy, kter´e jsou vyˇzity v mobiln´ı aplikaci. Na zaˇc´atku odpovˇedi je element, kter´ y obsahuje stav odpovˇedi, zda dotaz probˇehl u ´spˇeˇsnˇe nebo doˇslo k chybˇe. Spoleˇcnˇe s t´ımto stavem jsou zde atributy, kdy byl dotaz spuˇstˇen a kdy dobˇehl do konce. Pot´e n´asleduj´ı elementy, ve kter´ ych je shrnut´ı v´ ysledku ˇsablony, jako je jm´eno, poˇradaˇc, id, naˇcten´ y poˇcet z´aznam˚ u apod. Seznam sloupc˚ u, naˇcten´ ych pomoc´ı ˇsablony, je uveden v elementu se jm´enem Columns. Tento element obsahuje dalˇs´ı elementy Column. Kaˇzd´ y tento element jiˇz 23
pˇredstavuje jeden sloupec ˇsablony a obsahuje atribut Name s n´azvem sloupce a d´ale pak atribut DataType s datov´ ym typem sloupce.
Vlastn´ı naˇcten´a data jsou uloˇzena v elementu DataRows, kter´ y obsahuje elementy DataRow, jeˇz pˇredstavuj´ı jednotliv´e naˇcten´e z´aznamy. Data jsou zde uloˇzena jako atributy, kter´e maj´ı n´azvy dle v´ yˇse popsan´e definice elementu Columns. Poˇcet element˚ u Column koresponduje s poˇctem atribut˚ u elementu DataRow.
faktura_dosla_hlavicka_Exp499000="FD - Tuzemsk´ e" faktura_dosla_hlavicka_reference_subjektu="FDT-30009" faktura_dosla_hlavicka_nazev_subjektu="2013009" subjekty_nazev_subjektu="Frisco Systems CZ s.r.o." faktura_dosla_hlavicka_cena_celkem="64372.0000" faktura_dosla_hlavicka_Exp195468="Odm´ ıtnuto" /> Kaˇzd´a poloˇzka seznamu obsahuje z´akladn´ı informace o faktuˇre, kter´e ji jedineˇcnˇe identifikuj´ı a z´aroveˇ n d´avaj´ı uˇzivateli dostatek informac´ı pro zvolen´ı operace. 2.2.5
Operace nad fakturami
V´ yˇcet dostupn´ ych operac´ı nad fakturami je nutno naˇc´ıst jako n´asledn´ y krok po naˇcten´ı seznamu faktur. Pro naˇcten´ı operac´ı se pouˇzije vol´an´ı metody ProcessXml s XML strukturou QUERYSELECT.
kde do id_parent je nutno dosadit hodnotu identifik´atoru cislo_subjektu konfiguraˇcn´ıho z´aznamu aktu´aln´ıho pˇrehledu faktur, z´ıskan´eho pˇri naˇc´ıt´an´ı poloˇzek menu. Pro pˇrijatou fakturaci byly definov´any 2 operace. Jednou moˇznost´ı je potvrzen´ı a t´ım schv´alen´ı proplacen´ı cel´e ˇca´stky faktury, druhou moˇznost´ı je odm´ıtnut´ı faktury z r˚ uzn´ ych d˚ uvod˚ u, napˇr. kv˚ uli neodpov´ıdaj´ıc´ı cenˇe apod. Pokud uˇzivatel v mobiln´ı aplikaci vybere poˇzadovanou fakturu a nad n´ı aktivuje nˇekterou z operac´ı, tak se spuˇstˇen´ı vlastn´ı funkce v IS realizuje opˇet vol´an´ım metody ProcessXml, tentokr´at vˇsak s XML strukturou RUN.
kde je nutno do atributu CLASSID doplnit hodnotu cislo_tridy a do atributu FUNCTIONID doplnit hodnotu id_funkce, kter´e byly z´ıskan´e pˇri naˇc´ıt´an´ı seznamu operac´ı. Atribut SUBJECTID, jenˇz identifikuje z´aznam, nad n´ıˇz se m´a dan´a operace spustit, je pak nutno naplnit hodnotou cislo_subjektu z´ıskan´e z pˇrehledu faktur. 25
Vol´an´ı metody ProcessXml zajist´ı pˇrenos poˇzadavku na aplikaˇcn´ı server, kde se spust´ı poˇzadovan´a funkce nad vybran´ ym z´aznamem a v´ ysledek je pˇreveden do XML form´atu typu RUNRESULT a ten je odesl´an jako odpovˇed’ zpˇet klientsk´e aplikaci.
26
3 3.1 3.1.1
Implementace manaˇ zersk´ e aplikace Vytvoˇren´ı aplikace Nov´ y projekt
N´azev aplikace je n´azev aplikace, kter´ y se zobraz´ı uˇzivatel˚ um. N´azev projektu je ” n´azev adres´aˇre projektu a n´azev viditeln´ y v prostˇred´ı Eclipse. N´azev bal´ıˇcku je jmenn´ y prostor bal´ıˇcku pro aplikaci (stejn´e pravidla jako bal´ıˇcky v programovac´ım jazyce Java). Jm´eno bal´ıˇcku mus´ı b´ yt jedineˇcn´e v r´amci vˇsech bal´ıˇck˚ u nainstalovan´ ych v syst´emu Android. Z tohoto d˚ uvodu, je obecnˇe nejlepˇs´ı, pokud se pouˇzije opaˇcn´ y n´azev dom´eny organizace nebo vydavatele aplikace. Minim´aln´ı povinn´e SDK je nejniˇzˇs´ı verze Androidu, kterou aplikace podporuje, to je uvedeno pomoc´ı u ´rovnˇe API. Je-li potˇreba podporovat co nejv´ıce zaˇr´ızen´ı, mˇela by se nastavit na co nejniˇzˇs´ı dostupnou verzi. To umoˇzn´ı poskytovat aplikaci z´akladn´ı sadu funkc´ı. Nˇekter´e funkce jsou poskytov´any aplikac´ı pouze na novˇejˇs´ıch verz´ıch Androidu. C´ılov´a SDK oznaˇcuje nejvyˇsˇs´ı verzi Android (´ urovnˇe API), na kter´e byla aplikace testovan´a. Aplikace by se mˇely testovat na nejnovˇejˇs´ı verzi, pokud je k dispozici. Hodnota by mˇela odpov´ıdat posledn´ı u ´rovni API, aby aplikace mohla vyuˇz´ıt nejnovˇejˇs´ıch funkc´ı. Kompilace pro platformu, je verze, pro kterou se bude aplikace kompilovat. Ve v´ ychoz´ım nastaven´ı je tato volba nastavena na nejnovˇejˇs´ı verzi Android dostupn´eho SDK. (To by mˇela b´ yt pro Android 4.1 nebo vyˇsˇs´ı, pokud nejsou tyto verze k dispozici, mus´ı se nainstalovat pomoc´ı SDK spr´avce). Nebo se m˚ uˇze vytvoˇrit aplikaci pro podporu starˇs´ıch verz´ı, ale pokud se zvol´ı kompilace na nejnovˇejˇs´ı verzi, m˚ uˇzeme pouˇz´ıt nov´e funkce a optimalizovat aplikaci pro skvˇel´ y uˇzivatelsk´ y z´aˇzitek z nejnovˇejˇs´ıch prvk˚ u UI.“(7) 3.1.2
Stavba uˇ zivatelsk´ eho rozhran´ı
Vˇsechny prvky uˇzivatelsk´eho rozhran´ı v aplikaci jsou postaveny z View a ViewGroup objekt˚ u. View je objekt, kter´ y na obrazovku nˇeco vykresluje a s ˇc´ım m˚ uˇze uˇzivatel reagovat. ViewGroup je objekt, jeˇz drˇz´ı pohromadˇe ostatn´ı View a ViewGroup podle definice. Android nab´ız´ı sb´ırku View a ViewGroup podtˇr´ıd, kter´e n´am nab´ızej´ı vstupn´ı ovl´adac´ı prvky (napˇr´ıklad tlaˇc´ıtka a textov´a pole) a r˚ uzn´e modely rozloˇzen´ı (napˇr´ıklad line´arn´ı nebo relativn´ı uspoˇra´d´an´ı). Uˇzivatelsk´e rozhran´ı pro kaˇzdou ˇca´st aplikace je definov´ano pomoc´ı hierarchie View a ViewGroup objekt˚ u, jak je zn´azornˇeno na obr´azku 8. Kaˇzd´ y ViewGroup je neviditeln´ y obal, kter´ y organizuje podˇr´ızen´e View, zat´ımco podˇr´ızen´e View m˚ uˇze b´ yt vstupn´ı prvek nebo jin´ y widget, kter´e vykresluj´ı nˇekter´e ˇca´sti uˇzivatelsk´eho
27
rozhran´ı. Tato stromov´a hierarchie m˚ uˇze b´ yt jednoduch´a nebo sloˇzit´a podle potˇreby. Jednoduchost je pro v´ ykon nejlepˇs´ı.
Obr´azek 8: Hierarchie View a ViewGroup
Chcete-li deklarovat rozvrˇzen´ı, m˚ uˇzete vytvoˇrit instanci View objektu v k´odu a zaˇc´ıt stavˇet stromovou hierarchii, ale nejjednoduˇsˇs´ı a nejefektivnˇejˇs´ı zp˚ usob, jak definovat rozloˇzen´ı, je se souborem XML. XML nab´ız´ı lidsky ˇcitelnou strukturu pro uspoˇra´d´an´ı, podobnˇe jako HTML. Jm´eno XML elementu koresponduje s Android tˇr´ıdou, kter´a zastupuje tento prvek. Takˇze
element vytv´aˇr´ı TextView View widget ve vaˇsem uˇzivatelsk´em rozhran´ı a element vytvoˇr´ı LinearLayout ViewGroup. Nejjednoduˇsˇs´ım widgetem je popisek, na kter´ y se OS internˇe odkazuje jako ” na tˇr´ıdu TextView. Stejnˇe jako v pˇr´ıpadˇe vˇetˇsiny jin´ ych sad n´astroj˚ u pro tvorbu grafick´eho uˇzivatelsk´eho rozhran´ı jsou i v syst´emu Android popisky kr´atk´ ymi texty, kter´e uˇzivatel nem˚ uˇze pˇr´ımo upravovat. Obvykle se pouˇz´ıvaj´ı k identifikaci pˇrilehl´ ych widget˚ u (popisek Jm´eno“ m˚ uˇze b´ yt napˇr´ıklad vedle pole, do kter´eho uˇzivatel zad´av´a ” sv´e jm´eno). ˇ eji se V Javˇe se popisek vytvoˇr´ı tak, ˇze vytvoˇr´ı instanci tˇr´ıdy TextView. Castˇ vˇsak popisky budou vytv´aˇret v XML souborech n´avrhu tak, ˇze se pˇrid´a do n´avrhu element TextView s atributem android:text specifikuj´ıc´ı text popisku.“(8)
3.2
Diagramy tˇr´ıd
3.2.1
Pˇrihl´ aˇsen´ı k IS
Tˇr´ıda MainActivity v metodˇe onCreate(Bundle savedInstanceState) si ovˇeˇr´ı, jestli uˇz je uˇzivatel pˇrihl´aˇsen nebo ne. Pokud nen´ı, zobraz´ı se uˇzivateli pˇrihlaˇsovac´ı formul´aˇr, do kter´eho se vypln´ı potˇrebn´e u ´daje pro pˇrihl´aˇsen´ı a spust´ı funkci pro pˇrihl´aˇsen´ı k informaˇcn´ımu syst´emu. Pˇrihlaˇsovac´ı u ´loha MakeLogin je implementov´ana jako vnitˇrn´ı tˇr´ıda PrihlaseniView a je potomkem tˇr´ıdy AsyncTask. Tato tˇr´ıda se spouˇst´ı jako dalˇs´ı vl´akno aplikace 28
Obr´azek 9: Diagram tˇr´ıd pro pˇrihl´aˇsen´ı do IS
a provede pˇrihl´aˇsen´ı k informaˇcn´ımu syst´emu. Tato u ´loha zavol´a inicializaˇcn´ı metodu a hned pot´e pˇrihlaˇsovac´ı metodu. Pokud obˇe metody probˇehnou v poˇra´dku, povedlo se uˇzivateli pˇrihl´aˇsen´ı k informaˇcn´ımu syst´emu. Pot´e je nastaven aplikaci layout pro menu aplikace. Pro vlastn´ı realizaci inicializace, pˇrihl´aˇsen´ı a zas´ılan´ı poˇzadavk˚ u nebo dotaz˚ u je vytvoˇrena tˇr´ıda Connect. Vˇsechny jej´ı atributy a metody jsou oznaˇcen´ı jako static. Tohle oznaˇcen´ı je zvoleno z d˚ uvodu, aby se jej´ı metody mohly volat kdekoliv a kdykoliv a vyuˇz´ıvalo se jen jedno spojen´ı s aplikaˇcn´ım serverem. Vol´an´ım inicializaˇcn´ı metody Init(String... param) se provede zavol´an´ı metody GetInfo na webov´em rozhran´ı Data.asmx. V´ ysledek t´eto metody je adresa aplikaˇcn´ıho serveru, kter´ y bude obsluhovat dalˇs´ı poˇzadavky. Parametrem t´eto inicializaˇcn´ı metody je pole String˚ u, ve kter´em jsou obsaˇzeny u ´daje z pˇrihlaˇsovac´ıho formul´aˇre. Metoda LogOn() provede samotn´e pˇrihl´aˇsen´ı k informaˇcn´ımu syst´emu. V pˇredchoz´ım vol´an´ı inicializaˇcn´ı metody byla vr´acena adresa aplikaˇcn´ıho serveru, kter´ y bude d´ale obsluhovat naˇse poˇzadavky a m´a implementovanou webovou sluˇzbu ServiceGate.asmx. Samotn´e pˇrihl´aˇsen´ı se provede zavol´an´ım metody LogOn implementovan´e na tomto webov´em rozhran´ı. Pokud byly zad´any spr´avn´e pˇrihlaˇsovac´ı u ´daje, je n´avratovou hodnotou t´eto metody autentizaˇcn´ı token, kter´ y bude slouˇzit jako autentizace pˇrihl´aˇsen´eho uˇzivatele. 3.2.2
Menu aplikace
Menu aplikace se dˇel´ı do dvou ˇca´st´ı, FinanceView a MenuListView. MenuListView slouˇz´ı pro zobrazen´ı poloˇzek menu. Z tˇechto poloˇzek si uˇzivatel vybere, co za skupinu faktur chce naˇc´ıst. V ˇc´asti FinanceView je pˇrehled finanˇcn´ıch prostˇredk˚ u. Informace v tomto pˇrehledu jsou naˇcten´e ˇsablonou, jeˇz je uloˇzena v inicializaˇcn´ı“ tabulce ” spoleˇcnˇe s ostatn´ımi ˇsablonami a operacemi, co jsou aplikac´ı pouˇzity. MenuListView obsahuje vnitˇrn´ı tˇr´ıdu LoadData, kter´a naˇc´ıt´a poloˇzky pro menu aplikace. Tyto poloˇzky jsou tvoˇreny ˇsablonami z inicializaˇcn´ı“ tabulky. Pro poloˇzky ” 29
Obr´azek 10: Diagram tˇr´ıd pro menu
jsou pouˇzity ˇsablony typu Pˇrehled“ a jsou naˇcteny pomoc´ı SQL dotazu. S naˇc´ıt´an´ım ” ˇsablon a funkc´ı z inicializaˇcn´ı“ tabulky n´am pom´ah´a tˇr´ıda LoadInit ” Tˇr´ıdˇe LoadInit jsou pˇred´any 2 parametry, prvn´ı z nich je SQL dotaz, kter´ ym chceme naˇc´ıst data z datab´azov´eho serveru, a druh´ y je SablonaXMLHandler, kter´ y dok´aˇze z XML zpr´avy, co se vr´atila jako odpovˇed’ z aplikaˇcn´ıho serveru, vytvoˇrit z n´ı ˇsablony. SQL dotaz, kter´ ym chceme naˇc´ıtat data z datab´azov´eho serveru, je potˇreba zabalit“ do XML struktury QUERYSELECT. Takto vytvoˇren´e XML lze odeslat pomoc´ı ” metody Connect.ZasliDotaz(XML) na aplikaˇcn´ı server IS. ZasliDotaz(XML) je statickou metodou tˇr´ıdy Connect. Jej´ım u ´kolem je zavolat metodu ProcessXml na webov´em rozhran´ı aplikaˇcn´ıho serveru a pˇredat j´ı XML strukturu z parametru. N´asleduj´ıc´ı uk´azka je vol´an´ı metody ProcessXml na webov´em rozhran´ı aplikaˇcn´ıho serveru. String MethodName = "ProcessXml"; SoapObject request = new SoapObject(NameSpace, MethodName); request.addProperty("sessionToken", SessionToken); request.addProperty("inputXml", dotaz); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request); envelope.dotNet = true; HttpTransportSE transport = null; if (secondaryServer != null) { transport = new HttpTransportSE(secondaryServer + "/ServiceGate.asmx"); } else { transport = new HttpTransportSE(primaryServer + "/ServiceGate.asmx"); } 30
transport.call(NameSpace + MethodName, envelope); puzitiTokenu = System.currentTimeMillis(); SoapPrimitive o = (SoapPrimitive) envelope.getResponse(); String vysledek = o.toString() 3.2.3
Seznam faktur
Obr´azek 11: Diagram tˇr´ıd seznamu vybran´eho seznamu
Po vybr´an´ı ˇsablony v menu aplikace se spust´ı nov´a aktivita FakturyActivity pro naˇcten´ı jej´ıho obsahu. Vybran´a ˇsablona je pˇred´ana t´eto aktivitˇe pomoc´ı tˇr´ıdy Intent. Tato tˇr´ıda slouˇz´ı ke spouˇstˇen´ı aktivit a lze j´ı pˇredat parametry“ kter´e jsou ” pouze primitivn´ı datov´e typy. Proto jsou ze ˇsablony vyjmuty“ jej´ı identifik´atory ” a vloˇzeny do Intentu“. N´aslednˇe v novˇe spuˇstˇen´e aktivitˇe je ˇsablona znova zrekon” struov´ana a bude pouˇzita pro naˇc´ıt´an´ı. Obrazov´ y v´ ystup t´eto aktivity je FinanceView a FakturyListView. U tˇr´ıdy FakturyListView je zavol´ana metoda loadSablona(Sablona) a pˇred´ana j´ı zrekonstruovan´a ˇsablona. Vol´an´ım t´eto metody je spuˇstˇena vnitˇrn´ı tˇr´ıda LoadData, kter´a je potomkem AsyncTask. Vznikne nov´e vl´akno, kter´e m´a za u ´kol naˇc´ıst obsah ˇsablony a operace pro tuto skupinu faktur. Naˇcten´ı seznamu faktur se provede spuˇstˇen´ım dalˇs´ıho vl´akna pro naˇc´ıt´an´ı ˇsablon LoadSablona. Tˇr´ıda LoadSablona slouˇz´ı k naˇcten´ı obsahu ˇsablony. Funguje obdobˇe jako tˇr´ıda LoadInit s t´ım rozd´ılem, ˇze j´ı je pˇred´ana ˇsablona a FakturyXMLHandler, kter´ y zpracuje v´ ysledek a vytvoˇr´ı seznam faktur, jeˇz byli naˇcteny ˇsablonou. Tˇr´ıda FinanceView vyuˇz´ıv´a tuto tˇr´ıdu pro obsahu ˇsablony, kter´a obsahuje potˇrebn´e informace pro vyplnˇen´ı tohoto pˇrehledu.
31
3.2.4
Operace s fakturami
Obr´azek 12: Diagram tˇr´ıd v´ ybˇeru operace
O tˇr´ıdˇe LoadData jsem jiˇz psal v pˇredchoz´ı ˇc´asti. Pro operace s fakturami musela b´ yt tato tˇr´ıda upravena, aby naˇcetla z inicializaˇcn´ı tabulky operace, pro vybranou ˇsablonu a nejen obsah t´eˇze ˇsablony. Naˇcten´ı funkc´ı je jednoduch´e, spust´ı se LoadFunkce, kter´e je pˇred´ana ˇsablona, pro kterou se maj´ı naˇc´ıst funkce. N´asleduje uk´azka spuˇstˇen´ı vl´aken pro naˇcten´ı obsahu ˇsablony a operac´ı z inicializaˇcn´ı“ ta” bulky. protected Void doInBackground(Object... arg0) { Sablona sablona = (Sablona) arg0[0]; faktHandler = new FakturyXMLHandler(); funHandler = new FunkceXMLHandler(); loadSablona = new LoadSablona(); loadFunkce = new LoadFunkce(); loadSablona.execute(sablona, faktHandler); loadFunkce.execute(sablona, funHandler); return null; } LoadFunkce vytvoˇr´ı SQL dotaz pro naˇcten´ı funkc´ı z tabulky a odeˇsle ho pomoc´ı tˇr´ıdy Connect na aplikaˇcn´ı server. N´asledn´a odpovˇed’ je FunkceXMLHandler zpracov´ana a je vytvoˇren seznam moˇzn´ ych operac´ı, kter´e jsou pˇred´any tˇr´ıdˇe FakturyItemClickListener. O obsluhu kliknut´ı na fakturu se star´a tˇr´ıda FakturyItemClickListener. Po kliknut´ı se vytvoˇr´ı dialogov´e okno, ve kter´e jsou zobrazeny naˇcten´e operace. 32
Pot´e co si uˇzivatel vybere jednu z funkc´ı, kterou chce prov´est je spuˇstˇeno vl´akno SpustFunkci, jeˇz provede vybranou operaci.
3.3
Bezpeˇ cnost aplikace
3.3.1
Virtual private network
Pˇripojen´ı VPN mezi s´ıtˇemi (oznaˇcovan´e tak´e jako pˇripojen´ı VPN mezi smˇerovaˇci) ” umoˇzn ˇuje organizac´ım smˇerovat pˇripojen´ı mezi odlouˇcen´ ymi pracoviˇsti nebo jin´ ymi organizacemi pˇres veˇrejnou s´ıt’ pˇri zachov´an´ı zabezpeˇcen´e komunikace. Pˇripojen´ı VPN smˇerovan´e pˇres Internet funguje logicky jako vyhrazen´a linka rozlehl´e s´ıtˇe WAN. Pˇri propojen´ı s´ıt´ı pˇres Internet, jak zn´azorˇ nuje n´asleduj´ıc´ı obr´azek, pˇred´av´a smˇerovaˇc pakety dalˇs´ımu smˇerovaˇci pˇres pˇripojen´ı VPN. Pˇripojen´ı VPN funguje vzhledem ke smˇerovaˇc˚ um jako linka ve spojov´e vrstvˇe.“ (9)
Obr´azek 13: Dvˇe vzd´ alen´ a m´ısta propojen´a s´ıt´ı VPN pˇres Internet
Pro pˇripojen´ı k VPN smˇerovaˇci je pouˇzito softwaru spoleˇcnosti OpenVPN. Tato spoleˇcnosti nab´ız´ı pro sv´e klienty aplikace pro r˚ uzn´e operaˇcn´ı syst´emy vˇcetnˇe OS Android. Tato aplikace je ˇs´ıˇrena pomoc´ı obchodu Google Play ve kter´em je zdarma k dispozici. Po nainstalov´an´ı staˇc´ı do sloˇzky aplikace nakop´ırovat soubory uˇzivatelsk´eho loginu a po n´asledn´em spuˇstˇen´ı je v aplikaci moˇznost pˇrihl´aˇsen´ı do virtu´aln´ı s´ıtˇe. 3.3.2
Pouˇ zit´ı protokol˚ u HTTP a HTTPS
Pro pˇrenos poˇzadavku se pouˇz´ıv´a HTTP nebo HTTPS. Z´aleˇz´ı na nastaven´ı serveru, pokud je server vyuˇz´ıv´an na testovan´ı pouˇz´ıv´a se HTTP k umoˇznˇen´ı sledov´an´ı s´ıtov´e komunikace mezi aplikac´ı a aplikaˇcn´ım serverem. Naopak pˇri ostr´em nasazen´ı je pouˇzit HTTPS, kter´ y ˇsifruje komunikaci a byla zajiˇstˇena bezpeˇcn´a komunikace. HTTPS (Hypertext Transfer Protocol Secure) pouˇz´ıv´a protokol HTTP, pˇriˇcemˇz pˇren´aˇsen´a data jsou ˇsifrov´ana pomoc´ı SSL/TLS. HTTPS umoˇzn ˇuje jednak ovˇeˇrit identitu protistrany a tak´e zabezpeˇcit ˇsifrov´an´ım spojen´ı mezi klientem a webov´ ym serverem pˇred odposlouch´av´an´ım a podvrˇzen´ım dat. Standardn´ı port pro HTTPS na stranˇe serveru je 443. 33
Z´akladn´ım kamenem zabezpeˇcen´ı poskytovan´eho protokoly SSL/TLS jsou digit´aln´ı certifik´aty. Certifik´aty jsou obecnˇe vyd´av´any k r˚ uzn´ ym u ´ˇcel˚ um (napˇr. podpis email˚ u, podpis dom´eny poˇc´ıtaˇce, atd.). Certifik´at se skl´ad´a z veˇrejn´e a priv´atn´ı ˇca´sti. Veˇrejnou ˇca´st certifik´atu m˚ uˇze vlastnit kdokoliv. Priv´atn´ı ˇca´st certifik´atu je nutno zabezpeˇcit pˇred nepovolan´ ymi osobami. Kaˇzd´ y certifik´at je vyd´an (vygenerov´an) tzv. certifikaˇcn´ı autoritou, kter´a ruˇc´ı za spr´avnost certifik´atu. Plat´ı se za vyd´an´ı certifik´atu nˇekterou ze vˇseobecnˇe uzn´avan´ ych certifikaˇcn´ıch autorit, kter´a m´a automaticky sv˚ uj veˇrejn´ y kl´ıˇc v u ´loˇziˇsti pouˇz´ıvan´em i jednotliv´ ymi webov´ ymi prohl´ıˇzeˇci (napˇr. THAWTE, VeriSign, PostSignum). Existuje vˇsak moˇznost vytvoˇren´ı certifik´atu, kter´ y si vydavatel s´am sobˇe podep´ıˇse (self-signed certificate) za pouˇzit´ı vlastn´ı certifikaˇcn´ı autority (nezn´am´e pro ostatn´ı klienty), avˇsak v takov´em pˇr´ıpadˇe si mus´ı obˇe strany (server i klient) ruˇcnˇe pˇridat do u ´loˇziˇstˇe veˇrejn´ y kl´ıˇc vlastn´ı certifikaˇcn´ı autority, aby byla certifikaˇcn´ı autorita zn´ama jak na serveru, tak na klientu. 3.3.3
Pouˇ zit´ı autentikaˇ cn´ıho token˚ u
Autentizaˇcn´ı tokem slouˇz´ı k identifikaci pˇrihl´aˇsen´eho uˇzivatele, po pˇrihl´aˇseni je uˇzivateli vygenerov´an token, kter´ y je reprezentov´an dvˇema ˇc´ısly oddˇelen´ ymi ˇc´arkou. Aplikace si tento token uloˇz´ı a pˇri zas´ıl´an´ı poˇzadavk˚ u pˇriloˇz´ı tento teken. Aplikaˇcn´ı server u toho tokunu ovˇeˇr´ı jeho platnost a jestli uˇzivatel, kter´emu byl tento token pˇridˇelen, m´a dostateˇcn´e opr´avnˇen´ı k proveden´ı poˇzadavku.
34
4 4.1
Zhodnocen´ı dosaˇ zen´ ych v´ ysledk˚ u a n´ avrh vylepˇsen´ı Zhodnocen´ı dosaˇ zen´ eho v´ ysledku
Byla vytvoˇrena aplikace pro pr´aci s informaˇcn´ım syst´emem podle zadan´ ych c´ıl˚ u na zaˇc´atku pr´ace. Aplikace se tedy dok´aˇze pˇripojit, zobrazit pˇrehled finanˇcn´ıch prostˇredk˚ u, v menu d´at na v´ ybˇer dvˇe skupiny faktur, zobrazit faktury tˇechto skupin a umoˇznit uˇzivateli prov´est operaci s fakturou ze seznamu. Poloˇzky menu a operace, kter´e lze prov´adˇet s fakturami se ukl´adaj´ı do inicia” lizaˇcn´ı“ tabulky, kter´a je uloˇzena v informaˇcn´ım syst´emu. Z´aznamy v t´eto tabulce lze mˇenit pomoc´ı Windows“ klienta, ve kter´em vznikly pˇr´ısluˇsn´e formul´aˇre pro ” vkl´ad´an´ı nebo upravov´an´ı ˇsablon a funkc´ı v tabulce. Aplikace si vytv´aˇr´ı vlastn´ı datab´azi pˇrihlaˇsovac´ı u ´daj˚ u, pouze v OS Android. Pro usnadnˇen´ı pˇrihl´aˇsen´ı k informaˇcn´ımu syst´emu. Tyto u ´daje jsou zobrazeny uˇzivateli pˇri zad´av´an´ı pˇrihlaˇsovac´ıch u ´daj˚ u a uˇzivatel si jen vybere, kter´e chce pouˇz´ıt. Po vybr´an´ı se u ´daje vypln´ı do pˇr´ısluˇsn´ ych pol´ıˇcek a uˇzivatel zad´a jen heslo. Pomoc´ı aplikace OpenVPN je pˇrekon´ana oddˇelenost priv´atn´ı s´ıtˇe aplikaˇcn´ıho serveru. A uˇzivatel se tak m˚ uˇze pˇripojit kdykoliv a odkudkoliv. Spojen´ı, kter´e tato aplikace vytv´aˇr´ı je zabezpeˇcen´e, takˇze nen´ı poruˇsena bezpeˇcnost informaˇcn´ıho syst´emu. Pˇr´ı pouˇzit´ı protokolu HTTPS pro komunikaci s aplikaˇcn´ım serverem, doch´az´ı k dvoj´ımu ˇsifrov´an´ı. Prvn´ı je na u ´rovni HTTPS a druh´e pˇri pˇrenosu do priv´atn´ı s´ıtˇe pomoc´ı vytvoˇren´eho pˇripojen´ı k priv´atn´ı s´ıti.
4.2
Moˇ znosti dalˇs´ıch vylepˇsen´ı
Zobrazov´an´ı seznamu faktur je napsan´e na m´ıru. Zmˇenou t´eto ˇca´sti na dynamick´e form´atov´an´ı, kter´e by se naˇc´ıtalo z informaˇcn´ıho syst´emu, by se doc´ılilo moˇznosti upravovat zobrazen´ı u ´daj˚ u nejen pro faktury, ale i pro dalˇs´ı oblasti IS dle potˇreb z´akazn´ık˚ u. Dalˇs´ı moˇznost´ı u ´pravy programu je pˇrid´an´ı hlavn´ıho menu“ pˇred st´avaj´ıc´ı ” menu. T´ım by mimo agendy pro finance mohly vzniknout dalˇs´ı agendy, napˇr. agenda pro sklady, r˚ uzn´e evidence ve v´ yrobˇe apod.
35
5
Literatura
´ [1] UJBANYAI, Miroslav Programujeme pro Android. Co je to Android? Vyd. 1. Praha: Grada, 2012, 187 s. Pr˚ uvodce (Grada). ISBN 978-80-247-3995-3. ´ [2] UJBANYAI, Miroslav Programujeme pro Android. Open Handset Alliance. Vyd. 1. Praha: Grada, 2012, 187 s. Pr˚ uvodce (Grada). ISBN 978-80-247-3995-3. [3] Asseco Solutions, a.s. Podnikov´y informaˇcn´ı syst´em HELIOS Green online. cit. 29.11.2013. Dostupn´e z: http://www.helios.eu/ microsite-helios-green-cs/download/cz_katalog_helios_green_ nahled.pdf. [4] Asseco Solutions, a.s. HELIOS Green na technologii Microsoft .NET online. cit. 29.11.2013. Dostupn´e z: http://www.helios.eu/ microsite-helios-green-cs/download/cz_katalog_helios_green_ nahled.pdf. ´ [5] UJBANYAI, Miroslav Programujeme pro Android. V´ yvojov´e n´astroje a prostˇred´ı. Vyd. 1. Praha: Grada, 2012, 187 s. Pr˚ uvodce (Grada). ISBN 97880-247-3995-3. [6] Kosek, J.SOAP online. cit. 10.11.2013. Dostupn´e z: http://www.kosek.cz/ diplomka/html/websluzby.html. [7] Google, Inc. Create a Project with Eclipse. online. cit. 25.12.2013. Dostupn´e z: http://developer.android.com/training/basics/firstapp/ creating-project.html. [8] MURPHY, Mark L. Android 2: pr˚ uvodce programov´an´ım mobiln´ıch aplikac´ı. Pˇriˇrazov´an´ı popisk˚ u. Vyd. 1. Brno: Computer Press, 2011, 375 s. ISBN 978-80251-3194-7.. [9] Co je VPN? - Pˇripojen´ı VPN mezi s´ıtˇemi. online. cit. 10.11.2013. Dostupn´e z: http://technet.microsoft.com/cs-cz/library/cc731954(v=ws. 10).aspx.
36
6
Pˇr´ılohy
Pˇr´ıloha ˇc. 1 - CD s aplikac´ı.
37