A7B39WPA Webové podnikové aplikace. Zdeněk Kouba Petr Křemen

Podobné dokumenty
A7B39WPA Webové podnikové aplikace. Zdeněk Kouba Petr Aubrecht Petr Křemen

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

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

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

PA165: Úvod do Java EE. Petr Adámek

KIV/PIA 2013 Jan Tichava

Platformy / technologie. Jaroslav Žáček

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

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Architektury informačních systémů

Architektura softwarových systémů

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

SOAP & REST služby. Rozdíly, architektury, použití

Architektury informačních systémů

(Enterprise) JavaBeans. Lekce 7

Úvod do Web Services

Tvorba informačních systémů

Server-side technologie pro webové aplikace

Analýza a Návrh. Analýza

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

Tvorba informačních systémů

Databázové a informační systémy

SenseLab. z / from CeMaS. Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

Architektury Informačních systémů. Jaroslav Žáček

Architektura GIS KMA/AGI. Karel Jedlička

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

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

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

X33EJA Enterprise Java

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

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

Architektury Informačních systémů. Jaroslav Žáček

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

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition

Technologie Java. Jaroslav Žáček

Databáze II. 1. přednáška. Helena Palovská

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud

Enterprise Architektura

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

Servisně orientovaná architektura Základ budování NGII

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

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

Správa a sledování SOA systémů v Oracle SOA Suite

Alcatel-Lucent VitalQIP DNS/DHCP & IP Management Software

Použití databází na Webu

Budování architektury pomocí IAA

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

Návrh architektury škálovatelné cloudové služby aneb nespalte se v cloudu. Mgr. David Gešvindr MCSE: Data Platform MCT MSP

Nasazení webových služeb do enterprise prostředí. Petr Steckovič

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

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

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Platformy / technologie. Jaroslav Žáček

UAI/612 - Cloudová Řešení. Technologie

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services


Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Požadavky pro výběrová řízení TerraBus ESB/G2x

Michal Hroch Server Product Manager Microsoft Česká republika

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

11 Návrh programového vybavení

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

Business Intelligence

IS pro podporu BOZP na FIT ČVUT

Testování Java EE aplikací Petr Adámek

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

Řízení reálných projektů, agilní metodiky

Mobile application developent

Tvorba informačních systémů

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

Java a J2EE. Cleverlance. Lukáš Marek lukas.marek@cleverlance.com

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

IOPC2. Petr Čermák Vedoucí RNDr. Michal Kopecky, Ph.D.

CSPUG 2011-květen. GridSQL a pg-pool II. Vratislav Beneš benes@optisolutions.cz

Cloudová Řešení UAI/612

IS RŽP. informační systém pro vedení živnostenského rejstříku a jeho propojení na registry veřejné správy. Ministerstvo průmyslu a obchodu

IBM Connections pro firmy s Lotus Notes/Domino. Petr Kunc

Compatibility List. GORDIC spol. s r. o. Verze

Michal Krátký, Miroslav Beneš

Komponentový návrh SW

Specifikace. Odevzdání do

RESTful web service v Javě

Common Object Request Broker Architecture

MVC (Model-View-Controller)

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

Nahrávací systém TriREC

Load Balancer. RNDr. Václav Petříček. Lukáš Hlůže Václav Nidrle Přemysl Volf Stanislav Živný

Integrace podnikových Open Source aplikací v praxi. RNDr. Petr Novák, Open Source Conference Praha, 19. duben 2011

Design systému. Komponentová versus procesní architektura

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

INFORMAČNÍ SYSTÉMY NA WEBU

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

Transkript:

A7B39WPA Webové podnikové aplikace Zdeněk Kouba (kouba@fel.cvut.cz) Petr Křemen (petr.kremen@fel.cvut.cz)

Webové stránky předmětu hhp://cw.felk.cvut.cz/doku.php/courses/a7b39wpa/start Podmínky udělení zápočtu Pravidla hodnocení práce v semestru Vliv hodnocení práce v semestru na výslednou známku Samostatná semestrální úloha (externí konzultans) hhp://cw.felk.cvut.cz/doku.php/courses/a7b39wpa/hodnoceni

Státnicové okruhy Modelování a návrh architektury souware. Klient- Server. Třívrstvá architektura a její zobecnění na vícevrstvou architekturu. Architektonické vzory, Model- View- Controller (MVC). Návrh distribuovaných systémů s použi^m webových služeb a servisně orientované architektury (SOA).

