IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 1 - Úvod do Java Enterprise Edition (JEE)

Vítám vás u prvního dílu seriálu tutoriálů o tvorbě webových/podni­kových aplikací v Javě. V tomto dílu si představíme technologii Java Enterprise Edition, která se zkráceně označuje jako JEE nebo někdy J2EE. Předpokladem je dobrá znalost JavySE (standardní edice) a základní znalost HTML a CSS.

Technologie Java Enterprise Edition

Java Enterprise Edition by se dalo přeložit jako podniková edice Javy. Název je poněkud zavádějící a to hned z několika důvodů:

  1. Standardní edice Javy se samozřejmě používá v podnicích úplně stejně, jako JEE. Naopak JEE není nijak vázaná na komerční sféru a velmi jednoduše v ní můžeme naprogramovat např. osobní webový blog.
  2. JEE není jiná verzi Javy, ale pouze sada knihoven do Javy SE (standardní edice). To je určitě dobrá zpráva, v JEE tedy budete programovat úplně stejně, jako v JSE. Oracle ve skutečnosti dodává pouze rozhraní a existuje hned několik implementací JEE (viz dále).
  3. JEE je zaměřena na tvorbu webových aplikací v Javě. Dle mého názoru by byl výstižnější název webová edice, ale s tím již nic nenaděláme.

Původní název vznikl proto, že JEE obsahuje spoustu hotových řešení, které lze použít pro rozsáhlé webové aplikace. V praxi je JEE asi nejrozšířenější podniková technologie, používá ji obrovské množství velkých firem a zahrnuje v sobě velké množství různých pokročilých technologií, ze kterých se výsledná aplikace skládá. Z předešlé věty by mělo vyjít najevo, že se jedná opravdu o robustní řešení, které uspokojí poptávku po náročných aplikacích jako velké státní registry, bankovní aplikace a podobně. Zkušený programátor v JEE se má dobře, na druhou stranu takový člověk musí něco umět.

Charakteristiky podnikových aplikací

Podnikovou aplikací se obvykle myslí aplikace, která:

  • Obsluhuje velké množství uživatelů najednou
  • Pracuje s velkým množstvím dat v databázi
  • Komunikuje s dalšími systémy
  • Je robustní a bezpečná

Java Enterprise Edition se snaží poskytnout co nejvíce standardních a kvalitních komponent, které usnadní tvorbu právě takových aplikací. Ctí tzv. třívrstvou architekturu, kde je aplikace rozdělena na databázovou vrstvu, vrstvu obchodní logiky a vrstvu prezentační.

Webové aplikace

JEE funguje stejně jako např. konkurenční ASP.NET nebo PHP na architektuře klient-server. Aplikace v JEE je tedy program, jehož výstupem je HTML stránka. Java zde běží na straně serveru, což je rozdíl oproti JSE, kde naše Java aplikace běžela přímo na počítači klienta. Abychom lépe pochopili, jak JEE funguje, ukažme si nejprve obyčejný statický web.

Statický web (bez JEE)

Takový web jste určitě již někde viděli, HTML stránky jsou jednoduše uložené na serveru. Jakmile klient (uživatel s prohlížečem) pošle požadavek na server, server mu jednoduše vrátí přesně ty stránky, co má uložené.

Gaficky vypadá komunikace asi nějak takto:

Statický web - JEE - Java Enterprise Edition

Dynamický web (s JEE)

Statický web se těžko spravuje a má velká omezení. Proto začaly vznikat serverové jazyky, které umožňují HTML stránku ještě pozměnit předtím, než je klientovi odeslána. Lze tak vytvořit aktivní prvky, jako např. diskuzní fóra, přihlašování uživatelů, nahrávání obsahu pomocí editoru a podobně.

JEE tedy běží na serveru, na základě požadavků od klienta vygeneruje webovou stránku (její obsah obvykle načte za databáze, která běží opět na serveru) a pošle ji klientovi. Ten vidí už jen výsledné HTML, ve kterém není po Javě ani památky (tedy kromě toho, že stránka má jinou příponu).

Graficky by situace vypadala takto:

Architektura klient-server v Javě - JEE - Java Enterprise Edition

Aplikační servery

JEE běží na tzv. aplikačním serveru. To je software, který běží na serveru a který zpracovává HTTP/HTTPS požadavky klientů, spravuje spojení s databází v tzv. connection poolu, odesílá emaily a podobně. Právě jednotlivé aplikační servery poskytují implementaci rozhraní JEE. My budeme vyvíjet v NetBeans. Ten sice má v sobě zabudovaný aplikační server, ale není moc použiváný v praxi, a proto si doinstalujeme v příští lekci jiný. Budeme používat open-source aplikační server Wildfly (Dřív JBoss AP). Mezi aplikační servery patří např.:

  • WildFly (dříve JBoss Application Server) - Asi nejznámější aplikační server, který je open-source. Novější verze JBoss AS se jmenují Wildfly.
  • GlassFish - Jednoduchý aplikační server od Oracle.
  • WebSphere Application Server - Robustní komerční řešení pro velké aplikace od IBM.
  • WebLogic Server - Komerční aplikační server od Oracle.

Komerční řešení se snaží poskytovat maximální výkon, stabilitu a podporu. Proto dokonce používají vlastní Java Virtual Machine. K některým open source serverům je možné dokoupit komerční podporu.

Technologie v JavaEE

Nakonec si zmíníme některé technologie, které jsou v JEE obsažené.

  • JSP (Java Server Pages) - Technologie umožňuje vkládat speciální direktivu do HTML kódu, která spustí Java kód. Na daná místa ve stránce se tak vloží data, která získala Java např. z databáze.
  • JSF (Java Server Faces) - Konkurenční a modernější technologie k JSP. Celá webová stránka je reprezentována jako XML soubor. Web se skládá z již připravených komponent (formuláře, tabulky, seznamy), které lze jednoduše plnit daty z Javy.
  • JDBC (Java DataBase Connectivity) - JDBC a JPA známe již z našeho seriálu o JavaSE. JDBC je standardní rozhraní pro práci s různými typy databází v jejich jazyce SQL.
  • JPA (Java Persistence API) - JPA je rozhraní, umožňující objektovou práci s daty. S databází nekomunikujeme přímo v SQL, ale pomocí mezivrstvy ORM. Pracujeme tedy pouze s objekty. Konkrétní implementací je Hibernate.
  • EJB (Enterprise Java Beans) - Komponenty obchodní logiky.
  • CDI (Context Dependency Injection) - Modernější alternativa EJB. Protože CDI obsahuje méně vlastností oproti staršímu EJB, je více lightweight a aplikaci používající CDI spustíme téměř na jakémkoli nastavení aplikačního serveru (což se nedá říct u EJB).
  • Spring framework - Kromě standardních řešení z Javy Enterprise Edition se také uchytilo několik frameworků třetích stran. Mezi nejznámější patří Spring. Jedná se o konkurenci např. k JSF.

Vidíme, že JEE v sobě obsahuje několik konkurenčních technologií, kterými jde různými přístupy dojít ke stejnému řešení. Je vždy na konkrétní firmě a projektu, kterou technologii používá. Důvodem pro starší technologie může být firemní politika nebo že byl např. konkrétní projekt vytvořen před vznikem JSF a vyplatí se ho tedy udržovat v JSP.

Další díly seriálu budou rozděleny do několika sekcí podle technologií, kde se vždy pokusíme vytvořit ten samý web s použitím rozdílných přístupů.


 

Všechny články v sekci
JEE - Java Enterprise Edition
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
38 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity