Z´apadoˇcesk´a univerzita v Plzni Fakulta aplikovany´ch vˇed Katedra informatiky a vy´poˇcetn´ı techniky
Bakal´ aˇ rsk´ a pr´ ace Syst´ em workflow v EEG/ERP Port´ alu
Plzeˇ n 2013
Radek Mrvec
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem bakal´aˇrskou pr´aci vypracoval samostatnˇe a v´yhradnˇe s pouˇzit´ım citovan´ych pramen˚ u. V Plzni dne 9. kvˇetna 2013 Radek Mrvec
Podˇ ekov´ an´ı R´ad bych podˇekoval panu Ing. Petru Jeˇzkovi PhD. za veden´ı m´e pr´ace, komunikaci, okamˇzit´e odpovˇedi a trpˇelivost s m´ymi neust´al´ymi dotazy.
Abstract This work is focused on development of a work flow system for running methods for signal processing. First it tries to find suitable way to implement work flow system in e-neuroscience. The work analyses other applications and chooses the most suitable one for the integration of the work flow system. When research is done, it implements all necessary changes to be able to run work flow data processing from our application. Because of complexity of workflows a prototype implementation is realized. This work serves as an initial proposal of workflow system in the EEG/ERP domain.
Obsah ´ 1 Uvod 2 Sezn´ amen´ı s EEG/ERP Port´ alem ´ 2.1 Uvod do problematiky EEG/ERP . 2.1.1 Co je to EEG . . . . . . . . 2.1.2 Co je to ERP . . . . . . . . 2.2 Popis a funkce aplikace EEGbase . 2.3 Technologie ve webov´ych aplikac´ıch 2.3.1 Framework Hibernate . . . . 2.3.2 Java Server Pages (JSP) . . 2.3.3 Framework Wicket . . . . . 2.3.4 Framework Spring . . . . . 2.3.5 Framework Spring MVC . . 2.4 Technologie v naˇs´ı aplikaci . . . . .
1 . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
2 2 2 2 3 4 4 5 6 6 7 8
3 Pˇ rehled konkurenˇ cn´ıch aplikac´ı 9 3.1 INCF Dataspace . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 Portal Carmen . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 EEG data processor . . . . . . . . . . . . . . . . . . . . . . . . 12 4 N´ avrh syst´ emu workflow 4.1 Workflow . . . . . . . . . . . . . . . . 4.2 Moˇznosti ˇreˇsen´ı . . . . . . . . . . . . . 4.2.1 EEGbase ˇreˇsen´ı . . . . . . . . . 4.2.2 EEGbase a EEG data processor 4.3 V´ybˇer ˇreˇsen´ı . . . . . . . . . . . . . . . 4.4 Detailn´ı n´avrh workflow . . . . . . . . 4.5 Detailn´ı n´avrh klienta . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
14 14 15 15 16 17 17 20
5 Implementace a integrace workflow 21 5.1 Implementace workflow . . . . . . . . . . . . . . . . . . . . . . 21
OBSAH
OBSAH
5.1.1 Popisn´y soubor . . . . . . . . . . . . . . . . . . 5.1.2 Chybov´e stavy . . . . . . . . . . . . . . . . . . 5.1.3 Implementace metody pro zpracov´an´ı workflow 5.1.4 Implementace zpracov´an´ı popisn´eho souboru . . 5.1.5 Implementace zpracov´an´ı dat . . . . . . . . . . 5.1.6 Moˇzn´e vylepˇsen´ı v r´amci workflow . . . . . . . . 5.2 Implementace klienta . . . . . . . . . . . . . . . . . . . 5.2.1 Implementace z´ısk´an´ı vstup˚ u. . . . . . . . . . . 5.2.2 Implementace zpracov´an´ı vstup˚ u . . . . . . . . 5.2.3 Implementace komunikace s webovou sluˇzbou . 5.2.4 Moˇzn´e vylepˇsen´ı klienta . . . . . . . . . . . . . 5.3 Testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
22 24 24 25 25 26 27 27 29 30 31 32
6 Z´ avˇ er
33
A Uˇ zivatelsk´ a dokumentace
34
B Povinn´ e parametry metod B.1 CWTPlugin . . . . . . . B.2 DWTPlugin . . . . . . . B.3 FasticalPlugin . . . . . . B.4 FFTPlugin . . . . . . . B.5 FIRPlugin . . . . . . . . B.6 MPPlugin . . . . . . . .
36 36 36 37 38 38 39
. . . . . .
. . . . . .
. . . . . .
5
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
´ 1 Uvod C´ılem t´eto pr´ace je n´avrh a implementace workflow syst´emu v EEG/ERP Port´alu. S workflow syst´emy se setk´av´ame v bˇeˇzn´em ˇzivotˇe velmi ˇcasto a patˇr´ı mezi ned´ılnou souˇc´ast informaˇcn´ıch syst´em˚ u vˇetˇsiny podnik˚ u. Pomoc´ı workflow syst´emu m˚ uˇzeme napˇr´ıklad jasnˇe definovat obˇeh a zpracov´an´ı dokument˚ u v r´amci r˚ uznˇe velk´ych skupin. Tato pr´ace si klade za c´ıl nalezen´ı optim´aln´ıho vyuˇzit´ı workflow pˇri zpracov´an´ı dat z´ıskan´ych mˇeˇren´ım EEG/ERP. Tyto data je moˇzn´e v r´amci r˚ uzn´ych experiment˚ u d´ale zpracov´avat matematick´ymi metodami. Pˇri pouˇzit´ı workflow syst´emu bude umoˇznˇeno uˇzivatel˚ um definovat v´ıce metod a dat v jednom zpracov´an´ı. D´ale uˇzivatel bude m´ıt moˇznost vytv´aˇret komplexn´ı sled krok˚ u, kter´e ho jednoduch´ym zp˚ usobem dovedou k poˇzadovan´emu c´ıli. Bez pouˇzit´ı workflow by uˇzivatel musel jednotliv´a data zpracov´avat postupnˇe, coˇz by mu zabralo mnohem v´ıce ˇcasu a st´alo v´ıce usil´ı. Po nalezen´ı a n´avrhu optim´aln´ıho workflow syst´emu bude tento syst´em implementov´an a n´aslednˇe integrov´an do souˇcasn´eho EEG/ERP Port´alu, kter´y je provozov´an Z´apadoˇceskou Univerzitou v Plzni, Katedrou informatiky a v´ypoˇcetn´ı techniky. Vzhledem k tomu, ˇze problematika workflow je velmi komplexn´ı, bude implementace provedena ve formˇe funkˇcn´ıho prototypu, kter´y bude d´ale rozv´ıjen v´yzkumnou skupinou, zab´yvaj´ıc´ı se v´yvojem a implementac´ı EEG/ERP Port´alu. V prvn´ı ˇc´asti pr´ace se nejdˇr´ıve sezn´am´ıme s problematikou EEG/ERP, webovou aplikac´ı EEGbase a technologiiemi pouˇz´ıvan´ymi pˇri v´yvoji webov´ych aplikac´ı. V druh´e ˇc´asti analyzujeme konkurenˇcn´ı aplikace, kter´e by bylo moˇzn´e vyuˇz´ıt pro spr´avu workflow syst´emu. V dalˇs´ı ˇca´sti n´a z´akladˇe pˇredchoz´ı anal´yzy navrhneme syst´em workflow a jeho n´aslednou integraci do aplikace EEGbase. V posledn´ı ˇc´asti naˇs´ı pr´ace se budeme vˇenovat samotn´e implementaci navrhovan´eho ˇreˇsen´ı.
1
2 Sezn´amen´ı s EEG/ERP Port´alem V t´eto ˇc´asti pr´ace se sezn´am´ıme s projektem EEG/ERP Port´alu a technologiemi, kter´e jsou pouˇz´ıvan´e pˇri v´yvoji t´eto webov´e aplikace.
2.1
´ Uvod do problematiky EEG/ERP
Nejdˇr´ıve se pokus´ıme struˇcnˇe pˇredstavit problematiku z´ısk´an´ı EEG/ERP dat a definovat tyto pojmy.
2.1.1
Co je to EEG
Tento term´ın definuje z´aznam ˇcasov´e zmˇeny elektrick´eho potenci´alu zp˚ usoben´eho mozkovou aktivitou. Tento z´aznam se z´ısk´av´a pomoc´ı pˇr´ıstroje zvan´eho elektroencefalograf. Pˇr´ıstroj sn´ım´a elektrick´e potenci´aly pomoc´ı elektrod pˇripevnˇen´ych na povrchu hlavy. Tyto informace po zes´ılen´ı zpracov´av´a a zapisuje kˇrivku na pap´ır nebo na obrazovku. Tvar kˇrivky je z´avisl´y na aktu´aln´ı aktivitˇe mozku, tud´ıˇz jinou kˇrivku z´ısk´ame ve sp´anku, ˇci pˇri bˇeˇzn´e denn´ı aktivitˇe.
2.1.2
Co je to ERP
Tento term´ın pˇredstavuje elektrickou aktivitu mozku jako reakci na podnˇety zvenˇc´ı. Podnˇety je moˇzn´e rozdˇelit do tˇrech z´akladn´ıch skupin: • Zrakov´e (VEP) • Sluchov´e (BAEP) • Somatosensorick´e (SEP)
2
Sezn´amen´ı s EEG/ERP Port´alem
2.2
Popis a funkce aplikace EEGbase
Popis a funkce aplikace EEGbase
Hlavn´ım c´ılem aplikace je spravovat data z´ıskan´a mˇeˇren´ım EEG/ERP. Jedn´a se o otevˇrenou aplikaci, do kter´e m´a pˇr´ıstup jak´ykoliv registrovan´y uˇzivatel. Uˇzivatel zde m˚ uˇze zad´avat sv´e experimenty, z´ısk´avat data z jiˇz uskuteˇcnˇen´ych a zveˇrejnˇen´ych experiment˚ u. Vzhledem k tomu, ˇze se jedn´a o webovou aplikaci, tak je aplikace dostupn´a na jak´emkoliv poˇc´ıtaˇci s nainstalovan´ym internetov´ym prohl´ıˇzeˇcem a pˇripojen´ım k s´ıti internet. Aplikace je zejm´ena urˇcena pro veˇrejnou vˇedeckou spoleˇcnost, zab´yvaj´ıc´ı se ot´azkami EEG/ERP pˇri sv´ych vˇedeck´ych v´yzkumech. Vzhledem k tomu, ˇze v souˇcasn´e dobˇe nen´ı zn´am ˇz´adn´y standardizovan´y form´at dat z´ıskan´ych z mˇeˇren´ı EEG/ERP, aplikace umoˇzn ˇuje konverzi r˚ uzn´ych datov´ych form´at˚ u, aby bylo moˇzn´e data sd´ılet. Z tohoto d˚ uvodu aplikace umoˇzn ˇuje rozˇs´ıˇren´ı o dalˇs´ı datov´e form´aty, pomoc´ı vytvoˇren´ı a pˇrid´an´ı nov´eho datov´eho konvertoru. Moˇznost pˇrid´an´ı je dosaˇzeno d´ıky modularitˇe cel´eho syst´emu.
Obr´ azek 2.1: Uk´azka prostˇred´ı aplikace
3
Sezn´amen´ı s EEG/ERP Port´alem
Technologie ve webov´ych aplikac´ıch
Po pˇrihl´aˇsen´ı uˇzivatele je hlavn´ı menu realizov´ano z´aloˇzkami v horn´ı ˇc´asti okna. Pod kaˇzdou z´aloˇzkou jsou ˇc´asti aplikace t´ykaj´ıc´ı se dan´e z´aloˇzky [Jeˇzek(2009)]. Aplikace d´ale umoˇzn ˇuje propojen´ı se soci´aln´ımi s´ıtˇemi, jak´ymi jsou Facebook ˇci LinkedIn. Pˇri propojen´ı je moˇzn´e se pˇrihl´asit k aplikaci pomoc´ı tˇechto ˚ uˇct˚ u. Mezi dalˇs´ı funkce patˇr´ı napˇr. rozdˇelen´ı uˇzivatel˚ u do skupin, vyhled´av´an´ı dat podle nastaven´eho filtru, fulltextov´e vyhled´av´an´ı a dalˇs´ı prostˇredky, na kter´e jsme zvykl´ı z vˇetˇsiny webov´ych aplikac´ı.
2.3
Technologie ve webov´ ych aplikac´ıch
V t´eto ˇc´asti si detailnˇeji pˇribl´ıˇz´ıme nejpouˇz´ıvanˇejˇs´ı technolgie, kter´e se pouˇz´ıvaj´ı ve webov´ych aplikac´ıch. Toto pˇribl´ıˇzen´ı n´am pom˚ uˇze n´aslednˇe definovat technologie pouˇzit´e v naˇs´ı aplikaci.
2.3.1
Framework Hibernate
Tento framework poskytuje techniku pro pˇrevod dat z objektov´eho modelu do relaˇcn´ıho a zpˇet. T´ımto dok´aˇze velmi usnadnit pr´aci s daty nad datab´az´ı a sn´ıˇzit ˇcas potˇrebn´y pro naprogramov´an´ı podobn´ych metod. D´ale framework poskytuje n´astroje pro manipulaci s tˇemito daty, vˇcetnˇe objektovˇe orientovan´eho jazyka HQL, kter´y na z´akladˇe objektov´e notace dok´aˇze uloˇzen´a data z datab´aze vyb´ırat v podobˇe objekt˚ u. Hibernate d´ale poskytuje mechanismy pro transakˇcn´ı zpracov´an´ı dat, polymorfn´ı perzistenci, keˇsov´an´ı, objektovˇe orientovan´e sestavov´an´ı dotaz˚ u, vlastn´ı datov´e typy a mnoho dalˇs´ıch funkc´ı. Samozˇrejmost´ı je jednotn´e API pro pr´aci s ˇradou datab´az´ı a datab´azov´ych server˚ u[Hib()]. Mapov´an´ı objekt˚ u je moˇzn´e dvˇema zp˚ usoby. • Pouˇzit´ı extern´ıch XML soubor˚ u • Od verze Java 1.5 pouˇzit´ı anotac´ı Datov´a vrstva webov´e aplikace je tvoˇrena sadou tˇr´ıd, kter´e se staraj´ı o manipulaci perzistetn´ıch dat nad datab´az´ı. V naˇs´ı aplikaci je tato vrstva repre4
Sezn´amen´ı s EEG/ERP Port´alem
Technologie ve webov´ych aplikac´ıch
zentov´ana vrstvou pˇristupuj´ıc´ı k dat˚ um, tzv. Data Access Objects (DAO) vrstvou. Tato vrstva jako jedin´a komunikuje pˇr´ımo s Hibernate[Linwood(2010)]. V naˇs´ı aplikaci je Hibernate konfigurov´an pomoc´ı XML soubor˚ u reprezentuj´ıc´ıch mapov´an´ı tˇr´ıd na tabulky relaˇcn´ı datab´aze. Komunikace mezi Hibernate a datab´az´ı prob´ıh´a pomoc´ı Java Database Conectivity (JDBC). Listing 2.1: Uk´azka namapov´an´ı tabulky
<property name="lastChange">
2.3.2
Java Server Pages (JSP)
Jedn´a se o n´astroj pro psan´ı dynamick´ych HTML str´anek zaloˇzen´y na jazyce Java. Princip je vkl´ad´an´ı ˇcist´eho k´odu v Javˇe pˇr´ımo do HTML str´anky pomoc´ı speci´aln´ıch znaˇcek. Tento k´od je pot´e spuˇstˇen na stranˇe serveru, z ˇcehoˇz z´arovˇen ˇ vypl´yv´a, ˇze pokud pouˇz´ıv´ame JSP, mus´ıme zvolit server s podporou tohoto n´astroje. Mezi takov´eto servery patˇr´ı napˇr. Apache Tomcat. JSP pˇredstavuje alternativu k velmi rozˇs´ıˇren´e technologii PHP a o nˇeco m´enˇe pouˇz´ıvan´e ASP[Hall(2001)]. Hlavn´ı odliˇsnosti od PHP je typov´a kontrola zn´am´a z Javy. Dalˇs´ı odliˇsnost´ı je kompilace str´anek do tzv. servlet˚ u, coˇz jsou speci´aln´ı tˇr´ıdy v jazyce Java, kter´e pak komunikuj´ı s webov´ym serverem. O JSP je tedy moˇzn´e ˇr´ıci, ˇze jde o n´astroj na psan´ı servlet˚ u. 5
Sezn´amen´ı s EEG/ERP Port´alem
Technologie ve webov´ych aplikac´ıch
Vzhledem k tomu, ˇze servlety jsou tˇr´ıdy v jazyce Java, mohou vyuˇz´ıvat dalˇs´ı tˇr´ıdy, kter´e nebyly ps´any pomoc´ı JSP. Tato moˇznost umoˇzn ˇuje znaˇcn´e urychlen´ı v´yvoje aplikac´ı a ˇc´asteˇcn´e oddˇelen´ı designu od v´ykonn´eho k´odu. JSP d´ale umoˇzn ˇuj´ı pouˇz´ıv´an´ı tzv. sezen´ı, tedy moˇznost uchov´an´ı dat konkr´etn´ıho uˇzivatele mezi v´ıce HTTP poˇzadavky na webov´em serveru[Kothagal(a)].
2.3.3
Framework Wicket
Tento framework je alternativou k jiˇz dˇr´ıve zm´ınˇen´e technologii JSP. Hlavn´ı ideou tohoto frameworku je oddˇelen´ı HTML k´odu od Java k´odu. Pˇri psan´ı aplikace se pouˇz´ıv´a validn´ı HTML k´od, kde pomoc´ı parametr˚ u tag˚ u m˚ uˇzeme propojit dan´y element s Java k´odem. Tento framework se sv´ym pouˇzit´ım velmi podob´a psan´ı aplikac´ı pomoc´ı Swing frameworku, kter´y je urˇcen pro desktopov´e aplikace a je souˇc´ast´ı standartn´ı edice Javy. Mezi dalˇs´ı v´yhody tohoto frameworku patˇr´ı integrace s dalˇs´ımi frameworky jako je Hibernate, Spring apod., nebo moˇznost vyuˇzit´ı znovu pouˇziteln´ych komponent, coˇz n´am uˇsetˇr´ı psan´ı stejn´ych u ´sek˚ u k´odu. V dobˇe psan´ı t´eto pr´ace prob´ıh´a migrace naˇs´ı aplikace z technologie JSP na technologii Wicket. Tato migrace obn´aˇs´ı pˇreveden´ı vˇsech JSP str´anek do validn´ıho HTML a propojen´ı s logikou dan´e str´anky[ET ()].
2.3.4
Framework Spring
Framework Spring je sada uˇziteˇcn´ych tˇr´ıd a efektivn´ıch postup˚ u pro v´yvoj aplikac´ı. Zejm´ena je pouˇz´ıv´an pro tvorbu webov´ych aplikac´ı, ale stejnˇe dobˇre lze vyuˇz´ıt na jak´ykoliv typ aplikace. C´ılem tohoto frameworku je zefektivnˇen´ı, zjednoduˇsen´ı a zrychlen´ı v´yvoje Java Enterprise aplikac´ı. Spring z´aroveˇ n nab´ız´ı moˇznost dobr´e testovatelnosti aplikace. Vzhledem k tomu, ˇze lze jednotliv´e objekty a vrstvy od sebe oddˇelit, m˚ uˇzeme jednoduˇse vyuˇz´ıvat jednotkov´ych test˚ u. Tento framework, na rozd´ıl od jin´ych, podporuje konzistentn´ım zp˚ usobem vˇsechny vrstvy aplikace. Z´aroveˇ n umoˇzn ˇuje integraci velk´eho mnoˇzstv´ı provˇeˇren´ych n´astroj˚ u, a tud´ıˇz je moˇzn´e jakoukoliv vrstvu nahradit jin´ym n´astrojem, jako napˇr. pro datovou vrstvu vybrat Hibernate. V aplikac´ıch se Spring mimo jin´e star´a o bezpeˇcn´e pˇrihlaˇsov´an´ı, integraci se soci´aln´ımi s´ıtˇemi 6
Sezn´amen´ı s EEG/ERP Port´alem
Technologie ve webov´ych aplikac´ıch
a spoustu dalˇs´ıch funkc´ı, kter´e jsou nutnou souˇc´ast´ı kaˇzd´e modern´ı webov´e aplikace[de Velde(2007)].
2.3.5
Framework Spring MVC
Tento framework je urˇcen pro podporu webov´ych aplikac´ı. Spring MVC vyuˇz´ıv´a n´avrhov´eho vzoru Model-View-Controller. Tento n´avrhov´y vzor rozdˇeluje prezenˇcn´ı vrtvu na tˇri ˇc´asti. Model Dom´enov´e objekty nesouc´ı data. Na tyto data je Controllerem aplikov´an pohled. View Uˇzivatelem definovan´y pohled. Jedn´a se tedy o pohled na nˇejak´y konkr´etn´ı model vybran´y na z´akladˇe zpracov´an´ı poˇzadavku Controllerem. Controller Zpracov´an´ı poˇzadavk˚ u, na jejichˇz z´akladˇe vytvoˇr´ı model, na kter´y se pot´e aplikuje pohled. Mezi velk´e v´yhody tohoto frameworku patˇr´ı to, ˇze je souˇc´ast´ı aplikaˇcn´ıho frameworku Spring, a tud´ıˇz m˚ uˇze pouˇz´ıvat vˇsechny jeho souˇc´asti. Dalˇs´ı v´yhody jsou napˇr. flexibilita, mapov´an´ı hodnot z formul´aˇr˚ u na objekty, podpora JSP a mnoho dalˇs´ıch[Kothagal(b)].
Obr´ azek 2.2: Sch´ema fungov´an´ı MVC 7
Sezn´amen´ı s EEG/ERP Port´alem
2.4
Technologie v naˇs´ı aplikaci
Technologie v naˇs´ı aplikaci
S pomoc´ı definovan´ych technologi´ı si nyn´ı m˚ uˇzeme snadnˇeji pˇredstavit fungov´an´ı naˇs´ı aplikace. Naˇse aplikace je zaloˇzena na principech tˇr´ıvrstv´e architektury. Data jsou uloˇzena a spravov´ana v datab´azi Oracle. Pro manipulaci s daty pouˇz´ıv´ame framework Hibernate, kde pro mapov´an´ı objekt˚ u je pouˇzito extern´ıch XML soubor˚ u. Mezi velkou v´yhodou frameworku Hibernate patˇr´ı jeho spolupr´ace s frameworkem Spring, kter´y je takt´eˇz v naˇs´ı aplikaci hojnˇe pouˇz´ıv´an. Prezenˇcn´ı vrstva naˇs´ı aplikace vyuˇz´ıv´a framework Spring MVC, d´ıky ˇcemuˇz je moˇzn´e vyuˇz´ıvat propojen´ı u ´ˇct˚ u uˇzivatel˚ u se soci´aln´ımi s´ıtˇemi, zabezpeˇcen´e pˇrihlaˇsov´an´ı a spoustu nutn´ych funkc´ı kaˇzd´e webov´e aplikace. Uveden´e pouˇzit´e technologie jsou platn´e v dobˇe psan´ı t´eto pr´ace. Vzhledem k tomu, ˇze aplikace proch´az´ı neust´al´ym v´yvojem a reaguje na nejnovˇejˇs´ı trendy v oblasti webov´ych aplikac´ı, je zˇrejm´e, ˇze i tyto technologie budou postupem ˇcasu nahrazov´any za efektivnˇejˇs´ı a modernˇejˇs´ı.
8
3 Pˇrehled konkurenˇcn´ıch aplikac´ı V t´eto ˇc´asti pr´ace je u ´kolem analyzovat moˇznosti spr´avy a zpracov´an´ı EEG dat, kter´a jsou nab´ızena konkurenˇcn´ımi aplikacemi. Na vˇsechny aplikace je nahl´ıˇzeno pohledem uˇzivatele, jak´e funkce dan´a aplikace nab´ız´ı. C´ılem pr˚ uzkumu bylo zjistit, zda-li neexistuje aplikace, kter´a by se dala vyuˇz´ıt pro zpracov´an´ı dat matematick´ymi metodami, a to jak jednotliv´e zpracov´an´ı, tak i zpracov´an´ı formou workflow.
3.1
INCF Dataspace
Tato aplikace je vyv´ıjena a spravov´ana mezin´arodn´ı vˇedeckou organizac´ı Inˇ edternational Neuroinformatics Coordinating Facility (INCF), s´ıdl´ıc´ı ve Sv´ sku. Hlavn´ım u ´kolem t´eto aplikace je umoˇznit uˇzivatel˚ um sd´ılen´ı dat experiment˚ u mezi ostatn´ımi uˇzivateli. Pˇr´ıstup k dat˚ um je moˇzn´y tˇremi zp˚ usoby. Jedn´ım zp˚ usobem je pˇr´ıstup pomoc´ı webov´e aplikace, dalˇs´ı moˇznost je pomoc´ı desktopov´e aplikace a posledn´ı varianta je konzolov´e prostˇred´ı.
Obr´ azek 3.1: Uk´azka prostˇred´ı aplikace INCF Dataspace 9
Pˇrehled konkurenˇcn´ıch aplikac´ı
Portal Carmen
Sd´ılen´a data je moˇzn´e popisovat metadaty. Mezi zaj´ımavou funkci patˇr´ı uspoˇr´ad´an´ı grafick´ych soubor˚ u do galerie. Mezi dalˇs´ı funkci patˇr´ı v´ıcen´asobn´e stahov´an´ı soubor˚ u, kter´e funguje na principu n´akupn´ıho koˇs´ıku. Do koˇs´ıku pr˚ ubˇeˇznˇe ukl´ad´ame data, a kdyˇz je v´ybˇer kompletn´ı, m˚ uˇzeme st´ahnout vybran´a data najednou[INC()]. V´yhody: • Tˇri varianty pˇr´ıstupu k dat˚ um. Nev´yhody: • Nepodporuje zpracov´an´ı dat.
3.2
Portal Carmen
Tato aplikace je souˇc´ast´ı projektu Carmen, kter´y je financovan´y britskou radou pro inˇzen´yrstv´ı a v´yzkum fyzik´aln´ıch vˇed (Engineering and Physical Sciences Research Council). Hlavn´ım u ´kolem aplikace je vytvoˇren´ı virtu´aln´ı laboratoˇre pro podporu e-Neuroscience. Jedn´a se o webovou aplikaci, coˇz opˇet umoˇzn ˇuje t´emˇeˇr neomezenou dostupnost.
Obr´ azek 3.2: Uk´azka definice workflow v Port´ale Carmen 10
Pˇrehled konkurenˇcn´ıch aplikac´ı
Portal Carmen
Aplikace m´a intuitivn´ı ovl´ad´an´ı realizovan´e pomoc´ı z´aloˇzek, kter´e aplikaci rozdˇeluj´ı na tˇri ˇc´asti. Jedn´a se o ˇc´asti pro data, sluˇzby a workflow. V kaˇzd´e ˇc´asti je uˇzivateli umoˇznˇeno pracovat s konkr´etn´ımi prvky, t´ykaj´ıc´ı se dan´e ˇc´asti. Mezi hlavn´ı funkce aplikace patˇr´ı moˇznost ukl´ad´an´ı dat a jejich sd´ılen´ı s ostatn´ımi uˇzivateli. Data lze opˇet popisovat metadaty. Aplikace nab´ız´ı moˇznost ˇr´ızen´ı pˇr´ıstupu k dat˚ um formou r˚ uzn´ych druh˚ u opr´avnˇen´ı. Tyto druhy opr´avnˇen´ı lze pouˇz´ıt i na metadata. Dalˇs´ı d˚ uleˇzitou funkc´ı aplikace je moˇznost zpracov´an´ı dat pomoc´ı matematick´ych metod. V souˇcasn´e dobˇe aplikace nab´ız´ı cca 100 r˚ uzn´ych metod, kter´e si uˇzivatel m˚ uˇze zvolit pro zpracov´an´ı. Aplikace podporuje metody napsan´e v jazyc´ıch Java, Python, Matlab a dalˇs´ı. V pˇr´ıpadˇe z´ajmu uˇzivatele o pˇrid´an´ı dalˇs´ı metody je nutn´e kontaktovat podporu aplikace. Kaˇzd´a metoda je pops´ana metadaty, kter´a popisuj´ı napˇr. vstupn´ı a v´ystupn´ı form´at dat. Po nadefinov´an´ı vˇsech potˇrebn´ych parametr˚ u metody je dan´a metoda spuˇstˇena na pozad´ı v nejbliˇzˇs´ım moˇzn´em ˇcase a v´ysledek je po zpracov´an´ı uloˇzen do datab´aze a zpˇr´ıstupnˇen v aplikaci. V dobˇe psan´ı t´eto pr´ace byla aplikace rozˇs´ıˇrena o podporu zpracov´an´ı dat formou workflow. Definice workflow je realizov´ana pomoc´ı grafick´eho n´astroje, kde je cel´e workflow tvoˇreno diagramem na z´akladˇe pˇrid´av´an´ı dat a metod uˇzivatelem. Data jsou propojena s metodami taˇzen´ım myˇsi a cel´e workflow si m˚ uˇze uˇzivatel upravovat dle sv´e pˇredstavy. Jako vstupy do v´ypoˇcetn´ıch metod lze pouˇz´ıt samostatn´a data, ˇci v´ysledky pˇredchoz´ıch metod. Definovan´e workflow je d´ale moˇzn´e uloˇzit pro pozdˇejˇs´ı u ´pravy ˇci spustit zpracov´an´ı definovan´eho workflow. Po ukonˇcen´ı cel´eho workflow jsou v´ysledky uloˇzeny a zpˇr´ıstupnˇeny uˇzivateli. Bohuˇzel aplikace neumoˇzn ˇuje vyuˇz´ıv´an´ı poskytovan´ych sluˇzeb jin´ymi zp˚ usoby, neˇz pouze prostˇrednictv´ım samotn´e webov´e aplikace. Z tohoto d˚ uvodu n´am nen´ı umoˇznˇeno vyuˇz´ıt tˇechto sluˇzeb v naˇs´ı aplikaci[Car()]. V´yhody: • Zpracov´an´ı dat formou workflow. Nev´yhody: • Pouˇzit´ı pouze jako webov´a aplikace. 11
Pˇrehled konkurenˇcn´ıch aplikac´ı
3.3
EEG data processor
EEG data processor
Tato aplikace je vyv´ıjena a provozov´ana Katedrou informatiky a v´ypoˇcetn´ı techniky Z´apadoˇcesk´e Univerzity v Plzni. Oproti aplikaci EEGbase zde nen´ı moˇznost uloˇzen´ı dat, ale tato aplikace m´a na starosti pouze zpracov´av´an´ı dat matematick´ymi metodami. Po nahr´an´ı dat, kter´a chceme zpracovat, je k v´ybˇeru nˇekolik matematick´ych metod. Na z´akladˇe zadan´ych parametr˚ u metoda data zpracuje, a v´ysledek je uloˇzen do doˇcasn´eho uloˇziˇstˇe. Uˇzivatel si pot´e m˚ uˇze vysledek zpracov´an´ı st´ahnout.
Obr´ azek 3.3: Uk´azka prostˇred´ı aplikace EEG data processor
Aplikace podporuje pˇrid´av´an´ı dalˇs´ıch matematick´ych metod vytvoˇren´ych uˇzivateli, kter´e mus´ı b´yt naps´any v jazyce Java, a splˇ novat definovan´e poˇzadavky dostupn´e v dokumentaci. Pˇr´ıstup k metod´am je moˇzn´y pˇres prostˇred´ı webov´e aplikace, nebo jako vol´an´ı SOAP webov´e sluˇzby. V pˇr´ıpadˇe webov´e sluˇzby je v´ysledek vr´acen jako pole byt˚ u reprezentuj´ıc´ı xml volaj´ıc´ı aplikaci.
12
Pˇrehled konkurenˇcn´ıch aplikac´ı
EEG data processor
V souˇcasn´e dobˇe je moˇznost vyuˇz´ıt vstupn´ı form´at KIV FORMAT, kter´y obsahuje vˇzdy soubory EEG, VHDR a volitelnˇe VMRK. V´yhody: • Pouˇz´ıv´an´ı metod pomoc´ı webov´e sluˇzby. Nev´yhody: • Chyb´ı podpora workflow.
13
4 N´avrh syst´emu workflow V t´eto ˇc´asti se bl´ıˇze sezn´am´ıme s pojmem workflow a pokus´ıme se jej navrhnout spoleˇcnˇe s integrac´ı do aplikace EEGbase. Souˇc´ast´ı tohoto n´avrhu bude i nalezen´ı poskytovatele zpracov´an´ı dat matematick´ymi metodami.
4.1
Workflow
T´ımto term´ınem se rozum´ı postupn´e prov´adˇen´ı komplexn´ı ˇcinnosti, rozdˇelen´ım na jednoduch´e ˇcinnosti a vazby mezi nimi. S workflow se m˚ uˇzeme setkat napˇr´ıˇc r˚ uzn´ymi odvˇetv´ımi. Napˇr. podnikov´e workflow m˚ uˇze definovat zpracov´an´ı pˇrijat´ych dokument˚ u. Pomoc´ı tohoto n´astroje m˚ uˇzeme pˇresnˇe definovat procesy od pˇrijet´ı dokumentu aˇz po jeho archivaci. Workflow definujeme t´ım, ˇze proces zpracov´an´ı dokumentu rozdˇel´ıme na jednotiliv´e kroky, urˇc´ıme z´ uˇcastnˇen´e osoby a aktivity, kter´e maj´ı v kaˇzd´em kroku probˇehnout.
Obr´ azek 4.1: Sch´ema jednoduch´eho workflow
Pomoc´ı workflow je moˇzn´a definice od jednoduch´eho procesu aˇz po komplexn´ı a rozs´ahle procesy obsahuj´ıc´ı i nˇekolik des´ıtek krok˚ u a mnoˇzstv´ı r˚ uzn´ych vazeb[Janiˇsov´a(2012)].
14
N´avrh syst´emu workflow
4.2
Moˇznosti ˇreˇsen´ı
Moˇ znosti ˇ reˇsen´ı
Syst´em workflow by mˇel umoˇznit uˇzivatel˚ um spouˇstˇet matematick´e metody nad daty formou sekvenˇcn´ıho zpracov´an´ı. To znamen´a, ˇze by mˇelo b´yt umoˇznˇeno uˇzivatel˚ um v´ybˇer vˇetˇs´ıho mnoˇzstv´ı dat, nad kter´ymi budou spouˇstˇeny vybran´e metody. V´ysledky spuˇstˇen´ych metod by mˇely b´yt uˇzivatel˚ um k dispozici aˇz po kompletn´ım dokonˇcen´ı vˇsech zvolen´ych metod. Uˇzivatel´e by mˇeli m´ıt moˇznost zvolit, zda n´asleduj´ıc´ı metoda bude spuˇstˇena nad jin´ymi daty, ˇci nad v´ysledky pˇredchoz´ıch metod. Na z´akladˇe pˇredchoz´ıho pr˚ uzkumu konkurenˇcn´ıch aplikac´ı jsou pro zpracov´an´ı dat matematick´ymi metodami vhodn´e pouze aplikace Portal Carmen a EEG data processor. Pouze jedna z tˇechto aplikac´ı podporuje zpracov´an´ı dat pomoc´ı webov´ych sluˇzeb. Touto aplikac´ı je EEG data processor. Vzhledem k tomu, ˇze se jedn´a o nutnou podm´ınku naˇseho n´avrhu, je pro n´avrh a n´aslednou implementaci vybr´ana tato aplikace. Pˇri detailn´ım pohledu na rozsah moˇzn´eho ˇreˇsen´ı se n´am nab´ızej´ı dvˇe moˇznosti. Prvn´ı varianta spoˇc´ıv´a v kompletn´ı implementaci syst´emu workflow v aplikaci EEGbase a EEG data processor vyuˇz´ıt jen pro jednotliv´a vol´an´ı. Jako druh´a varianta je pˇrenechat zpracov´an´ı workflow aplikaci EEG data processor.
4.2.1
EEGbase ˇ reˇ sen´ı
Toto ˇreˇsen´ı spoˇc´ıv´a v implementaci kompletn´ıho syst´emu workflow pouze na stranˇe aplikace EEGbase. EEGbase by mˇela na starosti kompletn´ı zpracov´an´ı workflow a webov´e sluˇzby by vyuˇz´ıvala pouze pro jednotliv´e kroky workflow. Implemetaci by bylo moˇzn´e rozdˇelit do n´asleduj´ıch krok˚ u. Vytvoˇ ren´ı klienta webov´ e sluˇ zby Jednalo by se o modul, kter´y by byl schopen odes´ılat konkr´etn´ı poˇzadavek webov´e sluˇzbˇe a pˇrijmout od n´ı v´ysledek. Pro kaˇzd´e zpracov´an´ı by klient pouˇzil jedno vol´an´ı. V´ ybˇ er dat a metod Implementace t´eto funkce by mˇela zajistit v´ybˇer dat a metod poˇzadovan´ych pro zpracov´an´ı v syst´emu workflow. Integrace dat s klientem Vybran´a data by byla postupnˇe odes´ıl´ana a pˇrijat´e v´ysledky shromaˇzd’ov´any. Po dokonˇcen´ı cel´eho workflow by byly zpˇr´ıstupnˇeny uˇzivatel˚ um. 15
N´avrh syst´emu workflow
Moˇznosti ˇreˇsen´ı
V´yhody: Veˇsker´a spr´ava workflow by byla u ´kolem aplikace EEGbase a nebyl by nutn´y z´asah do aplikace EEG data processor. Nev´yhody: Znaˇcnˇe zv´yˇsen´a z´atˇeˇz serveru pˇri zpracov´an´ı metod a pˇri neust´al´e komunikaci s webovou sluˇzbou.
4.2.2
EEGbase a EEG data processor
Jedn´a se o ˇreˇsen´ı, kter´e zahrnuje u ´pravu obou aplikac´ı. EEGbase by vystupovala pouze v roli klienta. Popis workflow spolu s daty by odeslala webov´e sluˇzbˇe, kter´a by se postarala o zpracov´an´ı a vr´atila by kompletn´ı v´ysledek. Opˇet je moˇzn´e implementaci rozdˇelit do n´asleduj´ıc´ıh krok˚ u.
Obr´ azek 4.2: Jednoduch´e sch´ema ˇreˇsen´ı ´ Uprava EEG data processoru Webov´a sluˇzba by musela b´yt upravena tak, aby byla schopna pˇrijmout v´ıce dat spolu s popisem proces˚ u, kter´ymi se data maj´ı zpracov´avat. Z´aroveˇ n by u ´prava musela obsahovat vr´acen´ı vˇsech v´ysledk˚ u z proveden´eho zpracov´an´ı. 16
N´avrh syst´emu workflow
V´ybˇer ˇreˇsen´ı
´ Uprava EEGbase Po v´ybˇeru konkr´etn´ıch dat a metod by vˇsechna data byla odesl´ana spolu s popisem workflow webov´e sluˇzbˇe a po dokonˇcen´ı by byly vr´aceny konkr´etn´ı v´ysledky. V´yhody: Pˇrenech´an´ı kompletn´ı spr´avy workflow EEG data processoru, ˇc´ımˇz nedojde k zat´ıˇzen´ı naˇs´ı aplikace. Nev´yhody: Nutnost u ´pravy obou aplikac´ı, coˇz s sebou nese vˇetˇs´ı ˇcasov´e n´aroky na realizaci.
4.3
V´ ybˇ er ˇ reˇsen´ı
Vzhledem k moˇznostem, kter´e jsou n´am nab´ızeny druhou variantou, jsem se rozhodl pro implementaci tohoto ˇreˇsen´ı. Tato varianta n´am nab´ız´ı moˇznost ponech´an´ı aplikace EEGbase jako samostatn´a data, spravuj´ıc´ı aplikace s moˇznost´ı vzd´alen´eho zpracov´an´ı dat. Dalˇs´ı bezespornou v´yhodou je rozˇs´ıˇren´ı aplikace EEG data processor o podporu workflow, ˇcehoˇz mohou vyuˇz´ıt i ostatn´ı uˇzivatel´e t´eto aplikace.
4.4
Detailn´ı n´ avrh workflow
C´ılem n´avrhu je nab´ıdnout efektivn´ı ˇreˇsen´ı zpracov´an´ı dat, pomoc´ı uˇzivateli definovan´eho workflow. Ke zpracov´an´ı dat bude pouˇzita webov´a sluˇzba aplikace EEG data processor. Klient t´eto webov´e sluˇzby, kter´y bude poˇzadovat workflow zpracov´an´ı, spoleˇcnˇe s daty, odeˇsle i popisn´y soubor, kter´y bude definovat metody a data, kter´a si pˇreje zpracovat v jednotliv´ych kroc´ıch. Cel´e workflow bude rozdˇeleno do jednotliv´ych celk˚ u, oznaˇcen´ych jako ”workunit”. Tyto jednotky lze pouˇz´ıt na logick´e a pˇrehledn´e uspoˇr´ad´an´ı v´ıce experiment˚ u v r´amci jednoho workflow. Kaˇzd´y tento celek bude rozdˇelen na
17
N´avrh syst´emu workflow
Detailn´ı n´avrh workflow
dan´y poˇcet krok˚ u ”workstep”, kter´e budou obsahovat poˇzadavanou metodu s parametry, n´azev konkr´etn´ıch dat a dalˇs´ı parametry. U kaˇzd´eho kroku si uˇzivatel m˚ uˇze zvolit, zda-li si pˇreje zpracov´avat p˚ uvodn´ı data, ˇci v´ysledek nˇekter´eho z pˇredchoz´ıch krok˚ u. V tomto pˇr´ıpadˇe je nutn´e zajistit, aby prvn´ı krok vˇzdy obsahoval p˚ uvodn´ı data. V aplikaci EEG data processor je striktnˇe zad´an poˇzadavek na vstupn´ı data kaˇzd´e metody. Je tedy nutn´e zajistit, aby v pˇr´ıpadˇe pouˇzit´ı v´ysledku byl dan´y v´ysledek poˇzadovan´eho form´atu. Z tohoto d˚ uvodu bude pˇri kaˇzd´em vstupu provedena kontrola form´atu dat, protoˇze r˚ uzn´e metody vracej´ı r˚ uzn´e v´ysledky. Mezi dalˇs´ı parametry kaˇzd´eho kroku bude patˇrit informace, zda-li je poˇzadov´an konkr´etn´ı v´ysledek zaslat volaj´ıc´ımu, ˇci bude pouze pouˇzit v jin´em kroku obsaˇzen´em ve workflow. Posledn´ım parametrem kroku bude form´at vstupn´ıch dat, pro identifikaci, zda se jedn´a o data p˚ uvodn´ı ˇci v´ysledn´a. D´ıky tomuto jednoduch´emu a jednoznaˇcn´emu popisu workflow jsme schopni realizovat n´asleduj´ıc´ı uˇzivatelsk´e sc´en´aˇre. Jednoduch´ e zpracov´ an´ı Jedn´a se o z´akladn´ı stavebn´ı k´amen cel´eho syst´emu. Poˇzadavkem je zpracov´an´ı p˚ uvodn´ıch dat vybranou metodou. V tomto pˇr´ıpadˇe je moˇzn´e zvolit, zda-li si pˇrejeme z´ıskat v´ysledek, ˇci ho jen doˇcasnˇe uloˇzit pro pozdˇejˇs´ı pouˇzit´ı. N´ asobn´ e zpracov´ an´ı Je moˇzn´e vygenerovat popisn´y soubor, kter´y na z´akladˇe informac´ı od uˇzivatele vygeneruje dan´y poˇcet krok˚ u. V tomto pˇr´ıpadˇe je potˇreba zajistit, aby vybran´a metoda vracela poˇzadovan´y form´at dat, kter´y je vhodn´y pro opakovan´e zpracov´an´ı. N´ asobn´ e metody N´a z´akladˇe informac´ı od uˇzivatele je moˇzn´e vygenerovat dan´y poˇcet krok˚ u se stejn´ymi daty, ale rozd´ıln´ymi metodami. Tyto uˇzivatelsk´e sc´en´aˇre jsou v pln´e kompetenci klienta webov´e sluˇzby, kter´y m´a na starosti dle informac´ı od uˇzivatele generovat popisn´y soubor s patˇriˇcn´ymi kroky. V´ysledky dan´ych krok˚ u budou ukl´ad´any pod jm´enem sloˇzen´eho z n´azvu ”workunit”a ”workstep”. D´ıky tomuto pojmenov´an´ı bude moˇzn´e pˇristoupit k jak´emukoliv v´ysledku v r´amci cel´eho workflow. 18
N´avrh syst´emu workflow
Detailn´ı n´avrh workflow
Po zpracov´an´ı vˇsech krok˚ u bude sestaven v´ysledek z poˇzadovan´ych v´ysledn´ych dat, kter´y bude pot´e vr´acen jako n´avr´atov´a hodnota volaj´ıc´ımu.
Obr´ azek 4.3: Uk´azka moˇzn´eho workflow
19
N´avrh syst´emu workflow
4.5
Detailn´ı n´avrh klienta
Detailn´ı n´ avrh klienta
Vzhledem k tomu, ˇze se jedn´a o velmi komplexn´ı a rozs´ahlou problematiku zpracov´an´ı workflow, bude klient slouˇzit jako funkˇcn´ı prototyp zejm´ena k otestov´an´ı funkˇcnosti navrˇzen´eho syst´emu. Tento klient bude integrov´an do aplikace EEGbase, kde bude plnit zejm´ena u ´lohu z´ısk´an´ı dat od uˇzivatele. Po z´ısk´an´ı uˇzivatelsk´ych dat prostˇrednictv´ım formul´aˇr˚ u, bude sestaven seznam vstupn´ıch dat, kter´a budou dle n´azvu a ID experimentu z´ısk´ana pˇr´ımo z datab´azov´eho uloˇziˇstˇe. Na z´akladˇe informac´ı popisuj´ıc´ı workflow, bude vygenerov´an popisn´y soubor, kter´y bude spolu s daty odesl´an webov´e sluˇzbˇe. Proces vol´an´ı sluˇzby bude spuˇstˇen na pozad´ı, aby uˇzivatel˚ um nebr´anil v dalˇs´ı pr´aci s aplikac´ı. Po z´ısk´an´ı v´ysledk˚ u, budou tyto v´ysledky uloˇzeny do datab´aze a pˇr´ıstupn´e uˇzivatel˚ um z prostˇred´ı aplikace. Klient bude d´ale rozv´ıjen do plnˇe funkˇcn´ıho ˇreˇsen´ı v´yzkumnou skupinou, zab´yvaj´ıc´ı se v´yvojem a provozem aplikace EEGbase.
20
5 Implementace a integrace workflow V t´eto ˇc´asti implementujeme zpracov´an´ı workflow do webov´e sluˇzby aplikace EEG data processor a d´ale tuto funkcionalitu integrujeme do aplikace EEGbase.
5.1
Implementace workflow
V t´eto ˇc´asti se vˇenujeme popisu implementace na stranˇe aplikace EEG data processor. Zpracov´an´ı workflow u ´kol˚ u je implementov´ano jako rozˇs´ıˇren´ı souˇcasn´e webov´e sluˇzby aplikace EEG data processor. Webov´a sluˇzba umoˇzn ˇuje z´ısk´an´ı seznamu dostupn´ych metod, z´ısk´an´ı seznamu parametr˚ u dan´e metody, z´ısk´an´ı poˇctu aktu´alnˇe voln´e kapacity pro zpracov´an´ı dat a zpracov´an´ı dat matematickou metodou. Aplikace podporuje vstupn´ı form´at EEG soubor˚ u a vr´acen´ı v´ysledku ve formˇe xml. Po rozboru poˇzadovan´ych funkc´ı z naˇseho n´avrhu m˚ uˇzeme zpracov´an´ı vˇsech krok˚ u rozdˇelit do dvou skupin. Zpracov´ an´ı EEG soubor˚ u Tato funkcionalita je jiˇz v aplikaci implementov´ana. Jedn´a se o zpracov´an´ı soubor˚ u form´atu EEG poˇzadovanou metodou a vr´acen´ı v´ysledku ve form´atu xml. Zpracov´ an´ı v´ ysledk˚ u Jedn´a se o funkci, kdy vstupem pro poˇzadovanou metodu je v´ysledek nˇekter´eho z pˇredchoz´ıch zpracov´an´ı. V tomto pˇr´ıpadˇe je potˇreba zajistit, aby dan´y vysledek byl ve form´atu podporuj´ıc´ı matematick´e metody, coˇz je v naˇsem pˇr´ıpadˇe pole typu double, kter´e nejl´epe reprezentuje namˇeˇren´e hodnoty EEG. Cel´e workflow bude rozdˇeleno do samostatn´ych krok˚ u, ve kter´ych bude definov´ano n´asleduj´ıc´ı: Vstupn´ı data Jedn´a se o n´azev konkr´etn´ıch dat. V naˇsem pˇr´ıpadˇe tedy n´azev vstupn´ıch EEG soubor˚ u, pˇr´ıpadnˇe n´azev kroku, z kter´eho chceme pouˇz´ıt v´ysledek. 21
Implementace a integrace workflow
Implementace workflow
Form´ at vstupn´ıch dat Souˇcasn´a aplikace EEG data processor podporuje pouze form´at EEG, kter´y je definov´an hodnotou KIV FORMAT. V r´amci naˇs´ı implementace bude aplikace rozˇs´ıˇrena o DOUBLE FORMAT, kter´y bude definovat data z´ıskan´a z pˇredchoz´ıch zpracov´an´ı. Uchov´ an´ı dat Volba uˇzivatele, zda si data z´ıskan´a spuˇstˇen´ım dan´e metody pˇreje zaslat mezi v´ysledky, ˇci tato data budou pouˇzita jako vstup pro nˇekter´e z n´asleduj´ıc´ıch zpracov´an´ı. N´ azev metody N´azev poˇzadovan´e metody. Parametry metody Vstupn´ı parametry vybran´e metody. T´ımto jednoduch´ym a jednoznaˇcn´ym popisem kaˇzd´eho kroku bude moˇzn´e definovat t´emˇeˇr jak´ekoliv workflow, kter´e bude pops´ano popisn´ym souborem. Uˇzivatelsk´e sc´en´aˇre typu v´ıcen´asobn´eho spuˇstˇen´ı metod budou realizov´any dan´ym poˇctem krok˚ u dle poˇctu poˇzadovan´ych spuˇstˇen´ı. Webov´a sluˇzba na vstupu z´ısk´a vˇsechny EEG soubory, kter´e se budou ve workflow pouˇz´ıvat a spolu s nimi i popisn´y soubor, kter´y bude definovat cel´e workflow. Na z´akladˇe tohoto popisn´eho souboru bude vytvoˇren seznam krok˚ u obsaˇzen´ych v cel´em workflow. Kaˇzd´y krok bude pot´e spuˇstˇen a zpracov´av´an dle uveden´ych parametr˚ u.
5.1.1
Popisn´ y soubor
Jako form´at popisn´eho souboru bylo zvoleno XML, hlavnˇe z d˚ uvodu rozˇs´ıˇrenosti tohoto form´atu a snadn´e implementaci pomoc´ı jiˇz existuj´ıc´ıch n´astroj˚ u od tˇret´ıch stran. Koˇrenov´ym elementem cel´eho dokumentu je ”workflow”. Po pˇrijet´ı popisn´eho souboru je zkontrolov´ano, zda-li je obsaˇzen koˇrenov´y element, tedy ˇze se jedn´a o popis workflow. V pˇr´ıpadˇe, ˇze element nen´ı nalezen, je vyhozena vyj´ımka a vr´acena volaj´ıc´ımu. Element ”workflow”obsahuje pouze jeden parametr, a t´ım je jm´eno. Workflow obsahuje elementy ”workunit”, kter´e reprezentuj´ı logick´y celek a slouˇz´ı hlavnˇe k pˇrehlednˇejˇs´ımu popisu a moˇznosti rozdˇelit workflow do 22
Implementace a integrace workflow
Implementace workflow
skupin, kde kaˇzd´a skupina obsahuje urˇcit´y poˇcet krok˚ u. Tento element m´a za parametr pouze jm´eno, kter´e slouˇz´ı k vytvoˇren´ı jm´ena v´ysledku, coˇz dovoluje k v´ysledk˚ um pˇristupovat odkudkoliv z cel´eho workflow. Element ”workunit”obsahuje dalˇs´ı elementy ”workstep”, kter´e reprezentuj´ı dan´y krok obsahuj´ıc´ı jiˇz parametry t´ykaj´ıc´ı se konkr´etn´ıho spouˇstˇen´ı metod. Mezi parametry patˇr´ı jm´eno, kter´e slouˇz´ı tak´e k pojmenov´an´ı v´ysledku. Jm´eno v´ysledku je vˇzdy sloˇzeno z jm´ena ”workunit”a ”workstep”. Dalˇs´ım parametrem je form´at vstupn´ıch dat, kter´y m˚ uˇze nab´yvat hodnot KIV FORMAT a DOUBLE FORMAT. Dle tohoto parametru je moˇzn´e krok rozdˇelit do jedn´e ze dvou skupin potˇrebn´ych pro spouˇstˇen´ı. Posledn´ım parametrem je ”store”, kter´y nab´yv´a logick´ych hodnot a informuje o tom, zda-li si uˇzivatel pˇreje v´ysledek uchovat ˇci nikoliv. Kaˇzd´y ”workstep”obsahuje dva elementy, kter´ymi jsou n´azvy dat pro zpracov´an´ı a n´azev metody spolu s jej´ımi parametry. Listing 5.1: Uk´azka popisn´eho souboru <workflow name="Workflow"> <workunit name="Experiment1"> <workstep name="SimpleFile" format="KIV_FORMAT" store=" false">
data1.eeg data1.vhdr <method params="01,100,Cz,FAST_DAUBECHIES_2">DWTPlugin -1.0.0 <workstep name="SimpleDouble" format="DOUBLE_FORMAT" store ="true">
Experiment1_SimpleFile <method params="01,1000,Cz,COMPLEX_GAUSSIAN ,1,1,1,14000,14000">CWTPlugin-1.0.0 <workunit name="Experiment2"> <workstep name="SimpleFile" format="KIV_FORMAT" store=" true">
data2.eeg data2.vhdr <method params="01,100,Cz,FAST_DAUBECHIES_2">DWTPlugin -1.0.0
23
Implementace a integrace workflow
5.1.2
Implementace workflow
Chybov´ e stavy
Aplikace bude rozˇs´ıˇrena o zpracov´an´ı chybov´ych stav˚ u pomoc´ı n´avratov´ych k´od˚ u. I pˇres apar´at vyj´ımek, kter´e Java nab´ız´ı, byl tento zp˚ usob zvolen z d˚ uvodu, ˇze tyto k´ody jsou vr´aceny spolu s v´ysledky. Chybov´e k´ody umoˇzn ˇuj´ı klientovi vlastn´ı definici chybov´ych zpr´av, coˇz lze ocenit pˇri lokalizaci a moˇznost implementace specifick´eho chov´an´ı klienta na dan´y k´od. V tuto chv´ıli je aktivn´ı podpora tˇechto dvou k´od˚ u. 1. Nepodporovan´y form´at vstupn´ıch dat. 2. Pouˇzit´y v´ysledek nen´ı form´atu DOUBLE ARRAY. Do budoucna je moˇzn´e rozˇs´ıˇren´ı o dalˇs´ı k´ody, pˇr´ıpadnˇe sjednocen´ı chov´an´ı cel´e aplikace pˇri chybov´ych situac´ıch.
5.1.3
Implementace metody pro zpracov´ an´ı workflow
Webov´a sluˇzba bude rozˇs´ıˇrena o novou metodu, kter´a bude pouˇz´ıv´ana v´yhradnˇe na vol´an´ı processor˚ u pro kaˇzd´y krok. Tato metoda jako parametr z´ısk´a vˇsechny potˇrebn´e EEG soubory spolu s popisn´ym souborem. Po ukonˇcen´ı metody bude vr´aceno pole byt˚ u, kter´e bude obsahovat vˇsechny v´ysledky. Na zaˇc´atku tato metoda vytvoˇr´ı objekt ”DataHandler”, kter´y m´a na starosti manipulaci se vstupn´ımi daty. D´ale je vytvoˇren objekt ”ParameterHandler”, kter´y m´a na starosti vytvoˇren´ı seznamu krok˚ u, vˇcetnˇe vˇsech parametr˚ u obsaˇzen´ych v popisn´em souboru. V dalˇs´ım kroku je od objektu ”ParameterHandler”z´ısk´an seznam vˇsech krok˚ u, kter´y je postupnˇe zpracov´av´an poˇzadovan´ymi matematick´ymi metodami. Pro kaˇzd´y krok je vol´an jeden ze dvou processor˚ u podle form´atu vstupn´ıch dat. V´ysledn´a data jsou pot´e objektem ”DataHandler”uloˇzena do seznamu v´ysledk˚ u. Po zpracov´an´ı vˇsech krok˚ u je od ”DataHandleru”z´ısk´an fin´aln´ı v´ysledek, sestaven´y ze seznamu v´ysledk˚ u n´a z´akladˇe parametru o uloˇzen´ı. Tento fin´aln´ı v´ysledek je vr´acen volaj´ıc´ımu v podobˇe pole byt˚ u. 24
Implementace a integrace workflow
Implementace workflow
Tato metoda d´ale zajiˇst’uje nahrazen´ı v´ysledku chybov´ym k´odem, v pˇr´ıpadˇe chyby vstupn´ıch dat.
5.1.4
Implementace zpracov´ an´ı popisn´ eho souboru
Zpracov´an´ı popisn´eho souboru zajiˇst’uje objekt tˇr´ıdy ”ParameterHandler”. Tento objekt m´a dvˇe promˇenn´e. Jednou z nich je seznam vˇsech krok˚ u workflow, z´ıskan´y z popisn´eho souboru. Druhou promˇennou je ˇretˇezec reprezentuj´ıc´ı popisn´y soubor. Tento ˇretˇezec je pˇred´an konstruktoru ”ParameterHandleru”, ve kter´em je z´aroveˇ n naplnˇen seznam krok˚ u, parsov´an´ım pˇredan´eho ˇretˇezce. Pro parsov´an´ı je vybr´ana metoda DOM, kter´a umoˇzn ˇuje v pˇr´ıpadˇe velk´ych XML soubor˚ u, menˇs´ı pamˇet’ovou n´aroˇcnost, protoˇze se parsuje postupnˇe a nejsou z kaˇzd´eho elementu vytv´aˇreny objekty. Dalˇs´ı d˚ uvod byla vlastn´ı zkuˇsenost s touto metodou. Na z´akladˇe postupn´eho parsov´an´ı jsou vytv´aˇreny objekty ”Workstep”, kter´e obsahuj´ı pouze promˇenn´e reprezentuj´ıc´ı hodnoty a parametry kaˇzd´eho kroku. Kaˇzd´y takto vytvoˇren´y objekt je uloˇzen do seznamu krok˚ u, kter´y je pot´e pouˇz´ıv´an v metodˇe webov´e sluˇzby.
5.1.5
Implementace zpracov´ an´ı dat
Data jsou zpracov´av´any pomoc´ı objektu ”DataHandler”. Tato tˇr´ıda m´a tˇri hlavn´ı promˇenn´e. Jedn´a se o seznam vstupn´ıch EEG soubor˚ u, seznam v´ysledk˚ u spuˇstˇen´ych metod a seznam fin´aln´ıch v´ysledk˚ u, kter´e jsou poˇzadov´any od volaj´ıc´ıho. Seznamy vstupn´ıch dat jsou pˇred´any pomoc´ı rozhran´ı Map, ˇc´ımˇz je zajiˇstˇeno rychl´eho pˇr´ıstupu ke konkr´etn´ım dat˚ um. Kl´ıˇcem je vˇzdy bud’ n´azev souboru, nebo kroku, ze kter´eho je z´ısk´an v´ysledek. Pˇri vytv´aˇren´ı objektu ”DataHandler”je v konstruktoru pˇred´ano pole vstupn´ıch EEG soubor˚ u, kter´ym je naplnˇen seznam vstupn´ıch soubor˚ u, a pˇriˇrazen´ı kl´ıˇc˚ u, dle n´azv˚ u soubor˚ u. Seznam v´ysledk˚ u je naplˇ nov´an vˇzdy po zpracov´an´ı konkr´etn´ıho kroku a z´ısk´an´ı v´ysledku. Objekt ”DataHandler”zajiˇst’uje pro webovou sluˇzbu pˇred´av´an´ı poˇzadovan´ych vstupn´ıch dat, ukl´ad´an´ı v´ysledk˚ u spuˇstˇen´ych metod, pˇrevod v´ysledk˚ u 25
Implementace a integrace workflow
Implementace workflow
do form´atu pole double, kontrola v´ysledk˚ u, zda jsou form´atu pole double a zajiˇstˇen´ı vr´acen´ı poˇzadovan´ych v´ysledk˚ u ve form´atu pole byte. Poˇzadovan´e v´ysledky jsou vˇzdy form´atu XML, kter´y je pˇreveden do pole byt˚ u a pot´e jsou serializac´ı vˇsechny v´ysledky pˇrevedeny do jednoho pole byt˚ u, ´ kter´e je vr´aceno klientovi. Ukolem klienta je pot´e deserializac´ı z tohoto pole z´ıskat opˇet pole ˇretˇezc˚ u reprezetuj´ıc´ı dan´e xml v´ysledky.
Obr´ azek 5.1: Class diagram u ´prav
5.1.6
Moˇ zn´ e vylepˇ sen´ı v r´ amci workflow
Aplikaci je d´ale moˇzn´e rozˇs´ıˇrit o zpracov´an´ı v´ıce druh˚ u chybov´ych stav˚ u. D´ale se zde nab´ız´ı moˇznost integrace zpracov´an´ı workflow do prostˇred´ı webov´e aplikace, kde by bylo uˇzivatel˚ um umoˇznˇeno definovat a zpracovat workflow jen za pomoc´ı samotn´e aplikace EEG data processor.
26
Implementace a integrace workflow
5.2
Implementace klienta
Implementace klienta
V t´eto ˇc´asti se vˇenujeme popisu implementace a integrace klienta webov´e sluˇzby zpracov´avaj´ıc´ı workflow do aplikace EEGbase. Integrace klienta je implementov´ana jako soubor funkc´ı zajiˇst’uj´ıc´ı n´asleduj´ıc´ı sluˇzby. Z´ısk´ an´ı dat od uˇ zivatele Uˇzivatel m´a moˇznost pˇr´ımo z webov´eho prostˇred´ı aplikace zadat vˇsechny potˇrebn´e vstupy pro zpracov´an´ı vybran´ych dat, vˇcetnˇe parametr˚ u kaˇzd´eho kroku. Vytvoˇ ren´ı popisn´ eho souboru Na z´akladˇe z´ıskan´ych vstup˚ u je vytvoˇren popisn´y soubor pro workflow, kter´y je zas´ıl´an webov´e sluˇzbˇe spolu s datov´ymi soubory. Z´ısk´ an´ı potˇ rebn´ ych datov´ ych soubor˚ u Dle uˇzivatelem vybran´ych experiment˚ u jsou z datab´aze z´ısk´any potˇrebn´e soubory, kter´e budou zpracov´any. Komunikace s webovou sluˇ zbou Zajiˇstˇen´ı komunikace s webovou sluˇzbou za u ´ˇcelem zpracov´an´ı workflow, z´ısk´an´ı seznamu aktu´alnˇe podporovan´ych metod a z´ısk´an´ı v´ysledk˚ u zpracov´an´ı. Uloˇ zen´ı v´ ysledk˚ u workflow Uloˇzen´ı v´ysledk˚ u zpracov´an´ı dat do datab´aze, aby uˇzivatel pot´e k nim mohl pˇristupovat z prostˇred´ı webov´e aplikace. Klient je implementov´an v podobˇe funkˇcn´ıho prototypu, jehoˇz hlavn´ım c´ılem je otestov´an´ı funkˇcnosti navrhnut´eho syst´emu workflow. Tento klient bude d´ale vyv´ıjen do plnˇe funkˇcn´ıho ˇreˇsen´ı, integrovan´eho do aplikace EEGbase, respektuj´ıc´ı souˇcasn´y vzhled, chov´an´ı a funkce aplikace. Uˇzivatelsk´e prostˇred´ı klienta je realizov´ano pomoc´ı wicket frameworku, na kter´y v souˇcasn´e dobˇe prob´ıh´a migrace cel´e aplikace.
5.2.1
Implementace z´ısk´ an´ı vstup˚ u
Souˇcasn´a aplikace je rozˇs´ıˇrena o nov´e str´anky ”WorkflowFormPage”a ”WorkflowListResultPage”. Tyto str´anky jsou integrov´any do hlavn´ıho menu pod novˇe pˇridanou z´aloˇzku ”Workflow”. Obˇe str´anky obsahuj´ı menu s v´ybˇerem konkr´etn´ı str´anky um´ıstˇen´e na lev´e stranˇe. Jako defaultn´ı str´anka je zvolena 27
Implementace a integrace workflow
Implementace klienta
str´anka zobrazuj´ıc´ı v´ysledky zpracovan´ych dat, kter´a bude v r´amci pˇrechodu na technologii wicket rozˇs´ıˇrena do plnˇe funkˇcn´ı podoby. Druh´a str´anka obsahuje potˇrebn´e prvky pro z´ısk´an´ı vstup˚ u od uˇzivatele. Pro vstupy jako jsou form´at vstupn´ıch dat, data vstupu, v´ybˇer metody a volba uloˇzen´ı v´ysledku je zvolena wicket komponenta ”DropDownChoice”. Pro n´azev pˇrid´avan´eho kroku a parametry metody je zvolena komponenta editovateln´eho ”TextFieldu”. Posledn´ımi ovl´adac´ımi prvky jsou komponenty ”AjaxButton”, kter´e zajiˇst’uj´ı pˇrid´an´ı kroku a spuˇstˇen´ı definovan´eho workflow. Pro informace o zvolen´e funkci je k dispozici spodn´ı ˇc´ast pod ovl´ad´ac´ımi prvky, kde se vˇzdy zobraz´ı text k zvolen´e funkci, jako napˇr. informace o pˇrid´an´ı kroku do workflow. Vzhledem k volbˇe mezi dvˇema moˇzn´ymi vstupy dat, je implementov´ana prov´azanost mezi ”DropDownChoice”, kde na z´akladˇe vybran´eho typu je druh´y prvek naplnˇen poˇzadovan´ym seznamem vstupn´ıch dat. Tato funkce byla z´ısk´ana pomoc´ı pˇrid´an´ı komponenty ”AjaxFormComponentUpdatingBehavior”, kter´a reaguje na zmˇenu dat pˇri bˇehu aplikace. K dispozici jsou dva seznamy, kde jeden obsahuje seznam vˇsech experiment˚ u vˇcetnˇe ID a druh´y n´azvy vˇsech pˇredchoz´ıch krok˚ u.
Obr´ azek 5.2: Formul´aˇr pro vstup uˇzivatele
28
Implementace a integrace workflow
Implementace klienta
Seznam vˇsech experiment˚ u a dostupn´ych metod je z´ısk´an pˇri vytvoˇren´ı str´anky ”WorkflowFormPage”. Seznam krok˚ u je aktualizov´an vˇzdy pˇri pˇrid´an´ı kaˇzd´eho kroku. N´azev kroku a seznam parametr˚ u je zad´an do vstupn´ıch pol´ı, kter´a jsou vˇzdy po pˇrid´an´ı kroku vymaz´ana. Pˇred pˇrid´an´ım kroku je dle vybran´eho experimentu st´ahnut z datab´aze seznam ”fileId”vˇsech data soubor˚ u, ale pouze v pˇr´ıpadˇe, ˇze se jedn´a o soubory form´atu EEG,VHDR a VMRK, kter´e jsou podporov´any webovou sluˇzbou. K experiment˚ um v datab´azi je pˇristupov´ano pomoc´ı Spring beany ”ExperimentFacade”, kter´a m´a na starosti manipulaci s experimenty v datab´azi. N´aslednˇe vˇsechny z´ıskan´e vstupy jsou pˇred´any objektu ”WorkflowService”, kter´y je d´ale zpracov´av´a.
5.2.2
Implementace zpracov´ an´ı vstup˚ u
Zpracov´an´ı z´ıskan´ych vstup˚ u zajiˇst’uje objekt tˇr´ıdy ”WorkflowService”, kter´y je vytvoˇren jako beana pomoc´ı frameworku Spring pˇri vytvoˇren´ı str´anky ”WorkflowFormPage”. Tento objekt obsahuje metody pro vytv´aˇren´ı seznamu krok˚ u, generov´an´ı popisn´eho souboru, z´ısk´av´an´ı seznamu dostupn´ych metod a spouˇstˇen´ı zpracov´an´ı workflow. V souˇcasn´e dobˇe je k dispozici moˇznost generovat popisn´y soubor v r´amci jedn´e ”workunit”, s moˇznost´ı jednoduch´eho rozˇs´ıˇren´ı klienta o v´ıce tˇechto jednotek. Po z´ısk´an´ı vˇsech vstup˚ u je zavol´ana metoda ”addToWorkflow”, kter´a z pˇredan´ych vstup˚ u vytvoˇr´ı ˇc´ast popisn´eho souboru odpov´ıdaj´ıc´ı jednomu kroku. Tato ˇc´ast, reprezentov´ana vytvoˇren´ym ˇretˇezcem, je vloˇzena do seznamu krok˚ u. Tento seznam je vyuˇz´ıv´an pˇri volbˇe vstup˚ u a pˇri pojmenov´an´ı v´ysledk˚ u. Vzhledem k jednoduchosti popisn´eho souboru je definice kroku generov´ana pouze doplnˇen´ım pˇredan´ych hodnot do pˇripraven´ych ˇretˇezc˚ u, kter´e jsou pot´e spojeny do jednoho celku. V porovn´an´ı s pouˇzit´ım n´astroj˚ u DOM ˇci JAXB se tento pˇr´ıstup zd´a jako optim´aln´ı. Po vytvoˇren´ı vˇsech krok˚ u je vol´ana metoda ”runService”, kter´a vytv´aˇr´ı ze seznamu krok˚ u kompletn´ı popisn´y soubor, a pot´e nov´e vl´akno, ve kter´em je workflow d´ale zpracov´av´ano. Vl´akno je v samostatn´e tˇr´ıdˇe, kter´a v konstruktoru pˇrij´ım´a objekt tˇr´ıdy ”PersonDao”, vytvoˇren´y opˇet jako Spring beana. D´ıku tomuto objektu je moˇzn´e z´ıskat aktu´alnˇe pˇrihlaˇsen´eho uˇzivatele, jehoˇz data jsou pouˇzita pˇri ukl´ad´an´ı v´ysledk˚ u do datab´aze. 29
Implementace a integrace workflow
Implementace klienta
V novˇe vytvoˇren´em vl´aknu je nejdˇr´ıve vytvoˇren seznam objekt˚ u ”ServiceResult”, v poˇctu odpov´ıdaj´ıc´ım uˇzivatelem poˇzadovan´ych v´ysledk˚ u. Tyto objekty jsou pot´e uloˇzeny do datab´aze pomoc´ı Spring beany ”ServiceResultDao”, se statusem running. Toto n´am umoˇzn ˇuje z´ıskat pˇr´ıstup k seznamu bˇeˇz´ıc´ıch metod a oˇcek´avan´ych v´ysledk˚ u jiˇz v okamˇziku spuˇstˇen´ı worklow. N´aslednˇe jsou z datab´aze st´ahnuty poˇzadovan´e datov´e soubory podle z´ıskan´eho seznamu ”fileIds”a Spring beany ”FileFacade”. Tyto soubory jsou pˇrid´any do seznamu vstupn´ıch soubor˚ u, kter´y je poˇzadov´an webovou sluˇzbou jako jeden ze vstup˚ u. Pˇredposledn´ım krokem nov´eho vl´akna je vytvoˇren´ı objektu tˇr´ıdy ”DataProcessor”, kter´y zajiˇst’uje konkr´etn´ı vol´an´ı webov´e sluˇzby. V´ysledek vr´acen´y vol´an´ım je pˇred´an metodˇe ”storeResult”, kter´a zajiˇst’uje aktualizov´an´ı datab´aze o z´ıskan´e v´ysledky. K aktualizaci datab´aze je vyuˇzit dˇr´ıve vytvoˇren´y seznam ”ServiceResult˚ u”, kde kaˇzd´y v´ysledek aktualizujeme na stav finished a pˇripoj´ıme v´ysledn´a data ve form´atu Blob. Mezi dalˇs´ı metody tˇr´ıdy ”WorkflowService”, patˇr´ı metoda pro z´ısk´an´ı seznamu vˇsech experiment˚ u z datab´aze, ze kter´ych se vytv´aˇr´ı n´azev obsahuj´ıc´ı popis a ID experimentu. Takto vytvoˇren´y seznam je pouˇz´ıv´an pˇri v´ybˇeru dat uˇzivatelem. D´ale je zde metoda pro z´ısk´an´ı seznamu aktu´alnˇe podporovan´ych metod webovou sluˇzbou, kter´a k tomu vyuˇz´ıv´a vol´an´ı webov´e sluˇzby. Dalˇs´ı d˚ uleˇzitou metodou je vytv´aˇren´ı a aktualizov´an´ı seznamu ”fileId”, ke kter´emu je pouˇzito rozhran´ı Set. Toto rozhran´ı zajiˇst’uje, ˇze kaˇzd´e ”fileId”je v seznamu uloˇzeno pouze jednou i v pˇr´ıpadˇe, ˇze uˇzivatel zvolil stejn´y experiment v r˚ uzn´ych kroc´ıch.
5.2.3
Implementace komunikace s webovou sluˇ zbou
Komunikaci s webovou sluˇzbou zajiˇst’uje objekt tˇr´ıdy ”DataProcessor”, kter´y v souˇcasn´e implementaci disponuje metodou pro zpracov´an´ı workflow a z´ısk´an´ı seznamu aktu´alnˇe podporovan´ych metod. Pˇri vytvoˇren´ı objektu je pomoc´ı tˇr´ıdy ”PropertiesLoader”naˇcten soubor setting.properties, kter´y obsahuje adresu koncov´eho bodu webov´e sluˇzby, uˇzivatelsk´e jm´eno a heslo pro pˇr´ıstup k aplikaci EEG data processor. Tˇr´ıdy reprezentuj´ıc´ı objekty webov´e sluˇzby jsou vygenerov´any pomoc´ı aplikace Apache CXF, kter´a je pouˇz´ıv´ana v implementaci webov´e sluˇzby.
30
Implementace a integrace workflow
Implementace klienta
Metoda pro z´ısk´an´ı seznamu podporovan´ych matematick´ych metod nejdˇr´ıve vytvoˇr´ı sluˇzbu a potom vzd´alen´ym vol´an´ım z´ısk´a seznam podporovan´ych metod. Metoda pro zpracov´an´ı workflow pˇreb´ır´a mezi parametry seznam datov´ych soubor˚ u a popisn´y soubor. Tyto dva parametry jsou pot´e pˇred´any vzd´alen´e metodˇe. Jako v´ysledek je z´ısk´ano pole byt˚ u, kter´e deserializac´ı je pˇrevedeno do seznamu pol´ı byt˚ u. Kaˇzd´y prvek tohoto seznamu reprezentuje jeden v´ysledek. Vzhledem k r˚ uzn´e d´elce ˇcasu zpracov´an´ı dat, je ˇcek´an´ı na v´ysledek realizov´ano pˇri otevˇren´em spojen´ı.
Obr´ azek 5.3: Sekvenˇcn´ı diagram klienta
5.2.4
Moˇ zn´ e vylepˇ sen´ı klienta
Klienta je moˇzn´e rozˇs´ıˇrit o podporu v´ıce workunit, kter´ymi je umoˇznˇeno lepˇs´ı organizace workflow. D´ale je tˇreba rozˇs´ıˇren´ı o manipulaci s v´ysledky, kter´a v souˇcasn´e implementaci nen´ı zahrnuta. Vzhledem k tomu, ˇze se jedn´a o funkˇcn´ı prototyp, je zde mnoho moˇzn´ych a z´aroveˇ n i potˇrebn´ych vylepˇsen´ı. Do budoucna se nab´ız´ı moˇznost zmˇeny klienta na grafick´y n´astroj, kde si uˇzivatel bude moci definovat workflow pomoc´ı vizualizaˇcn´ıch n´astroj˚ u.
31
Implementace a integrace workflow
5.3
Testov´an´ı
Testov´ an´ı
V prvn´ı f´azi v´yvoje byla aplikace testov´ana pomoc´ı konzolov´eho klienta, kter´y byl navrˇzen pouze za u ´ˇcelem testov´an´ı. Data, kter´a byla pouˇzita v tˇechto testech, byla z´ısk´ana z datab´aze aplikace EEGbase, a byl k nim naps´an konkr´etn´ı popisn´y soubor. V tomto souboru byly definov´any tˇri kroky. V prvn´ım kroku se jednalo o vstup p˚ uvodn´ıch dat, v dalˇs´ım kroku byl pro vstup metody zvolen v´ysledek pˇredchoz´ı metody a posledn´ı krok testoval moˇznost rozdˇelen´ı workflow na v´ıce celk˚ u pomoc´ı ”workunit”. Z´aroveˇ n byla i testov´ana funkcionalita vr´acen´ı v´ysledk˚ u, kdy byly poˇzadov´any pouze dva v´ysledky ze tˇrech vstup˚ u. V dalˇs´ı f´azi v´yvoje byl testov´an klient integrovan´y do aplikace EEGbase. Nejdˇr´ıve bylo testov´ano j´adro klienta za pomoc´ı pevnˇe stanoven´ych parametr˚ u v programu. Uˇzivatelsk´y formul´aˇr byl testov´an v posledn´ı f´azi pomoc´ı definov´an´ı vlastn´ıho workflow o nˇekolika kroc´ıch a kontrola uloˇzen´ych v´ysledk˚ u v datab´azi. D´alˇs´ı testovac´ı sc´en´aˇre by mˇeli b´yt realizov´any v r´amci dalˇs´ıho v´yvoje syst´emu workflow a jeho integrace. Je nutn´e aplikovat i regresn´ı testy pro obˇe ˇc´asti syst´emu a to vzhledem k tomu, ˇze implementace v nˇekolika pˇr´ıpadech zasahuje do j´adra aplikac´ı.
32
6 Z´avˇer Vzhledem ke st´ale se zdokonaluj´ıc´ım technologi´ım je pro spoustu uˇzivatel˚ u aplikac´ı d˚ uleˇzit´e to, jak jim pr´ace se samotnou aplikac´ı dok´aˇze uˇsetˇrit jejich ˇcas. Ve vˇetˇsinˇe odvˇetv´ı se velmi ˇcasto skloˇ nuje term´ın automatizace, kter´y znaˇc´ı nalezen´ı cesty, jak obvykl´e manu´aln´ı ˇcinosti lze dˇelat automaticky. Jedn´ım takov´ym n´astrojem, kter´y uˇzivatel˚ um ˇsetˇr´ı ˇcas a z´aroveˇ n nˇeco automatizuje, je pr´avˇe workflow, o kter´em je tato pr´ace. ´ Ukolem pr´ace bylo navrhnout a implementovat syst´em, kter´y uˇzivatel˚ um umoˇzn´ı definov´an´ı a pouˇz´ıv´an´ı workflow pˇri zpracov´an´ı dat EEG/ERP. Vzhledem k tomu, ˇze se jedn´a o velmi rozs´ahlou oblast, je ˇreˇsen´ı ve formˇe funkˇcn´ıho prototypu, kter´y je pˇripraven na dalˇs´ı rozˇsiˇrov´an´ı. Oblast workflow je st´ale rychle se vyv´ıjej´ıc´ı oblast, kde je velmi mnoho prostoru na zdokonalen´ı a vylepˇsen´ı. Souˇcasn´y model je schopen pˇredstavit moˇznosti pouˇzit´ı workflow syst´emu v oblasti EEG/ERP. Tato pr´ace pro mne byla velmi pˇr´ınosnou, protoˇze mˇe ˇc´asteˇcnˇe zasvˇetila do v´yvoje webov´ych aplikac´ı, se kter´ymi nem´am ˇzadnou zkuˇsenost z minulosti, a tak´e mi uk´azala cestu, jak´ym zp˚ usobem lze naˇse aplikace st´ale zdokonalovat.
33
A Uˇzivatelsk´a dokumentace V t´eto pˇr´ıloze je popis nutn´ych krok˚ u k realizaci workflow z prostˇred´ı aplikace EEGbase. Po pˇrihl´aˇsen´ı do aplikace se funkce workflow nach´az´ı v horn´ım z´aloˇzkov´em menu pod popisem Worklow. Pod touto z´aloˇzkou je defaultnˇe k dispozici seznam uloˇzen´ych v´ysledk˚ u v datab´azi. V lev´e ˇc´asti je um´ıstˇeno menu na v´ybˇer mezi zobrazen´ym seznamem ˇci vytvoˇren´ım nov´eho workflow. Po vybr´an´ı poloˇzky Create worklow se dostaneme na vstupn´ı formul´aˇr, ve kter´em definujeme workflow v n´asleduj´ıc´ıch kroc´ıch 1. V´ybˇer form´atu vstupn´ıch dat. 2. V´ybˇer dat, kter´a si pˇrejeme zpracovat. 3. V´ybˇer poˇzadovan´e metody. 4. Volba, zdali si pˇrejeme v´ysledek uchovat. 5. N´azev pr´avˇe definovan´eho kroku. 6. Vstupn´ı parametry dan´e metody. 7. Uloˇzen´ı kroku pomoc´ı tlaˇc´ıtka Add to workflow. 8. Pˇri posledn´ım kroku potvrzen´ı tlaˇc´ıtkem Submit. V´ybˇer form´atu vstupn´ıch dat je moˇzn´y mezi form´atem KIV FORMAT a DOUBLE FORMAT. Pokud zvol´ıme prvn´ı volbu, jsou n´am k dispozici vˇsechny experimenty, z kter´ych si m˚ uˇzeme vybrat v poli Input data. V pˇr´ıpadˇe volby druh´eho form´atu jsou k dispozici jiˇz uloˇzen´e kroky. Z tohoto d˚ uvodu je tato volba pˇri definici prvn´ıho kroku pr´azdn´a. V´ybˇer metod prob´ıh´a na z´akladˇe seznamu z´ıskan´ych podporovan´ych metod. K dispozici je vˇzdy aktu´aln´ı seznam metod. Volba Store result slouˇz´ı k volbˇe, zda-li si uˇzivatel pˇreje v´ysledek definovan´eho kroku zaslat zpˇet, ˇci ho bude pouze pouˇz´ıvat v dalˇs´ıch kroc´ıch.
34
Uˇzivatelsk´a dokumentace V dalˇs´ıch pol´ıch je vyplnˇeno jm´eno kroku, kter´e je vyuˇz´ıv´ano k pˇr´ıstupu k v´ysledk˚ um a pojmenov´an´ı ukl´ad´an´ych v´ysledk˚ u do datab´aze. Posledn´ı vstupn´ım polem je ˇc´ast pro zad´an´ı parametr˚ u dan´e metody. Parametry se oddˇeluj´ı pomoc´ı ˇc´arky. Pˇri obouch typech vstupu je nutn´e definovat vˇsechny parametry s t´ım, ˇze v pˇr´ıpadˇe pouˇzit´ı v´ysledk˚ u jsou prvn´ı tˇri parametry ignorov´any, protoˇze se t´ykaj´ı pouze datov´ych soubor˚ u. Pˇri vyplnˇen´ı vˇsech pol´ı je k dispozici tlaˇc´ıtko Add to workflow, kter´y n´ami definovan´y krok pˇrid´a a vˇsechny hodnoty formul´aˇre se nastav´ı na v´ychoz´ı hodnoty, ˇc´ımˇz je moˇzn´e definovat dalˇs´ı krok. V pˇr´ıpadˇe, ˇze se jedn´a o posledn´ı krok workflow, je k dispozici tlaˇc´ıtko Submit, kter´y spust´ı cel´y proces workflow a aplikace je pˇripravena pro definici dalˇs´ıho workflow. O aktu´aln´ı volbˇe je uˇzivatel informov´an v oblasti um´ıstˇen´e pod tlaˇc´ıtky, kde je mu oznamov´ano, zdali byl krok pˇrid´an, worklow spuˇstˇeno, ˇci chyb´ı nˇejak´y parametr kroku.
35
B Povinn´e parametry metod B.1
CWTPlugin
From sample long value Sample count integer value Channel name name of channel, like ”Cz” Type of CWT COMPLEX MORLET COMPLEX GAUSSIAN GAUSSIAN MEXICAN HAT MORLET Lower scale limit double value Upper scale limit double value Step of the scale double value Bandwitch constant for complex morlet cwt double value Center frequency constant for complex morlet cwt double value
B.2
DWTPlugin
From sample long value 36
Povinn´e parametry metod
FasticalPlugin
Sample count integer value Channel name name of channel, like ”Cz” Type of DWT FAST DAUBECHIES 2 FAST DAUBECHIES 4 FAST DAUBECHIES 8 FAST HAAR FAST SYMMLET 4
B.3
FasticalPlugin
From sample long value Sample count integer value Channel name name of channel, like ”Cz” Number of independent components integer value Deflation or symmetric approach algorithm SYMMETRIC DEFLATION The step size of an approach double value Accuracy exit condition double value The maximum number of iterations integer value
37
Povinn´e parametry metod
B.4
FFTPlugin
FFTPlugin
From sample long value Sample count integer value Channel name name of channel, like ”Cz”
B.5
FIRPlugin
From sample long value Sample count integer value Channel name name of channel, like ”Cz” Filter order even integer value Filter type LP HP BP BS Window type RECTANGULAR WINDOW HAMMING WINDOW HANN WINDOW HANNING WINDOW COSINE WINDOW LANCZOS WINDOW BARTLETT WINDOW TRIANGULAR WINDOW GAUSS WINDOW 38
Povinn´e parametry metod
MPPlugin
BARTLET HANN WINDOW BLACKMANN WINDOW KAISER WINDOW NUTTALL WINDOW BLACKAN HARRIS WINDOW BLACKMAN NUTTALL WINDOW FLAT TOP WINDOW BOHMAN WINDOW TUKEY WINDOW PARZEN WINDOW NONE Bottom frequency value double value Upper frequency value double value Sampling frequence value double value
B.6
MPPlugin
From sample long value Sample count integer value Channel name name of channel, like ”Cz” Number of iterations integer value
39
Literatura [Car()] Carmen. Dostupn´e z: https://portal.carmen.org.uk/. [Hib()] ORM n´astroj Hibernate. Dostupn´e http://morosystems.cz/java/hibernate/ch06.php.
z:
[INC()] INCF Dataspace. Dostupn´e http://www.incf.org/resources/data-space.
z:
[de Velde(2007)] VELDE, T. V. Beginning Spring Framework 2. 2007. ISBN 978-0-471-10161-2. [ET ()] Wicket. ET NETERA. Dostupn´e z: http://boss.etnetera.cz/cz/ke-stazeni/index.html. [Hall(2001)] HALL, M. Java, servlety a str´anky JSP. 2001. ISBN 80-8633006-0. [Janiˇsov´a(2012)] JANIˇsOV´a, H. Workflow a elektronick´y obˇeh dokument˚ u. 2012. Dostupn´e z: http://technet.idnes.cz. [Jeˇzek(2009)] JEˇzEK, P. Uloˇziˇstˇe dat a metadat EEG/ERP experiment˚ u. 2009. Dostupn´e z: http://dai.fmph.uniba.sk/events/kuz2009/prispevky-pdf. [Kothagal(a)] KOTHAGAL, K. JSP and Servlets, a. Dostupn´e z: http://javabrains.koushik.org/p/jsps-and-servlets.html. [Kothagal(b)] KOTHAGAL, K. Spring, b. Dostupn´e z: http://javabrains.koushik.org/p/spring-framework.html. [Linwood(2010)] LINWOOD, J. Beginning Hibernate, Second edition. 2010. ISBN 978-1-4302-2851-6.
40