VŠB Technická univerzita Ostrava. Fakulta elektrotechniky a informatiky. Katedra informatiky. Enterprise Java Beans historie, současnost a budoucnost

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

Download "VŠB Technická univerzita Ostrava. Fakulta elektrotechniky a informatiky. Katedra informatiky. Enterprise Java Beans historie, současnost a budoucnost"

Transkript

1 VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Enterprise Java Beans historie, současnost a budoucnost 2006 Roman Musialek

2 Prohlášení: Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal Datum: Podpis:

3 Abstrakt: Cílem tohoto projektu, je seznámit se v rozsáhlou strukturou tvorby komponent pomoci Enterprise Java Beans. Tato technologie je poměrně mladá, ale už dosáhla značného rozšíření, které jsem měl zhodnotit. Stručně jsem popsal každou ze tři uvedených verzi Enterprise Java Beans a naznačil nové prostředky v té nejnovější, která ještě nevyšla ve finální verzi. Klíčová slova : Enterprise Java Beans, Session bean, Entity bean, Message-Drive bean, Kontejner, Deskriptor.

4 Abstrakt: The aim of the project is familiarisation with the extensive structure of a procedure, for the creation of components by means of Enterprise Java beans. Although this technology is relatively recent it has already attained a considerable expansion, which I was to review. I described, in brief, each of the three presented versions Enterprise Java beans and suggested new resources in the latest version that has not yet been published in a final form. Klíčová slova : Enterprise Java Beans, Session bean, Entity bean, Message-Drive bean, Conteiner, Descriptor.

5 Seznam zkratek EJB Enterprise Java Beans platforma pro kterou jsou tyto komponenty vyvíjeny HTTP - HyperText Transfer Protocol HTTPS - Hypertext Transfer Protocol over Secure Socket Layer JNDI (Java Naming and Directory Interface) využívá se pro umístění a následné vyhledání entit. Umožňuje vystavit komponentu na serveru neboli zpřístupnit klientům. POJO Objekt Javovské třídy, který v sobě zapouzdřuje vlastnosti. QL - Query Language dotazovací jazyk pro práci s tabulkami RMI - Remote Method Invocation SMTP - Simple Mail Transfer Protocol TCP - Transmission Control Protocol WSDL - Web Services Description Language CMP - Container-Managed Persistence Entity Bean BMP - Bean-Managed Persistence Entity Bean

6 Obsah: Obsah: Úvod Historie a požadavky na systémy Historie vývoje techniky komunikace Enterprise Java Beans popis technologie Enterprise Java Beans vývoj technologie Enterprise Java Beans role EJB komponenty EJB - verze 1.0 a EJB verze 2.0 a Důležitá rozhraní Remote Interface EJBObject Local Interface Home Interface Local Home Interface Bean class Deployment Deskriptor Enterprise JavaBeans Klienti v EJB SESSION BEANY Session beany Stateles Session Beany Stateful Entitní beany Vazby v tabulkách Entity manager Jazyk EJB QL Message-Driven bean Aplikační servery Aplikační server JBOSS Aplikační server SUN Aplikační server ORACLE Aplikační server IBM Praktická část Administrátorská část Uživatelská část Závěr Přílohy:

7 1 Úvod Tématem této bakalářské práce je seznámení se s tématikou Enterprise Java Beans a jejími možnostmi. V kapitole 2 objasním historii a požadavky na systémy.v kapitole 3 budou vysvětleny Enterprise Java Bean komponenty.enterprise Java Bean 3.0, hlavní téma mé práce, bude popsáno v kapitole 4.V kapitole 5 budou popsány nejznámější aplikační servery a jejich podpora Enterprise Java Bean 3.0. Kapitola 6 obsahuje praktickou část práce. V závěrečné 7 kapitole zhodnotím možnosti tohoto nástroje při tvorbě informačních systému s vyhlídkou na možnosti využití v budoucnosti. 2

8 2 Historie a požadavky na systémy Rychlý rozvoj výpočetní technologie našel široké uplatnění ve všech odvětvích. Při tomto rozvoji výpočetní techniky se rozvíjely i informační technologie s vyššími požadavky na jejich skladbu. Rozvíjely se různé programovací jazyky, ve kterých se využívaly objektově orientované technologie. Vytvářely se různé informační systémy. Zároveň dochází k značnému rozvoji internetu a aplikací od něj se odvíjejících. 2.1 Historie vývoje techniky komunikace V tomto směru se stal asi nejrychleji se rozvíjející programovací jazyk JAVA vyvinut firmou SUN. Tento programovací jazyk neskrýval v sobě jen jednoduché programování, ale postupným vývojem zapouzdřoval čím dál větší komplexní vývojový balík. Uvedený programovací jazyk je přenositelný, tedy je možné jej provozovat na různých platformách. V současné době je nejvíce využívána technologie klient server. Na straně klienta běží tzv. uživatelské rozhraní, které komunikuje s klientem. Toto rozhraní lze reprezentovat pomoci HTML stránek zobrazujících se ve webovém prohlížeči, nebo klientem na příkazovém řádku. Server zajišťuje uchovávání dat, které používá aplikace. Serverovou část lze rozdělit na dva podsystémy a to aplikační server a databázový server. Aplikační server je stroj, na kterém jsou provozovány veškeré logické operace týkající se práce s daty. V současnosti je nutné, aby poskytoval víceuživatelský přístup zajištěný bezpečným provozem. Zajišťuje urychlení provozu pomoci ukládání dat v cache paměti a provoz pomoci paralelních akcí. Databázový server nám poskytuje možnosti práce s daty. Stará se o jejich uchovávání, vyhledávání a předávání potřebných dat aplikaci. Technologie, které se dnes používají při tvorbě aplikací využívají již připravených komponent, mezi které patří i Enterprise Java Beans. 3

9 obrázek č.1. Databázový model. Zdroj[5] 2.2 Enterprise Java Beans popis technologie Jednodušší definicí lze říct, že se jedná o technologii, která umožňuje vyvíjet znovu použitelné komponenty pro JAVU. Výhodou pro výrobce aplikací je, že se mohou zaměřit na psaní logiky aplikace, ve které budou využité vlastnosti jednotlivých komponent. obrázek č.2. Model EJB Zdroj[5] 4

