Integrace

Dead Letter Channel nebo Invalid Message Channel? Toť otázka

Řešil jsem teď zajímavou filozofickou otázku. Potřeboval jsem v rámci integrace někam odkládat JMS zprávy, které se nepodařilo aplikačně zpracovat. Rozhodl jsem se je odkládat do speciální fronty, kterou jsem nazval Dead Letter Queue. Což je termín, který se používá na platformě WebSphere MQ. Naopak moje platforma je SOA Suite, která žádný podobný termín nemá (a řekl bych, že nejen termín, ale ani koncept). Své řešení jsem hrdě (a úspěšně) představil v týmu a argumentačně ho podpořil tvrzením, že jde o vzor z Enterprise Integration Patterns (EIP).

ActiveMQ, messaging podle Apache

Poslední dobou jsem se zabýval integračním projektem, který používal komerční technologii od IBM - WebSphere Messaage Broker, který jako infrastrukturu využívá WebSphere MQ. Abych měl, jako solution architekt, k tomuto řešení nějakou alternativu, rozhodl jsem se nastudovat open source messagingovou platformu ActiveMQ od Apache Software Foundation (ASF). ActiveMQ je messagingový server postavený nad specifikací Java Message Service (JMS), a který ve spojení i frameworkem Apache Camel implementuje Enterprise Integration Patterns (EIP). Obecné vlastnosti ActiveMQ se dají shrnout do následujících bodů:

WebSphere MQ, interakce s Javou

Pokud se chceme k WebShere MQ (WMQ) připojit z Javy, máme k dispozici dvě možnosti - buď použít WMQ třídy pro Javu, nebo je možné komunikovat pomocí Java Message Service (JMS). Obě možnosti mají svoje pro a proti, takže krátké shrnutí v pár bodech: WMQ třídy pro Javu:zapouzdřují Message Queue Interface (MQI),poskytují plnou sadu funkčností WMQ,je to proprietární řešení, ale jednodušší k používání, než JMS.(WMQ třídy pro) JMS:Java “industry standard” pro messaging,je součástí Java EE specifikace (a tedy součástí většiny (Java) aplikačních serverů),umožňuje spravovat administrované objekty (connection factory, fronty ad.

WebSphere MQ, vzdálené posílání zpráv

Chystám teď do firmy takovou kumulovanou prezentaci o Enterprise Integration Patterns (EIP), WebSphere MQ (WMQ) a WebSphere Message Brokeru (WMB), tak bych se chtěl postupně podělit o pár konceptů. První z nich je koncept remote messaging na WMQ. Následující příklad předpokládá již hotovou instalaci WMQ a je zaměřen na komunikaci dvou instancí WMQ - jedna je na lokálním a jedna na vzdáleném prostředí. Pro vyzkoušení, nebo prezentaci je možné použít i jenom jedinou, lokální instanci.

Enterprise integrace, messaging

Dostal jsem se jako teamleader na integrační projekt, založený na proprietárním řešení/technologii. To proprietární (o kterém nechci psát) je nicméně postaveno nad WebSphere Message Brokerem (WMB). Právě kvůli WMB, jsem se pustil do čtení výborné knížky Enterprise Integration Patterns (EIP). A jelikož je pro mne jak WMB, tak EIP nové, rozhodl jsem se o tom napsat (v rámci studia) pár článečků. Takže… Základní koncepty messagingu WMB je, jak napovídá název, založený na messagingu, takže se prvně podíváme, co to ten messaging je a na čem jsou postaveny jeho základy (inspirováno a citováno z EIP).