非功能性注意事项
除功能性需求外,每个系统还包含一组非功能性需求,在选择正确的运行时还需要考虑这些非功能性需求。
什么是总拥有成本?您需要考虑软件的最初成本,以及相关的长期成本。例如,如果客户通过在 J2EE 平台上实现解决方案可以获得较低的成本,则这样会影响选择 Process Server 的决定。
什么是管理成本?每个系统都需要一个管理员。如果公司让原有的管理员管理新项目(不添加新资源),则可能会影响总拥有成本。例如,MQ 管理员可能比较熟悉 Message Broker,而对基于 J2EE 的运行时可能一窍不通。还应考虑如何方便地监视环境,以及管理员处理的安全方面。
需要哪些技能?除需要管理员、开发人员、测试人员外、还需要其他角色。如果能够利用现有的技能,则可以节约相关的时间和成本。学习项目的新技能可能需要培训或辅导。
什么是现有环境?中间件环境属于生产环境吗?用户熟悉工具集吗?如果需要新工具,则这些新工具与当前工具环境的亲和力如何?必备软件的当前版本级别是否同步?是否必须升级现有资产?在使用系统之前,需要进行任何迁移吗?
某个选项提供独特的功能吗?某个环境中的独特功能可能会促进您的决策。例如,您可以在 ESB 中执行映射,也可以通过 Process Server 中的接口映射来执行映射。但是,只有 Process Server 中的接口映射可以提供关系映射。如果您需要此功能,则只有 Process Server 可以提供。
当 Process Server 和 ESB 可能都是理想的备选项时,非功能性需求通常可以缩小选择范围。
模式
电子商务模式是一组经过验证的可重用资产,可使用这些模式帮助您加速开发和部署电子商务应用程序。IBM 发布了一系列描述模式用法和各种技术的红皮书,如 Patterns:SOA Design Using WebSphere Message Broker and WebSphere ESB。
您可以检查您的需求,并确定是否可以使用模式来实现这些需求。如果证实现有模式或模式的组合适用于给定的运行时,则可以知道该运行时能够处理您的需求。这样风险就会降低,因为以前处理过,并且通过应用该模式可以缩短开发时间。如果该模式仅在一个运行时上存在,则可以帮助您做出决策。
一些典型的模式包括:
消息聚合与解聚合(N-to-1 和 1-to-N)
1-of-N 响应(发送多个请求,选取一个响应)
服务虚拟化(位置和标识)
基于内容的路由
适配器交互
消息充实
动态注册中心查询
事件传播
网关(控制并保护内部和外部域边界之间的交互)
例如,引用的红皮书描述了使用网关模式的 DataPower 用法。XS40 XML Security Gateway 可以满足支持此模式的功能性和非功能性需求。如果为实现网关模式查找要使用的解决方案,这有助于促进您的决策。
灰色区域
尽管在使用上述标准筛选后可以帮助确定最终的决策,但仍存在是选择 ESB 还是选择 Process Server 作为给定项目的运行时的情况。在这些情况下,需要考虑一些其他事项。
设计理念
某些公司具有指导所有项目的总体设计理念。例如,您可以决定将在 ESB 中进行所有的转换,而所有的业务逻辑驻留在 Process Server 中。
如果客户进行了在线订购,则决定他们是否具有免费发货资格的业务决策属于在 Process Server 中运行的业务逻辑层。可以在 ESB 层完成消息到相应发货服务的路由。它允许公司更改业务逻辑,而不必对集成逻辑进行更改(反之亦然)。
此总体设计理念在决策中应占有重要的地位。换句话说,什么是策略方向?如果所有其他情况相同,则可以使用此总体设计原则作为标准。
成本
在服务器上部署的每个 WS-BPEL 流程或中介流都占用该服务器的 CPU 容量。当然,除了硬件成本、支持成本和管理成本等,它运行的中间件也是一种成本。如果不清楚要使用的环境,则可以在部署位置决策中考虑成本因素。