10 Výše uvedený obrázek nám znázorňuje nasazení této technologie do praxe. Toto spojení nám umožňuje vytváření velkého subsystému. Klient naváže spojení se zadaným EJB serverem, který sdílí komponentu a umožní klientům její využití. U tohoto EJB serveru je EJB kontejner, kde se všechny komponenty shromažďují a vykonávají svou činnost. Tato technologie umožňuje práci se všemi možnými způsoby komunikace Enterprise Java Beans vývoj technologie Jako první provedla specifikaci koncem roku 1997 firma SUN. Definuje systém služeb aplikačního serveru a s tím spojeného umožňování přesouvání komponent mezi kontejnery. Komponenta představuje programovací model, který dovolí vývojáři soustředit se na konkrétní účel dané komponenty. Enterprise Java Beans server je zodpovědný za danou komponentu v něm distribuovanou a s ní spojené služby jako jsou transakce, perzistentnost, soudržnost a bezpečnost. Koncový výsledek je, že Enterprise Java Beans vytváří rozvíjení distribuovaných komponentních systému, jež jsou zařazené v robustním transakčním systému o mnoho jednodušší. V roce 1998 byl dokončen první produkt, který byl pojmenován Enterprise Java Beans 1.0, který se rychle stal standardem. Tato verze byla několikrát modifikovaná. V roce 1999 na verzi 1.1. Další modifikace proběhla v roce 2001 a to na verzi 2.0 a 2.1. V roce 2005 byla vypuštěna beta verze 3.0, která je zatím poslední Enterprise Java Beans role Architektura EJB definuje šest základních rolí ve vývoji a distribuci komponent. Je možné, že každá z těchto rolí bude vykonávána jinou skupinou programátorů a tak architektura definuje scénáře jednotlivých rolí tak, aby výsledek byl kompatibilní. Základní role jsou: a) Vývojář EJB komponent zodpovídá za vytvoření komponenty. Vytvoření EJB komponenty zahrnuje tyto kroky: 1) Vytvoření tříd implementujících obchodní logiku komponenty. 2) Vytvoření třídy splňující požadavky na EJB komponenty 3) Vytvoření domovského rozhraní (home interface) komponenty 4) Vytvoření vzdáleného rozhraní (remote interface) komponenty 5) Vytvoření popisného souboru komponenty (deployment descriptor) 6) Vytvoření JAR archívu, jenž obsahuje výsledky všech předcházejících kroků. b) Návrhář aplikace nemusí podrobně znát vnitřní strukturu EJB komponenty, ale musí umět pracovat s popisnými soubory komponent. Existující EJB komponenty spojuje do větších logických celků, čímž vytváří jeden nebo více JAR archívů. Tyto archívy dohromady tvoří aplikaci nebo její logickou část a návod 5

11 k instalaci aplikace na libovolném EJB serveru. Návrhář aplikace může také spojovat EJB komponenty s jinými architekturami např. JSP, servlety apod. c) Deployer instaluje aplikace na specifickém operačním prostředí, jenž obsahuje EJB server a EJB kontejner. Deployer musí umět ošetřit a přiřadit aplikaci odkazů na všechny externí zdroje, které návrhář dané aplikace přiřadil. Musí také postupovat podle návodu k instalaci aplikace, kterou vytvořil návrhář. Výsledkem práce je instalovaná aplikace na specifickém kontejneru daného EJB serveru. d) Poskytovatel operačního prostředí (EJB server provider) je specialistou na oblasti nízko úrovňových programovacích architektur. Jedná se o poskytovatele operačního nebo databázového systému. e) Poskytovatel EJB kontejneru (EJB container provider) je většinou součástí operačního prostředí. Poskytuje pro EJB komponenty bezpečnostní a transakční služby, síťovou distribuci klientů apod. f) Systémový administrátor (System Administrator) je zodpovědný za konfiguraci a administraci operačních a síťových prostředků, ke kterým patří i EJB server a kontejner. Je taktéž zodpovědný za sledování správného běhu EJB komponent. 6

12 3 EJB komponenty Nyní si představíme základní komponenty, které se využívají a projdeme si jejich postupný vývoj od nejstarší verze, až po nejnovější, kterou si popíšeme trochu podrobněji. 3.1 EJB - verze 1.0 a 1.1 EJB 1.0 Session beany Chápeme to jako akce, které aplikace musí vykonávat. Implementuji rozhraní javax.ejb.seesionbean, čímž je zajištěno zpětné volání potřebných metod. Existují dva typy beanu sezení. a) Stavový bean sezení, který je použit při požadavku na sledování chování klienta v časových intervalech. Např. nakupování v internetovém obchodě. Při změně stavu tohoto beanu se změna přenese i do dalších stavů, do kterých tento bean přejde. b) Bezestávový bean sezení v tomto případě není nutné přenášet stav mezi klientem a beanem. Při volaní metody lze tedy aktuální stav beanu zapomenout neboli ztratit. Tento bean si může udržovat stav, který není závislý na klientovi. Příkladem může být komponenta pro vyhledávání.. Obě dvě sezení vyžadují metodu zpětného volání ejbremove, která je volaná kontejnerem těsně před zrušením instance beanu. Pro využívání komponenty se postupuje podle následujícího scénáře. Je nutné získat počáteční kontext, poté se vyhledá třídní objekt. Pomoci tohoto objektu se založí lapač požadavku od klienta a volá se metoda create, posílání požadavku a nakonec odstranění handleru a instance. EJB 1.1. Entitní beany U této verze byly poprvé použity Entitní beany. Jde o beany, které slouží pro modelování dat. Tyto beany reprezentují data v databázi. Jsou to objekty, které se umí synchronizovat s obsahem databáze. Jedna instance beanu odpovídá jednomu řádku relační databáze. Při založení beanu vznikne nový řádek tabulky. Pokud chce více klientů přistupovat ke stejným datům databáze, musí existovat více instancí stejného entitního beanu.i zde existují dva typy Entitních beanu, které se od sebe liší způsobem synchronizace obsahu beanu. a) První způsob se nazývá perzistence spravovaná beanem (BMP). Tato synchronizace se provádí pomoci metod zpětného volání, které volá kontejner. Tyto metody musí realizovat programátor. b) Druhým možným způsobem je perzistence spravovaná kontejnerem (CMP). U tohoto způsobu nám provádí synchronizaci kontejner. Podle potřeby založí novou tabulku, nebo provede synchronizaci beanu a da- 7

13 tabáze. Všechny tyto operace spadají pouze na kontejner, kdy se rozhodne pro její provedení. Pro entitní beany a jejich třídní objekty je potřebné využití zachytávání požadavků na vyhledávání. Vyhledávání je náročný proces a je potřebné zajistit správné nalezení patřičného beanu, což může být v určitých okolnostech dosti náročné. 3.2 EJB verze 2.0 a 2.1 Při dalším vývoji se objevily nové možnosti použití této technologie. Významnou novinkou byla možnost lokálního rozhraní pro Session beany, což velmi ulehčilo práci s danou komponentou. Nebylo nutné volat vzdálené rozhraní, ale bylo využíváno rozhraní pro lokální stranu, tedy pro dané umístění v konkrétním místě. Velkým přínosem bylo uvedení nového druhu komponenty, která se jmenuje Message driven bean. Komponenta může přijmout a odeslat asynchronní zprávy. Enterprise Java Beans 2.1. rozšířil programový model tohoto beanu o možnost přiřazení systémových zpráv jiných systému. Vývojáři mohli využit tohoto beanu pro práci s protokoly, které byly podporovány. Je to například SMTP protokol pro posílání u, SNMP pro ovládání řízení systému, protokol TCP a mnoho dalších. Tato komponenta dovoluje posílání zpráv i jiným nezávislým aplikacím v daném systému Důležitá rozhraní Remote interface definuje metody beanu, které musí specifikovat pro vzdálené volání aplikace v konkrétním EJB kontejneru. Rozšiřuje knihovnu javax.ejb.ejbobject, která rozšiřuje java.rmi.remote. Je provozován entity and session beany spolu s remote home interface. Remote home interface definuje životní cyklus metod, který můžou uživatelské aplikace využívat v EJB kontejneru. Životnost metod znamená vytvoření beanu, hledání beanu a smazání beanu. Toto rozhraní rozšiřuje javax.ejb.ejbhome, které je rozšířením java.rmi.remote. Je provozováno session and entity beany spolu s remote interface. Local interface definuje stejné metody, které mohou být používány jinými beany ve stejném EJB kontejneru. Toto ovlivňování jiných beanu je zajištěno pomoci nějakého distribuovaného objektového protokolu. Toto rozhraní je rozšířením javax.ejb.ejblocalobject. Je provozováno session beany a entity beany spolu s local home interface. Local home interface definuje životní cyklus metod, které můžou využívat jiné beany ve stejném EJB kontejneru. Životnost metod daného beanu znamená přenesení na jiný bean ve stejném EJB kontej- 8

