Wzorce projektowe w J2EE Jacek Bekier
Plan prezentacji Architektura platformy J2EE Definicja wzorca projektowego Katalog wzorców J2EE Omówienie kilku ważniejszych wzorców projektowych
Java 2 Enterprise Edition (J2EE) J2EE to platforma tworzenia i uruchamiania rozproszonych aplikacji wielowarstwowych Klientem aplikacji J2EE może być m.in. przeglądarka internetowa lub samodzielna aplikacja W skład J2EE wchodzą: Zbiór bibliotek i API Serwer aplikacyjny J2EE, stanowiący środowisko uruchomieniowe dla aplikacji J2EE Zbiór zasad projektowania, implementowania i instalowania aplikacji J2EE
Architektura J2EE Modułowa Rozproszona Wielowarstwowa Klient Warstwa prezentacyjna Warstwa logiki biznesowej Warstwa integracyjna Systemy zewnętrzne
Warstwa prezentacyjna Zawiera w sobie wszystkie procedury, potrzebne do obsługi klienta łączącego się z systemem: przechwytuje i potwierdza żądania klienta zarządza sesją kontroluje dostęp do usług warstwy biznesowej tworzy i dostarcza odpowiedzi do klienta Najczęściej realizowana przez: Java Server Pages (JSP) Serwlety
Warstwa logiki biznesowej Zapewnia usługi biznesowe wymagane przez system. Zawiera dane i procedury biznesowe. Najczęściej realizowana przez: Enterprise JavaBeans (EJB)
Warstwa integracyjna Warstwa integracyjna jest odpowiedzialna za komunikację z zasobami zewnętrznymi oraz z systemami przechowywania danych. Najczęściej realizowana przez: Java Database Connectivity API (JDBC) Java Message Service (JMS)
Wzorzec projektowy - definicja Wzorce projektowe (Design Patterns) to zidentyfikowane i opisane typowe schematy postępowania podczas rozwiązywania problemów powtarzalnych. Rozwiązanie pewnego problemu w pewnym kontekście.
Wzorce projektowe dla J2EE Najpopularniejsze wzorce projektowe J2EE zostały opracowane przez Sun Java Center: Intercepting Filter, Front Controller, Context Object, Application Controller, View Helper, Composite View, Business Delegate, Service Locator, Session Facade, Application Service, Transfer Object, Value List Handler, Data Access Object, Service Activator, Web Service Broker, itd. Klasyfikacja wzorców projektowych wzorce warstwy prezentacyjnej wzorce warstwy logiki biznesowej wzorce warstwy integracyjnej Platforma j2ee jest skoplikowana. Brak wytycznych jak z niej korzystac.
Diagram relacji wzorców J2EE
Intercepting Filter Wzorzec warstwy prezentacyjnej Przechwytuje i modyfikuje żądania HTTP przed i po właściwym przetwarzaniu np. w celu wykonania następujących działań: Sprawdzenie, czy z klientem związana jest poprawna sesja Sprawdzenie, czy obsługiwany jest dany rodzaj przeglądarki Filtry można dodawać i usuwać w dowolnym momencie, stosując różne ich kombinacje Po zakończeniu przetwarzania, ostatni filtr z grupy przekazuje sterowanie do właściwego obiektu docelowego Typowa implementacja: klasa Java implementująca interfejs javax.servlet.Filter
Intercepting Filter
Business Delegate Wzorzec warstwy logiki biznesowej Stanowi punkt dostępu do zdalnych usług warstwy biznesowej Zmniejsza zależności między oddzielonymi warstwami Ukrywa szczegóły implementacji usług biznesowych, a także mechanizmy ich wyszukiwania i wywoływania Klienci nie komunikują się bezpośrednio z komponentami EJB, lecz jedynie poprzez Business Delegate Typowe implementacje: klasa Java, biblioteka znaczników
Business Delegate
Data Access Object Wzorzec warstwy integracji Odpowiada za komunikację z bazą danych, dzięki czemu pozostałe komponenty nie muszą zawierać kodu JDBC specyficznego dla serwera bazy danych Ukrywa całą logikę dostępu do danych związaną z tworzeniem, pobieraniem, usuwaniem i aktualizacją danych z trwałego zbiornika danych Ułatwia migrację do innej bazy danych Typowe implementacje: klasa Java
Data Access Object
Podsumowanie Stosowanie wzorców projektowych w J2EE służy: uproszczeniu pielęgnacji aplikacji poprawieniu modułowości aplikacji rozdzieleniu ról członków zespołu projektowo-programistycznego wielokrotnemu wykorzystywaniu komponentów poprawieniu bezpieczeństwa dostępu redukcji intensywności komunikacji sieciowej