Using the WorkList翻译

类别:Java 点击:0 评论:0 推荐:

Using the WorkList翻译

翻译前言
我们在开发公司的电信项目中,使用了WebLogic Integration。从实际开发的经验看,WebLogic Integration是一个相当出色的应用集成解决方案,开发工具和辅助工具尤其令人满意。令人遗憾的是,这样好东西了解和愿意使用的人却相当的少。大部分WebLogic Integration资料是英文,显然是造成这种状况的原因之一。因此,我有了翻译重要WebLogic Integration资料的念头。
首先翻译Worklist文档的原因如下:

完整的工作流系统起码有三个组成部分:
 流程绘制工具。
 工作流引擎。
 Worklist系统。

流程绘制工具辅助使用者定制合适的工作流程,对应于WebLogic Integration,就是workshop的流程定义部分。工作流引擎解释流程定义并实际执行流程,对应于WebLogic Integration Server本身。Worklist系统引导用户与工作流系统交互,提供交互API。对于实现一个工作流系统来说,最重要的当然是工作流引擎。但对于使用一个工作流系统,个人认为,了解流程绘制工具和Worklist系统才是最重要的,缺少对Worklist系统的了解,是很难设计出一个好的流程的,因为流程最终呈现在用户的形态,是通过Worklist系统实现的。非常令人遗憾的是,我参加的培训,包括BEA本身举办的培训,都着重介绍了WebLogic的流程绘制工具―Workshop,对于Worklist系统就基本不做说明。相应的,Worklist系统的中文资料也就少的可怜。因此,我首先翻译了官方文章Using the Worklist的介绍部分。通过这篇文章,读者应该可以对一个实现了的WebLogic Integration 业务流程,能给最终用户带来什么,有一个大概的认识。

由于翻译者本身经验很少,错误在所难免,希望大家认真的扔砖头。


使用worklist

                                                                      介绍

BEA WebLogic Integration Worklist致力于解决企业中的工作流的问题。它具有将业务流程中的任务直接引导给职员和管理者的能力,增强了企业的效率和反应能力。

本章包括以下的主题:
 什么是WebLogic Integration Worklist?
 Worklist任务
 任务的数据
 控件和Worklist的APIs 
 系统管理


什么是WebLogic Integration Worklist?
WebLogic Integration Worklist用于将人员的实际活动和随时间自动执行的业务流程整合起来。业务流程执行的时间可以很短,也可以持续数日甚至数月。Worklist被设计来指引工作的流程和安排企业员工任务的流转。这些流程具有一些固有的特征,如接受,批准,修改和拥有流程文档,其中,伴随着特定任务的流程文档被用于提供必要的信息,使人们能够执行和完成这些任务。Worklist使人们能协作完成一项工作,包括指派任务,跟踪任务的状态,处理批准,和其它管理工作流需要的动作。

为了支持Worklist的功能,WebLogic Integration提供了两个内置在WebLogic Workshop的控件,这两个控件是"任务控件"和"任务工作者控件"。这些控件是服务器端的,为Workshop框架所管理的组件。它们预留的JAVA接口,可以被你的"业务流程"(business processes,除了字面意义,还兼指Workshop中一种特定控件,下同)直接调用。"任务控件"使业务流程能够创建一个任务实例,管理它的状态和数据,并提供了回调方法报告它的状态。"任务工作者控件"允许特定的用户获得任务的所有权,操作任务,完成任务。这个控件也提供了任务系统的管理特权,如开始,停止,删除和指派任务。要访问"任务工作者控件",既可以通过"业务流程",也可以通过用户介面。

Worklist用户介面使最终用户--任务创建者,任务操作者,任务管理者―能够与一个正在运行的业务流程交互,包括处理流程的意外情况,批准请求和状态跟踪。为了管理你的应用程序中的Worklist组件,WebLogic Integration提供了一个Worklist用户介面的例子,你可以利用它来帮助你开发你自己的用户介面。