14 neru. Toto přenášení je opět zajištěno pomocí distribuovaného objektového protokolu. Message interface Message driven beans implementující rozhraní pro práci se zprávami, které jsou definované pro zprávy systému jako je Java Message Services, který umí doručovat zprávy pro konkrétní beany. Bean class určuje class třídu session nebo entity bean, kde jsou definovaný životní entity. Obvykle v sobě neobsahuje implementaci remote nebo local komponentní rozhraní, ale implementuje v sobě koncové body. Důležité soubory Deployment deskriptor je XML soubor, kde je poskytnut seznam vlastností, které vývojář vytvořil pro daný bean. Tyto hodnoty jsou správně naplněny při instalaci do Enterprise Java Beans prostředí. EJB-jar file koncový zabalený soubor obsahující všechny soubory. Tento soubor se přenese na aplikační server. Aplikační server tento soubor rozbalí a načte všechny beany Remote Interface Toto rozhraní popisuje metody beanu, které chce výrobce komponenty zpřístupnit pro klientskou aplikaci. Volání těchto metod od klienta se děje přes třídu implementující EJBObject. Jména metod v tomto rozhraní musí souhlasit se jmény metod v beanu. V našem případě bude realizovaná jedná metoda hello(), která vrátí String a to Hello World. Příklad: Package examples; /** * This is the HelloBean remote interface * * This interface is what clients operate on when they 9

15 * interact with EJB objects. The container vendor will * implement this interface; the implemented object is * the EJB object, which delegates invocations to the actual bean. */ public interface Hello extends javax.ejb.ejbobject { /** * The one method hello returns a greeting to the client. /* public String hello() throws java.rmi.remoteexception; } Text je použit z literatury: [3] EJBObject Jde o třídu, která je základem komponent. Tato třída implementuje remote interface komponenty. Takto vypadá definice rozhraní: package javax.ejb; public interface EJBObject extends Remote { public abstract EJBHome getejbhome() throws RemoteException; public abstract Object getprimarykey() throws RemoteException; public abstract void remove() throws RemoteException, public abstract Handle gethandle() throws RemoteException; public abstract boolean isidentical(ejbobject ejbobject) throws RemoteException; } Local Interface Rozhraní pro využívání komponenty na lokální straně. Aplikace bude ve stejném EJB kontejneru jako daná komponenta. Příklad: Package examples; /** * This is the HelloBean local interface 10

16 * * This interface is what local clients operate on when they * interact with EJB local objects. The container vendor will * implement this interface; the implemented object is the * EJB local object, which delegates invocations to the actual bean. */ public interface HelloLocal extends javax.ejb.ejblocalobject { /** * The one method hello returns a greeting to the client. /* public String hello() ; } Text je použit z literatury: [3] Home Interface Příklad: Představuje rozhraní, které používá klient k vytváření komponenty. Je zde minimálně jedna metoda create(), která zajišťuje inicializaci komponenty. Toto rozhraní je vygenerované EJB kontejnerem. Při požadavku na toto rozhraní, EJB server zpřístupní referenci. Součásti tohoto rozhraní můžou být také metody pro zrušení instance a metadata pro získání informací o komponentě. Package examples; /** * This is the home interface for HelloBean. * This interface is implemented by the EJB Server s tools * the implemented object is call the Home Object, and server * as a factory for EJB Objects. * * One create() method is in this Home Interface, which * corresponds to the ejbcreate() method in HelloBean. */ public interface HelloHome extends javax.ejb.ejbhome { /** * This method create the EJB Object * *@return the newly created EJB Object /* Hello create() throws java.rmi.remoteexception, 11

17 } javax.ejb.createexception; Text je použit z literatury: [3] Local Home Interface Toto rozhraní může být využito v případě, že klienti nebo jiné enterprise beany budou v rámci jednoho JVM. Výhodou je větší rychlost, jelikož vytváření vzdáleného objektu vyžaduje vytvoření stubů a skeletonů a přenos většího množství dat přes síť. V případě použití local interface dostaneme referenci opravdový java objekt. V prvním případě dostaneme stub vzdáleného objektu. Příklad: Package examples; /** * This interface is implemented by the EJB Server s tools * the implemented object is call the local Home Object, * and server as a factory for EJB local Objects. * */ public interface HelloLocalHome extends javax.ejb.ejblocalhome { /** * This method create the EJB Object * *@return the newly created EJB Object /* HelloLocal create() throws javax.ejb.createexception; } Text je použit z literatury: [3] Bean class Je jednoduchá komponenta, která poskytuje obecné metody pro správu beanu. Ukázka je uvedena v příloze. 12

18 3.2.8 Deployment Deskriptor EJB kontejner nic neví o naších třídách. Z těchto důvodů musíme dodat informace, která třída jaké věci obsahuje a k čemu je určena. Dále EJB kontejner potřebuje vědět jaká bezpečnost a transakce má být použitá. Všechny tyto potřebné informace získá z Deployment deskriptoru. Třídy mohou být sbaleny do JAR souboru, což je ZIP soubor vytvořený z package JAVA tříd. V takovém případě deskriptor musí přesně určit, který z tohoto JAR souboru se má použít a jak se k němu lze dostat. V EJB 1.0 zajišťovala tento deskriptor jedná třída která byla z rozhraní serializable. Od verze 1.1 se začal používat kompaktnější nástroj a v dnešní době velice používaný nástroj a to je XML. Jde tedy o textový dokument, ve kterém se pomoci tagů určí všechny potřebné informace o struktuře aplikace. XML je standardizovány jazyk, což by mělo zajistit dostupnost. S verzemi 2.0 a pozdější 2.1. byl použit i DTD model zajišťující přesné informace pro deskriptor. Verze 2.1 se taky liší o různé specifikace tak jak se rozvíjel i XML standart. Jednoduchá ukázka XML souboru pro EJB verzi 2.1 <?xml version= 1.0 encoding= UTF-8?> <ejb-jar xmlns= com/xml/ns/j2ee xmlns:xsi= xsi:schemalocation= version= 2.1 > <enterprise-beans> <entity> <ejb-name>cabinejb</ejb-name> <home>com.titan.cabinhomeremote </home> <remote> com.titan.cabinremote </remote> <ejb-class> com.titan.cabinbean </ejb-class> <persistence-type> Container </persistence-type> <prim-key-class>java.lang.integer</prim-key-class> <reentrant>false </reentrant> </entity> </enterprise-beans> </ejb-jar> Text je použit z literatury: [3] 13

19 4 Enterprise JavaBeans 3.0 Technologie psaní komponent, která byla uvolněna do provozu koncem roku 2005 a to zatím pouze v beta verzi. Firma SUN si uvědomila přílišnou složitost dřívější podoby této technologie a rozhodla se pro mnoho novinek inspirovaných v Hibernatu a Springu. Přišla ze snahou o ulehčení práce programátora a zjednodušení práce s třídami. Podle charakteristiky dokumentace by tato technologie oproti starší verzi měla mít tyto výhody. a) Definovat pro jazyk Java tzv. anotace, které by měly ulehčit práci při vytváření komponent a tříd. Tedy jejich spojování s patřičnými rozhraními pro deskriptor komponenty a eliminovat práci programátora pro psaní všech potřebných tříd. b) Specifikace programového standardu, aby bylo umožněno pro EJB kontejner pracovat s požadavky a odpověďmi na ně. c) Eliminovat požadavky pro Enterprise Java Beans komponentní rozhraní session beanu. Požadovat veřejné rozhraní pro session bean než rozhraní Enterprise Java Bean Object, Enterprise Java Bean Local Object a Remote rozhraní. d) Zajistit podporu pro ulehčení modelování domény entitního beanu a s tím spojené mnohotvárnosti a polymorfismu. e) Specifikace jazyka Java pro anotace a XML deskriptor rozmístění elementu pro relační mapování perzistentních entit. f) Rozšíření Enterprise Java Bean QL jazyka pro základní operace s daty (mazání, hledání, vkládání) a dále pro třídění a tvorbu poddotazů spojených s co největší podpora pro jazyk SQL. Všechny výše uvedené novinky jsou rozebrané detailněji v následující části. 4.1 Klienti v EJB 3.0 Klient používá aplikační logiku, která je reprezentována na straně serveru. Klient nikdy nepřistupuje přímo k beanu, ale přistupuje k rozhraní tohoto beanu, kdy je tento bean připraven k inicializaci a poté k činnosti. Klienti mohou být: 14

20 1) Lokální 2) Vzdálený Lokální klient bude svázán se session beanem ve stejném virtuálním stroji. Lokální klientem může být i jiná komponenta, která je ve stejném Enterprise Java Beans kontejneru nebo webová komponenta. Přístup v této technologii je proveden pomocí local business rozhraní. Na rozdíl od technologie 2.1, kde toto bylo řešeno pomocí local home objektu beanu a lokálního rozhraní komponenty. V případě vytvoření objektu této komponenty v kontejneru, jedná se o normální JAVA objekt. Při volání metod komponenty jde o lokální volání. Výsledky a argumenty jsou předávány pomoci referencí neboli odkazů a to hlavně u jednoduchých datových typů. U ostatních se tyto reference mohou předávat jako objekty. Vzdálený klient může být reprezentován pomoci Enterprise java Beanu umístěného ve stejném nebo jiném kontejneru. Taktéž může být reprezentován pomoci klienta napsaného v JAVĚ. V EJB 3.0 vzdálený klient přistupuje k session beanu pomocí remote business rozhraní. Vzdálený klientský pohled na tuto komponentu je umístěn nezávisle. Klient poté běží ve stejném virtuálním Java stroji jako instance tohoto beanu. Pro přístup k metodám je použit stejný mechanismus, jako kdyby klient běžel v jiném virtuálním stroji než komponenta. Při volání metod komponenty jde o vzdálený přístup a proto výsledky a argumenty jsou předávány hodnotou. 4.2 SESSION BEANY Požadavky na Session Bean pro verzi 3.0 1) Třída musí být definovaná jako public nemusí se jednat o třídu, která by měla být final a nemusí se jednat o abstraktní třídu. 2) Třída musí mít public konstruktor, který je bez parametrů pro inicializaci. Programátor jej nemusí implementovat, je standardně vytvořen. Samozřejmě je jakýkoli další konstruktor povolený, ale konstruktor bez parametrů již nebude vytvořen. 3) Tato třída nemusí mít v sobě implementovanou funkci finalize (), protože ta je opět standardně vytvořená a o její zavolání se postará kontejner. 4) Třída musí implementovat business rozhraní nebo metody z toho rozhraní. 5) Třída musí být schopna implementovat business metody z EJB2.1, aby bylo možné spojení s touto verzí pro klienty. 15

21 Pro optimální vytvoření komponenty tohoto typu by měla být třída implementovaná z rozhraní javax.ejb.seesionbean, měla by mít metodu na vytvoření komponenty a v případě stateful beanu by se mělo jednat o rozhraní javax.ejb. Toto ale záleží na mnoha faktorech a jedním z nich je, pro jaký účel se daná komponenta vyvíjí a tedy co všechno v sobě musí implementovat Session beany Stateles Základem tohoto typu beanu je vytvoření určitého rozhraní, které bude spjato s danou komponentou a budou v něm definovaný všechny business metody, které bude daná komponenta využívat. Toto rozhraní je zcela podobné klasickým java rozhraním a je pak využíváno kontejnerem při klientském volaní dané komponenty. Pro toto rozhraní pak můžeme realizovat patřičnou komponentu. Uvedené rozhraní se tedy stane základem jednoduché POJO. Vytvořený objekt pak patřičný kontejner spravuje a na základě požadavků inicializuje a stará se o jeho obhospodařování. Zajištění, že se jedná o stateles bean se děje pomoci která zaručí vytvoření patřičné třídy pro tuto komponentu a kontejner bude seznámen o jakou komponentu jde. Pro komponentu musíme nadefinovat multifunkční rozhraní, tedy rozhraní pro lokální instanci a samozřejmě i pro vzdálené volání. To vše záleží na tom, zda komponenta bude využívaná jen pro lokální potřeby a nebo se bude využívat i ve vzdálených voláních. Pro lokální volaní se považuje to, když komponenta je volaná ve stejném virtuálním stroji tedy ve stejném EJB kontejneru. Lokální volání je zajištěno rozhraním, ze kterého je daná komponenta tvořena. Takové volání může být realizováno například JSP stránkou, která s danou komponentou pracuje a tedy jak komponenta tak i JSP stránka běží ve stejném EJB kontejneru. Při volání požadavku na komponentu zachytí lapač požadavku snahu o inicializaci komponenty, vidí že se jedná o lokální volání a kontejner tedy vytvoří patřičnou instanci z lokálního rozhraní dané komponenty a vrátí normální java referenci na daný objekt. Toto volání je tedy realizováno přes tuto instanci. Proto můžeme o něm říct, že by mělo být velmi rychlé a velmi účinné, neboť se nikde a složitě nemusí přenášet. Druhou možností session beanu je již zmíněné vzdálené volaní komponenty, které se děje přes tzv. vzdálené rozhraní. Je určeno pro patřičně vzdáleného klienta. Tento klient zašle požadavek o vytvoření instance komponenty. Kontejner zjistí, že se jedná o vzdálené volání dané komponenty, proto zabalí tuto komponentu a pošle její instanci na stranu klienta. Tento objekt je taky realizován pomoci java reference, ke které pak vzdálený klient přistupuje a využívá její metody. Je tedy jasné, že by takto vytvořené spojení mělo mít delší časové úseky pro práci a pro volání jednotlivých metod, ale efektivita by měla být opět velmi dobrá. 16

22 Ukázka jednoduchého public interface Shop { /** * Creates order for user * user * user items * items in order */ public void createorder(user user, Map<Item, Integer> items); items /** * Gets all orders in HashMap. Keys are users and values are * all orders */ } Celý soubor je vložen do sekce Příloha Klient na takovouto komponentu, může přistupovat jak z lokální, tak i vzdálené strany. Pro přístup využije klient rozmístění komponenty v daném kontejneru, zaregistruje si patřičné JNDI pod kterým je daná komponenta přístupná a může ji využívat pomocí EJB kontejneru, který je za správnou činnost zodpovědný. Příklad jednoduchého Stateless public class ShopBean implements Shop private EntityManager em; /* * (non-javadoc) * shop.shop#createitem(shop.common.item) */ public void createitem(item item) { em.persist(item); } /* * (non-javadoc) * shop.shop#deleteitem(shop.common.item) */ 17

23 id) public int deleteitem(int id) { return em.createnamedquery("deleteitem").setparameter("id", }.executeupdate(); /* * (non-javadoc) * shop.shop#getallitems() */ public ArrayList<Item> getallitems() { List result = em.createnamedquery("getitems").getresultlist(); return (ArrayList<Item>) result; } Celý soubor je vložen do sekce Příloha Při vytváření těchto komponent může využít i další anotační značky, které mají ulehčit práci jak programátora tak kontejneru a to Tyto značky slouží pro specifikaci tříd. S tím můžou být taktéž spojené Uvedené značky slouží pro specifika JNDI adresy, kde bude komponenta dostupná pro případné lokální nebo vzdálené volání Session Beany Stateful Je vytvořen klientem a existuje jen po dobu jedné klient-server session. Je to EJB komponenta, která implementuje rozhraní javax.ejb.sessionbean. Stateful bean si uchovává stav a hodnoty atributů, které můžou být změněny každým voláním metod. při práci se servlety nebo JSP stránkami a případném requestu dané stránky s možností uchování patřičných hodnot pro další použití. Při rozsáhlých java aplikacích, kde je zapotřebí si uchovávat nějaké hodnoty, případně nějaké stavy aplikace. Stateful session bean opět rozšiřuje business rozhraní dané komponenty. V tomto rozhraní jsou definované všechny proměnné, které daná komponenta bude v sobě mít a samozřejmě i metody, které se budou pomocí ní dát použít pro konkrétní účely. Příklad rozhraní pro Stateful public interface ShoppingCart { /** 18

24 * Adds item into shopping cart * item */ void additem(item item, int quantity); /** * Remove item from shopping cart * id */ void deleteitem(int id); /** * Gets all items from shopping cart. * items */ } Celý soubor je vložen do sekce Příloha Pro takto vytvořené rozhraní můžeme bez jakýchkoli obav vytvořit komponentu, ve které budeme realizovat všechny potřebné operace. Tato komponenta se vytvoří pomocí anotační která definuje typ komponenty a charakterizuje ji pro kontejner. Důležitým aspektem je, že takto vytvořená komponenta musí realizovat rozhraní Serializable, které zajišťuje, že kontejner nám umožní pro tuto komponentu spojení a skladování v případě, že daná komponenta není v daném okamžiku využívána, tedy nejsou pro ni volány žádné metody. Ukázka Stateful public class ShoppingCartBean implements ShoppingCart { /** Shop which owns this shopping cart Shop shop; /** Items in shopping cart */ private Map<Item, Integer> items = new Hashtable<Item, Integer>(); /* * (non-javadoc) * shop.shoppingcart#additem(shop.common.item) */ public void additem(item item, int quantity) { if (items.containskey(item)) { Integer i = items.get(item); items.put(item, new Integer(i.intValue() + quantity)); } else { items.put(item, quantity); 19

25 } } Celý soubor je vložen do sekce Příloha 4.3 Entitní beany Entitní beany představují objektově orientovanou reprezentaci dat. To umožňuje jednoduše reprezentovat data v relační databázi jako objekt v javě. Perzistenci v Enterprise Java Bean 3.0 zaručuje Mapování tohoto objektu vzhledem k relační databázi se děje automaticky a průhledně za pomoci Enterprise Java Beans kontejneru. Toto je možné provést, protože deskriptor přesně charakterizuje relační schéma celé databáze. Pro Entitní třídu platí tyto náležitosti: 1) Entitní třída musí být vytvořena pomoci anotačního argumentu nebo v deklaraci XML deskriptoru. 2) Entitní bean musí mít deklarovaný prázdný konstruktor a ten musí být public 3) Další jiné konstruktory pro tuto třídu jsou bezesporu povoleny 4) Entitní bean nemůže být typu final 5) Pokud entita charakterizuje hodnotu nějakého řádku tabulky je zapotřebí, aby bylo reprezentováno rozhraní Serializable pro zachování synchronizace dat. Pro tvorbu takové entity využijeme anotační která nám zajistí vytvoření entitní třídy a pochopení pro kontejner, že se jedná o entitní třídu. Typicky se mapuje jedná entitní třída na jednu tabulku v databázi. Toto napojení se děje pomocí anotační která jako parametr obsahuje název tabulky. Je nutné vytvořit patřičné proměnné podle názvu sloupců v tabulce. Tedy pro nastavování hodnot se použije metoda set<název proměnné a první písmeno velké>() a pro získání hodnoty z proměnné se používá get<název proměnné a první písmeno velké>(). Tyto metody nám zajistí správné nastavování a získávání hodnot z tabulky. Při deklaraci se samozřejmě často hodí generování automatického klíče pro zadanou tabulku, což je možné Tento klíč nám zajišťuje jednoznačnost identifikace záznamů v tabulce. Pokud chceme, aby se klíč generoval automaticky, je možné použít jenž generuje jednoduchý primární klíč dato- 20

