III Szkoła PLOUG: Przegląd tematyki

Projektowanie aplikacji dla platformy J2EE

Poznań, 11-13.02.2004

W ciągu kilku ostatnich lat, technologia Java znacząco ugruntowała swoją pozycję w dziedzinie konstrukcji systemów intra- i internetowych. Specjalizowane typy programów Java – serwlety Java i aplikacje JavaServer Pages (JSP) – umożliwiają generowanie dynamicznych dokumentów WWW po stronie serwera aplikacji, a interfejs JDBC umożliwia pobieranie danych ze źródeł relacyjnych lub relacyjno-obiektowych. Znajomość wspomnianych technologii umożliwia łatwą implementację nieskomplikowanego internetowego systemu informatycznego.

Praktyczne doświadczenia pokazują jednak, iż podczas konstrukcji środowisk dużych i złożonych, istotnym problemem staje się integracja wszystkich komponentów oprogramowania oraz pielęgnacja ich powiązań w przypadku późniejszej rozbudowy lub modyfikacji systemu. Często podkreślanymi wadami tradycyjnej technologii serwletów Java i technologii JavaServer Pages, nazywanej dziś JSP Model 1, są: utrudniona implementacja nawigacji użytkownika, brak elastyczności oraz brak możliwości łatwego rozdziału pracy pomiędzy projektanta stron WWW a programistę.

Nowoczesną propozycją rozwiązania powyższych problemów jest adaptacja znanej jeszcze z czasów języka Smalltalk-80 koncepcji architektury Model-View-Controller (MVC), formalnie stanowiącej element technologii o nazwie JSP Model 2. Projektowanie systemów internetowych w architekturze MVC polega na wyodrębnieniu trzech typów elementów składowych: (1) komponentów modelu, realizujących zasadnicze przetwarzanie danych i dostęp do baz danych, (2) komponentów prezentacji, odpowiadających za generowanie zawartości graficznego interfejsu użytkownika, (3) komponentów sterujących, obsługujących żądania wysyłane przez przeglądarkę WWW użytkownika. Implementacja elementów MVC wymaga od programisty znajomości i wykorzystania następujących technologii: Enterprise JavaBeans (EJB) do budowy komponentów modelu, JavaServer Pages do budowy komponentów prezentacji oraz serwletów Java do budowy komponentów sterujących. Wszystkie te technologie stanowią fundament standardu Java 2 Enterprise Edition (J2EE), a wielowarstwowe aplikacje Java konstruowane zgodnie z filozofią MVC nazywane są aplikacjami J2EE.

Warto także zwrócić uwagę na rozbudowaną w ostatnim czasie drugą wersję specyfikacji technologii Enterprise JavaBeans, umożliwiającej wygodną separację kodu przetwarzania danych (tzw. logiki biznesowej) od pozostałych składników systemu. Oprócz dotychczasowych rodzajów komponentów (sesyjnych i encyjnych), EJB 2.0 oferuje nowe komponenty, nazywane komunikatowymi, a ponadto znacząco rozszerza mechanizmy implementacji komponentów encyjnych o trwałości obsługiwanej przez kontener (CMP). Coraz bardziej też upowszechnia się oferowanie zdalnego dostępu do komponentów EJB poprzez usługi WebServices, umożliwiające konstrukcję aplikacji rozproszonych opartych o protokół SOAP.

Interesującym uzupełnieniem architektury J2EE jest wiele obiecująca infrastruktura Jakarta Struts, potocznie nazywana Struts. Struts to zbiór bibliotecznych szkieletowych klas Java, które znacząco upraszczają i przyspieszają proces implementacji i integracji komponentów MVC. Struts wspomagają projektantów i programistów w zakresie utrzymywania i reorganizacji powiązań pomiędzy indywidualnymi komponentami systemu (JSP, EJB), a ponadto zapewniają ich wydajne i stabilne funkcjonowanie. Programowanie z użyciem infrastruktury Struts niewątpliwie stanie się w najbliższych latach jedną z najważniejszych umiejętności dla internetowego programisty Java.

Zadaniem III Szkoły PLOUG jest omówienie i zilustrowanie elementarnych technologii J2EE oraz przedstawienie nowoczesnej metodyki projektowania systemów internetowych zgodnych z architekturą MVC. Uczestnicy zapoznają się z możliwościami narzędzia Oracle JDeveloper w zakresie wspomagania pracy projektanta i programisty, a także z wykorzystaniem serwera aplikacji Oracle9iAS do instalacji i konfiguracji aplikacji J2EE. Program III Szkoły PLOUG zakłada, że jej uczestnicy posiadają podstawową znajomość języka programowania Java oraz biblioteki JDBC.