Przyspieszenie odczytu danych przez nie używanie enterprise beans.
Czasami ważniejszy jest efektywny dostęp do danych, niż zapewnienie aktualności danych. Na przykład, kiedy użytkownik przegląda katalog produktów sklepu, nie jest bezwzględnie wymagane, żeby to co się ukaże na ekranie było w pełni zgodne z bieżącą zawartością bazy danych. Istotne jest natomiast, żeby katalog ukazał się szybko, i żeby kupujący mógł w wygodny sposób korzystać ze sklepu.
Wzorzec projektowy Fast-Lane Reader umożliwia przyspieszenie odczytu dużej ilości danych. Zamiast posługiwać sie mechanizmem ziaren EJB, aplikacja pobiera dane bezpośrednio za pomocą data access object. W ten sposób unika narzutu związanego z używaniem enterprise beans (zdalnego wywoływania metod RMI, zarządzania transakcjami, serializacji danych, itp.)
Wzorzec fast-lane-reader umożliwia optymalizację. Nie został stworzony, żeby zastąpić wszystkie inne mechanizmy dostępu do danych. Jest jednym z możliwych rozwiązań. Powinien być stosowany gdy:
do dostępu do danych tylko-do-odczytu, zwłaszcza do dużych list danych.
jeśli dostęp do najświeższych danych nie jest krytyczny dla systemu.
Główną zaletą tego wzorca jest szybszy dostęp do danych .
Wzorzec ma również pewne ograniczenia:
Nieaktualne dane. Odczyt bezpośrednio z bazy danych nie uwzględnia danych przechowywanych w ziarnach EJB rezydujących w kontenerze serwera.
Zwiększona złożoność systemu. Wzorzec wprowadza dodatkową drogę dostępu do trwałych danych, komplikując model systemu.
Fast-lane reader jest zazwyczaj implementowany jako data access object. Umożliwia to enkapsulację dostępu do danych względem pozostałej części aplikacji.
Przy implementacji wzorca projektowego, należy rozważyć następujące kwestie:
Nietransakcyjny odczyt jest nieodpowiedni dla danych, które często się zmieniają.
Nietransakcyjny odczyt jest często używany przy tworzeniu nowych transakcji. Na przykład w sklepie internetowym, zamówienia na produkty są tworzone na podstawie katalogu, odczytywanego nietransakcyjnie. Katalog zmienia się stosunkowo rzadko. Same zamówienia natomiast są przetwarzane w obrębie osobnych transakcji, ponieważ są tworzone, modyfikowane i usuwane bardzo często.
Gdyby katalog był modyfikowany częściej, zamówienia musiałyby być odrzucane częściej, ponieważ zawierałyby nieaktualne produkty.
Wzorzec fast-lane-reader warto stosować razem ze wzorcem page-by-page iterator do dostępu do dużych list danych.