26 vého typu integer. Dále je možné použít dalších anotačních značek pro propojování tabulek a určovaní vztahů mezi nimi a to pomoci : Vazby v Jedná se o spojení dvou tabulek, v nichž se jedná o vazbu jedinečnou a tedy jednoduchou asociaci dvou tabulek pomoci stejného klíče. Jelikož se jedná o jednoduché přidružení, není potřebné specifikovat druhou entitu z druhé tabulky, ta může být zmíněná již v prvním objektu třídy. Můžeme realizovat taktéž i další nastavení pomocí různých elementů a to nastavení posloupnosti, mapování, nastavení povinnosti (nemůže být NULL Jedná se o spojení dvou tabulek, v nichž v jedné z nich je daný klíč ve více řádcích. Jde tedy o mnohonásobnost. I zde je možné nastavení různých elementů pro upřesnění Jedná se o spojení dvou tabulek, v nichž se může daný objekt vyskytovat mnohokrát a jde tedy o dvojitou mnohonásobnost hodnot. Je povinností definovat typ, nebo entitní třídu pro toto přiřazení. Tato specifika je nutná pro další práci na dvou stranách a to na straně vlastní, tedy aktuální tabulky a na straně nevlastní, tedy na straně cizí tabulky připojené pomoci anotace. I zde je možné použití dalších elementů pro upřesnění práce. Příklad Entitního public class User implements Serializable { /** Serial version */ private static final long serialversionuid = L; /** User id */ private long id; /** Name of user */ private String username; /** Street of user */ 21

27 private String street; /** City of user */ private String city; /** Post code of user */ private String postcode; /** * Constructor */ public User(String username, String street, String city, String postcode) { super(); this.username = username; this.street = street; this.city = city; this.postcode = postcode; } Celý soubor je v sekci Přílohy Entity manager Slouží pro inicializovaní perzistentního kontextu entitního beanu. Jedná se o nastavení tohoto beanu na určité hodnoty a jejich uchovávání a pozdější zpracování. Lze tedy říct, že se jedná o životní cyklus této komponenty od jejího vytvoření, přes získávání a ukládání dat až po její zánik. Základem tohoto manageru je rozhraní EntityManager.Uvedený manager v sobě zapouzdřuje operace, které by se mohly s touto entitou provádět, tedy mohly by být po systému požadovány. Životní cyklus entitního beanu: a) vytvoření nové instance, která ještě není perzistentní b) naplnění neboli spojení této instance s daty a získání perzistence c) oddělení této instance od dat d) zrušení této instance Pro tuto entitu je důležité, aby byla zajištěna identita v databázi, tedy aby data byla aktuální a odpovídala skutečnosti. Nemělo by docházet k nekonzistenci dat, případně k porušení integrity dat. Při práci s databázi je nutné poukázat na provedení všech patřičných operací, aby byla data korektní. Toto je spojeno s transakcemi, které nám za- 22

