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 aplikací pomocí jazyka Java formou několika základních komponent.
ÚVOD cituji pramen:zde uvádím citace V přednáškách jsou volně použity a citovány nejrůznější potřebné prameny. V Záhlaví uvádím vždy jejich zdroj. I v případě, že zdroj není uveden, je možné že jsem se inspiroval z široké nabídky presentací různých autorů a firem. Přednášky jsou proto kompilací nejrůznějších zdrojů a mých znalostí pro účel předmětu Tvorba podnikových aplikací v Javě.
J2EE Patří sem: Platforma J2EE - Standardizovaná platforma poskytující běhové prostředí pro J2EE aplikace Soubor testů kompatibility J2EE - Sada testů ověřující, zda je určitá platforma J2EE v souladu se standardem Referenční implementace J2EE - Implementace J2EE určená pro prototypování J2EE aplikací; poskytuje definici J2EE platformy J2EE BluePrints - množina nejlepších osvědčených a doporučených postupů při vývoji vícevrstvých aplikací
J2EE J2EE patří do rodiny Java Editions: J2ME - Java 2 Micro Edition - edice určená pro použití na zařízeních jako jsou mobilní telefony, pagery, PDA,... J2SE - Java 2 Standart Edition - základ jazyka Java, JFC (Java Foundation Classes -- AWT, Swing a jiné komponenty pro uživatelské rozhraní), IO slu¾by, applety, atd. J2EE - Java 2 Enterpise Edition - nadstavba nad J2SE pro rozsáhlé vícevrstvé podnikové aplikace
J2EE Systémová architektura Použit je distribuovaný víceúrovňový aplikační model. To znamená, že celá aplikace je rozdělena do několika vrstev. Samotná prezentační vrstva v rámci webového prohlížeče, appletu nebo Javovské aplikace je oddělena od logiky na straně serveru v podobě JavaServer pages nebo Java Servletů.
J2EE Systémová architektura Poslední vrstvou je business logika umístěna rovněž na straně serveru (např. EJB). Tyto vrstvy jsou propojeny pomocí J2EE API, které zajišťuje rozhraní a komunikaci mezi nimi. Rozhraní každé vrstvy je standardizované, což umožňuje programátorům znajícím základní principy J2EE, aby mohli jednoduše vyvíjet J2EE aplikace.
J2EE Systémová architektura Přínosem: důraz na rozšiřitelnost, udržovatelnost,... jednoduché principy programování Typicky 3-4 vrstvé webové aplikace s tenkým klientem
J2EE Systémová architektura
Platforma J2EE Jedná se o snahu vytvořit jednoduchý standard pro vývoj a nasazení rozsáhlých aplikací. J2EE platforma byla vytvářena tak, aby podchytila a podpořila širokou škálu požadavků při vývoji aplikace. J2EE platforma je založená na vícevrstvém distribuovaném aplikačním modelu. Díky tomu mohou odlišné části aplikace běžet na různých typech zařízení. J2EE architektura definuje klientskou vrstvu, střední vrstvu (mùže jich být i více) a backendovou vrstvu.
Platforma J2EE Klientská vrstva - podporuje řadu typů klientů (které mohou být umístěny jak před, tak za podnikovým firewallem). Střední vrstva - podporuje klientské služby prostřednictvím Web kontejnerů a business logiku prostřednictvím Enterprise JavaBeans (EJB). Backendová vrstva - slouží k umožnění přístupu a komunikaci s existujícími informačními systémy.
J2EE
Platforma J2EE Takto definovaná platforma J2EE přináší: Zjednodušení architektury a vývoje Technologický standard - pro všechny vrstvy a zahrnuté služby Jednotná specifikace nasazení aplikace Standard specifikace pro použité nástroje Návrhové vzory (Design patterns) (= blueprints) - nejlepší praktiky pro J2EE
Platforma J2EE Rozdělení problému na menší části Integrace s existujícími IS Umožňuje volbu serverů, nástrojů a komponent
Platforma J2EE
J2EE
J2EE cituji pramen:vzor aplikačního serveru WebSpehre IBM Aplikační server: Je ve své podstatě java proces Aplikace běžící v něm jsou spouštěny jako sub procesy hlavního procesu řídícího applikační server Z toho plyne řada omezení na která musí vývojář dbát: Není možné podnikové aplikace programovat stejným způsobem jako běžné java aplikace K datům přistupujeme přes datové zdroje Vyhýbáme se vícevláknovým aplikacím (pokud je přeci jen potřebujeme, používáme work managery) Uvědomujeme si, že případný memory leek může ovlivnit celý app server
J2EE cituji pramen: IBM WebSphere Application Server 7.x
J2EE Největší dodavatelé serverů podporují J2EE 1.4 Komerční IBM WebSphere Application Server BEA Weblogic Server Sun Java System Application Server Oracle Application Server Open-source JBoss Application Server Tomcat a Glassfish (používáme v projektu)
Struktura J2EE aplikace Od verze J2EE 1.4 má J2EE aplikace standardizovanou podobu nasazení a managementu. Díky tomu může jakýkoliv nástroj pro správu J2EE aplikace pracovat s libovolným aplikačním serverem. Také proces nasazení je pro každý aplikační server shodný.
Struktura J2EE aplikace Při vzniku J2EE aplikace je vytvořen.ear archiv, který má např. následující strukturu:
Struktura J2EE aplikace
Struktura J2EE aplikace webové moduly cituji pramen:http://docs.oracle.com/javaee/1.4/tutorial/doc/webapp3.html#wp225219
Vývojové role J2EE aplikace J2EE platforma definuje několik rolí podílejících se na životním cyklu vývoje aplikace a jejího nasazení. Role byly definovány, aby napomáhaly k identifikaci úkolů vykonávaných různými stranami během vývoje, nasazení a běhu J2EE aplikace.
Vývojové role J2EE aplikace J2EE Product Provider - společnost, která navrhuje a vytváří jednotlivé API J2EE platformy a další části definované ve specifikaci J2EE. Jde typicky o poskytovatele operačních systémů, databázových systémů, aplikační serverů, webových serverů, atd., kteří se zabývají implementací J2EE na základě specifikace Java 2 Platform, Enterprise Edition. Tool Provider - zabývá se vytvářením nástrojů pro vývoj a nasazení J2EE aplikací.
Vývojové role J2EE aplikace Application Component Provider - vyváří webové komponenty, enterprise beany, applety nebo klientské aplikace, které jsou používány v J2EE aplikacích. Enterprise Bean Developer - vytváří soubory EJB JAR obsahující enterprise beany, a to následujícími kroky: píše a kompiluje zdrojové kódy specifikuje tzv. "deployment descriptor" - popis, jak beanu nasadit: vytvoří soubor EJB JAR jako balíček souborů.class a deployment descriptoru
Vývojové role J2EE aplikace Web Component Developer - výsledkem jeho práce vzniká soubor WAR obsahující webové komponenty. Provádí následující činnosti: píše a kompiluje zdrojové kódy servletů vytváří JSP a HTML soubor specifikuje deployment descriptory vytváří balíčky složené z.class..jsp a.html souborů a deployment descriptoru, vznikne tak soubor WAR
Vývojové role J2EE aplikace Application Client Developer - vyvíjí klientskou část J2EE aplikace Application Assembler - sestavuje jednotlivé části (komponenty) aplikace dohromady, vznikne tak Enterprise Archive (.ear file) Application Deployer and Administrator - stará se o nasazení a běh J2EE aplikace, konfiguraci a administraci infrastruktury
Přehled technologií J2EE J2EE popisuje a nabízí celou řadu technologií, které se dělí např. podle vrstvy, v jaké se použijí (webová, business, integrační). Kromě toho jsou definovány i další podpůrné technologie, sloužící např. k práci s databází, zasílání zpráv, práci s daty, zajištění bezpečnosti a mnoho dalších.
Přehled technologií J2EE Webová vrstva Servlety - Java třídy generující dynamický obsah stránek JavaServer Pages (JSP) a JSP Standard Tag Library (JSTL) - HTML stránky používající jazyk Java pro generování dynamického obsahu JavaServer Faces (JSF) - zjednodušení vývoje uživatelského rozhraní
Přehled technologií J2EE Business vrstva Enterprise Java Beans (EJB) - definuje komponenty na straně serveru a jejich kontakt s aplikačním světem Integrační vrstva Přístup k databázi -- JDBC - rozhraní umožňující jednotný přístup k různým relačním databázím Java Data Objects -- JDO - persistence založená na objektovém modelu Propojení s dalšími systémy -- JCA - rozhraní SPI pro připojení adaptérů zpřístupňujících jiné existující systémy
Přehled technologií J2EE
Přehled technologií J2EE XML Zpracování XML -- JAXP, JAXB - pro práci s XML dokumenty a pro jejich XSLT transformace Webové služby -- JAX-RPC, SAAJ, JAXR Služby na úrovni platformy Jmenná a adresářová služba JNDI Transakce -- JTA, JTS Bezpečnost JAAS Zasílání zpráv JMS Management
Přehled technologií J2EE