Zdalne odpytywanie w ManagedBean i powiadamianie widoku klienta poprzez push
Mam widok jsf, który pokazuje niektóre dane z zarządzanego komponentu bean (viewscope) w tabeli, która jest pobierana zdalnie.
Obecnie dane są aktualizowane przez odpytywanie z widoku klienta za pomocą komponentu odpytywania primefaces.
Nie jest to wystarczające, ponieważ dla dużego ruchu wysyłanego do klienta, a teraz, gdy primefaces obsługuje push serwera, chcę tylko przeładować dane i przekazać je do widoku klienta, jeśli dane zostały zmienione.
Powinno to zostać zrealizowane poprzez odpytywanie z warstwy internetowej do warstwy aplikacji, wywołując taką metodęhasChanged(...)
. Jeśli dane zostaną zmienione, warstwa sieciowa przesyła powiadomienie do klienta, aby ponownie załadować dane.
Aktualna ankieta klienta
klient>> warstwa internetowa>> poziom aplikacji
klient pyta o warstwę danych za pośrednictwem ajax dla danych, która ponownie prosi aplikację o dane i aktualizacje
Żądana ankieta i wypychanie na poziomie sieci
klient<< warstwa internetowa>> poziom aplikacji
warstwa internetowa odpytuje aplikacje, jeśli dane zostały zmienione i załadowane w imieniu i informuje (przesuwa) klienta, aby zaktualizował widok
Awanse:
Jakie jest najlepsze podejście do realizacji sondowania w zarządzanym komponencie bean w warstwie internetowej?
TimerTask w zarządzanym komponencie beanRozmnażanie wątków w zarządzanym komponencie bean JSF dla zaplanowanych zadań przy użyciu zegaraDodatkowe EJB z adnotacją harmonogramuDodatkowe EJB z TimerServiceinny?
Edytować:
Architektura: (3-poziomowa)
Serwer1: baza danychServer2: app-tier (EAR z Remote EJB + Hibernate)Serwer3: warstwa internetowa (WAR z JSF 2.0 + Primefaces 3.4)Klient: przeglądarka