数据库技能“比比皆是”。利用现有的数据库事件来调用业务流程可以降低总体拥有成本,因为组织中可能已经拥有开发和管理数据库事件的技能。对于许多使用数据库驱动的业务流程的组织来说,建立必要的数据库触发器和数据库交互构件是非常直观的。然而,如果您的组织刚开始使用 WebSphere Integration Developer、服务组件体系结构 (Service Component Architecture, SCA) 和 BPEL 业务流程,则可能需要大量的强化培训来构建业务流程本身。有关这些技术的更多信息,请参见参考资料。
性能不是该体系结构的强项。网络和数据库访问的开销非常大,因此,如果吞吐量极为重要,则这可能无法满足您的需要。例如,如果另一个系统 System A 编写了一个数据库事件,然后 WebSphere Process Server 选择它来调用某个业务流程,则该数据库实质上是“中间人”。消除了中间数据库的任何体系结构将具有更多的性能潜力。例如,如果 System A 支持 JMS、MQ、RMI 或 Web 服务,它就可以直接与 WebSphere Process Server 通信。此外,如果 System A 由另一个 WebSphere 适配器(如 Siebel 或 Oracle 适配器)支持,则这样的适配器更为合适,因为它也消除了中间的数据库。
总之,对于遗留集成、事务服务质量和以数据库或大型机为中心的技能集而言,数据库驱动的业务流程是强有力的体系结构设计决策。当存在严格的性能要求或存在开销很大的网络延迟时,数据库驱动的业务流程可能不是最佳的解决方案。
客户订单示例
本部分将详细描述该客户订单示例应用程序的配置和开发。该示例应用程序由接受客户订单的业务流程组成。请考虑下列数据库实体:
图 2. 订单应用程序数据库实体
在对 ORDER 表创建、更新或删除一个行时,将会通过对应的数据库触发器向 ORDER_EVENT 表添加一个行。JCA Adapter for JDBC 利用 ORDER_EVENT 表来调用下游业务流程,如图 3 所示。该适配器是通过轮询 ORDER_EVENT 表中的新行(以您可以指定的间隔)来实现这点的。
……


