1. díl - Úvod do Java Enterprise Edition (JEE)

Java Enterprise Edition Ú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

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ě

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 IDE NetBeans, které přímo v sobě obsahuje opnesource aplikační server GlassFish. Mezi aplikační servery patří např.:

  • JBoss Application Server - Asi nejznámější aplikační server, který je opensource.
  • 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.
  • 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ů.


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (8 hlasů) :
4.8754.8754.8754.8754.875


 


Miniatura
Předchozí článek
Apache Wicket
Miniatura
Všechny články v sekci
Java Enterprise Edition (JEE)
Miniatura
Následující článek
Úvod do webových aplikací v JavaEE

 

 

Komentáře

Avatar
Silvinios
Redaktor
Avatar
Silvinios:

Děkuji za pěkný článek. Dovolím si pár poznámek:

  • J2EE je označení pro starší Java Enterprise edice 1.3 a 1.4. JEE je označení pro novější verze 5, 6 a 7.
  • JEE nejsou jen webové aplikace. Lze si představit například JEE aplikaci obsahující pouze EJB beany, které jsou vzdáleně volány z bohatého klienta.
  • K provozování webových aplikací často stačí pouze webový kontejner např. Apache Tomcat nebo Jetty (toto je mimochodem oblíbená otázka na pohovorech - jaký je rozdíl mezi aplikačním serverem a webovým kontejnerem).
  • Spring framework rozhodně není konkurencí k JSF. Největší silou Springu je IoC kontejner a aspekty. JSF slouží k tvorbě uživatelského rozhraní pro webové aplikace. Není problém vytvořit webovou aplikaci využívající Spring i JSF současně.
Editováno 8.1.2014 23:13
 
Odpovědět  +2 8.1.2014 23:13
Avatar
Milan Gallas
Redaktor
Avatar
Odpovídá na Silvinios
Milan Gallas:

Apache Tomcat je jedním z nejznámějších aplikačních serverů.....
http://cs.wikipedia.org/…pache_Tomcat

Editováno 25.1.2014 17:32
 
Odpovědět 25.1.2014 17:32
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Milan Gallas
Jan Vargovský:

http://www.javacodegeeks.com/…servers.html

Tu máš kdyžtak ty ostatní. České wikině často nevěřím, tak radši EN zdroj.

 
Odpovědět 25.1.2014 17:35
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na Milan Gallas
Silvinios:

Apache Tomcat není aplikačním serverem ve smyslu JEE. Podporuje pouze servlety a JSP, viz
http://tomcat.apache.org/

 
Odpovědět 30.1.2014 21:36
Avatar
paja
Člen
Avatar
paja:

Dik za super vysvetleni ...;)

 
Odpovědět 28.6.2014 4:59
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.