下面展示了Worklist重要的能力:
 Worklist允许人们在业务流程中扮演一个特定的角色,将注意力集中在他们重视的那部分工作上。
 它允许业务规则指导文档和工作的路由。
 它管理任务相关许可。举例来说,应用程序能够管理谁能按照怎样的顺序看那个文档,和谁由任务的所有权。
 当工作完成或工作最终期限过期时,Worklist提供了通知管理者的机制。
 管理者可以研究工作流的历史记录,并使用这些信息调整业务流程,以增加生产力和减少反应时间。

Worklist任务
Worklist允许对任务的创建,操作和管理。一个任务的实例表现了一个必须在确定时间段内完成的工作单元。任务的例子包括:
一个管理者阅读和批准一个雇员的休假请求。
打电话给一个顾客并记录顾客的抱怨。

在运行时的Worklist系统,一个任务实例是一个特殊的object,它代表了在真实世界中被分配了的一个工作。任务实例是WebLogic Integration服务器的一部分,它独立于任何控件和业务流程而存在。在业务流程的整个生命周期中,复数的业务流程都能够同时与一个任务交互。只有在以下两种情况中,任务将不再运行:被明白无误的删除,或被WebLogic Integration清除过程清除。

在指定工作完成后,你能够使用一个任务实例再现该工作单元的详细记录。

学习上述控件细节,可以参考WebLogic Workshop 帮助中关于Worklist控件的部分。


任务的数据
任务实例拥有内建的数据值,以定义工作是怎样执行的,谁将做它,需要在什么时候完成等等。在任务完成后,你也可以使用这些内建值获得实际发生的情况。

任务数据的例子包括:
 能够执行任务的用户或用户组的列表(Assignees List)。
 任务必须在此之前完成的日期 (Task Competition Due Date)。
 认领并尝试完成任务的用户 (Claimant)。
 有责任管理工作执行过程的人 (Task owner)。
 描述工作怎样做和工作完成结果的文档(Request and Response documents)。
 定义了任务实例位于它的生命周期的哪个位置的条件(Task State)。
 指出这一任务相对其它相关任务紧迫性的优先级(Task Priority)。

预定日期
预定日期描述了任务将被认领或完成的日期和时间。Worklist将预定日期存储为一个java.util.Date objects,跟踪它们,侦听任务的预定日期以能够触发对业务流程的回调。预定日期能够被设置为使用一个明确的日期和时间,或者,能被设置为使用一个营业日历和一个营业期限。

营业日历表现了营业的工作时间。一个营业日历详细说明了一个时间域和一套时间段规则。时间段规则决定了日期和钟点是能够(空闲的)或不能够(繁忙的)执行业务活动。

学习更多的关于预定日期和营业日历的知识,请参考任务预定日期。

任务状态
任务状态描述任务位于它的生命周期的哪个位置。每个任务实例都处于以下的某个确定状态:ASSIGNED, CLAIMED, STARTED, COMPLETED, SUSPENDED, 或 ABORTED。操作控件或API允许你将一个实例从当前状态转变到另一个状态。


学习更多的关于任务状态的知识,请参考任务预定日期。

任务所有者
为了表示一个用户或用户组扮演了任务的管理者的角色,一个任务实例可以有一个任务所有者。所有者管理任务,并有责任使任务完成,但并不需要所有者实际完成任务。例如,厨房经理是准备最近订菜任务的任务所有者,他把这个任务指派给一个厨师实际执行。如果这个任务没有完成,这个经理还是要承担责任的。

只有任务所有者或系统管理员,有执行某些任务实例的管理操作的许可。

学习更多的关于任务所有者的知识,请参考任务用户和用户组和任务与用户许可。

指派者列表和认领者
一个任务实例有一个描述那些用户可以认领任务的指派者列表。指派者列表可以包含用户和用户组。当一个指派者列表上的用户认领了任务,该用户就变成了认领者。认领者获得了任务的所有权,并执行完成任务所需的工作。当一个用户认领了任务,该任务的状态就被设置为Claimed。

学习更多的关于指派者列表和认领者的知识,请参考任务用户和用户组和任务与用户许可。

