ZAWWW-2st1.2-w11.tresc-1.0-Slajd19
Service to Worker
Wynik obsługi wielu żądań zależy od tego, jaka odpowiedź zostanie zwrócona z warstwy biznesowej. Przykładowo, po zalogowaniu się użytkownika do banku internetowego wygląd widoku podstawowego zależy od tego, jakie konto posiada użytkownik i jakie dodatkowe usługi zostały przez użytkownika aktywowane. Zależy nam więc na wywołaniu logiki biznesowej (np. połączeniu z bazą danych i weryfikacji typu konta w banku) przed przekazaniem sterowania do modułu odpowiedzialnego za generowanie widoku. Taką organizację zapewnia wykorzystanie wzorca Service to Worker. Jest to wzorzec złożony, składający się z wzorców Front Controller, Application Controller i View Helper. Umożliwia on wstępne przygotowanie widoku na podstawie danych zwróconych z warstwy biznesowej przed faktycznym rozpoczęciem generowania widoku. Zdecydowanie najczęstszą strategią implementacji wzorca jest serwlet pełniący rolę kontrolera. W praktyce wzorzec ten jest implementowany jako najważniejszy element architektury MVC w wielu popularnych architekturach szkieletowych, takich jak Apache Struts, Spring Framework czy JSF. Możliwa jest też "ręczna" implementacja wzorca, np. za pomocą komponentów JavaBean, choć ze względu na stopień skomplikowania wzorca nie jest to zalecana strategia. Podstawowe zalety wzorca to centralizacja sterowania, poprawa modularności, łatwość pielęgnacji, oraz poprawa separacji ról członków zespołu projektowego.