技术开发 频道

在WebSphere中进行版本管理

按名称的动态子流程调用

  端点引用(endpoint reference,EPR)是动态选择要调用的服务的常用方法。为了支持运行时的动态子流程选择和调用,WebSphere Process Server 允许您确定子流程的 EPR。getServiceRefForTemplate 方法用于检索给定其名称 processTemplateName 的子流程的 EPR。您可以使用 EPR 调用通过其端口类型(portTypeNamespace 和 portTypeName)指定的子流程的服务。该方法返回流程的当前有效版本的 EPR,也就是使用后期绑定:

getServiceRefForTemplate(
String processTemplateName, String portTypeNamespace, String portType)
  该方法对分配活动(请参见 WebSphere Integration Developer 信息中心,XPath 扩展函数)和 Java? 代码片段活动可用。在分配活动中,您可以在 from 表达式中使用 XPath 扩展函数 getServiceRefForTemplate,以将返回的 EPR 分配给在分配活动的 to 规范所指定的合作伙伴链接。

  在 Java 代码片段活动中,如果您调用方法 getServiceRefForTemplate,您将检索到 com.ibm.websphere.sca.addressing.EndpointReference 的一个实例。可以通过方法 setServiceRefToPartnerLink( <partnerLinkName>, <EPR> ) 使用此 EPR 将该实例分配给某个合作伙伴链接。

  Business Process Choreographer Explorer

  Business Process Choreographer Explorer 提供了基于 Web 的通用界面,用于创建和处理业务流程和人工任务。

 

     图 10. 显示流程模板的 Business Process Choreographer Explorer
 

  您只能启动当前有效的业务流程和人工任务的实例。也就是说,Business Process Choreographer Explorer 是一个使用后期绑定的客户端。然而,您可以处理以前有效的模板的实例,例如,您可以声明这些人工任务实例,或者处理这些流程实例。

  JSF 和 Lotus Forms 自定义客户端

  在 WebSphere Integration Developer 中,您可以基于 JSF 技术或 Lotus Forms 技术为业务流程或人工任务生成业务用户客户端。生成的客户端代码使用 EJB API 与任务和流程交互;生成的客户端代码所调用的 EJB 方法使用后期绑定。

  仅支持早期绑定

  调用业务流程或人工任务的 SCA 组件

  调用某个业务流程或人工任务的 SCA 组件连接到该业务流程或人工任务的对应 SCA 组件。这种静态连接导致调用特定的版本,也就是使用早期绑定。

  如果调用 SCA 组件是某个流程,您可以使用后期绑定,如前面的仅支持后期绑定所述。

  为了使任何 SCA 组件能够调用业务流程或人工任务的当前有效版本,您可以使用下面的业务流程的代理流程和人工任务的装饰流程部分中描述的模式。

不带 WebSphere Process Server BPEL扩展的流程

  起始有效日期是一个 BPEL 扩展,标准 BPEL 并没有提供它。如果希望使用不带 WebSphere Process Server 扩展的标准 BPEL,则本文档中描述的基于时间的版本管理将不受支持。

  版本管理非常好的实践

  下面一个部分将介绍可帮助您对业务流程和人工任务进行版本管理的非常好的实践。

  使用版本管理为变化而设计

  为了实现将来的业务流程和人工任务更改,您在设计基于业务流程的应用程序时应该考虑版本管理。本部分将描述一些可让您为更改做好准备的非常好的实践和模式。

  模块边界和库

  应该将一起进行更改的组件分组到一个模块中。一般来讲,非常好的实践是在一个模块中包括单个将进行版本管理的流程。这样,可以容易地引入该流程的新版本,旧版本在不再需要时可以容易地删除。

  将流程和任务版本的接口和业务对象定义放在库中。每当引入新版本时将使用该库。

  要在 WebSphere Integration Developer 中创建库,可以在 Business Integration 视图中右键单击并选择 New => Library。

 

            图 11. 在 WebSphere Integration Developer 中创建新库

  业务规则

  规则逻辑很可能会随时间推移而更改。因此,与直接将规则逻辑编码到业务流程逻辑中不同,您应该将规则逻辑作为业务规则来提供,并从业务流程中调用它们。业务规则可在运行时动态地更改,并且这些更改会立即生效。这样,当需要对规则逻辑作出更改时,您就不需要新版本的业务流程。

  有关业务规则以及它们如何帮助您解决业务流程的动态方面的进一步信息,请参考IBM WebSphere Integration Developer 和 WebSphere Process Server 信息中心。

  业务流程和子流程

  在设计长时间运行的流程时,应该考虑将可能会更改的流程部分实现为子流程。这使得即使正在运行的父流程实例也可以选取这些子流程的较新版本。使用后期绑定,父流程实例将在其导航中到达子流程调用点时调用子流程的当前有效版本。

 

 

0
相关文章