请求和答复文档
通常,任务的请求被用于描述什么工作将被做和怎样做这个工作。请求的内容将可以被执行工作和完成任务的任务操作者阅读。另外,指派列表上的用户可以阅读这些信息,以决定是否认领这个任务。

任务的答复通常被用于描述用户操作任务后实际发生了什么。它可以描述工作的结果,就是详细描述了为完成这个任务执行的动作。回调(Callbacks)也通过答复传递值给业务流程,此时业务流程应该正在等待一个特定的任务状态。

例如,一个代理商和一个拖欠债务的顾客完成了一个电话会话后,任务答复将捕获这个协定。业务流程(接受任务答复值后),将创建一个任务,让客户决定下一步怎样执行。

学习更多的关于请求和答复文档的知识,请参考请求和答复文档。

任务的操作
任务的操作常常是建立新任务,改变任务状态和数据的值,删除任务,或者是读取一个现有任务的信息。某些操作允许在一个单一的步骤中联合执行这些操作。任务操作的例子包括:


 建立任务的操作
当一个新任务实例被建立,Worklist系统将指派一个独一的ID给这个实例。在创建任务时,可以指定任务的状态是Assigned 或是 Claimed,取决于操作本身。某些在任务创建时指定的任务数据值,在创建后不能被改变。

 改变任务属性的操作
某些任务属性在任务创建后,还可以被指定或修改。

 获得任务属性的操作
在任务实例生命周期的任何一个位置,你都可以用获得任务属性的操作访问任务的属性。

 修改任务状态的操作
基于定义好的操作,任务实例能够在状态之间转变。某些修改任务状态的操作能否被合法执行,取决于操作被调用前任务是否处于合适的状态。

学习更多的关于任务和任务工作者控件的操作的知识,请参考使用Worklist控件。

任务信息的存档和清除
WebLogic Integration支持对业务流程实例历史,交易伙伴信息历史和任务实例历史的跟踪数据的存档工作。

当任务最终在企业流程中完成它们的生命周期时,它们会执行诸如此类的工作:它们的附属物被修改,状态被改变,完成期限过期等。Worklist任务产生的这些事件能被Worklist的历史表记录日志,保存在运行时存储库。这些保存在存档表中的记录被设计用于提供给应用程序。应用程序能够查询这些表,生产关于任务历史处理过程的报表或统计分析。以下类型的事件能够被跟踪:
 任务状态的改变和关联的值
 任务的认领或完成期限超时
 任务的所有者或指派者被改变
 任务的请求或任务的回复
 请求或回复的XML文档

运行时,这些跟踪数据被存储在一个数据库中。为了优化性能,你可以最小化被存储的跟踪数据。为了达到这个目的,一个系统管理员可以将存档和清除程序配置为定期运行。除了配置时间表之外,系统管理员能使存档器生效或失效,作用如下:
 当存档器生效时,程序拷贝数据到一个离线数据库,然后从运行时数据库中清除这些数据。
 当存档器失效时,程序直接清除运行时数据库中的数据,不做拷贝。

存档信息能够被用于产生关于任务处理的报表或统计分析,使用在你的WebLogic Integration应用程序中。学习更多的关于存档和清除的知识,请参考管理WebLogic Integration解决方案中的系统配置。

任务查询
任务查询功能允许一个应用程序在一个运行时Worklist系统中找到所有符合指定的标准集的任务。这些查询类似于数据库的SQL。查询的结果包含了所有符合指定标准的任务的信息。
例如,你可以建立这样的一个用户介面:显示所有被指派给当前用户,优先权等于1,在三天内到期的任务。


控件和Worklist APIs

Worklist API提供的操作手段,使我们能够调用所有在Worklist中创建和操作任务的功能。WebLogic Integration提供了两个控件支持Worklist系统:任务控件和任务工作者控件。虽然这两个控件只提供的功能只是Worklist API功能的子集,但它们包含于WebLogic Workshop控件构架中所提供的便利性,使你能够在业务流程中轻易的使用它们。

任务控件