Program 1 24.9. Úvod, klient- server, vícevrstvá architektura 2 1.10. Protokol HTTP, Servlety 3 8.10. Architektura a technologie Java EE 4 15.10. Přístup k databázím, objektově- relační mapování, JPA 2.0 5 22.10. JPA 2.0 6 29.10. Spring I 7 5.11. Spring II, Architektura aplikací, Data access object design 8 12.11. Přehled hlavních webových frameworků, úvod do Java Server Faces (JSF) 9 19.11. JSF 2.0 10 26.11. Pokročilé technologie 11 3.12. Servisně orientované architektury (SOA), webové služby, distribuované aplikace 12 10.12. Zabezpečení Java EE aplikací 13. 17.12. Nasazení enterprise aplikací (deployment, vysoká dostupnost, škálování, monitorování)

Podnikové (enterprise) aplikace MarSn Fowler Pa#erns of Enterprise Applica2on Architecture: display, manipula2on and storage of large amounts of complex data and the support or automa2on of business processes with that data.

Podnikové (enterprise) aplikace Persistentní data (typicky relační databáze) Současný přístup k datům (concurrent access), transakce InterakSvní zpracování - rozsáhlé uživatelské rozhraní (mnoho formulářů, webových stránek) Dávkové zpracování Integrace s jinými podnikovými aplikacemi

Podnikové (enterprise) aplikace Integrace s jinými podnikovými aplikacemi Messaging systémy (JMS) asynchronní zprávy jiným (sub)systémům Remote procedure calls (synchronní zprávy) RPC, RMI CORBA Webové služby Integrace s obchodními partnery Transformace dat do jiných syntaksckých/ sémansckých forem

Podnikové (enterprise) aplikace Business logika (doménová logika) Business rules Mnoho výjimek

Příklad 1: E- shop Velké množství současně obsluhovaných uživatelů škálovatelnost (rozšířením kapacity HW) Doménová logika jednoduchá Tenký klient (web browser) Datové zdroje Relační databáze s jednoduchým datovým modelem Komunikace s podnikovým skladovým systémem

Příklad 2: Systém pro zpracování leasingových smluv Počet současně pracujících uživatelů poměrně malý Doménová logika složitá Předčasné ukončení, pozdní platby, dopravní nehody, pojistné, mnoho produktů, změna podmínek Složitý life- cycle => komplikované transakce Datové zdroje Komunikace s obchodními partnery (pojišťovnami, servisy, dodavateli) Databáze se složitým datový model User interface Složitý (už proto, že složité transkce) Tenký klient pro zákazníky Rich (tlustý) klient pro úředníky

Příklad 3: Systém pro evidenci nákladů malé firmy Malý počet uživatelů Jednoduchá doménová logika Datové zdroje Databáze s několika málo tabulkami User interface Jednoduchá html prezentace Kde je tedy výzva?

Příklad 3: Systém pro evidenci nákladů malé firmy Malý počet uživatelů Jednoduchá doménová logika Datové zdroje Databáze s několika málo tabulkami User interface Jednoduchá html prezentace Rozšiřitelnost Výpočet cestovních náhrad ReporPng finančnímu řediteli Rezervace letenek na služební cesty Etc.

Příklady - shrnu^ E- shop: škálovatelnost Správa leasingových smluv složitá obchodní logika, složitá databáze, udržovatelnost (maintainability) Evidence nákladů malé firmy rozšiřitelnost (přidávání nových funkcionalit) Výběr architektury: Společná architektura? Architektonické vzory (paherns)

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Doba, která uplyne od odeslání požadavku do přije^ výsledku zpracování požadavku Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Doba, která uplyne od odeslání požadavku do okamžiku než systém zareaguje na přije^ požadavku (aniž by ho nutně zpracoval) Uživateli často zohledňován více bež doba odezvy Výpisy o průběhu zpracování požadavku Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Minimální čas nutný pro získání odezvy na NOP požadavek (nezapočítává se čas vlastního výpočtu) Vyvarovat se RPC na pomalé sís Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Průchodnost (throughput) Typická jednotka tps (počet transkací za sekundu) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) typicky kontext pro porovnávání jiných výkonových faktorů Např. doba odezvy při daném počtu současně pracujících uživatelů Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Určuje, jak moc se jiný výkonový faktor mění v závisloss na zátěži Kapacita EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita Maximální efeksvní průchodnost nebo zátěž EfekSvnost Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Výkon vztažený na počet/velikost zdrojů 30 tps na 2 CPUs je efeksvnější než 40 tps na 4 CPUs Škálovatelnost

