Autobus usług korporacyjnych
Magistrala usług przedsiębiorstwa ( ESB ) implementuje system komunikacji między wzajemnie oddziałującymi aplikacjami w architekturze zorientowanej na usługi (SOA). Reprezentuje architekturę oprogramowania dla przetwarzania rozproszonego i jest specjalnym wariantem bardziej ogólnego modelu klient-serwer , w którym dowolna aplikacja może zachowywać się jak serwer lub klient. ESB promuje zwinność i elastyczność w odniesieniu do komunikacji protokołów wysokiego poziomu między aplikacjami. Jego głównym zastosowaniem jest integracja aplikacji korporacyjnych (EAI) heterogenicznych i złożonych krajobrazów usług.
Architektura
Koncepcja magistrali usług przedsiębiorstwa jest analogiczna do koncepcji magistrali występującej w architekturze sprzętu komputerowego w połączeniu z modułową i współbieżną konstrukcją wysokowydajnych komputerowych systemów operacyjnych. Motywacją do opracowania architektury było znalezienie standardowej, ustrukturyzowanej koncepcji ogólnego przeznaczenia do opisu implementacji luźno powiązanych komponentów oprogramowania (zwanych usługami ), które mają być niezależnie wdrażane, uruchamiane, heterogeniczne i odmienne w sieci. ESB jest również powszechnym wzorcem implementacji architektury zorientowanej na usługi , w tym wewnętrznie przyjętego projektu sieci World Wide Web .
Nie istnieją żadne globalne standardy dotyczące koncepcji lub implementacji magistrali usług przedsiębiorstwa. Większość dostawców oprogramowania pośredniego zorientowanego na komunikaty przyjęło koncepcję magistrali usług przedsiębiorstwa jako de facto standard architektury zorientowanej na usługi. Implementacje ESB wykorzystują sterowane zdarzeniami i oparte na standardach oprogramowanie pośredniczące zorientowane na komunikaty w połączeniu z kolejkami komunikatów jako ramami technologicznymi. Jednak niektórzy producenci oprogramowania ponownie oznaczają istniejące oprogramowanie pośrednie i rozwiązania komunikacyjne jako ESB bez przyjęcia kluczowego aspektu koncepcji magistrali.
Funkcje
ESB stosuje koncepcję projektową nowoczesnych systemów operacyjnych do niezależnych usług działających w sieciach różnych i niezależnych komputerów. Podobnie jak współbieżne systemy operacyjne, magistrala ESB zapewnia podstawowe usługi oprócz przyjmowania, tłumaczenia i kierowania żądań klientów do odpowiednich usług odpowiadających.
Do podstawowych obowiązków ESB należą:
- Kieruj wiadomości między usługami
- Monitoruj i kontroluj routing wymiany komunikatów między usługami
- Rozwiąż rywalizację między komunikującymi się komponentami usługi
- Kontroluj wdrażanie i wersjonowanie usług
- Wykorzystanie usług redundantnych przez Marshala
- Świadczenie usług podstawowych, takich jak obsługa zdarzeń, transformacja i mapowanie danych, kolejkowanie i sekwencjonowanie komunikatów i zdarzeń, bezpieczeństwo lub obsługa wyjątków , konwersja protokołów i egzekwowanie odpowiedniej jakości usług komunikacyjnych.
Historia
Pierwsze opublikowane użycie terminu „szyna usług przedsiębiorstwa” przypisuje się Royowi W. Schulte z Gartner Group 2002 oraz książce The Enterprise Service Bus autorstwa Davida Chappella. Chociaż wiele firm przypisuje sobie ukucie tego wyrażenia, w wywiadzie Schulte powiedział, że po raz pierwszy usłyszał to wyrażenie od firmy o nazwie Candle, a następnie powiedział: „Najbardziej bezpośrednim przodkiem ESB był romski produkt Candle od 1998”, którego głównym architektem i posiadaczem wniosku patentowego był Gary Aven. Roma została po raz pierwszy sprzedana w 1998 roku, co czyni ją pierwszą komercyjną ESB na rynku, ale ten produkt Sonic z 2002 roku był również jednym z pierwszych ESB na rynku.
- Usługa - oznacza nieiteracyjne i autonomicznie wykonujące się programy, które komunikują się z innymi usługami poprzez wymianę komunikatów
- Magistrala - jest używana analogicznie do magistrali sprzętowej komputera
- Enterprise - koncepcja została pierwotnie wymyślona w celu zmniejszenia złożoności integracji aplikacji korporacyjnych w przedsiębiorstwie; ograniczenie stało się nieaktualne, ponieważ współczesna komunikacja internetowa nie ogranicza się już do podmiotu korporacyjnego
ESB jako oprogramowanie
ESB jest zaimplementowana w oprogramowaniu, które działa między aplikacjami biznesowymi i umożliwia komunikację między nimi. Idealnie byłoby, gdyby magistrala ESB była w stanie zastąpić cały bezpośredni kontakt z aplikacjami na magistrali, tak aby cała komunikacja odbywała się za pośrednictwem magistrali ESB. Aby osiągnąć ten cel, magistrala ESB musi zawierać w zrozumiały sposób funkcjonalność oferowaną przez jej aplikacje składowe. Zwykle odbywa się to za pomocą korporacyjnego modelu komunikatów . Model komunikatów definiuje standardowy zestaw komunikatów przesyłanych i odbieranych przez ESB. Gdy magistrala ESB odbiera komunikat, kieruje go do odpowiedniej aplikacji. Często, ponieważ ta aplikacja ewoluowała bez tego samego modelu komunikatów, magistrala ESB musi przekształcić komunikat w format, który aplikacja może zinterpretować. Adapter programowy spełnia zadanie dokonywania tych przekształceń, analogicznie do adaptera fizycznego .
ESB polegają na dokładnym zbudowaniu korporacyjnego modelu komunikatów i odpowiednim zaprojektowaniu funkcjonalności oferowanych przez aplikacje. Jeśli model komunikatów nie obejmuje całkowicie funkcjonalności aplikacji, inne aplikacje, które wymagają tej funkcjonalności, mogą być zmuszone do ominięcia magistrali i bezpośredniego wywoływania niedopasowanych aplikacji. Takie postępowanie narusza zasady modelu ESB i neguje wiele zalet korzystania z tej architektury.
Piękno magistrali ESB polega na jej niezależnej od platformy naturze i możliwości integracji z czymkolwiek i w każdych warunkach. Ważne jest, aby związanych z zarządzaniem cyklem życia aplikacji naprawdę stosowali wszystkie możliwości ESB w swoich produktach integracyjnych, jednocześnie wdrażając architekturę SOA . Dlatego wyzwania i możliwości dla EAI polegają na zapewnieniu rozwiązania integracyjnego, które jest tanie, łatwe w konfiguracji, intuicyjne, przyjazne dla użytkownika i otwarte na dowolne narzędzia wybrane przez klientów.
Charakterystyka
Kategoria | Funkcje |
---|---|
Wezwanie | obsługa synchronicznych i asynchronicznych protokołów transportowych, mapowanie usług (lokalizacja i wiązanie) |
Rozgromienie | adresowalność, routing statyczny/deterministyczny, routing oparty na treści, routing oparty na regułach, routing oparty na zasadach |
Mediacja | adaptery, transformacja protokołów, mapowanie usług |
Wiadomości | przetwarzanie wiadomości, transformacja wiadomości i ulepszanie wiadomości |
Choreografia procesu ¹ | wdrażanie złożonych procesów biznesowych |
Orkiestracja usług ² | koordynacja wielu usług wdrożeniowych eksponowanych jako pojedyncza, zagregowana usługa |
Złożone przetwarzanie zdarzeń | interpretacja zdarzeń, korelacja, dopasowywanie wzorców |
Inna jakość usług | bezpieczeństwo (szyfrowanie i podpisywanie), niezawodne dostarczanie, zarządzanie transakcjami |
Kierownictwo | monitorowanie, audyt, rejestrowanie, pomiary, konsola administracyjna, BAM (BAM nie jest funkcją zarządzania, innymi słowy ESB nie reaguje na określony próg. Jest to funkcja usługi biznesowej udostępniana użytkownikom końcowym). |
Agnostycyzm | ogólny agnostycyzm wobec systemów operacyjnych i języków programowania; na przykład powinien umożliwiać interoperacyjność między aplikacjami Java i .NET |
Konwersja protokołu | kompleksowa obsługa standardów obsługi protokołów komunikacji lokalnej |
Wzorce wymiany wiadomości | obsługa różnych MEP ( Message Exchange Patterns ) (na przykład: synchroniczne żądanie/odpowiedź, asynchroniczne żądanie/odpowiedź, wyślij i zapomnij, publikuj/subskrybuj) |
Adaptery | adaptery wspierające integrację ze starszymi systemami, ewentualnie w oparciu o standardy takie jak JCA |
Bezpieczeństwo | znormalizowany model bezpieczeństwa do autoryzacji, uwierzytelniania i audytu użycia ESB |
Transformacja | ułatwienie transformacji formatów i wartości danych, w tym usług transformacji (często przez XSLT lub XQuery ) pomiędzy formatami aplikacji wysyłającej i odbierającej |
Walidacja | walidacja względem schematów wysyłania i odbierania komunikatów |
Zarządzanie | umiejętność jednolitego stosowania reguł biznesowych |
Wzbogacenie | wzbogacanie wiadomości z innych źródeł |
Podziel i połącz | dzielenie i łączenie wielu komunikatów oraz obsługa wyjątków |
Abstrakcja | zapewnienie ujednoliconej abstrakcji na wielu warstwach |
Routing i transformacja | warunkowe kierowanie lub przekształcanie wiadomości w oparciu o niescentralizowaną politykę (bez potrzeby centralnego silnika reguł) |
Usługi towarowe | udostępnianie powszechnie używanych funkcji jako usług wspólnych w zależności od kontekstu |
¹ Niektórzy nie traktują choreografii procesu jako funkcji ESB. Na przykład patrz M. Richards.
² Podczas gdy choreografia procesów wspiera wdrażanie złożonych procesów biznesowych, które wymagają koordynacji wielu usług biznesowych (zwykle przy użyciu BPEL ), orkiestracja usług umożliwia koordynację wielu usług wdrożeniowych (najlepiej prezentowanych jako usługa zagregowana) w celu obsługi indywidualnych żądań.
Rozwiązania te często koncentrują się na funkcjach ESB niskiego poziomu, takich jak łączność, routing i transformacja, i wymagają kodowania lub pisania skryptów w celu zaimplementowania orkiestracji. Deweloperzy działający na poziomie projektowym lub taktycznym, np. po prostu próbując rozwiązać problem, często skłaniają się ku lekkim technologiom magistrali usług, ale często istnieje ciągłe napięcie między tymi inicjatywami a architekturą korporacyjną, której celem jest optymalizacja infrastruktury w wielu projektach.
Jeśli broker komunikatów, oprogramowanie ESB, tłumaczy komunikat z jednego formatu na inny, to tak jak w przypadku każdego tłumaczenia, pojawia się kwestia semantyki komunikatu. Na przykład rekord może zostać przetłumaczony z JSON na XML, ale ten sam zestaw pól może być różnie interpretowany przez różne aplikacje, szczególnie w przypadku różnych przypadków narożnych, które zwykle są znane tylko programistom posiadającym duże doświadczenie z aplikacją który jest podłączony do ESB. W przypadku znanych przypadków narożnych liczba testów obejmujących wszystkie przypadki narożne rośnie wykładniczo z każdą aplikacją podłączoną do magistrali ESB, ponieważ każda aplikacja podłączona do magistrali ESB musi być testowana z każdą inną aplikacją podłączoną do magistrali ESB.
Kluczowe korzyści
- Możliwość skalowania od rozwiązań punktowych po wdrożenia w całym przedsiębiorstwie (magistrala rozproszona)
- Więcej konfiguracji zamiast kodowania integracji
- Brak centralnego silnika reguł, brak centralnego brokera
- Łatwy system podłączania i wyjmowania oraz luźno łączący
Kluczowe wady
- Wolniejsza prędkość komunikacji, szczególnie w przypadku usług już kompatybilnych
- Pojedynczy punkt awarii może spowodować przerwanie całej komunikacji w przedsiębiorstwie
- Wysoka złożoność konfiguracji i konserwacji
Produkty
Godne uwagi produkty to:
- Prawnie zastrzeżony
- Candle's Roma ESB - kupiony przez IBM i stał się WebSphere ESB
- IBM App Connect, dawniej IBM Integration Bus i IBM WebSphere ESB
- Zespół InterSystems
- Konstruktorzy informacji Menedżer serwisu iWay
- Magistrala usług Microsoft Azure
- Serwer Microsoft BizTalk
- muł ESB
- Oracle Enterprise Service Bus
- Progress Software Sonic ESB (przejęty przez Trilogy )
- Integracja procesów SAP
- Oprogramowanie TIBCO ActiveMatrix BusinessWorks
- webMethods (przejęta przez Software AG )
- Sonic ESB firmy Aurea
- Widok pojedynczych danych XIATech
- Oprogramowanie typu open source
Zobacz też
- Wzorce integracji w przedsiębiorstwie
- Wiadomości sterowane zdarzeniami
- Integracja biznesowa Java
- Zarządzanie procesami biznesowymi
- Uniwersalna platforma integracyjna
- Integracja aplikacji korporacyjnych
- Dostawca usług biznesowych
- Oprogramowanie pośredniczące zorientowane na komunikaty
- Złożone przetwarzanie zdarzeń
- Przetwarzanie strumienia zdarzeń
- Programowanie sterowane zdarzeniami
- Porównanie oprogramowania do integracji biznesowej
- Porównanie silników BPEL
- Porównanie silników BPMN 2.0
- Aplikacja złożona
- SOA sterowana zdarzeniami
- Platforma integracyjna jako usługa (iPaaS)
Dalsza lektura
- David Chappell, „Enterprise Service Bus” (O'Reilly: czerwiec 2004, ISBN 0-596-00675-6 )
- Binildas A. Christudas, „Integracja biznesowa Java zorientowana na usługi” (Packt Publishers: luty 2008, ISBN 1-84719-440-0 ; ISBN 978-1-84719-440-4 )
- Michael Bell, „Modelowanie zorientowane na usługi: analiza, projektowanie i architektura usług” (2008 Wiley & Sons, ISBN 978-0-470-14111-3 )
Linki zewnętrzne
- „Trwała koncepcja czy najnowsze modne hasło?” (Nicolas Farges, 2003)
- Autobusy usług dla przedsiębiorstw wyruszają w drogę: Infoworld Test Center (22 lipca 2005)
- JSR-208: Java Business Integration (sierpień 2005)
- Rola magistrali usług przedsiębiorstwa (InfoQ - prezentacja wideo) (23 października 2006)
- ESB Roundup Part One: Definiowanie ESB (InfoQ) (13 lipca 2006)
- Podsumowanie ESB, część druga: przypadki użycia (InfoQ) (5 lipca 2006)
- „Tkanina usług — cienkie tkaniny dla systemów nowej ery” (Binildas A. Christudas, 2007)
- „ESB w 2007: autobus Open Source do SOA” (Dennis Byron, 20 września 2007)
- Zbiorcze usługi w ServiceMix JBI ESB: PACKT Publishers (Binildas A. Christudas, 30 listopada 2007)
- Alternatywy topologii ESB (InfoQ, A. Louis, 23 maja 2008)
- Nowe podejście do magistrali ESB: budowanie prostej, bezpiecznej i skalowalnej magistrali usług z bramą SOA (Computerworld, J. Ryan, 2011)
- Ludwik, Adrien; Marc Dutoo (2010-07-02). „Wybór między routingiem a orkiestracją w ESB” . InfoQ . Źródło 2009-07-02 .
- Enterprise Service Bus, ponownie zbadany (programista IBM Works, Greg Flurry i Kim Clark, maj 2011)