Languages

Erudis - your road to knowledge
Wstęp

Java EE w wersji 5 miała w swoim założeniu usunąć najważniejsze problemy, z którymi borykali się programiści aplikacji serwerowych. Największy nacisk położono na dopracowanie najbardziej nielubianej technologii JEE – komponentów EJB. Komponenty EJB są zwyczajnymi klasami Java (ang. Plain Old Java Objects – POJO), a konfigurację można zrealizować przy pomocy metadanych. Kolejnym niezbyt trafnie zaprojektowanym elementem EJB był sposób komunikacji z bazą danych. Komponenty encyjne EJB, które nie były satysfakcjonującym rozwiązaniem, zastąpiła nieporównywalnie lepsza technologia: Java Persistence API.

Znaczącą zmianą było wprowadzenie wygodnego interfejsu programistycznego na potrzeby usług sieciowych. Technologia JAX-WS, korzystająca z dobrodziejstw konfiguracji przy pomocy metadanych zastąpiła trudne w użyciu interfejsy SAAJ i JAX-RPC. Wprowadzenie JAX-WS uporządkowało także konfigurację różnych technologie powiązane z usługami sieciowymi (bezpieczeństwo – WS-Security, transakcje – WS-Transactions, adresowanie usług – WS-Addressing, itp.) i ułatwiło tworzenie usług, które z powodzeniem komunikują się z usługami pisanymi w innych technologiach, przede wszystkim .NET.

Java EE 5 była krokiem ewolucyjnym, nie rewolucyjnym. Poprawiono to, co tego wymagało, a te elementy technologii, które specjalnie nikomu się specjalnie nie naraziły, pozostawiono bez zmian. Charakterystyczny był zwłaszcza brak istotnych zmian w warstwie webowej technologii Java EE. JEE 6 jest zmianą znacznie radykalniejszą.

Wprowadzenie Java EE w wersji 6 jest tak na prawdę bardzo radykalmym krokiem. Wprowadzono do technologii nie tylko zmiany typowo ewolucyjne, jak na przykład wprowadzenie Java Persistence API 2.0, ale przedefiniowano zupełnie sposób patrzenia na tworzenie aplikacji, projektowanie ich architektury, czy wręcz na strukturę samego serwera aplikacyjnego.

Zmiany te nie wzięły się znikąd. Z jednej strony bardzo wyraźny jest trend wykorzystywania coraz powszechniej złożonych aplikacji internetowych (ang. Rich Internet Applications), a z drugiej sposób budowania architektury aplikacji, wzorce projektowe też przeszły istotną ewolucję, do czego przyczynił się w dużej mierze Spring Framework.

Twórcy szóstej wersji Java EE wzięli sobie do serca potrzeby programistów, popatrzyli jakie są najlepsze i najbardziej sprawdzone istniejące rozwiązania, będące często wynikiem pracy szeroko rozumianej społeczności użytkowników Java – mam tu na myśli zarówno nieduże firmy takie jak Spring Source (teraz VMWare) czy Redhat, „molochy” w rodzaju IBM-a, Oracla czy Googla oraz tysiące programistów stojących za różnego rodzaju większymi i mniejszymi projektami.

Co zatem nowego daje nam JEE 6?