Pattern Oriented Software Architecture

Slides:



Advertisements
Podobné prezentace
Vyvíjejte webové aplikace nově a lépe
Advertisements

Vytvoření menu K čemu slouží Jak se s ním pracuje
Stručný úvod do UML.
Pomůcka pro tvorbu prezentací závěrečné a diplomové práce
Mediator. Mediator - motivace  FontDialog  závislosti mezi jednotlivými ovládacími prvky jsou netriviální.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Přednáška č. 5 Proces návrhu databáze
Softwarový systém DYNAST
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Vektorový animátor Diplomová práce
Chain of responsibility Martin Malý prezentace na předmět Návrhové vzory (PRG024) na MFF UK
Tvorba webových aplikací
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Analýza informačního systému
11. Trendy ve vývoji aplikací, podporujících podnikové procesy
Štěpán Lískovec, 4.A.  =základní programové vybavení počítače (tj.software)  hlavní úkol:  A, zajistit uživateli možnost ovládat PC  B, vytvořit pro.
Novinky a strategie společnosti Vema, a. s.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Systémy pro podporu managementu 2
BAKALÁŘSKÁ PRÁCE Tomáš Janda
JIRA školení.
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Systémové pojetí hospodářské organizace 1 ECM – Řízení podnikového obsahu (Zdroj: Gála, Pour, Toman: Podniková informatika. Praha: Grada 2006) řízení podnikového.
Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB – Technická univerzita Ostrava
Vývoj aplikací v jazyku Ruby Bakalářská práce Tomáš Kohout VTI.
Databáze.
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
Systémy pro podporu managementu 2 Inteligentní systémy pro podporu rozhodování 1 (DSS a znalostní systémy)
Analýza infromačního systému. Matice afinity ISUD matice – Insert (vkládání dat) – Select (výběr dat) – Update (aktualizace dat) – Delete (vymazání dat)
organizační struktury Implementace EOS III na Olomouckém kraji Pro:Krajský rok informatiky 2005 Autor:Jan Kadlec Datum:
Databázové modelování
2 Fučíková Sylvie HR/Win – moderní technologie pro osvědčené aplikace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
SOA = Architektura orientovaná na služby
Kreslítko Petr Diviš Zdeněk Papež. Úvod Desktopová („stand-alone“) aplikace Jednoduchý grafický editor  Tvorba a editace základních geometrických objektů.
Sbírky online v novém webu Českého muzea výtvarných umění v Praze Vladimíra Mazačová, Tomáš Psohlavec, AiP Beroun s.r.o.,
IDEA Web Systém 5.0 Pavel Bezstarosti IDEA spol. s r.o
Kreslítko Petr Diviš Zdeněk Papež. Úvod - připomenutí Desktopová („stand-alone“) aplikace Jednoduchý grafický editor  Tvorba a editace základních geometrických.
Přístup do IS z mobilních zařízení Tomáš Tureček Katedra Informatiky FEI VŠB-TU Ostrava.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
OPERAČNÍ SYSTÉMY.
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
1 E - S V Ě T S E T O Č Í S T Á L E R Y C H L E J I. S T A Č Í T E M U ? Fenix II –IS na platformě.NET Michal Varga.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
Kreslítko Petr Diviš Zdeněk Papež. Úvod - připomenutí Desktopová („stand-alone“) aplikace Jednoduchý grafický editor  Tvorba a editace základních geometrických.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Vývoj informačních systémů
Rezervační systém v prostředí XUL Zdeněk Novák, Petr Ondrejka.
Klient pro správu databází MySQL 1 Klient pro správu databází MySQL Zbyněk Munzar České vysoké učení technické v Praze Fakulta elektrotechnická.
Zahradnická fakulta v Lednici S4U – Seminář o Univerzitním informačním systému 23. – 25. dubna 2008 S 4 U – Seminář o Univerzitním informačním systému.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY MVC vs MVP.
Druhy aplikačních programů – rozdělení podle účelu 1
Software Počítače - rozdělení podle účelu
Aplikace pro správu a archivaci účtenek
Vypracoval / Roman Málek
as4u advanced system for you
Informační systém univerzity
Návrhový vzor Flyweight
Martin Dybal Microsoft MSP, MCP
Informatika pro ekonomy přednáška 8
Přednášky z distribuovaných systémů
Simple IoT platform.
Pattern Oriented Software Architecture MVC & PAC
Monitor Object 1.
Futurama, A Pharoh to Remember, © Comedy Partners
Transkript prezentace:

Pattern Oriented Software Architecture 1

Interaktivní systémy – popis problému Chování řízeno vstupy uživatele GUI Webové aplikace API Součásti systému Funkční jádro, data („model“) Prezentační vrstva („viewer“) Vstupy uživatele („controller“) Požadované vlastnosti Nezávislost součástí Přidávání a změna frontendů Nativní GUI Webové rozhraní Mobilní aplikace ale i odlišné: GUI pro začátečníky GUI pro profesionály, klávesové zkratky 2

Model – View - Controller Data + logika aplikace View Pohled na model prezentovaný uživateli Controller Přijímá vstupy uživatele Při události volá funkce modelu Při vytváření se všechny pohledy a controllery zaregistrují u modelu Viz návrhový vzor Observer model views controller 3

