|
Zdravím všechny, zkouším vytvořit komponentu, která by umožňovala dynamicky propojovat různé systémy. Prakticky se mi jedná o realizaci integračního patternu "Dynamic Recipient List". ![]() Principiálně by to mělo fungovat tak, že není dopředu znám seznam příjemců, různé systémy se mohou zaregistrovat prostřednictvím nějakého API k odběru určitých typů zpráv. V rámci registrace jsem chtěl vytvořit dynamicky jejich odběrný kanál (frontu) a ten Dynamic Recipient List Router by podle typu zprávy, která mu přijde na vstupu, poslal kopii do všech registrovaných kanálů, které mají o tento typ zprávy zájem (tedy na základě té registrace). Chtěl jsem použít řešení založené na Spring Integration + nějaké JMS, asi ActiveMQ. Ale narážím na tu dynamičnost řešení - jak vytvořit Spring Channel podle nějakého seznamu registrovaných (třeba z databáze). Připadá mi, že Spring má všechno staticky - vše nakonfigurovat a propojit v XML a pak nastartovat aplikaci. Ano mohl bych zkusit zavádět beany (Channel, Router, ...) do Spring Contextu za chodu, ale to se mi moc nezdá - nevím, jak pak Spring rozdýchá procesy jako injection, postprocesing, AOP a ostatní zpracování koleminicializace bean, které probíhá při jeho startování. Nebo myslíte, že Springu nebude vadit,když mu za chodu aplikace zadefinuji nějaké další beany ? Ani nevím, jestli na to má nějaké API,něco ve smyslu ApplicationContext.createBean(bean.class,"beanID",properties); Ještě jsem zvažoval omrknout Apache Camel, nemám s ním zkušenost. Našel jsem, že lze psát pomocí jeho DSL kódy jako from("jms:xmlOrders").recipientList(header("recipients")); Ale nejsem si jistý, zda toto lze dělat i za chodu aplikace a nebo to je jen jiný zápis statické XML configurace, která se provede při startu, navytváří se fronty a pospojují se těmi transformatory a routery. To bych pak na tom byl stejně jako s tím Springem. Co byste použili vy na řešení takové úlohy ? Rád bych se vyhnul objevování kola - tedy že bych si na to musel napsat vlastní integrační framework. Zároveň si myslím, že jde v principu o relativně jednoduchou úlohu a tak řešení typu použít ESB mi připadne jako kanón na vrabce. Google mi zatím moc nepomohl, nebo jen nevím, jak se ho správně zeptat :o). V této oblasti nemám moc zkušeností, začínám se s tím seznamovat, tak budu rád za každý váš tip, radu nebo zkušenost. Přeji úspěšný den Petr |
- Integrace - Dynamic Recipient List Pattern Petr Novak
- Re: Integrace - Dynamic Recipient List Pattern Vlastimil Elias
- Re: Integrace - Dynamic Recipient List Pattern Zdeněk Troníček
- Re: Integrace - Dynamic Recipient List Pattern Petr Novak
- Re: Integrace - Dynamic Recipient List Pat... Ondra Medek

