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”