Java jedzie do przodu

Sun opublikował wreszcie ostateczną postać specyfikacji J2EE 1.4 i już przygotowuje kolejną wersję Java Development Kit.

Sun opublikował wreszcie ostateczną postać specyfikacji J2EE 1.4 i już przygotowuje kolejną wersję Java Development Kit.

Niedawno ogłoszona specyfikacja J2EE 1.4 jest wersją... prawie ostateczną. Najważniejszym nowym elementem standardu jest w pełni sprawny interfejs API do tworzenia i obsługi usług Web, a także kolejne specyfikacje servletów, Java Server Pages (JSP) i J2EE Connector Architecture.

Odnowione JSP

Na początku specyfikacja JSP, dostępna w kolejnych prototy- pach J2EE 1.4, była opatrzona numerem 1.3. Nagle, mniej więcej miesiąc przed opublikowaniem ostatecznego dokumentu, nadano jej numer 2.0. Nie bez przyczyny, w nowym JSP wprowadzono bowiem wiele zmian porządkujących tę technologię. Najważniejszą jest definiowanie znaczników nie tylko w języku Java, ale także przy użyciu interfejsu i składni JSP (dotychczas nowy znacznik musiał być implementowany jako klasa).

Proces tworzenia bibliotek znaczników został sformalizowany. Wprowadzono zupełnie nowy element, tzw. fragmenty JSP. Mogą one być dynamicznie zmieniane po rozpoczęciu parsowania strony. Parametry niekoniecznie muszą być wyrażone przy użyciu atrybutów XML. Wyliczenie właściwego parametru można przesunąć aż do chwili, gdy będzie potrzebna "zawartość" danego znacznika.

Nowością jest także mechanizm tworzenia znaczników, których atrybuty mogą się zmieniać dynamicznie. Dzięki temu można zdefiniować znacznik, np. ze zmienną liczbą parametrów, który podczas przetwarzania "odkryje", co tak naprawdę zostało przekazane ze strony, która go wykorzystuje (można w ten sposób naśladować elementy HTML, gdzie nie wszystkie parametry muszą być podane).

JSP 2.0 zawiera także specyfikację znacznie wygodniejszego mechanizmu śledzenia błędów.

Lekkie EJB

W J2EE 1.4 wprowadzono nową specyfikację servletów w wersji 2.4. Jednym z nowych wymagań jest konieczność obsługi tzw. rozproszonych servletów, które w obrębie jednej aplikacji mogą działać na różnych maszynach (procesorach lub maszynach wirtualnych). Tym samym servlety stały się "lekką" wersją obiektów EJB.

Specyfikację komponentów EJB (Enterprise Java Beans) również rozbudowano. W wersji 2.1 można tworzyć bezstanowe "session beans", idealne do implementacji usług Web. Rozszerzono język zapytań EJB QL. Istnieje możliwość określania sposobu sortowania wyników (klauzula ORDER BY), a także stosowania agregatów. EJB zawierają mechanizmy powiadamiania oparte na timerach (w ten sposób można synchronizować np. procesy biznesowe, które muszą zachodzić w ustalonych odstępach czasu). Można też wykorzystać przekazywanie komunikatów za pośrednictwem biblioteki JAXM.

Obsługa usług Web odbywa się przy użyciu niemal tych samych narzędzi, jakie były dostępne w Java Web Services Developer Pack. Implementacja protokołu SOAP jest oparta na JAX-RPC. Zdefiniowane są zasady mapowania między klasami Javy a strukturą XML przekazywaną przez JAX-RPC. Ponadto opracowano API do niskopoziomowego manipulowania pakietem SOAP - SAAJ (SOAP Attachments API for Java). Do manipulacji repozytorium UDDI służy biblioteka JAXR. Warto natomiast podkreślić, że nie określono API, które automatycznie tworzyłyby opis usługi Web (WSDL). Są dostępne tylko ogólne zasady, jak można taką operację wykonać.

Niestety, większość obecnych na rynku serwerów aplikacyjnych Javy jest zgodna ze starym standardem J2EE 1.2. Tylko nieliczne wspierają J2EE 1.3. Zwykle producenci serwerów rozszerzają dostępny zestaw bibliotek o własne, dodatkowe funkcje. Dlatego Sun opublikował narzędzie, które sprawdza, na ile w danym rozwiązaniu jest wykorzystywany kod zgodny z "czystym" standardem.

Nie wiadomo kiedy pojawią się serwery aplikacyjne zgodne z nową specyfikacją, ale już teraz w niektórych serwerach można odnaleźć fragmenty funkcjonalności J2EE 1.4 (np. sporo producentów implementuje warstwę odpowiedzialną za usługi Web).


TOP 200