Výkonové faktory Doba odezvy (response Sme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensisvity) Kapacita EfekSvnost Škálovatelnost Míra určující, jak přidání zdrojů ovlivní výkon Jak drahé je přidat zdroje VerSkální škálovatelnost (scaling up) přidání zdrojů jednomu serveru (typicky zvětšení kapacity RAM) Horizontální škálovatelnost (scaling out) přidání dalších serverů

Výkonové faktory Ladění výkonových faktorů aplikace versus zvýšení výkonu HW Nový (výkonnější) HW je často levnější než ladění aplikace pro dosažení vyššího výkonu na slabším HW Přidání dalších serverů (je- li aplikace škálovatelná) je často levnější než zadání úkolu programátorovi Při vývoji se zaměřit na udržovatelnost (maintainability).

Model- Controller- View MVC architektura Prof. Trygve Reenskaug norský prof. computer science formuloval MVC architekturu v roce 1979 během stáže v Xerox Palo Alto Reseacrch Center (PARC). Stalo se základním paradigmatem aplikací v jazyce SmallTalk (nejznámější implementace právě od PARC).

MVC architektura User See Enter data / control applicason View Controller Update Manipulate Model

MVC architektura See See User Enter data / control applicason View View Controller Update Update Manipulate M d (domain model) + M a (applicason model)

Vícevrstvá architektura MulS- layer nebo muls- Ser?

Vícevrstvá architektura MulS- layer nebo muls- Ser? MulSlayer Logická organizace vrstev nesouvisí s fyzickým umístěním na tom či onom stroji MulS- Ser Fyzická organizace vrstev souvisí s fyzickým umístěním na různých počítačích Zobecnění architektury klient- server 3- Ser: tlustý klient (desktop), doménová logika (aplikační server), databáze (databázový server)

3 layer architecture PresentaSon layer Domain logic layer Data source layer

n layer architecture PresentaSon layer (v případě tenkého klienta: controller + templates) Service layer (služby tvořící API k doménové logice) Domain logic layer (bussiness objekty) Data access layer Persistence layer (obvykle relační DB, transparentní)

Striktní/relaxovaná vícevrstvová architektura Striktní: vyšší vrstva přistupuje pouze k bezprostředně nižší vrstvě Příklad: ISO/OSI síťový model (7 vrstev) Relaxovaná: vyšší vrstva přistupuje k nižším vrstvám ======================================== Nižší vrstva v žádném případě nepřistupuje k vyšším vrstvám (ani je nezná). Pokud ano, jedná se o spaghe~- code.

Business logic invaded into presentason layer Drawbacks caused by infiltrason of parts of business logic into presentason layer: difficult or impossible to allow the program to be driven by another program difficult automated tessng difficult transison from interacsve to batch mode

Business logic completely isolated from the presentason layer automated test scripts can be run against the applicason (esp. regression tessng) automated test cases can be created (by business experts) before the GUI finalized the applicason can be deployed in GUI- less mode, so only the API is available design of complex applicason suites simplified business- to- business service applicasons (without human intervenson) automated funcson regression tests detect any violason of the promise to keep business logic out of the presentason layer

Domain logic Sed to Data Source layer database server down (or rework) => the programmers can t work (their work requires the presence of the database) database refactoring => domain logic rework

ObservaSon Domain logic layer shall be isolated both from the presentason layer and the data source layer

Hexagonal Architecture Alister Cockburn [kobérn] Original arscle: hhp://alistair.cockburn.us/hexagonal+architecture Brief explanason by Andreas Dossier: hhp://www.dossier- andreas.net/ souware_architecture/ports_and_adapters.html

Hexagonal Architecture HTML GUI Adapter Port (API, protocol) ApplicaSon JDBC adapter RelaSonal Database

Hexagonal Architecture HTML GUI ApplicaSon JDBC adapter RelaSonal Database

Hexagonal Architecture HTML GUI ApplicaSon JDBC adapter RelaSonal Database

Hexagonal Architecture HTML GUI ApplicaSon JDBC adapter RelaSonal Database