28 ručují provedení celé posloupnosti kroků. Pokud by v nějakém kroku došlo k nesrovnalostem, výpadku systému, případně něčemu podobnému, dojde k zrušení celé akce. Tento manager je vybaven mechanismem proti takovým výpadkům Jazyk EJB QL Jazyk, který se inspiroval více známým jazykem SQL a ze které byla implementována určitá podmnožina vybraných funkcí. V dřívějších verzích byla podpora pouze operace Select. V této nejnovější verzi se upřela snaha o rozšíření možnostech příkazu. Přidaly se příkazy Update a Delete, které musely být v dřívějších verzích využívaný přímo pomoci SQL v lepším případě HQL. V této verzi jsou použity následující možnosti práce s daty. Podpora pro výběr z klauzule select o from Order o left join o.lineitems li where li.amount > 100 Podpora pro vnořené výběry swheelreec tl io. afmrooumn to r>d e1r0 0o) where exists(select li from o.lineitems li Podpora pro funkce select o.id, sum(li.amount) from Order o join o.lineitems li group by o.id Další EJB QL funkce tabrsi(m)(,), sqlrotc(a)t,e (m)o,d (c)o,n csaitz(e)(,) substring(), lower(), upper(), length(), Update a Delete operace delete from Customer cust where cust.id = update OrderLine ol set ol.fulfilled = Y where ol.order.id = Podpora pro předpřipravené klauzule pomoci EntityManager = "getitems", query = "SELECT i FROM Item i") 4.4 Message-Driven bean V této verzi se Message-Driven bean komponenta tvoří pomoci Je také zapotřebí, aby tato komponenta měla implementované rozhraní MessageListener a z ní pouze jednu metodu a to onmessage(), čímž je zajištěno zachycování zpráv. Přidávání zpráv realizuje kontejner, který při požadavku 23

