Wzorce Enterprise Integration Patterns z wykorzystaniem Spring

Transkrypt

Wzorce Enterprise Integration Patterns z wykorzystaniem Spring
Wzorce Enterprise Integration Patterns z
wykorzystaniem Spring Integration
Żyjemy w czasach gdy tworzone aplikacje nie powstają już w wyizolowanych środowiskach na potrzeby
„zamkniętych” systemów. Dzięki rozwojowi Internetu mamy dostęp do nieprzebranej ilości danych i usług
dostarczanych przez dostawców. Narodziny idei „programmable web” wymusiły powstanie narzędzi i metod
służących integracji usług. Jednocześnie ilość dostępnych protokołów i modeli komunikacji, czyni integrację
aplikacji jednym z najważniejszych i najtrudniejszych wyzwań stojących przed naszą branżą. Kolejnym
wyzwaniem jest integracja istniejących systemów, które powstały w czasach gdy idea ogólnodostępnej sieci
ciągle była w strefie marzeń. Dziś potrzebujemy narzędzi, które pozwolą nam otworzyć te „zamknięte”
niegdyś systemy na świat zewnętrzny, poprzez integracje z usługami dostępnymi w sieci. Problemy tej klasy
próbuje opisać zestaw wzorców projektowych, znanych pod nazwą Enterprise Integration Patterns (EIP).
Celem szkolenia jest zaznajomienie uczestników z wzorcami EIP, na przykładzie Spring Integration, projektu
rozwijanego przez społeczność Spring Source, który stanowi naturalne rozszerzenie znanej i popularnej
platformy Spring Framework.
Podczas szkolenia zostaną przedstawione metody realizacji wybranych scenariuszy w oparciu o wzorce EIP
przy pomocy Spring Integration. Wybrane scenariusze powstały w oparciu o rzeczywiste projekty, w których
brali udział trenerzy prowadzący szkolenie.
Przypadki użycia realizowane w ramach szkolenia "Wzorce Enterprise
Integration Patterns z wykorzystaniem Spring Integration"
Load Balancer
W tym przypadku zostanie przedstawione wykorzystanie wzorców EIP i Spring Integration w scenariuszu
gdzie zapytania do systemu będą rozdzielane pomiędzy wieloma instancjami, w celu osiągnięcia
optymalnego wykorzystania zasobów systemu. Proponowany scenariusz będzie uwzględniał różne dostępne
algorytmy podziału pracy, m.in. “round robin”, “least busy”,”sticky session”. By w pełni wykorzystać
możliwości Spring Integration, prezentowany scenariusz będzie zrealizowany w oparciu o protokół
synchroniczny i kolejki zadań przechowywane w pamięci operacyjnej. Przedstawione zostaną miedzy innymi
zastosowania wzorców “Message Filter”, “Dynamic Router” oraz “Point to Point Channel”
Scatter and Gather aka Fork and Join
W tym scenariuszu pojedyncze zapytanie zostanie rozdzielone na mniejsze zadania, następnie realizacja
tych zadań zostanie wydelegowana do innych komponentów/punktów integracji, a następnie rezultaty
zostaną skonsolidowane przy pomocy Spring Integration. W tym scenariuszu zostanie przedstawione
praktyczne wykorzystanie wzorców “Multicast Router”,”Splitter” i “Aggregator”.
Result Cache
W tym przypadku, “load balancer” zostanie rozbudowany o mechanizm przechowywania rezultatów, w celu
optymalizacji obciążenia systemu. Rezultaty zapytań będą przechowywane w pamięci, dzięki zastosowaniu
wzorca “Wire Tap”.
Pipe and Filter
Ten scenariusz zaprezentuje metody tworzenie zaawansowanych integracji, poprzez kompozycję
poszczególnych etapów przetwarzania w łańcuchy wywołań punktów integracji. Przedstawiony scenariusz
będzie oparty o wykorzystanie wzorca “Routing Slip” oraz szerokiego wachlarza wzorców z kategorii
“Message Transformer”.
Shared Space
Spring Integration zostanie wykorzystany do realizacji tzw. “blackboard model”, gdzie wszyscy uczestnicy
integracji mają dostęp do współdzielonej przestrzeni, w której przechowywane są zadania jak i cząstkowe
rezultaty. Dzięki wykorzystaniu wzorca “Publish Subscribe Channel” oraz JMS API, wykonywane zadań i
dostęp do cząstkowych rezultatów zostanie udostępnione wszystkim uczestnikom integracji.
Execution Orchestrator
W tym scenariuszu, zostaną przedstawione techniki orkiestracji usług, poprzez stworzenie usługi sieciowej
(REST), która będzie dostarczać nowej funkcjonalności biznesowej wykorzystując usługi już istniejące w
innych systemach. Utworzona integracja będzie implementowała logikę biznesową poprzez wywołanie
dostępnych punktów integracji oraz transformacje formatu wiadomości.
Protocol Adapter
W tym przypadku wykorzystamy Spring Integration do zbudowania adaptacji wielu protokołów. Scenariusz
przewiduje sytuację gdzie ta sama funkcjonalność biznesowa jest realizowana przez wiele systemów,
poprzez różne protokoły i formaty wiadomości. Celem tego scenariusza jest stworzenie wspólnego punktu
dostępu, korzystającego z wspólnego protokołu i formatu wiadomości. Przy okazji zostanie przedstawione
wykorzystanie wzorców “Content based router” i “Content Enricher”