【问题标题】:Questions about SOA reference architectures关于 SOA 参考架构的问题
【发布时间】:2015-01-13 13:08:07
【问题描述】:

我对 The Open Group 为 SOA 提供的可用作企业示例的参考架构有些困惑。

问题 1:在这个参考架构中有一个服务层,它将服务暴露给外部世界。标准文档说你可以在这个服务层中拥有流程服务,它实现了一些可以作为服务访问的功能流程。也可以在服务层中组合使用其他服务的服务。但是,还有一个业务流程层,据我了解,主要是通过编排来自服务层的不同服务来实现业务流程。业务流程层中的业务流程与服务层中的流程服务有何不同?

问题 2:是否有任何论据可以决定您是否应该提供使用多种不同服务的组合服务: 1. 在服务层中,通过为组合服务提供自己的接口,同时在服务层中使用其他服务? 2. 作为业务流程层中的业务流程 3. 在消费者层处理它。

【问题讨论】:

    标签: architecture soa


    【解决方案1】:

    1)的答案:

    一般来说,业务流程层中的流程与组织中的业务流程密切相关,而流程服务则实现了更多“技术性”的任务组合。

    • 理论上,在理想情况下,业务流程应由业务用户自己通过 GUI 在业务分析师的帮助下创建和修改,而服务层流程则由技术人员实施。
    • 另一个区别是这些业务流程通常包含手动步骤——人们必须手动执行某些操作、做出主观决定或确认/批准流程的继续。
    • 业务流程组合业务服务,而服务级别流程组合服务,这些服务往往连接到多个后端系统以完成其任务。 示例:订单履行业务流程:您可能有一个业务流程,要求客户支持代理在发送订单进行履行之前致电客户进行确认——这是一个手动步骤,将成为流程的一部分。然后,在开始履行后,可能会启动称为“评估客户忠诚度级别”的服务层级流程。因此,业务流程将执行诸如“履行客户订单”之类的流程,而更具技术性的服务流程将执行诸如“将该客户的信用评级与我们商业智能商店中当前的中值进行比较”之类的流程——因此需要多次调用到多个后端系统。

    2)的答案:

    这是一个需要上下文的区别,通常需要经验才能做出正确的选择,但这是我的两分钱。

    • 如果您有业务流程管理解决方案并且组织使用它,那么一定要在这一层实施任何业务流程。这对于最终用户(您的企业)来说更加灵活和易于理解。

    • 如果您需要实施必须从/在多个系统中收集/修改数据的技术流程,请在服务层上实施。当然,您可以尝试在服务层实现业务流程(我在实践中有时会看到这种情况)。但请记住,与真正的业务流程管理解决方案相比,您的工具集有限。您还将在服务层中有一些业务流程,在业务流程层中有一些业务流程,在某些时候拥有真正的 BPM 时可能不是很方便。所以这真的取决于你的面向服务架构的成熟度。

    • 通常我会尽量避免在消费者中实现流程。它使您的设计与消费者系统耦合,因此您将无法在未来的某个时间点轻松替换它。此外,业务流程管理层(和服务层)都具有更好的开箱即用监控、日志记录等手段。话虽如此,在长期维护和问题调查中不会像在消费者应用程序中那样痛苦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2014-03-29
      • 2010-12-12
      • 2014-09-12
      • 1970-01-01
      相关资源
      最近更新 更多