技术开发 频道

在WebSphere中进行版本管理

    【IT168技术文章】

    IT 架构师和集成开发人员需要设计基于业务流程的应用程序,这样的应用程序能够适应不断变化的环境和将来的业务需求。本文向您介绍如何构建基于 IBM? WebSphere? Integration Developer V6.1 和 WebSphere Process Server V6.1 非常好的实践的业务流程和人工任务版本。

    为什么需要版本管理?

    业务流程随时间的推移而发展。它们需要反映不断更改的环境和业务需求。这些更改可能是业务驱动的更改,例如法律法规更改,或者业务流程的优化。此外,技术驱动的更改会影响基于业务流程的应用程序,例如,对流程非常重要的某个服务被替换为另一个服务。

    基于业务流程的应用程序非常独特,因为它们可以包括长时间运行的实例。这些业务流程和人工任务实例可以运行数周、数月甚至数年。这对引入已发展的业务流程或人工任务施加了特定的要求,因为它们的实例可能仍在运行。这些实例需要使用最初创建和启动时的版本来运行完成。但是,业务可能要求基于新版本的业务流程定义创建新的实例。因此,新版本和旧版本需要共存。

    版本管理示例

    下面的示例演示了处理旅行审批和登记的业务流程。优异流程 TravelApprovalAndBooking 控制总体处理,子流程 TravelAvailablitiyAndCosts 确定航班、酒店和出租车的成本及可用性,另一个子流程 TravelBooking 处理登记工作。

 

                                             图 1. 旅行审批和登记流程(第一版)


    流程在员工输入商务旅行数据时启动。

    调用一个子流程来评估旅行请求的可用性和成本。

    取决于成本,经理需要对旅行请求进行审批。这是使用一个内联人工任务来实现的。

    如果旅行请求获得批准,则调用另一个子流程来登记旅行安排。

    将旅行信息(航班号、酒店名称和出租车公司)返回给员工。

    由于旅行登记指导原则方面的更改,必须对旅行登记和审批流程进行更新。需要一个附加的审批步骤,以便能够拒绝针对不安全国家/地区的旅行请求。

 

                                         图 2. 具有附加审批步骤的旅行审批和登记流程(第二版)


    该更新是通过引入新版本的旅行审批和登记流程来实现的。新版本包括一个用于额外审批步骤的附加人工任务活动。

    下面几个部分将介绍版本管理的概念,以及如何在 WebSphere Process Server 中开发新版本的业务流程和人工任务。这些部分还将描述在使用版本管理时应该考虑的非常好的实践。

    版本管理概念

    本部分介绍一些了解版本管理所需要知道的重要概念。

    SCA 组件

    服务组件体系结构(Service Component Architecture,SCA) 是面向服务的体系结构(service oriented architecture,SOA)的关键。此类体系结构的基本单元是 SCA 组件。SCA 组件是通过其连接到其他服务的接口和引用来进行描述的 SOA 服务。其实现随组件类型而异。业务流程和人工任务就是其中两种组件类型。业务流程 组件 是使用业务流程定义(BPEL 文件)来实现的,人工任务组件 是使用人工任务定义(TEL 文件)来实现的。

    模板和实例

    流程模板是在 WebSphere Integration Developer 中指定并部署到 WebSphere Process Server 的流程组件的运行时表示形式。类似地,任务模板是部署到运行时环境的人工任务组件的表示形式。当业务流程或人工任务启动时,将基于特定的模板创建实例。此模板描述了如何执行该实例。

    模板生命周期

    流程模板或任务模板的生命周期如图 3 所示。模板可以表现为启动 和 停止 这两种状态之一。

    状态转换是使用 WebSphere 管理控制台或 wsadmin 控制台界面来触发的。

 

    启动

    在此状态下,可以创建新的业务流程或人工任务实例。

    下一个状态:可以停止模板以防止在该模板基础上创建新实例。停止模板将导致停止 状态。

    停止

    在此状态下,不能在该模板基础上创建新实例。但是,现有的实例可以继续运行,直到完成。

    下一个状态

    在此状态下,当模板启动时,其状态设置为启动。如果某个模板不再存在任何实例,则可以通过卸载对应的企业应用程序来删除该模板。

    包含该模板的企业应用程序可以独立于模板生命周期停止或启动。如果企业应用程序停止,企业应用程序中的模板实例未进行处理,并且不能创建实例。

   

0