🔗
Historia i wersje🔗
JavaEE (Java for Enterprise Edition) jest platformą do tworzenia aplikacji biznesowych agregującą zestaw specyfikacji dla języka Java, które w założeniu mają upraszczać rozwiązywanie złożonych i powtarzalnych problemów związanych z wytwarzaniem oprogramowania.
Początkowo platforma nosiła nazwę J2EE (Java 2 Platform Enterprise Edition) i zawierała tylko wąski wycinek tego co obecnie, m.in.:
- JDBC jako główną specyfikację komunikacji z bazami danych
- Java servlets jako komponenty komunikacji sieciowej w oparcui o protokół HTTP
- JSP (Java ServerPages) pozwalające tworzyć dynamiczne strony HTML
- EJB (Enterprise Java Beans) stanowiące podstawowe komponenty budowy warstwy usług aplikacji
- i wiele więcej
Pierwsze wersje J2EE nie były zbytnio lubiane przez programistów. Pomimo iż oparte o Javę dawały spore możliwości skalowania, rozproszenia komponentów i ogólnej wydajności, to sam model był dosyć skomplikowany. Szczególną rolę odegrała tutaj dosyć znienawidzona technologia EJB (w wersji wcześniejszej niż 3), która była jedną z przyczyn powstania najpopularniejszego dziś frameworka Spring.
Z powodu wielu narzekań i słabnącej popularności J2EE na rzecz frameworków takich jak Spring, czy Struts, w wersji 5 postanowiono odciąć się od wcześniejszej numeracji (1.1, 1.2, itd) oraz samej nazwy J2EE zastępując ją krótszą wersją Java EE 5.
Co ciekawe w ofertach pracy nadal bardzo często pojawia się historyczne nazewnictwo, co najczęściej sugeruje, że rekruter ma niewielkie pojęcie o samej Javie.
Najważniejsze zmiany, które przyniosła Java EE 5 to zupełna zmiana modelu EJB i dodanie specyfikacji mapowania obiektowo-relacyjnego JPA bazującego na doświadczeniach frameworka Hibernate.
Wersje 6 i 7 to dalsze prace nad tym, aby platforma była coraz lżejsza i intuicyjna, wprowadzenie frameworka MVC w postaci JSF (JavaServer Faces) oraz standardu wstrzykiwania zależności pomiędzy różnymi komponentami w postaci CDI (Contexts and Dependency Injection).
Specyfikacje🔗
Java EE to w rzeczywistości zbiór specyfikacji opisujących zachowanie poszczególnych jej elementów. Nie są to więc żadne elementy w rozumieniu semantycznym (nie znajdziemy tutaj nowych typów danych, czy nowych rodzajów pętli), a jedynie zbiór interfejsów oraz opis ich działania. Warto wymienić tutaj takie elementy jak :
- CDI (Context and dependency injection) - wstrzykiwanie zależności
- JPA (Java Persistence API) - mapowanie obiektowo relacyjne
- EJB (Enterprise Java Beans) - warstwa usług ze wsparciem dla zarządzania transakcjami
- JaxRS - specyfikacja dedykowana do tworzenia aplikacji REST
- JSF (Java ServerFaces) - framework MVC integrujący się z innymi elementami JEE
- ...
Cała platforma Java EE składa się obecnie z kilkudziesięciu specyfikacji, a wersja 8 planowana na wydanie w roku 2017 doda do tego zbioru kolejne elementy i zaktualizuje już istniejące.
Co ciekawe istnieje wiele implementacji poszczególnych specyfikacji. Dlatego jako implementację JPA możemy wybrać zarówno Hibernate jak i EclipseLink i w obu przypadkach docelowe działanie powinno być identyczne. Dla każdej specyfikacji istnieje jednak tzw. implementacja referencyjna, która uznawana jest za wzorcową.
Serwery Javy EE🔗
Wśród serwerów dedykowanych dla technologii Java EE można dokonać podziału na takie, które są wyłącznie kontenerami serwletów, np. Tomcat, czy Jetty oraz serwery z pełnym wsparciem Javy EE takie jak JBoss/Wildfly, Glassfish, WebLogic, WebSphere, które rozwijane są przez różne firmy.
Co ciekawe najpopularniejszym serwerem jest Tomcat, który jest jednym z najprostszych w tym zestawieniu. Jego popularność wynika przede wszystkim z tego, że jest on mocno powiązany ze Spring Framework. Różnica pomiędzy kontenerami serwletów, a serwerami aplikacji polega przede wszystkim na ich możliwościach. W serwerze aplikacji wszystkie biblioteki takie jak Hibernate są już nam dostarczone, w przypadku kontenerów serwletów będziemy musieli zadbać o wszystkie biblioteki samodzielnie.
Hostingi🔗
W celu uruchomienia aplikacji napisanych w Javie EE nie wystarczy nam niestety prosty hosting za kilka zł kupiony u popularnych dostawców. Większość z nich jest dedykowana przede wszystkim do języka PHP.
Jeżeli chcemy udostępnić swoją aplikację w sieci i nie jest to drugie allegro, a raczej np. prosty blog, to możemy pomyśleć nad chmurami obliczeniowymi takimi jak OpenShift, czy Heroku lub wykupić tani serwer VPS, gdzie mamy dowolność w instalowaniu i administracji serwerem.
Komentarze do artykułu
Wyłączyliśmy możliwość dodawania komentarzy. Poniżej znajdziesz archiwalne wpisy z czasów gdy strona była jeszcze hobbystycznym blogiem. Zapraszamy natomiast do zadawnia pytań i dyskusji na naszej grupe na facebooku.