Wzorce projektowe w Java 2 Enterprise Edition

advertisement
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
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 projektowoprogramistycznego
 wielokrotnemu wykorzystywaniu komponentów
 poprawieniu bezpieczeństwa dostępu
 redukcji intensywności komunikacji sieciowej
Download