Architektura aplikace



Podobné dokumenty
KIV/PIA Semestrální práce

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

(Enterprise) JavaBeans. Lekce 7

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Aleš Rybák, Jiří Kadlec. Pluginy budoucnosti

Tvorba informačních systémů

IS pro podporu BOZP na FIT ČVUT

Komponentní technologie

Architektury informačních systémů

Architektury informačních systémů

Tvorba informačních systémů

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

KIV/PIA 2013 Jan Tichava

Sem vložte zadání Vaší práce.

Webové služby. Martin Sochor

Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller

Technologie Java. Jaroslav Žáček

Michal Krátký, Miroslav Beneš

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Obrázek 6.14: Prohlížec nápovedy

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Elektronická podpora výuky předmětu Komprese dat

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

}w!"#$%&'()+,-./012345<ya

Na tomto místě bude oficiální zadání vaší práce

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Tvorba informačních systémů

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Proč Angular JS framework?

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno

Specifikace reklamních formátů HTML 5 pro nasazení do ibillboard Ad Server Verze 2/2015

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Editor pro vizualizaci interiérů bytů

Pokročilé Webové služby a Caché security. Š. Havlíček

Možnosti návrhu webových aplikací. Lukáš Gemela, A11N0101P

Sem vložte zadání Vaší práce.

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

Web Services na SOAP

1. Struktura stránky, zásady při psaní kódu, MVC pattern. Web pro kodéry (Petr Kosnar, ČVUT, FJFI, KFE, PINF 2008)

Ant aneb Ferda Mravenec, práce všeho druhu

Migrace informačního systému MS Dynamics CRM na vyšší verzi

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS STANISLAV SEHNAL

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce. Bakalářská práce Hodnocení restaurací

NÁVRH A REALIZACE WWW PREZENTACE ČKR

Architektura. Vedení sesterské dokumentace

}w!"#$%&'()+,-./012345<ya

Průvodce instalací a spuštěním. Pro DataPage+ 2012

EXTRAKT z mezinárodní normy

EXTRAKT z technické specifikace ISO

Programování v jazyku C# II. 9.kapitola

Tvorba informačních systémů

Informační systém autoškoly

Databázové systémy trocha teorie

Softwarové komponenty a Internet

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Vývoj informačních systémů. Přehled témat a úkolů

RESTful API TAMZ 1. Cvičení 11

Vývoj informačních systémů. Přehled témat a úkolů

Návrhové vzory pro J2EE

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

EXTRAKT z české technické normy

Aplikační rámce. Jakarta Struts Framework. Obsah přednášky. Aplikační rámce a knihovny. Co je to aplikační rámec? Enterprise Java Beans

Systém elektronického rádce v životních situacích portálu

MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) Požadavky zákazníka.

CineStar Černý Most Praha

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě



ELEKTRONICKÁ PORODNÍ KNIHA POPIS APLIKACE Michal Huptych, Petr Janků, Lenka Lhotská

Aplikační rámce Jakarta Struts Framework

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Tvorba informačních systémů

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

Znalostní systém nad ontologií ve formátu Topic Maps

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Návrh softwarových systémů - architektura softwarových systémů

Statistica, kdo je kdo?

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

ČESKÁ TECHNICKÁ NORMA

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vytváření a evidence smluv Petr Čulík

Transkript:

Architektura aplikace MARBES-JIRA plugin Tým: GRSS Členové: František Schneider Jaroslav Ráb Lukáš Gemela Jaromír Staněk Upravil Verze dokumentu Datum F. Schneider 1.0 25.3.2012 F. Schneider 2.0 25.4.2012

1. Obsah 1. Obsah... 1 2. Účel dokumentu... 2 3. Architektura... 2 3.1 Architektura model-view-controller... 2 3.2 Použité technologie... 2 3.3 Okolí systému... 2 4. Databázový model... 3 4.1 Tabulka MC_CATEGORY... 3 4.2 Tabulka MC_RECORD... 3 4.3 Tabulka MC_ATTACHMENT... 3 5. DataObject Model... 4 6. View model... 4 7. Controller... 4 8. UML model... 6 9. Klíčové třídy a komponenty... 7 9.1 Servlety a JSP... 7 9.1.1 Category balíček... 7 9.1.2 Record balíček... 7 9.1.3 Attachment balíček... 7 9.2 DAO a JavaBeans... 7 9.3 Service... 7 10. Struktura... 7 10.1 atlassian-plugin.xml... 7 10.2 Struktura pluginu... 8 1