MVC – obsluha události NV publisher-subscriber change-propagation mechanism např. změna menu nebo deaktivace checkboxu 4

MVC – inicializace 5

MVC – souvislosti, varianty, použití NV View handler Dynamické vytváření pohledů Document – view Přibližuje View a Controller Pozitiva Více pohledů na stejný dokument současně Synchronizované pohledy (multiuser edit) Nativní look & feel Application framework Problémy Přidaná komplexita Příliš mnoho updatů viewů Těsná závislost na interfacu controlleru (srovnej NV Command Processor) Implementace MVC VC na webu – šablonovací systémy (př. Smarty) AngularJS a spol. – část VC na klientovi Nette Framework (PHP) 6

Presentation-Absctraction-Control Presentation-abstraction-control Stromová hierarchie kooperujících agentů Prezentační a abstrakční části agentů zcela oddělené Abstrakční část Data a aplikační logika Prezentační část Zobrazení dat uživateli Control Komunikace s ostatními agenty Komunikace prezentační a abstrakční části Zpracování vstupů uživatele Rozdíl proti MVC Agentů je mnoho, MVC je jeden „MVC Model“ Zdroj: wikipedia „MVC View“ „MVC Controller“ 7

PAC – uspořádání agentů Top-level agents Jádro funkcionality Přístup k externím datům Globální části jako hlavní menu Intermediate-level agents Koordinace bottom-level agentů Konverze dat Bottom-level agents Komponenty, se kterými uživatel přímo pracuje Třeba přímo okénka nebo obrázky Rozdělení na agenty komunikující s uživatelem a na agenty zpracovávající data 8

PAC – příklad 9

PAC – příklad (vytvoření grafu) 10

dekompozice, rozšiřitelnost PAC - vlastnosti Dynamická tvorba hierarchie Distribuované prostředí Komplikované, paralelní víceuživatelské systémy Agent jako vlákno/proces Související NV: Proxy – komunikace se vzdálenými agenty Forwarder-Receiver, Client-Dispatcher-Server – lokální komunikace Je třeba najít kompromis mezi jemností dekompozice systému a efektivitou komunikace mezi agenty Komunikace probíhá jen s přímo propojenými agenty Ještě závažnější, pokud jsou agenti distribuovaní V praxi se používá mnohem méně než např. MVC Komplexita návrhu Příliš velká režie spojená s komunikací CMS Drupal dekompozice, rozšiřitelnost komplexita návrhu 11

Command processor Účel Kategorie Související vzory Využití Oddělení požadavku a jeho zpracování Commandy mohou být generovány GUI, klávesovými zkratkami, pomocí API… CP obstarává frontu Commandů, plánuje vykonávání a může spravovat i Undo Kategorie Management – zpracování objektů/služeb/komponent obdobného druhu Související vzory Command CP se navíc stará o správu command objektů Memento - při implementaci Undo AbstractFactory, Prototype, Builder - výroba Commandů Využití Aplikace s více UI Undo/Redo Asynchronní požadavky na pozadí (stahování, transformace obrázku…) Paralelizace (vykonávání více Commandů najednou) 12

Command processor – návrh Struktura Součásti Controller dostane požadavek na akci, vytvoří konkrétní Command Controller předá objekt Command Command processoru Command processor spustí Command a zařadí ho do zásobníku provedených akcí Command se provede př. textový editor, příkaz na kapitalizaci výběru 13

Command processor – undo Klient zavolá příkaz „Undo” - Controller zavolá „Undo“ přímo na Command processoru Obdobně třeba pro Redo Command processor provede Undo na Commandu z vrcholu zásobníku provedenyćh akcí a smaže tento Command ze zásobníku Takto lze implementovat i Transaction/Rollback 14

Command processor Testy Problémy Unit testy a regresní testy vkládáním Commandů do Command procesoru Problémy Oboustranná komunikace Callbacky Spousta tříd Commandů u aplikací s hodně funkcemi Hierarchie Commandů „Makro“ commandy 15

View handler Účel Kategorie Související vzory Využití Poskytuje uživateli různé pohledy nad stejnými daty Úpravy, synchronizace a správa jednotlivých pohledů Jednotlivé pohledy by na sobě měly být navzájem nezávislé Kategorie Management Související vzory View handler je vlastně Abstract factory – vytváří pro klienta pohledy Mediator – sám se stará o koordinaci mezi pohledy Využití Oddělení prezentační vrstvy od funkční MVC Grafický editor Více oken stejného obrázku s různým zoomem, náhled tisku 16

View handler Dynamika Klient požádá View handler o vytvoření nového pohledu View handler inicializuje nový pohled a předá mu jeho Supplier (což je ten otevřený dokument, obrázek…) View handler také umí vylistovat pohledy a přepnout vybraný pohled na popředí, přesouvat je nebo hromadně refreshnout Pohled se už dále baví jen se Supplierem Supplier notifikuje všechny pohledy, pokud se něco změnilo putData update 17

View handler Klady Problémy Pohledy mají jednotný interface Správa pohledů: tiling, cascade Problémy Pro systém bez komplikovaných pohledů možná až příliš mnoho abstrakce 18