中间件应用程序是否需要执行业务逻辑?

Mig*_*ing 6 soa middleware business-logic eai

假设我有一个大型中间件基础架构来调解多个业务组件(客户应用程序,网络,支付等)之间的请求.中间件堆栈负责编排,路由,转换和其他内容(类似于Gregor Hohpe的Enterprise Integration Patterns一书).

我的问题是:在中间件上放置一些业务逻辑是一种好的设计吗?

假设我的应用程序A从中间件请求一些客户数据.但是为了获得这些数据,我必须提供客户ID其他一些参数.获取此参数应该由请求应用程序完成,还是负责"促进"并提供接收客户ID的接口并在内部获取其他参数的中间件?

我意识到这不是一个简单的问题(因为业务逻辑的定义),但我想知道它是一般方法还是一些指导方针.

S.L*_*ott 2

这就是“组合应用”模式;面向服务的架构的核心。这就是 ESB 供应商所销售的:一种将额外的业务逻辑放置在现有应用程序之外创建复合应用程序的方法。

这并不简单,因为您的复合应用程序不仅仅是路由。这是一个位于路由之上的全新复合事务。

暗示。在走得更远之前先考虑一下获得一个好的 ESB。这很快就会失去控制,获得一些额外的支持会有所帮助。即使您不购买 Sun 的JCAPSOpen ESB之类的东西,您也会很高兴了解了它的用途以及它们如何组织复杂的复合应用程序。