DPKOM_10 Transakce 1

Rozměr: px
Začít zobrazení ze stránky:

Download "DPKOM_10 Transakce 1"

Transkript

1 DPKOM_10 Transakce 1

2 Obsah přednášky Motivace Transakce ACID Modely transakcí Dvoufázový protokol commit Transakce řízené kontejnerem, beanem a klientem Deklarativnířízení transakcí Transakční atributy Izolace a uzamykání databáze 2

3 Motivace Atomické operace Provedenířady diskrétních operací jako jedné pokračující atomické operace. Příklad výběr částky z jednoho účtu a její uložení na jiným účet. Chci aby se provedly obě operace dobře, nebo žádná jinak problém. try { // Withdraw money from account 1 } catch (Exception e) { // If an error occurred, do not proceed. return; } try { // Otherwise, deposit money into account 2 } catch (Exception e) { // If an error occurred, do not proceed, // and redeposit the money back into account 1. return; } 3

4 Motivace Atomické operace Problémy tohoto přístupu: kód je objemný a neohrabaný v každém kroku je třeba zvažovat možný potencionální problém, který může nastat a rutinu, která opraví chyby pomocí roll back změn. zpracování chyb se vymkne kontrole v případě vykonávání komplexnějších operací (obsluha více účtů současně); problém testování kódu. Ideálně chceme provedení všech operací, nebo žádné. 4

5 Motivace Chyba počítače nebo sítě Předpoklad, že logika bankovního účtu je distribuovaná ve více vrstvách rozmístění (deployment). Distribuce aplikace v síti způsobí chyby a problémy spolehlivosti. Co se např. stane při výpadku sítě během bankovních operací. Bank Application (with GUI) Tier Boundary Bank Logic Implementation 5

6 Motivace Chyba počítače nebo sítě Typicky je vyhozena výjimka (Java RMI RemoteException) pro kód klienta, která však není jednoznačná. Mohla vypadnout síť např. před výběrem peněz z účtu, nebo po výběru peněz z účtu nedá se to rozlišit. Kromě sítě mohou působit problémy perzistentní informace v databázi. kolaps samotné databáze, kolaps počítače na němž je rozmístěna databáze. Je třeba mít recovery process, který ošetří uvedené havárie. 6

7 Motivace Sdílení dat více uživateli Předpokládejme, že všechny aplikační servery sdílejí perzistentní data v jedné databázi. Aplikační servery tedy potenciálně mohou modifikovat stejnou množinu dat v databázi. Mohou vznikat irelevantní informace. Nutnost mechanismu, který zvládne řízení souběžně pracujících uživatelů na modifikaci dat databáze. 7

8 Aplikační servery a jedna databáze Client Code Client Code Client Code Client Code Application Server Application Server Application Server Databáze 8

9 Výhody transakcí Popsaným problémům se dá vyhnout správným používáním transakcí. Transakce řada operací, která se jeví při vykonávání jako jedna velká atomická operace. Transakce garantují all-or-nothing value proposition (všechny úspěšné nebo žádná úspěšná). Správné používání transakcí způsobí, že víceuživatelské interakce s databázemi (nebo jinými zdroji) se mohou provádět nezávisle. 9

10 Výhody transakcí Transakce navíc umožňují pokročilou formu souběžného (konkurentního) řízení a zpracování výjimek. 10

11 Vlastnosti ACID ACID atomicity, consistency, isolation, durability. Slovník transakce. Transakční objekt (transakční komponenta) je komponenta aplikace, která se zúčastní transakce. Transakční manažer je zodpovědný za řízení transakčních operací transakční komponenty. Řídí režijní entity transakce, které pracují za scénou a koordinují věci (dirigent diriguje symfonii). Zdroj je perzistentní paměť, ze kterého se dáčíst / zapisovat. 11

12 Vlastnosti ACID Manažer zdroje řídí zdroj např. driver pro relační databázi, objektovou databázi, frontu zpráv. Manažeři zdrojů jsou odpovědni za řízení všech stavů, které jsou permanentní. Nejpopulárnější rozhraní pro komunikaci mezi manažery zdroje a transakčním manažerem je X/Open XA resource manager interface. 12

13 Vlastnosti ACID Atomicity (atomičnost) garantuje, že mnoho operací může být svázáno spolu a jevit se jako pokračující jednotka práce. Consistency (konzistentnost) garantuje, že transakce zanechá konzistentní stav systému po svém vykonání. Isolation (izolace) chrání konkurentní vykonávání transakcí tak, aby žádná z nich neviděla nekompletní výsledky jiné. Tarnsakce o sobě navzájem nevědí. využívají se nízko-úrovňové synchronizační protokoly 13

14 Vlastnosti ACID Durability (trvanlivost) garantuje, že aktualizované, řízené zdroje přežijí havárie a výpadky. 14

15 Modely transakcí Nejpopulárnější flat transaction a nested transaction. Flat Transaction je to řada operací, které jsou vykonávány automaticky jako jedna jednotka práce (unit of work). při ukončení transakce je vždy binární výsledek success, failure. úspěšná transakce je provedena (committed), neúspěšná je zrušena (aborted). 15

16 Modely transakcí když je transakce provedena (committed), všechny perzistentní operace se stanou permanentními změnami; všechny aktualizace zdrojů jsou trvalé. při zrušení jsou všechny změny roll back. Hlavní důvody zrušení transakce Nevhodné parametry předané jedné z komponent. Porušení neměnného stavu systému přečerpání účtu. chyby HW a SW. 16

17 Vnořené transakce Vnořené transakce umožňují vnořit atomické jednotky práce do jiných jednotek práce. Vnořené transakce mohou reprezentovat strom transakcí. Kořenová transakce (root) a podtransakce (subtransactions). Další modely: zřetězené transakce 17

18 Distribuované transakce Distribuované transakce jsou transakce zasahující více vrstev rozmístění (deployment) a potenciálně zahrnující více typů zdrojů. Možné scénáře distribuovaných transakcí: více aplikačních serverů spolupracujících v jedné transakci; aktualizace různých databází ve stejné transakci; vykonání aktualizace databáze a poslání, nebo přijetí zprávy JMS z fronty zpráv ve stejné transakci; propojení na zděděný systém, jeden nebo více typů zdrojů ve stejné transakci. 18

19 Trvanlivost a dvoufázový protokol commit První fáze začíná zasláním zprávy before commit všem zdrojům zahrnutým v transakci. V této fázi mají zdroje zahrnuté v transakci poslední šanci tuto transakci zrušit. Všechny aktualizace zdrojů jsou zaznamenány do transakčních logů nebo journálů. Druhá fáze nastane pouze proběhne-li fáze jedna bez problémů. 19

20 Dvoufázový protokol commit V distribuovaném dvou fázovém commitu existuje jedna hlavní transakce nazvaná: distributed transaction coordinator. Cíle transakčního koordinátora: 1. Rozesílá zprávu prepare to commit každému transakčnímu manažerovi zahrnutém do dané transakce. 2. Každý transakční manažer může šířit tuto zprávu manažerům zdrojů, kteří jsou ve vazbě s transakčním manažerem. 20

21 Dvoufázový protokol commit 3. Každý transakční manažer podává zprávu zpět transakčnímu koordinátoru. Pokud všichni souhlasí s operací commit, je operace commit v případě krachu logována. 4. Transakční koordinátorřekne každému transakčnímu manageru, aby provedl commit. Každý transakční manažer volá každého manažera zdroje, který provede aktualizaci permanentní a trvalou. V případě chyby se použije vstup log k opakování posledního kroku. 21

22 Deklarativní transakční řízení Management Deklarativní transakčnířízení je implicitní rys Enterprise JavaBeans. Bez tohoto rysu by bylo třeba používat explicitní transakčnířízení jako např. Object Transaction Service nebo Java Transaction Service. Transakční chování EJBs může být řízeno s použitím nebo samozřejmě popisovačem rozmístění (deployment descriptor). Oba způsoby umožňují nastavit atributy transakce jednotlivých metod. 22

23 Deklarativní transakční řízení Management To znamená, že transakční chování EJB může být měněno beze změny business logiky, pouze anotací, nebo XML (popisovačem). Deklarativní transakčnířízení zjednodušuje složitost transakcí pro vývojáře EJB aplikací. 23

24 Transakce řízené kontejnerem, beanem a klientem Jakmile je transakce spuštěna, skončí buď commitem nebo abortem. Klíčové informace: kdo začne (spustí) transakci kdo vydá commit nebo abort kdy každý z těchto kroků nastane Podle toho kdo vymezí hranice transakce rozlišujeme styl řízení transakce a to: container managed bean managed client controlled 24

25 Transakce řízené kontejnerem, beanem a klientem Když používáme beanemřízené transakce, poskytovatel beanu (bean provider) je zodpovědný za programování transakční logiky v kódu aplikace. To znamená, že jste to vy, kdo vydá příkaz begin a commit nebo abort. U bankovní aplikace může bean působit jako bank teller. Teller bean vystaví (expose) metody pro převod peněz z jednoho účtu na druhý. 25

26 Beanem řízená transakce Client Code EJB Container 1. Call business method Container classes that implement session bean s POJO 2. Delegate Teller Bean 3. Call begin() 5. Call commit or abort Transaction Service 4. Perform buseness operations 26

27 Kontejnerem řízená transakce Tento typ transakce dovolí komponentám, aby byly vloženy do seznamu transakcí. To znamená, že bean nikdy explicitně nevydá příkaz begin, commit nebo abort. 27

28 Kontejnerem řízená transakce Client Code EJB Container 1. Call business method Container classes that implement session bean s POJO 2. Call begin() 3. Delegate 5. Call commit or abort Transaction Service Teller Bean 4. Perform buseness operations 28

29 Klientem řízená transakce Tato situace nastane pokud transakce začíná a končí z kódu klienta, mimo bean. Např. při použití servletu, JSP tag knihovny, samostatné aplikace nebo apletu. 29

30 Klientem řízená transakce Client Code 1. Call begin() 5. Call commit or abort Transaction Service EJB Container 2. Call business method Container classes that 3. Delegate implement Teller Bean session bean s POJO 4. Perform buseness operations 30

31 Rozsah Transakce Transacton Scope Rozsah transakce je základním pojmem v transakčním zpracování. Rozsah transakce odkazuje na beany (session a entitní), které se zúčastní konkrétní transakce. Rozsah transakce začíná, když klient vyvolá metodu bookpassage() TravelAgent beanu. Po zpoštění transakce, je tato dále šířena. Transakce musí být atomická (úspěšná, neúspěšná). Je snadné sledovat rozsah transakce sledováním tzv. vlákna vykonávání (thread of execution). 31

32 Rozsah Transakce Transacton Scope Transakce může být ukončena vyhozením výjimky. Kromě vlákna vykonávání, hrají také důležitou roli atributy transakce. EJ bean se může zúčastnit transakčního rozsahu libovolné unit of work implicitně prostřednictvím EJB s transakčních atributů, nebo explicitně prostřednictvím JTA. 32

33 Transakční atributy Jako vývojář aplikace normálně není třeba řídit transakce explicitně. Servery EJB umířídit transakce implicitně, pomocí transakčních atributů vytvořených v čase rozmístění. Je-li bean rozmístěn, je možné nastavit jeho transakční atribut pomocí nebo popisovačem rozmístění na několik hodnot: NotSupported, Supports, Required, RequiresNew, Mandatory, Never 33

34 Transakční atributy Transakční atributy je možné nastavit na celou transakci (jednodušší způsob), nebo na jednotlivé metody (flexibilnější způsob). 34

35 public enum TransactionAttributeType { MANDATORY, REQUIRED, REQUIRES_NEW, SUPPORTS, NOT_SUPPORTED, NEVER } Poznámky Target({METHOD, TYPE}) TransactionAttribute { TransactionAttributeType value() default TransactionAttributeType.REQUIRED; může být použit na metodu, nebo na třídu beanu: import ReansactionAttribute(NOT_SUPPORTED) public class TravelAgentBean implements TravelAgentRemote { public void setcustomer(customer cust) {... TransactionAttribute(Required) public TicketDO bookpassage(creditcarddo card, double price) {... } }

36 Transakční atributy Transakce klienta suspended znamená, že transakce není šířena (propagovaná) k vyvolané metodě EJB; šíření transakce je dočasně pozastaveno, dokud se metoda nedostane na return. 36

37 NotSupported, Supports NotSupported Vyvolání metody enterprise beanu suspenduje transakci dokud není metoda dokončena. Supports Atribut znamená, že metoda enterprise beanu bude začleněna do transakčního rozsahu, je-li vyvolána během transakce. 37

38 Required Required Atribut znamená, že metoda beanu musí být vyvolána uvnitř transakčního rozsahu. Je-li volající klient nebo beančástí transakce, bean s atributem required je automaticky začleněn do rozsahu transakce. Není-li volající klient nebo bean začleněn do transakce bean s atributem required začne svoji novou transakci. Rozsah nove transakce však zahrnuje pouze bean s atrubutem required a všechny jeho následné beany. 38

39 RequiresNew RequiresNew Atribut znamená, že se vždy odstartuje nová transakce. Nezáleží na tom, zda je volající klient, nebo bean částí transakce, metoda s uvedeným atributem začne při vyvolání novou transakci. Je-li volající klient již zahrnut do transakce, je tato transakce suspendována, dokud není u nove transakce dosaženo konce. 39

40 Mandatory Mandatory Atribut znamená, že metoda beanu musí být vždy částí transakčního rozsahu volajícího klienta. Bean nesmí startovat svoji vlastní transakci; transakce musí být šířena od klienta. Pokud volající klient neníčástí transakce, vyvolání skončí chybou a vyhozením výjimky. 40

41 Never Never Atribut znamená, že metoda beanu nesmí být vyvolána v rozsahu transakce. Je-li volající klient nebo beančástí transakce, bean s atributem never vyhodí výjimku. Pokud volající klient nebo bean není zahrnut do transakce, bean s atributem never bude vykonán normálně bez transakce. 41

42 Perzistence EJB 3.0 a transakční atributy Specifikace EJB silně doporučuje přístup v rozsahu JTA transakcí prostřednictvím EntityManageru. Pokud máte přístup k perzistentním entitám, používejte pouze transakční atributy: Required, RequiredNew a Mandatory. Toto omezení zabezpečí, že všechny přístupy do databáze budou pouze v kontextu transakce, což je důležité když kontejner řídí automaticky perzistenci. 42

43 Beany řízené zprávami a transakční atributy Beanyřízené zprávami mohou být deklarovány pouze s transakčními atributy NotSupported a Required. 43

44 Propagace transakcí Transaction Propagation Ukázka příkladu na metodě bookpassage() beanu TravelAgent. Defóltní transakční atribut Required. Commit učiní požadované změny permanentními. Pokud např. entita Reservation nemůže být vytvořena Entitním Managerem, změna vytvořené beanem ProcessPayment je odvalena zpět. Je třeba zabránit nekonzistentním datům v databázi. 44

45 Propagace transakcí Transaction Propagation V případech, kdy kontejner řídí implicitně transakci, rozhodnutí o commit nebo roll back jsou automaticky v působnosti kontejneru. Je-li transakce explicitněřízena beanem, nebo klientem jsou uvedená rozhodnutí na nich. 45

46 TravelAgent agent = (TravelAgent)jndi.lookup(( TravelAgent)jndi.lookup( TravelAgent TravelAgent ); agent.setcabinid(cabin_id); agent.setcruiseid(cruise_id); try { agent.bookpassage(card,, price); } catch(exception e) { System.out.println( Transaction failed! ); } Poznámky Předpokládejme, že bean TravelAgent je vytvořen a používán klientem následovně:

47 Propagace transakcí Transaction Propagation Metoda bookpassage() má transakční atribut RequiresNew v tomto případě, klient, který vyvolá bookpassage() není součástí transakce. Když je bookpassage() vyvolána TravelAgent beanem, je vytvořena nová transakce. To znamená, že bean TravelAgent se registruje u transakčního manažéra, který bude řídit transakci automaticky. 47

48 Propagace transakcí Transaction Propagation Když je vyvolána metoda creditby() uvnitř metody bookpassage(), bean ProcessPayment se registruje u transakčního manažera pod transakčním kontextem, který byl vytvořen pro bean TravelAgent; transakční kontext je šířený k beanu ProcessPayment. 48

49 Řízení transakčního kontextu TravelAgent beanu Client Application 1 Invoke bookpassage() 7 RequiresNew TravelAgent EJB Invoke bycredit() Required Process- Payment EJB Required 8 Register the ProcessPayment EJB 2 Register the TravelAgent EJB 4 Invoke EntityManager.persist() (reservation) Persistence context 5 Register the Reservation entity Check the Transaction ContextX to make sure that updates to each will work 10 Transaction Manager 3 Create a new Transactional Context called X. Add the TravelAgent EJB to X. TransactionalContext X TravelAgent EJB Reservation entity ProcessPayment EJB 6 9 Add the Reservation entity to X Add the ProcessPayment EJB to X 11 Commit all updates or roll back all updates 49

50 Zámky databáze Read locks zámek zabraňuje jiným transakcím měnit čtená data, dokud transakce neskončí; jiné transakce mohou data takéčíst; Write locks zámek zabraňuje jiným transakcím měnit data dokud daná transakce neskončí; naopak dovoluje jim dirty read Exclusine write locks zámak zabraňuje jiným transakcím číst nebo měnit data, dokud transakce neskončí; zabraňuje dirty read 50

51 Zámky databáze Snapshots je to zamrzlý pohled na data, který je proveden při začátku transakce. 51

52 Izolace transakcí Izolace zabezpečuje, že souběžní (concurrent) uživatelé jsou izolováni jeden od druhého, i když pracují se stejnou databází. K zabezpečení izolace se používářada zámků (locks). 52

53 Izolační úrovně Existujíčtyři transakční izolační úrovně: Mód READ UNCOMMITTED žádná garantovaná izolace, nejrychlejší provedení Mód READ COMMITTED řeší problém tzv. dirty read. Mód REPEATABLE READ řeší předchozí problém a problém tzv. unrepeatable read. Mód SERIALIZABLE řeší předchozí problém a problém phantom. 53

54 Problém Dirty Read Dirty problem aplikace čte data z databáze, která ještě nebyla committed ke zdroji. 1. Čtete X z databáze. Aktuálně X=0. 2. Přičtete 10 k X a uložíte do DB. X=10, ale neproběhl commit. 3. Jiná aplikace načte X (X=10). 4. Zrušíte transakci X=0. 5. Jiná aplikace přičte 10 k X a uloží do databáze, kde X=20?? 54

55 Mód READ UNCOMMITTED Dirty read nastává v tomto módu. Je nevhodné používat tento izolační mód při zpracování citlivých kalkulací jako bankovních účtů. Použití jen za předpokladu samostatného běhu instance dané komponenty. Výhoda rychlost provedení, nejsou potřebné žádné zámky. 55

56 Mód READ COMMITTED Kód bude číst pouze data, která jsou již committed. Nikdy se nebudou číst data, která byla zapsaná do databáze, ale nejsou committed. Výhodné použití pro čtení dat z DB pro reporting values. Výkonnost je pomalejší než u READ UNCOMMITTED z důvodů dalšího zámku. 56

57 Problém neopakovatelného čtení Unrepeatable Read Problem Problém při opakovaném čtení jsou data změněna. Např. 1. Načtete X z databáze. 2. Jiná aplikace data a nastaví X na jinou hodnotu. 3. Opakovaně načtete X hodnota je změněna. 57

58 Mód opakovaného čtení REPEATABLE READ garantuje ještě další vlastnost navíc od READ COMMITTED módu: kdykoli budete číst committed data opakovaně, jejich hodnota bude vždy stejná. Využití při aktualizaci jednoho nebo více datových prvků ve zdroji jako např. jeden nebo více záznamů v relační databázi. Potřebujete číst a aktualizovat každý řádek s vědomím, že nikdo jiný k nim souběžně nepřistupuje. 58

59 Fantomův problém Phantom Problem Phantom je nová množina dat, která se v databázi objeví během dvou operacíčtení. Např. 1. Vaše aplikace se dotazuje v databázi pomocí kritéria a získá množinu dat. 2. Další aplikace vloží nová data vyhovující výběrovému kritériu. 3. Provedete opakovaný výběr a množina vybraných dat je změněna. 59

60 Mód Serializable Mód je nejpřísnější izolací. Garantuje, že transakce vykonávané za sebou s ohledem jedna ke druhé budou nezávislé na ostatních. 60

61 Návrh transakčních konverzí v EJB Neúspěšné transakce automaticky vyvolají návrat na bod před transakcí (aktualizací), ale aktualizace DB je pouze polovina akce. Druhou polovinu tvoří kód aplikace, která se musí vypořádat s dopady transakce. Pro bezstavové session beany je zrušení business procesu jednoduchá úloha vyhodí výjimku zpět ke klientovi. Stavové session beany reprezentují proces, který překrývářadu volání metod a proto má v paměti konverzační stav. 61

62 Návrh transakčních konverzí v EJB Naštěstí dobře navržený stavový session bean může, v případě neúspěšné transakce, zachránit svůj konverzační stav. Klíčem je navrhnout beany tak, aby si uvědomovaly změny v konverzačním stavu a byly schopné undo operace v případě neúspěšné transakce. Tato činnost je však příliš aplikačně závislá, než aby to dělal aplikační server za vás. Aplikační server pomůže pouze při stanovení, kdy byla transakce neúspěšná. 62

63 Návrh transakčních konverzí v EJB Třída stavového session beanu musí proto implementovat volitelné rozhraní javax.ejb.sessionsynchronization s následujícím kódem: public interface javax.ejb.sessionsynchronization { public void afterbegin(); public void beforecompletion(); public void aftercompletion(); } 63

64 Návrh transakčních konverzí v EJB Uvedené metody je třeba implementovat a kontejner je bude vyvolávat v případě neúspěchu. afterbegin() je vyvolána kontejnerem přímo po začátku transakce. beforecompletion() je vyvolaná kontejnerem bezprostředně před ukončením transakce. aftercompletion() je vyvolaná kontejnerem přímo po ukončení transakce. Nejdůležitější bývá metoda aftercompletion(). Kontejner ji vyvolá vždy ať již po commit nebo abort. 64

65 Návrh transakčních konverzí v EJB Metoda aftercompletion() má parametr boolean, kterým je možné rozřešit, zda transakce byla úspěšnáči nikoli true - úspěšná 65

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

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

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

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

(Enterprise) JavaBeans. Lekce 7

(Enterprise) JavaBeans. Lekce 7 (Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí

Více

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Transakce a zamykání Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Základní pojmy Databázová transakce je skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. Transakční

Více

Transakce a zamykání Jiří Tomeš

Transakce a zamykání Jiří Tomeš Transakce a zamykání Jiří Tomeš Administrace MS SQL Serveru (NDBI039) O čem to dnes bude Úvodní opakování základních pojmů Jištění transakcí Speciální konstrukce Typy transakcí Závěrečný souhrn, použité

Více

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti - 13.1 - Kapitola 13: Transakce Koncept transakce Stavy transakce Implementace atomičnosti a trvanlivosti Souběžné spouštění Serializovatelnost Koncept transakce Transakce je posloupnost operací (část

Více

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

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java

Více

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

PA165: Úvod do Java EE. Petr Adámek PA165: Úvod do Java EE Petr Adámek Obsah přednášky Organizace předmětu Formy výuky Hodnocení Osnova Java EE aplikace Architektury Java EE aplikací Technologie Java EE Základní koncepty PA165: Úvod do Java

Více

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

Databáze II. 2. přednáška. Helena Palovská Databáze II 2. přednáška Helena Palovská palovska@vse.cz SQL a aplikace Program přednášky Řízení transakcí v SQL Integritní omezení v SQL Triggery a uložené procedury Zpracování množin záznamů Řízení

Více

Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi:

Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi: Session Beans Petr Aubrecht CA Vtipy budou tentokrát o krizi: Resty z minula -2 slidy s anotacemi servletů -JPA, slide 42, kaskády Anotace v Servletech 3.0 - Netřeba zápis do web.xml @WebServlet(name="CalculatorServlet",

Více

KIV/PIA 2013 Jan Tichava

KIV/PIA 2013 Jan Tichava KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB) Obsah přednášky Technologie Miroslav Beneš Popis technologie EJB J2EE aplikace Typy komponent Entity Beans Session Beans Message-Driven Beans Java Messaging Service (JMS) Závěr 2 (EJB) EJB kontejner Specifikace

Více

DPKOM_2. Technologie Enterprise JavaBeans Řízení zdrojů a primární služby

DPKOM_2. Technologie Enterprise JavaBeans Řízení zdrojů a primární služby DPKOM_2 Technologie Enterprise JavaBeans Řízení zdrojů a primární služby 1 Obsah přednášky Technologie Enterprise JavaBeans Distribuované zpracování základ EJB EJB služby middleware Řízení zdrojů Primární

Více

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka Transakce Ing. Marek Sušický, RNDr. Ondřej Zýka 1 Obsah Definice Savepoint, autonomní transakce Transakční módy Izolační úrovně Implementace pomocí zámků Implementace pomocí snapshotů Oracle, Microsoft

Více

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

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne. Úvod Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne. Organizace předmětu Materiály k předmětu -Web stránky: http://cw.felk.cvut.cz/doku.php/courses/x33eja/start

Více

9. Transakční zpracování

9. Transakční zpracování 9. Transakční zpracování 9.1. Transakce... 3 9.1.1. Vlastnosti transakce... 3 9.1.2. Stavy transakce... 4 9.2. Transakce v SQL... 6 9.3. Zotavení po chybách a poruchách... 10 9.3.1. Zotavení využívající

Více

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

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

Více

Architektury informačních systémů

Architektury informačních systémů Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to

Více

RMI Remote Method Invocation

RMI Remote Method Invocation 2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient

Více

Implementace dávkových operací

Implementace dávkových operací Implementace dávkových operací Petr Steckovič 12. 5. 2011 Hradec Králové 1 Dávkové zpracování dat Procesy běžící na pozadí Spouštěné Časem Stavem (např. dochází místo) Ručně Obvykle se jedná o podpůrné

Více

Softwarové komponenty a Internet

Softwarové komponenty a Internet Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty

Více

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou Administrace Oracle Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním

Více

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakční zpracování Bezpečnost databází Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakce Transakce systém zpracování transakcí vlastnosti ACID stavy transakce SŘBD a transakční zpracování Řešení transakcí

Více

Enterprise Java Beans 3.0

Enterprise Java Beans 3.0 Enterprise Java Beans 3.0 Lukáš Zapletal liberix.cz EJB 3.0 a JPA 1.0 JavaBean - vysvětlení pojmu Java třída s get/is a set metodami má tedy vlastnosti žádné další podmínky nejsou kladeny JavaBean je tedy

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

Více

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

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links links Apache Struts Article with examples JSTL a EL (into JSP) MVC, webové aplikace, JSP Bezpečnost ve webových

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Technologie Java Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Trocha historie Java vznikla v roce 1995 jak minimalistický programovací jazyk (211 tříd). Syntaxe vycházela z C/C++. V

Více

Databáze I. 5. přednáška. Helena Palovská

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

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

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

java remote method invocation Kateřina Fricková, Matouš Jandek

java remote method invocation Kateřina Fricková, Matouš Jandek java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého

Více

RMI - Distribuované objekty v Javě

RMI - Distribuované objekty v Javě Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování

Více

Zotavení z chyb. Databázové systémy

Zotavení z chyb. Databázové systémy Zotavení z chyb Databázové systémy Zotavení z chyb v DBS Úloha: Po chybě obnovit poslední konzistentní stav databáze Třídy chyb: 1. Lokální chyba v ještě nepotvrzené transakci 2. Chyba se ztrátou hlavní

Více

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2

Více

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

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU Tvorba podnikových aplikací v jazyce JAVA Josef Pavlíček KII PEF CZU J2EE Jedná se o přístup: sadu pravidel, technologií, metod, doporučení jak provádět design, vývoj, nasazení a provozování vícevrstvých

Více

Čipové karty Lekařská informatika

Čipové karty Lekařská informatika Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

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

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011 Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

Více

Konzistentnost. Přednášky z distribuovaných systémů

Konzistentnost. Přednášky z distribuovaných systémů Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické

Více

Java - výjimky. private void vstup() throws IOException {... }

Java - výjimky. private void vstup() throws IOException {... } Java - výjimky Tato kapitola ukazuje na několika příkladech práci s výjimkami v Javě. Klíčové pojmy: Výjimka, hierarchie výjimek, zachytávání výjimek, blok try-catch, tvorba vlastních výjimek, propagace

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

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

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů.

Více

NSS - Cache 5. LECTURE MARTIN TOMASEK

NSS - Cache 5. LECTURE MARTIN TOMASEK NSS - Cache 5. LECTURE MARTIN TOMASEK Cache mechanismus 1. Lze využít k: 1. Optimalizaci výkonu systému 2. Snížení náročností jednotlivých operací 3. Snížení náročností na jednotlivé vrstvy 4. Mitigaci

Více

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

SOAP & REST služby. Rozdíly, architektury, použití SOAP & REST služby Rozdíly, architektury, použití Obsah Srovnání SOAP a REST služeb Service Oriented Architecture Microservice Architecture Příklady použití Nástroje pro vývoj SOAP a REST služeb (v Java)

Více

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

Programování II. Návrh programu I 2018/19

Programování II. Návrh programu I 2018/19 Programování II Návrh programu I 2018/19 Osnova přednášky Co víme? Objektový návrh programu. Příklad. Co víme? Třída Třída je popisem objektů se společnými vlastnostmi. class private:

Více

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems petr.slechta@sun.com

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems petr.slechta@sun.com X33EJA Enterprise Java Petr Šlechta Sun Microsystems petr.slechta@sun.com Web Services (dodatek) Dynamické vyvolání WS Pomocí SAAJ (SOAP with Attachments API for Java) Dynamicky vytvořit SOAP zprávu (např.

Více

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí Transakce = programová jednotka, která: - zachovává konzistenci databáze - končí v konečném čase - se provede celá nebo vůbec Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK listopad 2009 souhrn v1 Červené dobře (nejspíš), modré možná Oracle Internet Directory OID: Databáze nemůže z OID přebírat seznam uživatelů *Databáze může získat z OID seznam

Více

O Apache Derby detailněji. Hynek Mlnařík

O Apache Derby detailněji. Hynek Mlnařík O Apache Derby detailněji Hynek Mlnařík Agenda Historie Vlastnosti Architektura Budoucnost Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila

Více

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

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB) Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB) Michal Papež Spring & EJB Program: K čemu je to dobré, historie, odlišnosti Spring 2.5 EJB 3.0 K čemu jsou? 1 Vývoj velkých podnikových

Více

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13 Obsah Úvod 11 Platforma.NET 11.NET Framework 11 Visual Basic.NET 12 1 Základní principy a syntaxe 13 Typový systém 13 Hodnotové typy 13 Struktury 15 Výčtové typy 15 Referenční typy 15 Konstanty 16 Deklarace

Více

Michal Krátký, Miroslav Beneš

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

Více

Jazyk C# (seminář 3)

Jazyk C# (seminář 3) Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na

Více

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek = Velmi malé jádro = implementuje jen vybrané základní mechanismy: = virtuální paměť; = plánování vláken; = obsluha výjimek; = zasílání

Více

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

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services 13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2005-2007 Michal Krátký, Miroslav Beneš Tvorba

Více

Paralelní přístup k databázi

Paralelní přístup k databázi Paralelní přístup k databázi Motivační příklad: Bankovní převod 100,- Kč z účtu "A" na účet "B" a současný výběr 200 Kč z účtu "B". Transakce Hodnota A Hodnota B Stav účtu A Stav účtu B 1000,- 1000,- T1:

Více

Soubor jako posloupnost bytů

Soubor jako posloupnost bytů Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení

Více

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy Úloha 1 Zkratka ERP jako celopodniková transakční aplikace znamená: a. Enterprise Route Planning b. Enterprise Resource Planning c. Enterprise Re-implementation Planning d. Enterprise Resource Processing

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

DPKOM_06 Dědičnost entit a zpětná volání posluchači

DPKOM_06 Dědičnost entit a zpětná volání posluchači DPKOM_06 Dědičnost entit a zpětná volání posluchači 1 Obsah přednášky Jedna tabulka pro hierarchii tříd Tabulka pro konkrétní třídu Tabulka pro podtřídu Neentitní základní třídy Události zpětného volání

Více

8. přednáška: Soubory a proudy

8. přednáška: Soubory a proudy 8. přednáška: Soubory a proudy Soubor jako posloupnost bytů Ukládání/čtení primitivních typů Ukládání/čtení primitivních typů a objektů (řetězců) Ukládání/čtení objektů do souboru - serializace Obsah Algoritmizace

Více

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek

Více

Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug

Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug Spring framework 2.0 Spring framework 2.0 Roman Pichlík http://sweb.cz/pichlik/ Nejdůležitejší slide http://springframework.org/ http://www.springframework.org/documen Historie 2002 - Rod Johnson kniha

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =

Více

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Vstupy a výstupy pokračování Kódování textů Texty (řetězce nebo znaky) v jazyce C# jsou v paměti uloženy v kódování označovaném běžně Unicode (kódová stránka 1200).

Více

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

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ 1. Dědičnost v OOP umožňuje: a) dědit vlastnosti od jiných tříd a dále je rozšiřovat b) dědit vlastnosti od jiných tříd, rozšiřovat lze jen atributy

Více

9. Transakční zpracování

9. Transakční zpracování 9. Transakční zpracování 9.1. Transakce... 3 9.1.1. Vlastnosti transakce... 3 9.1.2. Stavy transakce... 4 9.2. Transakce v SQL... 6 9.3. Zotavení po chybách a poruchách... 10 9.3.1. Zotavení využívající

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer Jalapeño: pekelně ostrá Java persistence v Caché Daniel Kutáč Senior Sales Engineer Co je Jalapeño Pár slov ředitele vývoje software Klikni! Tak tedy, o čem dnes budeme mluvit Architektura Instalace Anotace

Více

Ukázka zkouškové písemka OSY

Ukázka zkouškové písemka OSY Ukázka zkouškové písemka OSY Jméno a příjmení:.......................................... Odpovězte na otázky zaškrtnutím příslušného políčka. Otázky označené znakem mohou mít více než jednu správnou odpověď.

Více

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 Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented

Více

Technologie JavaBeans

Technologie JavaBeans Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent

Více

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19 3 Obsah Novinky v tomto vydání 10 Význam základních principů 11 Výuka principů nezávisle na databázových produktech 12 Klíčové pojmy, kontrolní otázky, cvičení, případové studie a projekty 12 Software,

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

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

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006 Jini (pronounced GEE-nee) Cvičení 8 - DS 2006 Úvod JINI (pronounced GEE-nee; loosely derived from the Arabic for magician) Systém pro vyhledávání (lookup) a objevování (discovery) objektů v síti Zcela

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Pavel Procházka. 3. prosince 2014

Pavel Procházka. 3. prosince 2014 Jazyk C# (seminář 11) Pavel Procházka KMI 3. prosince 2014 Motivace Dnes už se prakticky nedělají jednojádrové procesory pokud potřebujeme výkon, musíme zapojit všechna jádra Často potřebujeme dělat více

Více

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

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití: Architektura webové aplikace, funkce jednotlivých vrstev, životní cyklus standardizovaných komponent Java EE, Servlety, JSP, frameworky, návrhové vzory 1. Distribuce Javy Distribuce Javy se liší podle

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází 1 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Požadavky kreditového systému. Relační datový model, relace, atributy,

Více

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 Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented

Více

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

Správa a sledování SOA systémů v Oracle SOA Suite Správa a sledování SOA systémů v Oracle SOA Suite Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 7. října 2014 Marek Rychlý Správa

Více

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

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o. X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

Komponenta Human Task v Oracle SOA Suite

Komponenta Human Task v Oracle SOA Suite Komponenta Human Task v Oracle SOA Suite Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 19. listopadu 2014 Marek Rychlý Komponenta

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text()); Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového

Více

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více