Wzorce EIP z wykorzystaniem Spring Integration

Najnowsze aplikacje nie powstają już dziś ani w wyizolowanych środowiskach, ani na potrzeby „zamkniętych” systemów. Dzięki rozwojowi Internetu mamy dostęp do nieprzebranej ilości danych i dostarczanych usług. Narodziny idei „programmable web” wymusiły powstanie narzędzi i metod służących do 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ć „zamknięte” niegdyś dla świata zewnętrznego systemy.

Celem szkolenia jest zaznajomienie Was z wzorcami EIP. Przykładem posłuży nam Spring Integration – projekt rozwijany przez społeczność Spring Source, który stanowi naturalne rozszerzenie znanej i popularnej platformy Spring Framework. Podczas szkolenia przedstawimy metody realizacji wybranych scenariuszy, w oparciu o wzorce EIP, przy pomocy Spring Integration. Dodatkowym atutem szkolenia jest fakt, że każde omówione i przeanalizowane studium przypadku powstało w oparciu o rzeczywiste projekty, zrealizowane przez trenerów.

Przypadki użycia realizowane w ramach szkolenia „Wzorce Enterprise Integration Patterns z wykorzystaniem Spring Integration”

Load Balancer

W tym przypadku przedstawimy 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” i „sticky session”. Dla pełnego wykorzystania możliwości Spring Integration, prezentowany scenariusz zrealizujemy w oparciu o protokół synchroniczny i kolejki wiadomości przechowywane w pamięci operacyjnej. Przedstawione tu zostaną między 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. Realizację tych zadań wydelegujemy do innych komponentów/punktów integracji, rezultaty czego zostaną skonsolidowane przy pomocy Spring Integration. W tym scenariuszu przedstawimy 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

Scenariusz „Pipe and Filter” prezentuje metody tworzenia 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 wykorzystamy do realizacji tzw. „blackboard model”, gdzie wszyscy uczestnicy integracji mają dostęp do współdzielonej przestrzeni, w której przechowywane są zarówno zadania, jak i cząstkowe rezultaty. Dzięki wykorzystaniu wzorca „Publish Subscribe Channel” oraz JMS API, wykonywanie zadań oraz dostęp do cząstkowych rezultatów zostaną udostępnione wszystkim uczestnikom integracji.

Execution Orchestrator

W scenariuszu Execution Orchestrator zostaną przedstawione techniki orkiestracji usług poprzez stworzenie usługi sieciowej (REST). Ta będzie dostarczać nowej funkcjonalności biznesowej z wykorzystaniem usług już istniejących 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ę, w której ta sama funkcjonalność biznesowa jest realizowana przez wiele systemów, poprzez różne protokoły i formaty wiadomości. Celem scenariusza jest stworzenie wspólnego punktu dostępu korzystającego ze wspólnego protokołu i formatu wiadomości. Przy okazji przedstawimy wykorzystanie wzorców „Content based router” i „Content Enricher”.

Zapytaj o szkolenie