Deklaratıvne-Imperatıvny Aplikaˇcn´Y R´Amec

Deklaratıvne-Imperatıvny Aplikaˇcn´Y R´Amec

MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Deklarat´ıvne-imperat´ıvny aplikaˇcny´ r´amec DIPLOMOVA´ PRACA´ Martin Jurˇca Brno, jar 2012 Prehl´asenie Prehlasujem, zeˇ tato´ diplomova´ praca´ je moj´ım povodnˆ ym´ autorskym´ die- lom, ktore´ som vypracoval samostatne. Vsetkyˇ zdroje, pramene a literaturu,´ ktore´ som pri vypracovan´ı pouzˇ´ıval alebo z nich cerpal,ˇ v praci´ riadne citu- jem s uveden´ım upln´ eho´ odkazu na pr´ıslusnˇ y´ zdroj. Ved´ucipr´ace: RNDr. Vlastislav Dohnal, Ph.D. iii Pod’akovanie Rad´ by som tymto´ pod’akoval panovi´ Vlastislavovi Dohnalovi za jeho od- bornu´ pomoc a vedenie pri tvorbe tejto prace.´ Dalejˇ by som rad´ pod’akoval panovi´ Pavlovi Cenkovi za jeho odbornu´ asistenciu pri tvorbe navrhu´ tohto aplikacnˇ eho´ ramca.´ Tiezˇ by som rad´ pod’akoval panom´ Petrovi Kubovi, Alesoviˇ Pejchalovi a Milanovi Krˇapkovi´ za podporu a spatn¨ u´ odozvu pri zvazovanˇ ´ı roznychˆ architektonickych´ roz- hodnut´ı v navrhu.´ V neposlednej rade by som chcel pod’akovat’ Andreji Cechovejˇ a mojim rodicomˇ za ich podporu bez ktorej by tato´ praca´ nemohla vzniknut´ ’. v Zhrnutie Rozvoj v oblasti informacnˇ ych´ systemov´ a enterprise aplikaci´ ´ı viedol k na-´ vrhu corazˇ zlozitejˇ sˇ´ıch aplikaci´ ´ı tvorenych´ znacnˇ ym´ mnozstvomˇ progra- moveho´ kodu.´ Aplikacie´ tvorene´ vel’kym´ mnozstvomˇ programoveho´ kodu´ su´ obvykle naro´ cnejˇ sieˇ na udrzovanieˇ a potencialne´ sa v nich vyskytuje viac chyb.´ Tento stav bol adresovany´ roznymiˆ aplikacnˇ ymi´ ramcami,´ ktore´ riesiaˇ beznˇ e´ ukony´ vykonavan´ e´ aplikaciami.´ Tieto ramce´ tiezˇ obvykle zavadzaj´ u´ doporucenˇ e´ praktiky a konvencie pre tvorbu aplikaci´ ´ı. Niektore´ aplikacnˇ e´ ramce´ zaviedli deklarat´ıvne popisy aplikacie,´ ktore´ umozˇnujˇ u´ vyjadrit’ rozneˆ castiˇ aplikacie´ deklarat´ıvnym popisom, ciˇ uzˇ vyu- zitˇ ´ım struktˇ ur´ poskytovanych´ danou platformou, alebo pomocou konfi- guracie.´ Tato´ praca´ sa zaobera´ prepojen´ım deklarat´ıvneho a imperat´ıvneho pr´ıs- tupu ku tvorbe aplikaci´ ´ı s ciel’om vytvorenia noveho´ aplikacnˇ eho´ ramca.´ Ciel’om aplikacnˇ eho´ ramca´ vytvoreneho´ v tejto praci´ je rozsˇ´ırit’ moznostiˇ su´ casnˇ ych´ aplikacnˇ ych´ ramcov´ o nove´ deklarat´ıvne koncepty. vii Kl’´uˇcov´eslov´a aplikacnˇ y´ ramec,´ deklarat´ıvny ramec,´ modularny´ ramec,´ Java, ORM, JPA, validacia´ dat,´ Java Enterprise Edition ix Obsah 1 Poziadavkyˇ ............................... 5 1.1 Ciele ................................ 5 1.1.1 Vyuzitieˇ pre enterprise aplikacie´ . 5 1.1.2 Deklarat´ıvny navrh´ aplikaci´ ´ı.............. 5 1.1.3 Opakovatel’na´ vyuzitelˇ ’nost’ kodu´ . 6 1.1.4 Abstrakcia datov´ eho´ ulo´ ziskaˇ . 6 1.2 Funkcnˇ e´ poziadavkyˇ ....................... 7 1.2.1 Pouzˇ´ıvatel’ske´ u´ cty,ˇ skupiny, role a prava´ . 7 1.2.2 Multi-pouzˇ´ıvatel’ske´ aplikacie´ . 7 1.2.3 Podpora viac-nasobn´ eho´ behu aplikacie´ . 7 1.2.4 Centralna´ konfiguracia´ aplikacie´ . 8 1.2.5 Automaticka´ validacia´ konfiguracie´ . 8 1.2.6 Logovanie . 8 1.2.7 Alarmy . 9 1.2.8 Behove´ statistikyˇ . 9 1.3 Nefunkcnˇ e´ poziadavkyˇ ...................... 9 2 Koncepty aplikaˇcnych´ r´amcov .................... 11 2.1 Model-View-Controller architektura´ . 11 2.2 Deklarat´ıvna tvorba aplikaci´ ´ı . 12 2.3 Agnosticky´ pr´ıstup k pouzˇ´ıvatel’skemu´ rozhraniu . 12 2.4 Databazov´ a´ abstrakcia ...................... 13 2.5 Automaticka´ validacia´ dat´ .................... 13 2.6 Model udalost´ı .......................... 14 2.7 Automaticke´ poskytovanie zavislost´ ´ı . 14 2.8 Autentizacia´ a autorizacia´ .................... 14 2.9 Logovanie ............................. 15 3 N´avrharchitekt ´ury ........................... 17 3.1 Struktˇ ura´ aplikacie´ ........................ 17 3.2 Jadro ................................ 18 3.2.1 Podporne´ nastroje´ . 19 3.3 Moduly ............................... 19 3.3.1 Stav modulu, instalˇ acia´ a odinstalovanieˇ . 20 1 3.4 Sluzbyˇ ............................... 20 3.5 Datov´ e´ sady ............................ 23 3.6 Konfiguracia´ ............................ 23 3.7 Lokalizacia´ ............................. 24 3.8 Zivotnˇ y´ cyklus aplikacie´ ..................... 25 3.8.1 Spustenie aplikacie´ . 25 3.8.2 Ukoncenieˇ aplikacie´ . 26 3.9 Module Manager ......................... 26 3.9.1 Datov´ e´ sady . 27 3.10 Presenter .............................. 27 3.11 File Logger ............................. 27 3.11.1 Datov´ e´ sady . 27 3.12 Users ................................ 28 3.12.1 Datov´ e´ sady . 28 3.13 Sessions ............................... 28 3.13.1 Datov´ e´ sady . 28 3.14 Alarm Logger ........................... 29 3.15 Statistics .............................. 29 3.15.1 Datov´ e´ sady . 29 3.16 Billing ................................ 29 3.16.1 Datov´ e´ sady . 29 3.17 Instalˇ ator´ .............................. 29 4 Uk´azkov´aaplik´aciaˇ .......................... 31 4.1 Modul Fridge ........................... 32 4.2 Modul GUI ............................. 33 4.3 Spustenie aplikacie´ ........................ 33 4.4 Beh aplikacie´ ............................ 34 4.5 Ukoncenieˇ aplikacie´ ........................ 35 5 Z´aver ................................... 37 2 Uvod´ Aplikacnˇ e´ ramce,´ ako napr´ıklad Tapestry [15], predstavuju´ rozsˇ´ırenia danej softwarovej platformy, napr´ıklad Java 6 Enterprise Edition [14]. Pridavaj´ u´ dodatocnˇ u´ funkcionalitu oproti funkcionalite poskytovanej danou softwa- rovou platformou, hoci tato´ funkcionalita je obvykle zaistena´ vyuzitˇ ´ım exis- tujucich´ konstruktovˇ danej platformy. Motivaciou´ pre vytvorenie noveho´ aplikacnˇ eho´ ramca´ je zvy´senieˇ pro- duktivity pri vyvoji´ aplikaci´ ´ı. Toho je dosiahnute´ definovan´ım a implemen- tovan´ım podpornych´ API, ktore´ riesiaˇ castoˇ sa vyskytujuce´ problemy´ alebo ulohy.´ Tieto podporne´ API su´ doplnene´ definovan´ım konvenci´ı danych´ pre navrhnuty´ aplikacnˇ y´ ramec.´ Tieto konvencie predstavuju´ doporucenˇ e´ po- stupy pouzitiaˇ implementovanych´ API pri tvorbe aplikaci´ ´ı. Praca´ je zamerana´ na tvorbu noveho´ aplikacnˇ eho´ ramca´ za u´ celomˇ spo- jenia najuzitoˇ cnejˇ sˇ´ıch postupov a funkcionality aplikacnˇ ych´ ramcov.´ Po- stupy a funkcionalita prevzata´ z inych´ aplikacnˇ ych´ ramcov´ je doplnena´ o dodatocnˇ u´ funkcionalitu. Ciel’om prace´ je navrh´ aplikacnˇ eho´ ramca´ pre prostredie takzvanych´ en- terprise aplikaci´ ´ı orientovanych´ na data.´ Ako enterprise aplikacie´ sa ob- vykle oznacujˇ u´ aplikacie´ vyuzˇ´ıvane´ v priemyselnom sektore, firmami alebo vladnymi´ organizaciami´ [1]. Aplikacie´ orientovane´ na data´ su´ zamerane´ na systematicke´ zbieranie a ukladanie dat,´ ktore´ su´ nasledne´ aplikaciou´ spra- covavan´ e´ za danym´ u´ celom.ˇ Pr´ıkladom aplikacie´ orientovanej na data´ je in- formacnˇ y´ system´ alebo administracnˇ e´ rozhranie webovej aplikacie.´ Pr´ıkla- dom aplikacie,´ ktora´ nie je orientovana´ na data,´ je napr´ıklad akcnˇ a´ pocˇ´ıta- covˇ a´ hra alebo jednoduchy´ hudobny´ prehrava´ cˇ bez funkci´ı ako hudobna´ kniznica.ˇ Navrhnuty´ aplikacnˇ y´ ramec´ bude podporovat’ webove´ pouzˇ´ıvatel’ske´ rozhranie a API pre vzdialenu´ komunikaciu´ s aplikaciou.´ Zabudovana´ pod- pora pre vzdialenu´ komunikaciu´ umozˇnujeˇ intergraciu´ so systemami´ tre- t´ıch stran´ alebo ich spajanie´ do supersystemu.´ Webove´ pouzˇ´ıvatel’ske´ roz- hranie bolo zvolene´ z dovoduˆ multi-platformnosti a pretozeˇ predstavuje technologicky´ trend pre enterprise aplikacie.´ Praca´ je clenenˇ a´ nasledovne: Kapitola Poziadavkyˇ obsahuje zhrnutie a 3 pop´ısanie poziadavkovˇ na navrhnuty´ aplikacnˇ y´ ramec.´ V kapitole Kon- cepty aplikacnˇ ych´ ramcov´ su´ preskuman´ e´ su´ casnˇ e´ aplikacnˇ e´ ramce´ pod- porujuce´ webove´ pouzˇ´ıvatel’ske´ rozhranie z hl’adiska ponukan´ ych´ funkci´ı. Vysledky´ prieskumu aplikacnˇ ych´ ramcov´ spolu s definovanymi´ poziadav-ˇ kami su´ v kapitole Navrh´ architektury´ rozpracovane´ do architektury´ navr- hnuteho´ aplikacnˇ eho´ ramca.´ Kapitola Uka´zkovˇ a´ aplikacia´ popisuje navrh´ a implementaciu´ jednoduchej aplikacie´ zalozenejˇ na navrhnutom aplikac-ˇ nom ramci.´ Praca´ je uzavreta´ kapitolou Zaver´ , ktora´ zhodnocuje navrhnuty´ aplikacnˇ y´ ramec´ a popisuje moznostiˇ jeho d’alsiehoˇ rozsirovaniaˇ a vyvoja.´ 4 Kapitola 1 Poziadavkyˇ Poziadavkyˇ je moznˇ e´ rozdelit’ do nasledujucich´ zakladn´ ych´ skup´ın: • ciele – popisuju´ cohoˇ by malo byt’ dosiahnute´ navrhom´ aplikacnˇ eho´ ramca´ alebo jeho pouzˇ´ıvan´ım. • funkcnˇ e´ poziadavkyˇ – popisuju´ spravanie´ (funkcie ciˇ sluzby)ˇ sys- temu´ a podporuju´ ciele, ulohy´ alebo cinnostiˇ pouzˇ´ıvatel’ov [4]. • nefunkcnˇ e´ poziadavkyˇ – obsahuju´ obmedzenie a kvality [4]. 1.1 Ciele 1.1.1 Vyuzitieˇ pre enterprise aplik´acie Aplikacnˇ y´ ramec´ bude urcenˇ y´ pre tvorbu enterprise aplikaci´ ´ı zameranych´ na data.´ Ked’zeˇ jednou z veducich´ technologi´ ´ı v tejto oblasti je Java Enter- prise Edition, aplikacnˇ y´ ramec´ bude urcenˇ y´ pre tuto´ platformu. 1.1.2 Deklarat´ıvnyn´avrhaplik´aci´ı Deklarat´ıvny navrh´ aplikacii´ spocˇ´ıva vo vytvoren´ı popisu struktˇ ury´ ap- likacie´ a aplikaciou´ spracovavan´ ych´ dat.´ Aplikacnˇ y´ ramec´ nasledne´ vyuzijeˇ tento popis na prisposobenieˆ aplikacnejˇ logiky. Vyuzitieˇ deklarativity zaist’uje [2]: • vysˇsiuˇ produktivity vyvoj´ arov´ • mensieˇ mnozstvoˇ programoveho´ kodu´ • l’ahsiuˇ udrzovatelˇ ’nost’ aplikacie´ – vyplyva´ z mensiehoˇ mnozstvaˇ ko-´ du • mensˇ´ı vyskyt´ chyb´ v aplikacii´ – vyplyva´ z mensiehoˇ mnozstvaˇ kodu´ 5 1. POZIADAVKYˇ Aplikacie´ budu´ navrhovane´ z vel’kej castiˇ definovan´ım datov´ ych´ sad.´ Datov´ a´ sada predstavuje

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    51 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us