2009-08-12 73 views
8

编排引擎与消息驱动系统的职责是什么。编排与消息驱动体系结构

如果我必须构建一个系统,它必须将不同的独立组件(不需要公开Web服务端点的交叉技术/平台组件)串联在一起,这是要选择的工具集?

有更好的选择吗?

回答

0

虽然这个问题被标记为Java,但我不敢说我​​看过的最好的工具,如果你真的必须走这条路线是Microsoft's BizTalk Server

当我不得不做这种类型的产品的评价(这是一个几年前),这是头肩与主要特征的存在在竞争中:

  • 的Visual Studio的开发环境
  • 不错的可视化工具来描述工作流程和变换
  • 用于以极大的实时报告连接到参与者
  • 强大的工作流引擎
  • 扩展连接器架构

最后我们选择保持简单去了消息路由,尽管这确实需要你控制了所有的参与者,但情况可能并非如此。

2

使用openESB与netbeans编辑器或任何其他提供标准方式或编排流程的开源BPEL引擎。如果您认为性能比标准化非常重要,您可以尝试使用一些专有的ESB或BPM工具,如Jboss jBPM或mule ESB等。

请注意如果您的组件不是Web服务,那么只能使用BPEL服务你可能不得不使用一些像Mule这样的ESB,它可以支持200多个扩展协议。

1

当您决定是否应该使用Orchestration或Message Directed工作流程时,您面临的一个大问题是,您是否认为有必要定期更改您的编排工作流程。如果您认为业务流程需要灵活,因为它可能会发生变化,那么采用规范消息格式并使用业务流程,这将最大限度地减少服务之间变化关系的影响。如果您认为工作流程稳定,您可以采用消息驱动的工作流程。就个人而言,我认为编排是一般的优秀方法,然而它确实需要更多的软件基础设施,其中使用诸如Apache Camel之类的工具,投资是时间与增加长期灵活性的奖励。

0

我建议你首先将你的单独独立组件作为服务透露给网络(我不明白你是否已经拥有web服务)。 之后..最好的选择取决于您的系统工作量/复杂度。

基本上你可以选择服务编排和编排。使用BPM/BPEL/ESB制定的服务协调是一种体系结构选择,其中单个组件(服务协调器/服务组合器)知道哪些步骤需要执行,并且负责以正确的顺序调用服务(在协调器本身上配置) 。它还处理事务管理(如果需要)。

恰恰相反的是编排,其中构成整个系统的每个单一服务都知道如何在接收到特定消息时采取行动。事实上,这是各个组成部分之间的问题。服务编排它是服务组合问题的分散方法。

如果你有很多的服务,复杂的规则等...可能会更容易使用服务协调器,如jBPM或类似的东西。