29 zajistí správné zařazení do patřičné fronty. Pokud tato fronta ještě nebyla vytvořena, kontejner ji automaticky vytvoří. Mezi charakteristiky tohoto beanu patří Message- Driven beany jsou anonymní. Nemají definovanou klientskou viditelnost. Instance těchto beanu nemají nadefinovaný konverzační stav což znamená, že pokud nejsou klientem využívaný, tedy neodpovídají na žádné požadavky (zprávy), jsou si zcela ekvivalentní a tudíž shodné. Instance tohoto beanu je vytvořená kontejnerem v důsledku přijetí požadavku nějaké zprávy ze strany klienta a tato instance se stává spotřebitelem neboli aktérem. Příklad Message-Driven { public void handlenotification(user user) { System.out.println("New Shop Order from user: " + user); Session session = null; try { session = (Session) PortableRemoteObject.narrow( new InitialContext().lookup("java:Mail"), Session.class); } catch (javax.naming.namingexception e) { e.printstacktrace(); } } try { MimeMessage m = new MimeMessage(session); m.setfrom(); Address[] to = new InternetAddress[] { new InternetAddress( properties.getproperty("recipient")) }; m.setrecipients(recipienttype.to, to); m.setsubject("new Shop Order"); m.setsentdate(new Date()); m.setcontent(user.tostring(), "text/plain"); Transport.send(m); } catch (javax.mail.messagingexception e) { e.printstacktrace(); } } Celý soubor je v sekci Přílohy 24