在一个办公环境中,管理者常常建立,描述工作和监视工作进展情况。任务控件就是被设计来提供给管理者必要的,通用的操作方式完成这些工作,如建立工作,指派工作,在工作完成时或工作过期时得到通知。任务控件最常见的用法是使用在业务流程中。


任务工作者控件

任务工作者控件被设计来满足被分配任务和执行任务的人们的需求,提供给他们最常见的操作。例如,工作者能够查询分配给他们的,本星期到期的任务。任务工作者控件允许工作者将任务标记为所有(就是claim任务),和标记任务为完成。除此之外,任务工作者控件还有一个管理类的权限,就是代理其他用户认领一个任务。任务工作者控件最常被用于在实现一个定制的用户介面中。


回调(Callbacks)

当它的状态改变时,任务控件能够通知一个流程。通常的回调包括完成日期超时,任务被终止,或任务完成。回调允许流程停止执行它的逻辑,直到事件发生。


控件方法

控件方法提供了一套机制,业务流程或用户介面使用它们建立一个新任务,读取或修改任务数据的值,读去当前状态,引发一个状态的转变,或删除一个任务实例。


可扩展的控件

任务和任务工作者控件都有一套内建的方法和回调。控件还可以通过Java annotations扩展。例如,你可以在你的控件中定义定制的操作,使用定制的参数和回调。通过在那些方法中的annotations,你可以配置一个控件的数据值,建立新任务,更新存在的任务等等。你也能够通过以下方式扩控件:

 你能够改变方法的参数,使用XML Bean的类型,使之与任务相关的,你定制的XML文档的schemas相适应。
 你能够加入一个新方法,一次执行多个操作。如,你可以写一个新方法,执行建立一个新任务,设置它的优先级和注释,并将它指派给名字被传入这个方法的用户。
 你能够增加能察觉其它状态改变的回调。例如,你可以增加一个检察任务被claimed的回调。

(关于annotations,BEA官方是译为"批注",直接使用Java批注似乎容易误解,此处保留英文。总之是一套利用JAVA注释,改变方法的BEA独门招数就是了。)


系统管理
使用WebLogic Integration系统管理控制台的Worklist管理模块,你能够管理Worklist中的任务,业务日历,任务属性和其它要素。使用Worklist控件和Worklist API,你能够建立一个定制的Worklist客户端。Worklist API以EJB和MBeans的形式被使用。下面的章节将更充分的讨论这些主题。

 WebLogic Integration系统管理控制台
 Worklist用户介面
 EJB API
WebLogic Integration系统管理控制台
WebLogic Integration系统管理控制台的Worklist管理模块允许应用程序管理者管理和监视你的WebLogic Integration应用程序的任务实例。你能够执行的Worklist指定的管理功能包括:
 查看任务的摘要或细节,监视在完成期限内的任务的执行情况。
 执行查询显示个体的工作量。
 为了加快进度,重新指派任务。
 改变任务属性,如状态或期限。
 通过建立或改变替代路由规则,控制任务路由。

学习更多的关于Worklist任务的知识,请参考管理WebLogic Integration解决方案中的 Worklist 系统管理部分。

Worklist用户介面
Worklist用户介面使最终用户--任务创建者,任务操作者,任务管理者―能够与一个正在运行的业务流程交互,包括处理流程的意外情况,批准请求和状态跟踪。典型地,在真实世界的应用程序中,人们需要一个定制的用户介面和任务交互。例如,你可能会在公司内部网中已有的定单处理用户介面增加一个页面,来允许一个管理者批准特别大的定单。

WebLogic Integration包含了一个Worklist用户介面的例子。研究Worklist用户介面的例子并使用它的设计策略,可以帮助你设计你的用户介面。

学习更多的关于Worklist用户介面的知识,请参考Worklist用户介面和EJB API 。

Enterprise JavaBeans API
使用这些EJB API,你能够无须借助在WebLogic Workshop中创建的业务流程(JPD),使用Worklist EJB直接创建和管理任务。
代码样本被包括在Worklist 用户介面 和EJB API中。

本文地址:http://com.8s8s.com/it/it12070.htm