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

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

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

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

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

KIV/PIA 2013 Jan Tichava

Architektury informačních systémů

(Enterprise) JavaBeans. Lekce 7

Tvorba informačních systémů

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

Architektura softwarových systémů

Platformy / technologie. Jaroslav Žáček

X33EJA Enterprise Java

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

Architektury informačních systémů

Tvorba informačních systémů

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

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

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

Analýza a Návrh. Analýza

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

Server-side technologie pro webové aplikace

Technologie Java. Jaroslav Žáček

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

Tvorba informačních systémů

Úvod do Web Services

Michal Krátký, Miroslav Beneš

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

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

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

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

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

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

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

Enterprise Architektura

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

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

Architektura GIS KMA/AGI. Karel Jedlička

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

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

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

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

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

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

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

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

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

Michal Hroch Server Product Manager Microsoft Česká republika

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


IS pro podporu BOZP na FIT ČVUT

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

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

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

Business Intelligence

Použití databází na Webu

Alcatel-Lucent VitalQIP DNS/DHCP & IP Management Software

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

MVC (Model-View-Controller)

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

Architektura aplikace

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

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

Cloudová Řešení UAI/612

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

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

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

KIV/SI. Rozílová témata. Jan Valdman, Ph.D.

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

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

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

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

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

Architektura v organizaci

Zavedení e-learningu

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

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

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

11 Návrh programového vybavení

Design systému. Komponentová versus procesní architektura

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

Veřejné cloudové služby

Integrace mobilních zařízení do ICT, provoz tlustých aplikací na mobilních telefonech a tabletech Roman Kapitán, Citrix Systems Czech

Sísyfos Systém evidence činností

Budování architektury pomocí IAA

Cloud Computing pro státní správu v praxi. Martin Vondrouš - Software602, a.s. Pavel Kovář - T-Systems Czech Republic a.s.

Tvorba informačních systémů

Vnořený Ensemble nové integrované aplikace. Martin Zubek, Account manager

Praha, Martin Beran

Platformy / technologie. Jaroslav Žáček

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

TM1 vs Planning & Reporting

INFORMAČNÍ SYSTÉMY NA WEBU

Jan Horák. Pilíře řešení

RESTful web service v Javě

Sledování výkonu aplikací?

Mobile application developent

Transkript:

A7B39WPA Webové podnikové aplikace Zdeněk Kouba (kouba@fel.cvut.cz) Petr Aubrecht (petr.aubrecht@ca.com) 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 hhp://cw.felk.cvut.cz/doku.php/courses/a7b39wpa/hodnoceni

Státnicové okruhy Modelování a návrh architektury sorware. 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 19.9. ZK Úvod, klient- server, vícevrstvá architektura 2 26.9. ZK Architektura a technologie Java EE, Architektonické vzory, MVC 3 3.10. PA Přehled aplikačních serverů, Servlety 4 10.10. PA JSP, JSTL 5 17.10. PK Přístup k databázím, objektově- relační mapování 6 24.10. PK Java Persistence API (JPA) 7 31.10. ZK Spring I 8 7.11. ZK Spring II 9 14.11. PA Přehled hlavních webových frameworků, úvod do Java Server Faces (JSF) 10 21.11. PA JSF 11 28.11. ZK Servisně orientované architektury (SOA), webové služby 12 5.12. PK Zabezpečení Java EE aplikací 13 12.12. PA Nasazení enterprise aplikací (deployment, vysoká dostupnost, škálování, monitorování) 14 19.12. Rezerva

Podnikové (enterprise) aplikace Marnn 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 Interaknvní 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 syntaknckých/ sémannckých forem

Podnikové (enterprise) aplikace Business logika (doménová logika) Business rules (pravidla dána bez možnosn je ovlivnit) 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 nme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensinvity) Kapacita Efeknvnost Škálovatelnost

Výkonové faktory Doba odezvy (response nme) 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 sensinvity) Kapacita Efeknvnost Škálovatelnost

Výkonové faktory Doba odezvy (response nme) 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 sensinvity) Kapacita Efeknvnost Škálovatelnost

Výkonové faktory Doba odezvy (response nme) 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ín Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensinvity) Kapacita Efeknvnost Škálovatelnost

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

Výkonové faktory Doba odezvy (response nme) 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 sensinvity) Kapacita Efeknvnost Škálovatelnost

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

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

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

Výkonové faktory Doba odezvy (response nme) Responsiveness Latence Průchodnost (throughput) Zátěž (load) Citlivost na zátěž (load sensinvity) Kapacita Efeknvnost Škálovatelnost Míra určující, jak přidání zdrojů ovlivní výkon Vernká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 (njeznámější implementace právě od PARC).

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

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

Vícevrstvá architektura Muln- layer nebo muln- ner?

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

3 layer architecture Presentanon layer Domain logic layer Data source layer

n layer architecture Presentanon layer (v případě tenkého klienta: controller + templates) Service layer (služby tvořící API k doménové logice + agregace) Data access layer Domain logic layer (bussiness objekty) 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.