30 5 Aplikační servery Během praktického zkoušení těchto technologii bylo nutné najit vhodný aplikační server a jeho podporu této technologie. Tato technologie je novinkou a proto jsou podpory velmi různorodé. Zhodnocení se budeme nyní věnovat. 5.1 Aplikační server JBOSS Tento aplikační server jsem využíval u své bakalářské práce. Daný server podporuje většinu možnosti z EJB 3.0 Určený prostor JNDI pro hledání patřičných komponent a jejich rozhraní. Stateful,Stateless a Message Drive beany pro komunikaci s uživatelem Entitní beany pro práci s databázi. Implementována je také perzistence těchto beanu a Manažer transakci. U manažera není naimplementována vazba s jiným serverem. Tyto beany samozřejmě mohou využívat standardní databázi (Hypersonic), kterou tento server nabízí ve spolupráci s integraci Hibernatu. Server zatím neumožňuje využívání komponenty Timer pro časování.pro určité anotační značky je implementována pouze možnost komunikace na lokální straně. Pracuje se na možnosti rozšíření již dříve zmíněného manažera pro komunikaci i s jinými servery a jeho využití při komunikaci. 5.2 Aplikační server SUN Tento aplikační server je z dílny autorů EJB 3.0 a podpora je zcela vyplývající.. Byla už uvolněna první záplata a dnes je podpora zcela všech možností EJB3.0 a to včetně na napojení k jiným databázovým serverům. Spolupráce je z Oracle 9i, 10g, MySQL 5, Microsoft SQL Server 2000, Aplikační server ORACLE Poslední verze tohoto aplikačního serveru vychází ze specifikace EJB 3.0 a je zde implementována tato technologie v plné míře. Tento aplikační sever byl jedním z prvních, který v sobě zahrnuje implementaci celé specifikace EJB 3.0. Při této implementaci zde byla snaha i o spojení určitých vlastností z verze EJB 2.1, aby tyto komponenty byly v kompatibilní verzi. Podařilo se spojení pouze velmi mále skupiny vlastnosti. 5.4 Aplikační server IBM Nejnovější model podporuje programový model J2EE verze1.4 a s ním vložené JSP,Servelet, EJB,a Web Services. Model EJB 3.0 není podporován v tomto serveru. 25

31 6 Praktická část Ukázková aplikace demonstruje možnosti této technologie. Ukázka je postavená na jednoduchém internetovém obchodě s nějakou nabídkou zboží, které je k prodeji. ER Diagram: Obrázek č.3 ER diagram Aplikace pracuje nad těmito čtyřmi tabulkami, jejichž vazby mezi sebou jsou znázorněny na zmíněném obrázku. Datový slovník: Pro tabulku Zboží: Tabulka Atribut Datový typ Klíč Null Popis Item id Číslo Ano Ne Primární klíč Item name Řetězec Ne Ne Název Item description Řetězec Ne Ano popis zboží Item price Číslo Ne Ne cena Pro tabulku Uživatel: Tabulka Atribut Datový typ Klíč Null Popis User id Číslo Ano Ne Primární klíč User username Řetězec Ne Ne Jméno a příjmení User city Řetězec Ne Ne Město User postcode Řetězec Ne Ne PSČ User street Řetězec Ne Ne Ulice 26

32 Pro tabulku Obsah Objednávky: Tabulka Atribut Datový typ Klíč Null Popis OrderItem id Číslo Ano Ne Primární klíč Orderitem name Řetězec Ne Ne Název OrderItem description Řetězec Ne Ano popis zboží OrderItem price Číslo Ne Ne cena OrderItem quantity Číslo Ne Ne počet ks Pro tabulku Objednávky: Tabulka Atribut Datový typ Klíč Null Popis ShopOrder id Číslo Ano Ne Primární klíč ShopIOrder name Řetězec Ne Ne Název ShopOrder user User Ne Ne Uživatel ShopOrder items Order Ne Ne seznam zboží DFD Diagram Obrázek č.4 DFD diagram Obrázek definuje práci celého navrženého systému a funkcemi, které jsou v něm implementované 27

33 6.1 Administrátorská část Slouží pro kontrolu nabídky zboží a kontrolu obsahu jednotlivých objednávek. Pro tuto část jsem zvolil přihlašovací povinnost, aby zde nemohl přistupovat kdokoli. Pro potřeby ukázky jsem zvolil přihlašovací jméno a heslo admin. Zboží lze z nabídky odebrat. Druhou možností, je zavedení zcela nového produktu do nabídky. U nového zboží jsou požadovány tři parametry, aby se mohlo zaevidovat. Každé zboží musí mít nějaký název,popis a cena. Administrátorovi se zde zobrazí obsah všech objednávek, který byly prozatím uskutečněny. Implementován je malý filtr pro vypsaní objednávek jen od konkrétního uživatele. 6.2 Uživatelská část Slouží pro vstupující uživatele,k výběrů a objednání zboží. Minispecifikace : V úvodu se objeví nabídka zboží, které je možné k objednání. Uživatel má možnost si zapsat kolik kusů od každého zboží si chce objednat. Uživateli se vypíše obsah jeho objednávky a je na uživateli jestli ji nechce ještě upravit nebo je s ním spokojen.v případě souhlasu z objednaným zbožím se zobrazí menu pro zadání adresy dodání. Po úspěšném zadání kontaktních údajů dojde u ložení objednávky do databáze. Odešle se zpráva na administrátora (shop@atlas.cz ) o provedené nové objednávce. Heslo pro vstup na tuto schránku je admin. Celý tento program byl realizován pomoci zmiňované technologie EJB 3.0 s využitím komptability této technologie s JSP stránkami. Byly implementovány všechny komponenty,které jsou zmíněny v textu. Při využívání komponenty MSB Bean jsem narazil u aplikačního serveru JBOSS na problém s využíváním autorizovaných SMTP serverů, kterou bohužel JBOSS nepodporuje a proto je zapotřebí tento aplikační server připojovat k SMTP serverům, které tuto autorizaci nevyžadují jako je například SMTP server naši školy a to pomoci certifikátu nebo VPN klienta.. 28

34 7 Závěr Cílem této bakalářské práce bylo porovnat, jak se za poměrně krátkou dobu vyvinula a co umožňuje technologie Enterprise Java Beans. Tato technologie byla navržena na tvorbu opravdu velmi velkých a robustních informačních systému. Je tedy zřejmé, že tyto systémy budou pracovat na několika počítačích, ale klidně i na stovkách počítačů a samozřejmě můžou být od sebe vzdálený jakoukoli vzdálenost. Tato technologie zprvu umožňovala vytvářet komponenty, které musel programátor velice pečlivě vytvořit podle všech náležitostí a potřebných rozhraní a tříd. S postupem času se tvůrci této technologie snažili čím více usnadňovat práci programátora, aby vytvářel jen ty potřebné věci a aby zbytek podpůrné práce byl tvořen automaticky a zajišťovaly ho k tomu určené programy a obslužné systémy. S postupem času zde byla vložen i možnost webových služeb, které jsou v dnešní době na běžném standardu a bez nich si dnešní informační systémy a technologie nejde představit. Poslední verze, která zatím byla uvolněna pouze v testovací verzi, přinesla úplné zjednodušení pro tvorbu komponenty, kdy programátor opravdu musí psát jen kód, který charakterizuje danou komponentu a její potřebné funkce, které by měla umožňovat a o zbytek se už postará ostatní aplikace. Hlavní novinkou této verze je určitě možnost využívání anotačních značek, které nesmírně ulehčují práci programátora a taky samozřejmě ulehčují práci dalším aplikacím, pro které je daná komponenta určena a aby ji specifikoval a mohl ji využívat. Bylo taky zjednodušeno vytváření všech potřebných rozhrání pro komponenty, kdy se nyní musí vytvořit jen to základní a z něho se daná komponenta vytvoří, kdežto v dřívějších verzích bylo zapotřebí vytvořit hned několik rozhraní a pak tříd pro přístup ze vzdálené nebo lokální strany. Bylo taky myšleno na zachytávaní výjimek, kdy dnešní komponenty jsou automaticky při lokaci vybavovány výjimkami a programátor už na to při vytváření komponenty nemusí myslet. Dospěl jsem tedy k závěru, že tato technologie je aktuální možnosti pro informační systémy, které by měly mít robustní charakter a programátorovi je velmi ulehčena práce při vytváření komponent pro navržený systém. Je to určitě velmi zajímavá technologie, která má budoucnost a určitě bude nacházet opodstatnění v mnoha nových vytvářených projektech. 29

