Luboš Račanský
24.1.2011

SOA, EAI, ESB – Mule nebo Spring Integration



Tohle IA VHJ dělá kromě DKW BMW a NSU, KDF i MG. Za dvě LP KTO DKW mám na GO, když dostanu na ČVUT syna Kelblové.

Zřejmě poznáváte úryvek z píseně Zkratky od Ivana Mládka. Význam několika z těchto vyjmenovaných zkratek mi není jasný. Občas mám podobný pocit i při čtení textů z IT oboru. Do zkratek SOA (service-oriented architecture), EAI (Enterprise Application Integration) a ESB (Enterprise Service Bus) se lze lehce zamotat. Všechny se ovšem týkají integrace aplikací. Integrovat můžete po svém nebo naopak využít již existujících řešení. V následujícím článku bych se s vámi rád podělil o své zkušenosti s použitím frameworku Mule a Spring Itegration.

Řešení integrace Zejména v korporátní oblasti vedle sebe běží několik aplikací, které spolu obvykle musí navzájem komunikovat. V podstatě existují dvě možnosti, jak tuto komunikaci implementovat. Integrovat aplikace stylem point-to-point (každý s každým), což nemusí být nutně špatně. Nebo využít integrační platformy. Za integrační platformu lze považovat třeba i databázi nebo lze sáhnout po frameworku jako je Mule nebo Spring Integration.

 

Point-to-point
Integrační platforma


Integrační platformy Integrační platformy již v sobě mají podporu pro standardní komunikační kanály jako e-mail, TCP, JDBS, JMS, SFTP, WebServices… Pro méně obvyklé kanály si musíte napsat vlastní transformátor (adaptér). Transformátor ze vstupu udělá zprávu, se kterou pak pracuje itegrační platforma. Zpráva může být filtrována, směrována… a nakonec převedena do cílové aplikace.

 

Message - zdroj: Spring Integration Manual Message – zdroj: Spring Integration Manual


V článku To ESB or not to ESB naleznete kontrolní seznam pro vyjasnění, zda je pro vás integrační platforma vhodná, nebo zda si vystačíte s vlastním point-to-point řešením. Na ukázku uvádím několik otázek.

  • Integrujete tři nebo více aplikací?
  • Budete v budoucnu přidávat další aplikace?
  • Používáte více než jeden komunikační protokol?
  • Potřebujete možnosti směrování (routing) jako jsou větvení (forking) nebo směrování na základně obsahu?

 

Mule 2 Dostal jsem za úkol implementovat integraci pomocí Mule 2. Mule je ESB framework a vyšly k němu dvě kvalitní knihy: Mule 2: A Developer’s Guide a Mule in Action Mule má podporu pro integrační testy, ale píší se ve stylu JUnit 3 (dědí od org.mule.tck.FunctionalTestCase). Jako největší zápor hodnotím slabou komunitu, takže jsem projekt nakonec zmigroval na Spring Integration 2 Spring Integration Spring Integration 2 je EAI (Enterprise Application Integration) framework. Nehledě na zkratky, dosáhl jsem té samé funkčnosti jako s Mule ESB. Stejně jako v ostatní Spring projektech se zde pracuje s POJO, které nemusíte od ničeho dědit, a vše se snadno testuje. Na InfoQ naleznete videozáznam představení Spring Integration 2.

Závěr Při integraci aplikací si projděte dotazník To ESB or not to ESB a zvažte, zda použít point-to-point přístup nebo integrační framework. Pokud se rozhodnete pro framework, tak doporučuji Spring Integration.

Vaše emailová adresa nebude zveřejněna

Komentáře

Děkujeme za váš komentář
Další
  • jinxx

    Presne. Spring integration mi take prijde jako dost dobre reseni...

  • Při rozhodování jakou ESB platformu bych ještě zahrnul komerční Tibco EMS a WebSphere MQ, jinak s článkem souhlasím.