Automatyzacja procesów biznesowych Andrzej Sobecki ESB Enterprise service bus
Plan prezentacji Zdefiniowanie problemu Możliwe rozwiązania Cechy ESB JBI Normalizacja wiadomości w JBI Agile ESB Apache ServiceMix Apache ServiceMix vs OpenESB
Zdefiniowanie problemu Aplikacje tworzone w różnych technologiach Niekompatybilne formaty danych Niekompatybilne protokoły komunikacyjne Konieczność komunikacji z zewnętrznymi systemami Problem integracji Problem dotyczy współpracujących podmiotów wcześniej niezdefiniowanych
Możliwe rozwiązania Przepisywanie aplikacji?? Użycie istniejących rozwiązań integracyjnych Enterprise Application Integration B2B SOA i WS
Możliwe rozwiązania Problemy z ich użyciem: Brak rozwiązania dla wszystkich problemów integracyjnych Czasochłonne wdrożenie (SOA, SAP) Brak możliwości rozwoju (Microsoft CRM) Kosztowne (SAP) Nieobjęte standardem
Enterprise Service Bus Szyna komunikacyjna rozwiązująca problemy integracji Dostarcza mechanizmy: Rozproszonej komunikacji (distributed communication) Inteligentnego rutingu (IR inteligent routing) Bezpieczeństwa (security) Dynamicznej konwersji danych (dynamic data conversion) Wystarczający jest jeden interfejs wystawiony do komunikacji z szyną ESB
ESB
Cechy ESB Cechy integracji z wykorzystaniem ESB: Rozproszona Oparta na komunikacji (loosely-coupled) Oparta na otwartych standardach Niezawodna Funkcje ESB: Ruting wiadomości Transformacje wiadomości Możliwość podglądu wiadomości rutingu kontekstoego
Cechy ESB Użycie XML zapewnia elastyczność Infrastruktura jest odporna na zmiany aplikacji i procedur biznesowych Aplikacje nie muszą dostosowywać się do określonego formatu Dane nie muszą być przesyłane do centralnego miejsca w celu transformacji
Cechy ESB Aplikacje podłączone do szyny traktowane są jako usługi Umożliwia przechodzenie do SOA minimalne ryzyko, niewielkie inwestycje
Działanie ESB - adaptery Obsługa aplikacji przez użycie adapterów file-drop lub adapterów specyficznych dla app Adapter file-drop komunikuje się z szyną za pomocą wiadomości XML Adapter file-drop widoczny jest jako usługa sterowana wiadomościami Komunikacja z aplikacją poprzez transmisję nieformatowanych plików
Działanie ESB - adaptery Adapter aplikacyjny dostarczany przez dostawców niezależnych Zapewnia połączenie interfejsu usługi sterowanej wiadomościami z aplikacją docelową
Działanie ESB - routing Wszystkie usługi są opisane w jednym katalogu Projektant dołącza aplikację wyszukując usługę w katalogu W ESB wykorzystywany jest inteligentny routing Tworzony jest przewodnik XML, określający ścieżkę usług, przez które przechodzi wiadomość
Działanie ESB - routing Ruting wiadomości może być zależny od wydarzeń lub od treści wiadomości Opis reguł i kombinacje usług można opisać za pomocą wyrażenia XPATH i JS
ESB przykład działania
Java Business Integration Podstawa utworzenia ESB JBI Standard dla języka Java Definiuje architekturę środowiska uruchomieniowego dla pluginów Przyjęty z MEP (Message Exchange Patterns) z WSDL 2.0 Komunikaty przekazywane są przez komponent NMR (router) Normalized Message Router
JBI
JBI Binding Components (komp. łączące) Użycie zdalnych protokołów komunikacji Możliwość konwersji do formatu znormalizowanego i odwrotnie HTTP, HTTPS, JMX, FTP, SMTP, XMPP, SNMP, RMI, CORBA Service Engine (komp. przetwarzające) Implementacja logiki wewnątrz JBI Komunikacja tylko przez NMR Możliwość definiowania reguł, użycia BPEL, silnik XSLT
JBI - Wiadomości Normalizacja wiadomości wg JBI: Dane (XML) Załączniki (Binarny) Security.subject (javax.security.auth.subject) Właściwości ( <klucz,wartość> )
JBI Zalety Spójny standard wymiany informacji Elastyczna definicja szyny danych NMR Wady Duże problemy z ładowaniem klas Skomplikowana struktura Komponenty są skomplikowane pod względem tworzenia i obsługi
Agile ESB Szyna ESB realizowana zgodnie z JBI w ramach Apache Software Foundation: Oparta na standardach Elestyczna (komponent zewnętrzny) Niezawodna (trwałość wiadomości, odporność na awarie) Szeroka dostępność metod komunikacji Połączenie SOA i EDA (Event Driven Architecture) Apache ServiceMix
Apache ServiceMix Cechy Łatwy w użyciu w innych aplikacjach Wbudowane wsparcie dla Springa (IoC) ActiveMQ zapewnienie niezawodności dla wiadomości, wsparcie klasteryzacji Integracja z serwerami J2EE (Apache Geronimo, Jboss, JOnaS) QoS gwarancja wiadomości, obsługa awarii, transakcje Konfiguracja przez Apache XBeans, maven
Apache ServiceMix architektura
Porównanie OpenESB / ApacheServiceMix OpenESB Apache ServiceMix Mnogość komponentów Dużo Dużo Sprint Brak Jest Narzędzia dodatkowe Dużo Brak Wydajność Dobra Dobra Dokumentacja B. dobra Dobra Obszar działania Pamięć JMS, Persistent, Pamięć Orkiestracja BPEL, JDBC EIP, Camel, BPEL, JMS, JDBC