Tvorba podnikových aplikací v jazyce JAVA
Josef Pavlíček KII PEF CZU
J2EE cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
Platforma J2EE cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
Platforma J2EE cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
Rozdělení problému na menší části
●
Integrace s existujícími IS
●
Umožňuje volbu serverů, nástrojů a komponent
Platforma J2EE cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
J2EE cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
Při vzniku J2EE aplikace je vytvořen .ear archiv, který má např. následující strukturu:
Struktura J2EE aplikace cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
Struktura J2EE aplikace webové moduly cituji pramen:http://docs.oracle.com/javaee/1.4/tutorial/doc/WebApp3.html#wp225219
Vývojové role J2EE aplikace cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
●
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html
●
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 cituji pramen:http://artax.karlin.mff.cuni.cz/~ebik/nju/linuxem/J2EE/J2EE.html