35 Literatura [1] Originální dokumentace ze stránek [2] Dokumentace ze stránek [3] Richard Monson-Haefel kniha Enterprise Java Beans 4 vydání ISBN X [4] Gerald Brose, Rima Patel Spriganes Kniha ve formě PDFka Mastering Enterprise Java Beans - 3 vydání [5] články [6] články z [7] články z [8] články z 30

36 8 Přílohy: Obsah CD: Popis cesta Všechny soubory použité v bakalářce /soubory Session beany /Shop/src/shop/core Entitní beany /Shop/src/shop/common MD bean /Shop/src/shop/notification konzoloví klienti /Shop/src/shop/client webové stránky /Shop/src/wui Dokumentace /dokumentace Aplikační server Jboss.zip bakalářská práce bakalářka.pdf Uživatelská příručka /napoveda 31

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

(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

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

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

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

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

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

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

Úvod do Web Services

Úvod do Web Services Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná

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

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

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

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

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

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

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

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

Michal Krátký, Miroslav Beneš

Michal Krátký, Miroslav Beneš Tvorba informačních systémů 1/20 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

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

Tvorba informačních systémů

Tvorba informačních systémů 9. 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 2006-2008 Michal Krátký, Miroslav Beneš Tvorba

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

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

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

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

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

Databázové a informační systémy Databázové a informační systémy 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 Jak ukládat a efektivně zpracovávat

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

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

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5); Programovací jazyk PHP 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 Třídy a objekty Výjimky Webové aplikace

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

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

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

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

Komponentový návrh SW

Komponentový návrh SW Komponentový návrh SW Komponentový návrh SW Komponenty jsou kompletně specifikované pomocí interface Jejich funkčnost je nezávislá na programovacím jazyku a mohou být integrované do toho samého systému

Více

Internet Information Services (IIS) 6.0

Internet Information Services (IIS) 6.0 Internet Information Services (IIS) 6.0 V operačním systému Windows Server 2003 je obsažena i služba IIS v 6.0. Služba IIS poskytuje jak www server tak i některé další služby (FTP, NNTP,...). Jedná se

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

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15 Platforma Java Objektově relační mapování II Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, 2016 1 / 15 Dotazování vyhledání objektu podle

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

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Common Object Request Broker Architecture

Common Object Request Broker Architecture Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální

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

Web Services na SOAP

Web Services na SOAP Web Services Používají HTTP Existují dvě varianty: Služby postavené na protokolu SOAP Java standard pro vytváření : JAX-WS RESTfull služby Java standard pro vytváření : JAX-RS Web Services na SOAP Žádost

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata Databáze Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu Bedřich Košata K čemu jsou databáze Ukládání dat ve strukturované podobě Možnost ukládat velké množství dat

Více

Nové jazykové brány do Caché. Daniel Kutáč

Nové jazykové brány do Caché. Daniel Kutáč Nové jazykové brány do Caché Daniel Kutáč O čem budeme mluvit.net T/SQL Perl Python MultiValue Basic Téma.NET provider .NET Provider Co lze již dnes Factory / VisM ODBC.NET Web Services Factory a VisM

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

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

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

Více

6. blok část B Vnořené dotazy

6. blok část B Vnořené dotazy 6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování

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

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

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

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

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

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

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging 1. Vhodnost nasazení jednotlivých webových architektur - toto je podle Klímy

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

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

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno Tvorba informačních systémů na platformě J2EE Petr Hetmánek (xhetman@fi.muni.cz) Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno Abstrakt Rostoucí dostupnost internetu vede ke vzniku stále

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

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

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Úvod do databázových systémů

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ Technologie Jalapeño od InterSystems Andreas Dieckow, Principal Product Manager, Strategic Planning InterSystems Corporation Úvod Programovací jazyk Java má díky

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

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

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

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme

Více

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

Více

Úvod do programovacích jazyků (Java)

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

Více

Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, Ostrava-Poruba, Česká republika

Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, Ostrava-Poruba, Česká republika Použití jazyka Java pro aplikace měření a řízení Roman Gužík Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, 708 33 Ostrava-Poruba, Česká republika Abstrakt Příspěvek

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

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

Požadavky pro výběrová řízení TerraBus ESB/G2x Dokument: Převod dat TerraBus ESB/G2x Požadavky pro výběrová řízení TerraBus ESB/G2x Obsah 1. Účel dokumentu... 2 2. Použité termíny a zkratky... 2 3. Požadavky... 3 Účel dokumentu Účelem tohoto dokumentu

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

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

Databázové systémy Cvičení 5.2

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

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

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

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký Anotace a Hibernate Aleš Nosek Ondřej Vadinský Daniel Krátký Anotace v Javě novinka Javy 5 umožňují k Java kódu přidávat dodatečné informace (podobně jako JavaDoc) za předchůdce anotací je možné považovat

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

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087 Databázové a informační systémy Informační systém prodejny nábytku Jakub Kamrla, KAM087 1. část Funkční a nefunkční požadavky 1. K čemu má systém sloužit Jedná se o informační systém pro jednu nejmenovanou

Více

Poznámky k verzi Remote support platform 3.1

Poznámky k verzi Remote support platform 3.1 What's New Verze dokumentu: 1.0 2014-05-09 Verze dokumentu Následující tabulka poskytuje přehled nejdůležitějších změn dokumentu. Verze Datum Popis 1.0 2014-05-09 První verze 2 All rights reserved. Verze

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ý 1 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

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

Michal Krátký, Miroslav Beneš

Michal Krátký, Miroslav Beneš Databázové a informační systémy Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava 5.12.2005 2005 Michal Krátký, Miroslav Beneš Databázové a informační systémy 1/24 Obsah

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

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

InterSystems Caché Post-Relational Database

InterSystems Caché Post-Relational Database InterSystems Caché Post-Relational Database Martin Holoubek xholoub@fi.muni.cz Úvod InterSystems byla založena shodou okolností ve stejném roce jako její největší konkurent Oracle 1978 Caché je velmi vyspělý

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování. 3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.

Více

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA Common Object Request Broker Architecture FJFI ČVUT 9. 12. 2010 Osnova 1 2 3 4 5 Standard umožňující propojení aplikací psaných v různých jazycích a běžících na různých strojích a architekturách. Definuje

Více

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

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

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

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity (NAKI) (DF11P01OVV023) Zpracovali: Marie

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

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