商业智能(BI)与面向服务架构(SOA)的好处无需赘言,但当你期望同时获得 BI 和 SOA 的好处时,却会发现事情并不那么简单。BI 希望获得尽可能详尽的内部数据,而 SOA 却希望尽力隐藏内部数据,两者存在原则上的冲突。
Arnon Rotem-Gal-Oz 分析了两种显而易见的调和方案。其一是用传统的 ETL 方式绕过 SOA 的限制,直接为 BI 提供数据。然而这种方式严重违背了 SOA 的原则。在 SOA 用来防止耦合扩散的接口契约机制上穿了一个大洞之后,不免让人疑虑当初让我们选择 SOA 的那些好处还剩下多少。其二是不给 BI 任何特殊照顾,而依赖对 SOA 接口的轮询来获得 BI 需要的数据。然而轮询间隔的设置要么会导致过大的网络流量,要么会导致错失重要事件。
为了摆脱这种困境,Arnon 引入了 EDA:
第三个选项的基础是将 SOA 向前推进,超越我们习惯的简单的请求 / 响应模型,将 SOA 与另一种架构风格——事件驱动的架构(Event-Driven Architecture,EDA)相结合。
EDA 加 SOA 的方案采用“推”的方式向外发送消息,这种 Arnon 称之为“通讯倒置”的模式,在捍卫了 SOA 原则的同时,也降低了网络流量。更重要的是,EDA 的事件流 / 事件链的概念将 BI 提升到了一个更高的层次——实时 BI。
Arnon 随后为我们描绘了利用复杂事件处理(CEP)工具进行实时业务活动监控,以及将 BI 构建成 SOA 服务的 Mash-up 的诱人前景。而在实现方面,WS-* 已经有一整套协议;对于 REST 阵营,RSS 是一种现成的方案。
EDA 加 SOA 的方案远胜于传统的 ETL 是这篇文章理所当然的结论。
阅读全文:搭建沟通 BI 与 SOA 的桥梁
评论