2. Účel dokumentu Tento dokument popisuje návrh architektury aplikace, aplikační logiky včetně databázového modelu a použitých návrhových vzorů. Všechny použité techniky jsou zdůvodněny. 3. Architektura 3.1 Architektura model-view-controller Model-view-controller (MVC) je softwarová architekru, která rozděluje datový model aplikace, uživatelské rozhraní a řídící logiku do tří nezávislých komponent tak, že modifikace některé z nich má minimální vliv na ostatní. Proto jsme se ji rozhodli využít, pro případné snadnější změny a celkovou lepší přehlednost system. 3.2 Použité technologie Celá aplikace (systém JIRA) běží na webovém serveru Tomcat. Aplikace (= plugin jira-znalostnibaze-1.0.0-snapshot.jar) je napsán v jazyce JAVA s tím, že jsou použity další technologie a knihovny, které usnadňují samotný vývoj. Pro přístup do databáze je používán databáze HSQL konektor. Plugin využívá závislostí a implementaci ostatních již existujících pluginů, které se v systému JIRA nacházejí. 3.3 Okolí systému 2

4. Databázový model Všechny tabulky splňují štábní kulturu MarbesConsulting pro pojmenováni. Všechny tabulky mají název s prefixem MC_. 4.1 Tabulka MC_CATEGORY Obsahuje seznam všech dostupných kategorií a uchovává informace o nich. ID_MC_CATEGORY identifikátor kategorie NAME název kategorie DESCRIPTION popis kategorie ICON cesta k souboru určující ikonu 4.2 Tabulka MC_RECORD Je vázána na tabulku MC_CATEGORY a obsahuje seznam všech záznamů. ID_MC_RECORD identifikátor záznamu ID_MC_CATEGORY identifikátor kategorie pod kterou záznam padá DESCRIPTION popis záznamu NAME název záznamu PUBLICATION_TIME datum kdy byl záznam zveřejněn LAST_EDIT_TIME poslední modifikace záznamu USER uživatel, který záznam vytvořil IS_PUBLISHABLE určuje, zda je záznam viditelný i pro ostatní uživatele LANGUAGE jazyk záznamu 4.3 Tabulka MC_ATTACHMENT Tabulka obsahující seznam všech příloh pro daný záznam. ID_MC_ATTACHMENT identifikátor přílohy TYPE typ přílohy (doc, pdf, xls) PATH cesta na disku k příslušné příloze ID_MC_RECORD identifikátor záznamu, ke ktérému příloha patří 3

5. DataObject Model Tabulky databáze jsou mapovány na objekty, které obsahují stejné atributy jako samotné tabulky. Každá instance objektu reprezentuje jeden záznam identifikovaného pomocí primárního klíče v databázi. 6. View model View model je realizován pomocí.jsp souborů, které používají webový framework WEBWORK. Každý JSP soubor je nutné registrovat do souboru atlassian-plugin.xml (význam a struktura je popsána níže) pod nějakou vykonávanou akci. 7. Controller Controller je vrstva, která se stará o napojení aplikační logiky s uživatelským rozhraním view. V této vrstvě se nachází JAVA soubory, které se o toto starají v rámci system JIRA. Aby systém JIRA tyto třídy správně interpretoval je třeba aby byly všechny odděděny od abstraktní třídy AbstractMCWebAction(ta je navíc odděděná od JiraWebActionSupport). 4

5

8. UML model Zjednodušený UML model tříd. 6

9. Klíčové třídy a komponenty 9.1 Servlety a JSP Starají se o aplikační logiku a zpracovávají jednotlivé požadavky, které přijdou od uživatele z vyšší vrstvy view. Všechny dědí od AbstractMCWebAction. JSP jsou psány pomocí frameworku WEBWORK. Jednotlivé začleňování má pak na starosti PICO CONTAINER. 9.1.1 Category balíček Třídy pro práci a manipulaci s kategoriemi. CreateCategory.java DeleteCategory.java ListCategory.java ViewCategories.java 9.1.2 Record balíček CreateRecord.java DeleteRecord.java PublishRecord.java ViewRecord.java ViewRecordsAdmin.java 9.1.3 Attachment balíček 9.2 DAO a JavaBeans Práce s perzistentními objekty. 9.3 Service Třídy které jsou používány napříč celým pluginem. LoggingService logování (Log4J) IndexRecordService indexace záznamů (Lucene) a vyhledávání RecordService, CategoryService přístup k databázi vytváření perzistentních objektů 10. Struktura 10.1 atlassian-plugin.xml Tento XML soubor popisuje plugin samotný a definuje dostupné rozhranní a jejich implementace. V tomto souboru se registrují jednotlivé JSP soubory, třídy rozhranní pro DAO objekty a jejich implementace. Dále obsahuje seznam rozhraní pro service třídy a jejich implementace. Tento způsob je používán v pluginu pro vytváření instancí tříd přes reflexi. 7

Zde se rovněž registrují odkazy a akce které se mají provést po kliknutí na odkaz (registrace servletů). 10.2 Struktura pluginu jar - obsahuje JSP soubory, obrázky, java script, css styly src - zdrojové soubory o main java java zdrojové soubory resources atlassian-plugin.xml o templates velocity šablony xml ostatní xml soubory, definice entit a tabulek pro HSQL databázi test adresář pro testování (JUnity ) target přeložené soubory o jira-znalostni-baze-1.0.0-snapshot.jar hotový plugin pro JIRU 8