integracja systemów it / enterprise service bus / projekt mule
DESCRIPTION
Prezentacja z przedmiotu KOR, PJWSTK 2007TRANSCRIPT
Integracja systemów IT /Enterprise Service Bus /
Projekt Mule
Adam Siemion
Plan prezentacji
Integracja systemów IT Enterprise Integration Patterns Enterprise Service Bus Projekt Mule Przykład
Integracja ?
Przedsiębiorstwa posiadają setki systemów, napisanych w różnych językach programowania, działających na różnych systemach operacyjnych, wymagających różnych systemów zewnętrznych.
Nie ma aplikacji, która obsługuje całą firmę. Możliwość wyboru aplikacji, która lepiej
realizuje pewną funkcjonalność.
Loose coupling
Minimalizacja założeń o uczestnikach Wydajność kontra elastyczność Trudne integracyjne pytania RPC:
– Co jeśli serwis jest niedostępny ?– Jak długo czekać ?– Co jeśli sygnatura metody się zmieniła ?– Jak uchronić się przed „podsłuchiwaniem” ?– Co jeśli wywołanie metody się nie uda, ponowić
próbę ?
Style integracji
File transfer Wspólna baza danych Remote Procedure Invocation Messaging
System wykorzystujący komunikaty
Enterprise Integration Patterns
Kanał wiadomości Komunikat Message endpoint Ruter komunikatów Translator komunikatów Splitter i Aggregator Content Enricher ...
Komunikat
Kanał wiadomości
Message endpoint
Ruter komunikatów
Translator komunikatów
Enterprise Service Bus
Rozproszona architektura do integracji oparta o service-oriented approach.
Zbiór kontenerów usług, połączonych niezawodną szyną do przesyłania komunikatów (messaging bus).
Kontenery usług wykorzystują standardy oparte na XML.
ESB udostępnia usługi transformacji i rutowania komunikatów oraz możliwość centralnego zarządzania całym rozproszonym systemem.
Kontenery usług ESB (Sonic ESB)
Kontenery usług ESB (Sonic ESB)
Sonic Orchestration Server– Rozszerza mechanizm inteligentnego rutowania o możliwość
modelowania, automatyzacji i zarządzania złożonymi stanowymi procesami biznesowymi
Sonic XML Server– Przetwarzanie dokumentów XML– Operacyjny cache– Usługa agregacji
Sonic Database Service– Dostęp do bazy danych jak do usługi (wykonywanie zapytań,
updateów i składowanych procedur)– Automatyczne tworzenie zapytań SQL na podstawie
przychodzącego komunikatu oraz transformacja rezultatów do komunikatu.
Sonic Workbench
Projekt Mule
Open Source Enterprise Service Bus (ESB)– Routing, transformation, security, WS support,
logging
Wspierane protokoły i technologie:– JMS, VM, JDBC, TCP, UDP, Multicast, HTTP,
Servlet, Email, File, XMPP, FTP, EJB, VFS ...– BPEL, JBI, Axis, Spring, JSR-223 Scripting, JBoss
Więcej o Mule
Rozpoczęty w 2003 roku Zbudowany w oparciu o doświadczenia z
dużego finansowego projektu ESB 10 deweloperów Używany przez: HP, Sony, Deutsche Bank,
CitiBank and Atos Origin Wsparcie komercyjne oferowane przez firmę
SymphonySoft
Enterprise Service Bus (Mule)
Architektura Mule
Endpoints
Używane do łączenia komponentów i zewnętrznych systemów
<mule-descriptor name=“Component name"inboundEndpoint="jms://in.queue"outboundEndpoint="vm://internal.queue"implementation=“org.jp.Concrete"/>
Transformers
Konwertują dane pomiędzy formatami
<transformer name="LoanQuoteRequestToCreditProfileArgs" className="org.mule.samples....LoanQuoteRequestToCreditProfileArgs"/>
<endpoint remoteSync="true" transformers="LoanQuoteRequestToCreditProfileArgs„responseTransformers="CreditProfileXmlToCreditProfile" address="CreditAgency"/>
Rutery
Kontrolują w jaki sposób zdarzenia są odbierane i wysyłane przez system.
Inbound: SelectiveConsumer, Aggregator Outbound: FilteringOutboundRouter,
RecipientList
<router className="org.mule.routing.outbound.ChainingRouter"> <endpoint remoteSync="true" address="LenderService"/> <endpoint address="BankingGateway"/>
</router>
Obsługa błędów
Obsługa wyjątków– Definicje na poziomie komponentów i połączeń– Możliwość rozróżniania typu wyjątku
Strategie połączeń– Kontroluje jak kontektory łączą się do zasobów– Możliwość konfiguracji polityki ponowień– Powiadamianie o nieudanych połączeniach– Możliwość zmiany ścieżek routowania w przypadku
nieudanych połączeń
Loan Broker
Klient pyta różne banki o najlepszą ofertę kredytową.
Bank pyta klienta o jego dane i analizuje zdolność kredytową klienta.
Każdy z banków odsyła ofertę. Klient wybiera najlepszą dla niego ofertę.
Loan Broker Design
Opis komunikacji 1/2
Klient wysyła żądanie do LoanBroker – komunikat CustomerQuoteRequest.
LoanBroker tworzy komunikat LoanQuoteRequest (JMS) i przesyła do Credit Agency Gateway.
Gateway odczytuje komunikat i komunikuje się z Credit Agency Service (EJB), odpowiedź – CreditProfile dołącza do LoanQuoteRequest i przesyła do Lender Gateway.
Gateway komunikuje się z Lender Service, odpowiedź przekazuje do Banking Gateway.
Opis komunikacji 2/2
Gateway odbiera komunikat i przesyła go do jednego lub kilku banków.
Każdy z banków dołącza swoją odpowiedź i przesyła komunikat do Loan Brokera (na adres ReplyTo).
Loan Broker odczytuje komunikaty, wybiera bank o najniższym oprocentowaniu kredytu i przesyła odpowiedź do klienta.
Kompontenty 1/2
Loan Broker Service (HTTP/REST)– Odbiera LoanRequests– Agreguje LoanQuotes w odpowiedź na żądanie
klienta
Credit Agency Service (EJB)– Zewnętrzna usługa sprawdzająca zdolność
kredytową klienta
Credit Agency Gateway (JMS)– Przekazuje dane między szyną komunikatów a
Credit Agency Service
Kompontenty 2/2
Lender Service (VM/POJO)– Na podstawie danych o kliencie i kredycie wybierze
banki do których skierować żądanie LoanQuote.
Lender Gateway (JMS)– Przekazuje dane między szyną komunikatów a
Lender Service.
Banking Gateway (JMS, SOAP)– Przekazuje żądania LoanRequest do jednego lub
wielu banków.