工作流办公系统

2024-08-15

工作流办公系统(共12篇)

工作流办公系统 篇1

应用工作流技术,可以把工作划分成前面概念清楚的任务以及角色,并且依照某些规则来进行任务的操作,与此同时进行着监控活动,从而可以大大的改善办事效率、降低工作成本、提高竞争力。这是因为现代信息管理系统的发展,客观上要求一个企业中分散于不同地点的部门或分支机构以及相关企业之间的协作都需要在同一个统一的业务过程中完成。因此需要将以前不同部门或企业的内部流程组合起来形成一个统一的业务流程。本文就是采用工作流的技术,开发企业办公自动化系统的探索。

1 工作流的组成与分析

1.1 工作流技术的组成

对于工作流来说,它通常含有若干个具有某个业务目标的组成部分。需要注意的是,这些不同部分都有着较为严格的次序,对于这些环节来说必须他们需要的激活条件为肯定时,才允许被执行。对于工作流的自动化,更是需要所有的业务过程,所有涉及到的部分都能够被合理的进行调配。

为了达到作流之间的功能,WFMC组织提供了工作流的相关参考模型,在这个参考模版里,给出了相关的部件以及接口。这一般包括了如下的组成部分:首先是执行服务、然后是客户端的主要功能、然后是流程定义所需模版,再次是工作流的引擎、还有管理监控的工具等;对于接口来说,主要有图1中所示的5种接口:那就是:接口一、接口二、接口三、接口四和接口五。下面对这些组成进行更加详细的分析。

1.2 工作流参考模型的基本构件

在工作流的组成中,它的执行服务(英文是WES:也就是Workflow EnactmentService的缩写)可以说作为工作流管理的中心,负责着创建、对管理的流程进行概念性的阐述,以及对于实际流程的创建、管理功能;在对这些功能进行实现的时候,应用程序会应用编程的接口来跟工作的流执行服务想沟通;在某个工作流的执行服务里,需要涵盖很多分布式的工作引擎。工作流引擎的概念是这样的:它能够帮助流程实例,给他一个外围环境而且辅助进行解释工作,从能实现流程软件功能。这里流程的定义工具也发挥着重要的作用,应用它可以实现对流程的定义,特别是不会以复杂的形式而是以图形交互的方式,将一个繁琐的流程定义来实现。而客户端应用在客户端发挥着重要作用,应用它,可以向工作流的执行服务发出请求,从而实现交互,可以这么看客户端应用:它主要是对工作流服务的调用。而调用应用与客户端应用是不同的,它不是对工作流执行服务的调用,而是一种被调用的过程,其地位处于工作流执行服务的下方。一般来说,为了实现某个流程实例能够正确的得到运行,各种工作流执行服务就需要对信息、对参数的交换,也就是以某种交互的方式进行参数的传递。这种情况下,管理监控工具就可以发挥作用了,它含有组织的功能、可以实现角色数据的维护,同时对工作流的整个运行情况进行监控。

1.3 工作流参考模型中定义的5类接口

这里对工作流中所射击的5种接口进行分析。对于接口一来说,它主要是为了建模和定义工具与执行服务之间来进行交互,从而达到工作流定义的沟通。它的实现,包括了数据的交换格式,以及相关的应用程序接口,在这里数据交换是经XPDL,API来实现。接口二通常也被称作客户端应用接口,它的作用是为了客户端应用实现对引擎以及工作列表的访问,这个接口是依靠WAPI实现的。对于接口三,其作用主要发挥在不同应用系统之间的交互上。接口四是各种工作流系统互联的接口。最后一个接口五,通常也被称作管理监控接口,主要是通过它来实现对工作流执行服务的访问。

2 系统开发工具

本文的工作流系统主要是通过开发平台Lotus Notes来实现的。这是美国的Lotus公司,该公司现在为IBM的下属企业,在90年代初提出的。它很早以前,提出了群组工作软件的概念,需要通过电脑网络来实现对资源、信息等等共享服务。这个开发平台现在有着重要的作用,特别是在商业的办公领域里地位很突出。

除了本身具有完美的流程控制同时有一个强大的数据库复制技术,另外一个使他获得成功的原因是:它有着先进、可靠的保障机制。因为它结合了通信和多媒体文件的数据库共享,是一个跨平台、支持多种操作系统的硬件及网络环境下操作平台。它现在已经被广泛地应用到了办公自动化、协同工作环境、以及工作流控制等等领域,已经成为了一组标准软件。对于典型的集成OA系统中,应用了前面的普通用户浏览器,和系统管理员和档案实现,对于该平台需要相关的服务器,主要包含了网络服务器,电子邮件服务器以及SQL服务器等等。

3 系统总体架构设计

提出的系统功能如下:1)用户界面。系统采用统一简洁的用户界面,不但配备完整的帮助文档,而且需要操作友好直观,从难易程度上分为三个层次。第一个层次:具有网页基本操作常识的人员,无需培训即可直接进行简单的操作,例如档案浏览等;第二个层次:系统提供操作向导,用户具有一般的软件操作经验,无需培训,即可边摸索边进行操作。2)办公流程。要设计领导、和员工用户平台,通过同一套权限体系自动或手动识别登录,并面向这几类群体提供满足用户个性化需求的操作界面和信息共享分析。机构领导、部门领导以管辖范围内的各项业务信息实时展现和流程业务审批为主,员工以查看个人信息和业务申请为主。与用户自定义表单结合使用以提高系统适应实际情况的灵活性、可扩充性及可维护性。3)表单定制。根据自身特定的业务需求,系统提供用户可自行设计定义的用户表单,指标体系以及相关指标代码设计应该遵循有关国家有关标准。严谨规范的指标体系决定了该系统具有良好的扩展性和可接口性能。4)打印和查询。系统不仅提供Notes自身支持的全文检索功能,同时增加了能满足各自不同查询条件的通用查询能力,可以方便查找满足条件的文档。5)安全机制。系统服务器采用IBM X232小型机,可以保证系统可靠运行;所有工作站使用企业网联接,保证网络通讯的良好性能;系统采用数据库系统,数据处理速度快,安全保密性能高;系统采用严格的权限管理,不同岗位,不同业务具备不同的权限;系统提供Lotus Domino/Note自身的7层安全机制,主要数据以Server/Client的方式存取,防止数据因共享、非法修改而造成的错误。

4 系统子模块的开发

4.1 收发文处理子模块

收文处理是指收件人阅读有关部门的处理过程的文档的领导。收件人处理系统具有以下要求:(1)要求都通过计算机注册,入口、标志、指导、传阅、存档。(2)展示、分类、查询、统计和打印。(3)过程自动化管理和记录。(4)的文件自动跟踪监测和闭环控制。发文处理是指以本公司名义发出去的文件的处理过程。用户可根据实际情况设置工作流程,以决定不同行文流向及处理过程。作者应严格按公文制度来填写表单中的各个项目。填写完成后即可进入流转过程。根据发文流程的定义,把发文转给本部门的负责人审核,并转相关部门负责人会签审核后,转分管领导进行审核。

4.2 通用信息子模块

通用信息子系统包括:讨论中心、公用通讯录、公告通知、人员去向、来宾登记。通用信息某块实现通信服务和互联网接入服务。采用VPN(虚拟专网)组网方式,并统一对外出口提高了办公以及与外界信息交流的安全性。内网门户网站是面向所有企业工作人员内部信息交互的平台,可以提供各种综合信息和数据,实现单点登陆,可以进入到自动办公系统的各个子系统,将各个业务系统、视频会议系统紧密地整合在平台上。

4.3 个人办公子模块

个人办公子系统主要包括电子邮件、工作安排、出勤补签、个人通讯录、网上寻呼、Internet浏览,这些功能主要面对职员。它集成文字处理、电子表格、演示文稿、绘图制作和数据库五大模块,包含了文字、表格基本组件;以使用者焦点为核心的全新交互设计,随需应变的工作区,所有需要的功能唾手可得。本系统在现阶段为所有用户提供了内部局域网上的电子邮件功能;供可存储大文件和投递超大附件的文件中转站功能,让邮箱沟通无限容量变得可能,灵活的邮件监控与审核功能,使得信息管控更加规范,此外还有高效归档管理、快速信息处理、保障邮件信息安全的邮件归档功能。除此以外,还有出勤补签系统,用于单位考勤的管理。

参考文献

[1]刘紫玉,等.基于B/S模式的机关办公自动化系统实现[J].计算机应用研究,2004(12):218-220.

[2]张大斌,朱绍文.基于Lotus Domino/Notes办公自动化系统的开发研究[J].计算机应用研究,2001,18(10):14-17.

工作流办公系统 篇2

UCML工作流系统与现有应用系统

集成实现方案说明

金富瑞(北京)科技有限公司

Goldframe Technologies Co., Ltd.一 总体说明

UCML.Net工作流系统是国内领先的工作流平台,涵盖了从流程开发、发布、管理配置到运行、监控的整个过程。UCML工作流系统主要包括可视化的流程设计环境、独立的工作流引擎服务、WEB客户端管理、可视化的流程监控、流程套路生产线几个部分,是.Net领域用户最多,覆盖面最广的工作流平台。

一方面,UCML工作流系统与UCML平台其它部分(业务单元开发,Web报表)无缝集成,可以完成复杂的业务处理及流程流转;另一方面,UCML工作流系统与业务之间采用松耦合设计,不仅可以与UCML业务系统集成,还可以与其它现成的应用系统实现无缝集成。

UCML工作流在与其它应用系统集成时,一般有两种方式: 第一种:保留UCML现有的组织机构、用户及权限体系

第二种:完全屏蔽UCML提供的组织机构、用户及权限体系,完全采用客户原有的组织机构权限体系。

对于第一种方式,需要另外实现UCML系统与客户现有应用系统之间的数据同步,具体方法可采用程序同步方式,在这里就不详细介绍了。

下面主要介绍一下采用第二种方式时的处理方法。二 UCML Workflow会话编程接口

UCML Workflow 提供了WorkFlow.WorkFlowSession会话类来访问工作流引擎, WorkFlow.WorkFlowSession以.Net Remoting服务形式形式存在于工作流引擎的独立进程中,客户端可以创建WorkFlow.WorkFlowSession的Client端来来调用服务端的接口。

创建工作流会话对象

WorkFlow.WorkFlowSession

FlowSession

=(WorkFlow.WorkFlowSession)Activator.GetObject(typeof(WorkFlow.WorkFlowSession), “tcp://”+WorkFlow.UCMLInitEnv.WorkflowEngineAddr+“:”+WorkFlow.UCMLInitEnv.WorkflowEnginePort+“/WorkFlowSession”);

程序启动工作流程

public Guid CreateInstance(string FlowID,Object UserOID,Object PostnOID, Object DivisionOID,Object ORGOID, bool startNow)

通过调用CreateInstance函数,可以启动指定的工流程。

返回值:流程实例句柄。

参数名称 FlowID UserOID PostnOID DivisionOID ORGOID startNow

类型 string Object Object Object Object Bool

参数说明

要启动的流程编号

起动流程的用户OID,实际类型为GUID 起动流程的员工OID,实际类型为GUID

起动流程的员工所在部门的OID,实际类型为GUID 起动流程的员工所在组织的OID,实际类型为GUID ==true 流程是马上启动; ==false 流程暂不启动,要启动流程需调用StartInstance函数,这种情况一般用于在业务(如客户订单)提交成功后,先写入订单号到流程实例中,然后在启动流程。

 向流程全局数据写入数据

public void WriteFlowData(string FlowID, Object InstanceID, string FieldName,Object Value)

参数名称 FlowID InstanceID FieldName Value

类型 string Object string Object

参数说明

数据项所属的流程编号

流程的实例句柄,实际类型为GUID 数据的属性名称 数据的属性的值

从流程全局数据读出数据

public Object ReadFlowData(string FlowID, Guid InstanceID, string FieldName)

返回值:读取数据属性的值

参数名称 FlowID InstanceID FieldName

类型 string Object string

参数说明

数据项所属的流程编号

流程的实例句柄,实际类型为GUID 数据的属性名称

向流程局部数据写入数据

public void WriteActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName,Object Value)

参数名称 FlowID InstanceID ActivityID FieldName Value

类型 string Object string string Object

参数说明

数据项所属的流程编号 流程的实例句柄,实际类型为GUID 活动节点的编号 数据的属性名称 数据的属性的值

从流程局部数据读出数据

public Object ReadActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName)

返回值:读取数据属性的值

参数名称 FlowID InstanceID ActivityID FieldName

类型 string Object string string

参数说明

数据项所属的流程编号 流程的实例句柄,实际类型为GUID 活动节点的编号 数据的属性名称

完成已分配的任务

public string FinishTask(string strAssignTaskID)FinishTask代表设置已分配出去的任务已完成 返回值:提示信息

参数名称 strAssignTaskID

类型 string

参数说明

分配任务的唯一标志号

设置任务结果及状态

public void SetTaskResolution(Guid TaskID,TTaskResolution Resolution)

设置任务执行结果,代表任务执行完毕

参数名称 类型 参数说明

TaskID Resolution

Guid

任务的Key值

TtaskResolution 任务的状态{UNRESOLVED,SUCCESS,FAIL,EXCEPTION} 含

义分别为{未处理,成功,失败,异常}

 编写节点分支条件

UCML Workflow用abstract public class Transition类来描述一个分支条件

类属性名称 类型 可见度 属性说明

TransResult

Boolean

protected

TransResult==true 则代表流程分支条成立

TransResult==false 则代表流程分支条不成成立

FromActivity

WorkFlowActivity

public

分支来源节点对象实例 ToActivity FlowModel

WorkFlowActivity WorkFlowModel的子类

public public

分支目标节点对象实例

其实是流程模型的实例对象,通过它可以访问流程所有属性(或状态)数据

方法名称

类型

可见度 public

方法说明

virtual public bool OutgoingCondition()

在UCML Workflow里,节点的一条流出分支是否成立完全取决于这个函数,编程人员员可以它的子类里编写它的具体实现代码,在编写代码时可以结合流程的状态数据。在这函数中一定要设置TransResult的值,也就是说如果TransResult==true 分支成,否则分支不成立,也就不走这条分支。

IncomingCondition

bool

public

virtual public bool IncomingCondition()OutgoingCondition()bool

OutgoingCondition()这函数是在Transition的子类中已覆盖函数形式实现,在UCML环境里的流出条件编辑,就是实现此函数。如下图示:

 9.编程实现智能任务分配

wm_assign()-UCML Workflow提供回调函数,为开发者提供完成复杂分配的可能,详见回调函数接口

 10.终止流程

方法名称 Abort()

类型 void

可见度 public

方法说明

public void Abort(string FlowID, Guid InstanceID)终止某个流程实例

 9.挂起流程

方法名称 Pause()

类型 void

可见度 public

方法说明

public virtual void Pause()暂时挂起一个流程

 10.唤醒流程

方法名称 Resume()

类型 void

可见度 public

方法说明

public void Resume(string FlowID, Guid InstanceID)重新运转流程

 11.节点手动跳转

方法名称 GotoActivity()

类型 void

可见度 public

方法说明

public void GotoActivity(string FlowID, Guid InstanceID,string FromActivityID,string

ToActivityID,string Performers)作用 : 流程跳转 FlowID:流程ID

InstanceID:流程实例句柄 FromActivityID:来源活动名称 ToActivityID:目标活动名称 Performers:执行人的群组串. 回退任务

///

/// 回退任务 /// ///

任务ID public void Rollback(Guid TaskID) 回收任务

///

/// 收回任务 ///

///

任务ID

 获取某个活动节点执行人

///

/// 获取某个活动节点执行人

///

///

活动节点ID

/// public string GetActivityPerformer(string ActivityID)

 获取当前节点即将流向的目标节点,如果是并发输出将会多个流向。用于在当前节点完成时,马上选择下一节点执行人

///

/// 获取当前节点即将流向的目标节点,如果是并发输出将会多个流向

/// 用于在当前节点完成时,马上选择下一节点执行人

///

///

流程ID

///

实例ID

///

活动ID

/// 返回要输出的节点ID数组

public string[] GetOutgoingActivitys(string FlowID, Guid InstanceID, string ActivityID)

 获取节点状态

///

/// 获取节点状态

///

///

///

///

///

public int GetActivityStatus(string FlowID, Object InstanceID, string ActivityID) 修改节点状态

///

/// 修改节点状态

///

///

///

///

///

public void ChangeActivityStatus(string FlowID, Object InstanceID, string ActivityID, int ActivityStatus) 不结束当前节点,而激活下一节点

///

/// 不结束当前节点,而激活下一节点

///

///

流程ID

///

流程实例ID

///

流转到活动ID

///

来自活动ID

///

流转到活动节点执行人

public void GotoActivityNotFinishTask(string FlowID, Guid InstanceID, string FromActivityID, string ToActivityID, string Performers)

 完成已分配的任务,但不流转

///

/// 完成已分配的任务,但不流转

///

///

工作流活动节点对象

///

public string FinishTaskNotRun(WorkFlowActivity Activity)

 加签或者转签

///

/// 加签或者转签 /// ///

流程ID ///

实例ID ///

任务ID ///

当前用户OID ///

执行人 ///

按照顺序执行 ///

true:加签;false:转签 ///

///

消息类型 ///

消息内容

public void AddSignPerformer(string FlowID, Guid InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers, bool fSignOneByeOne, bool InsertBefore, bool IsDeleteSigner,int MessageType,string MessageContent)

 协办或会签

///

/// 协办或会签

///

///

流程ID

///

实例ID

///

任务ID

///

当前用户OID

///

执行人

///

消息类型

///

消息内容

///

3:协办;1:会签

public void AssignSignPerformer(string FlowID, Guid InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers,int MessageType, string MessageContent,int TaskKind)

 手工正常分配任务

///

/// 手工正常分配任务 /// ///

///

public void MansualAssignTask(string TaskTicketOID,string Performer) 分配参阅任务

///

/// 分配参阅任务 /// ///

///

public void MansualAssignReadTask(string TaskTicketOID,string Performer) 悔签任务,对在任务分配表AssignTask中acceptFlag置为1的标记设为4悔签

悔签

///

/// 悔签任务,对在任务分配表AssignTask中acceptFlag置为1的标记设为4/// ///

public void RepentSignforTask(string assignTaskID) 任务跳回到执行人

///

/// 任务跳回到执行人

///

///

流程ID

///

流程实例句柄

///

节点ID

public void TaskReturn(string FlowID, Guid InstanceID, string ActivityID)

 获取某个已完成节点的执行人

///

/// 获取某个已完成节点的执行人

///

///

流程ID

///

流程实例句柄

///

节点ID

/// 返回执行人OID数组

public Guid[] GetExecuteUser(string FlowID, Guid InstanceID, string ActivityID)

 唤醒已完成的任务

///

/// 唤醒已完成的任务

///

///

public void WakeFinishedAssignTask(string AssignTaskOID) 12.任务超时处理及编程

UCML Workflow 的是否超时由下图的完成期限和延长时间两个属性决定:

当完成期限不填内容时,代表这个活动节点产生的任务没有时间限制 延长时间代表完成期限倒了之后,还可以再延长多少时间

 即将超时处理

当完成期限到了之后,会回调wm_willtimeout函数,如果想在此时放个邮件通知或短信,就可在wm_willtimeout函数内调用。

 超时处理

同样的当完成期限到了之后,如果有延长时间,而且延长时间也到了,会回调wm_deadline函数,如果想在此时放个邮件通知或者短信,就可在wm_deadline函数内调用。如下图示:

如果任务在截止期限和延长时间内都没有完成,此时任务做超时处理,流程是继续流转还是停止由截止期限到达时系统行为这个属性决定,如为SYNCHR(同步),则流程停在这里,如果为ASYNCHR(异步)则流程继续流转。

三 UCML工作流开放性介绍

UCML 引擎底层框架的基类源码不开放,包括引擎调度代码和流程类、活动类和分支类基类代码。而根据定义可以直接生成引擎源码都是开放的,可以在这些源码的框架扩展时刻(回调函数)之内注入C#代码来进行,如下面活动节点代码的时刻函数

任务分配时刻函数

override public void wm_assign(Object taskTicketID,Object[] UserList,ref Object[] AssignUserList,ref int[] TaskKindList,Boolean reassignFlag){ } 任务分配后时刻函数

override public void wm_afterAssignTask(Object assignTaskID,Object UserOID){

base.wm_afterAssignTask(assignTaskID,UserOID);}

任务分配前时刻函数

override public void wm_beforeAssignTask(SysDBModel.AssignTaskInfo AssignTaskInfo){ }

任务完成时刻函数

override public void wm_afterTaskFinish(Object taskTicketID,TTaskResolution TaskResolution){ }

任务超时时刻函数

override public void wm_deadline(Object taskTicketID){ }

任务完成规则函数

override public bool wm_finishTaskRule(SysDBModel.TaskTicketInfo taskTicketInfo){

return false;} 任务创建函数

override public void wm_createTask(SysDBModel.TaskTicketInfo taskTicketInfo){ }

任务回滚前函数

override public void wm_beforerollback(Object taskTicketID){ } 任务回滚后函数

override public void wm_afterrollback(Object taskTicketID){ }

override public void wm_onactivate(){ }

override public void wm_willtimeout(SysDBModel.TaskTicketInfo taskTicketInfo){ }

override public bool wm_activityInComeCondi(){

return false;}

} }

四 集成方案

在采用客户已有的人员权限体系时,主要用到UCML工作流系统的可视化流程设计环境、工作流引擎服务、工作流标准表结构、流程API、可视化的流程监控(可选)等。在集成时可能需要修改客户已有的Web系统或表的结构,主要是修改以下地方:  修改人员信息表

 引入流程接口(UCML工作流API) 客户登陆会话的改变

 加入工作流引擎需要的初始化程序  增加一个待办事宜模块

 引入平台中的可视化的流程监控模块(如果需要可视化流程监控那么就需要引入)在平台中主要有以下注意点:  在平台中设计工作流模型  添加流程状态数据

 在任务分配函数-wm_assign()中设置任务的执行人  修改人工节点上的业务标识符为为自己的页面

1、修改人员信息表

需要在客户现有的用户表(存储登录帐号、密码表)中增加一个Guid类型的字段,这个字段的值唯一标记一个用户,不影响客户现有的应用体系,起到与UCML工作流衔接作用。

这个字段的字段名命名规范为:客户表名+OID,即“客户表名OID”,字段类型为GUID类型,在MSSQL Server中是Uniqueidentifier,Oracle中为VARCHAR类型。在客户业务系统中客户的登录ID代表客户的身份,如果整合中客户表中有现存的数据需要手工给“客户表名OID”赋值;另外,在增加用户的程序中要同时给“客户表名OID”赋值。

2、引入流程接口(UCML工作流API)

 在客户现有系统的工程文件中引入UCML工作流API,并引用一个专门为第三方业务开发包装的接口源程序WorkflowClient.cs。

 相关工作流API:DBLayer.dll,SysDBModel.dll,UCMLBase.dll,WorkFlow.dll  把Workflowbin 目录下的UCMLConf.xml,DBLayer.xml文件拷贝到客户工程的bin目录下,注意:如果不是在客户工程的本机运行工作流引擎,则需要把UCMLConf.xml文件中引用工作流引擎地址的IP改为运行工作流引擎主机的IP地址。

3、客户登陆会话的改变

在用户登陆的程序中,在取得用户表中各项数据时,把用户表中新增的字段也读出来,并把该项也放入用户登陆会话中。

4、加入工作流引擎需要的初始化程序

在使用客户的应用程序中与工作流引擎打交道之前的任意时刻加入如下程序: UCMLCommon.UCMLInitEnv.fInServer=true;UCMLCommon.UCMLInitEnv.LoadEnvVariable();new DBLayer.LogicDBModel();UCMLCommon.UCMLLogicDBModelApp x = new UCMLCommon.UCMLLogicDBModelApp();x.PrepareModel();

5、增加一个待办事宜模块

待办事宜也叫待办任务。

需要客户自己新增一个待办事宜模块,其数据来源是UCML提供的任务分配表AssignTask,开发者可根据记录(任务)的完成与否状态过滤数据到待办任务模块内。

6、引入平台中的可视化的流程监控模块(如果需要可视化流程监控那么就需要引入)

可视化流程监控的页面在平台中的业务模块是:BPO_FlowTrace 可以将BPO_FlowTrace相关文件拷贝到项目下: BPO_FlowTrace.aspx BPO_FlowTrace.aspx.cs BPO_FlowTrace.asmx BPO_FlowTrace.asmx.cs BPO_FlowTrace.htc

7、在平台中设计工作流模型

在平台中设计工作流模型,可以参考“工作流设计手册”。

8、添加流程状态数据

UCML工作流引擎和业务之间是松耦合处理模式,工作流和业务之间是通过流程状态数据进行交互。

流程状态数据是指工作流在运转过程中流程流转所需要的保存在流程实例中的数据,一般有三类业务数据要保存在流程中,一是业务单据的关键字段,用它可以决定一个任务对应的业务单据号,在UCML里一般把表单主键存到流程里;二是决定流程分支走向的数据,有可能是领导意见,也有可能是单据金额,这些数据是为了工作流引擎内部调用的;三是流程执行人信息。

流程和业务之间的状态数据交互方法很简单,如下所示:

写入流程状态数据:即把业务的数据写入到流程中去,调用的方法是WriteFlowData;

读出流程状态数据:即把流程状态读出来赋给业务,调用的方法是ReadFlowData。写入流程状态数据一般在数据提交时进行,读出流程状态数据一般在初始化时进行,读时可以把流程状态数据赋给业务中的某个属性,以方便业务中调用。

9、在任务分配函数-wm_assign()中设置任务的执行人

在工作流中任务分配的方式有几种:

通过群组配置分配任务

回调函数分配任务

手工执行执行人

由于组织机构等均不采用平台自带的组织框架,所以无法采用“通过群组配置分配任务”的方式,只能采用“回调函数分配任务”或

10、自己实现执行人群组解析接口,可以继续使用基于配置的任务分配

基于流程模型的执行人配置可以避免在wm_assign里写程序做任务分配,但必须必需特定某个组织机构,在这个组织机构基础之上可以定义群组,来描述人员、部门和岗位集合,也可以定义相对执行人如申请人的部门主管、申请人公司总经理等,只要实现自己的群组解析接口,就可以自己的群组串配置UCML的工作流执行人的字段里,就可以实现基于配置的任务分配实现步骤如下:

 自定义类实现如下接口

public interface IGroupParser { Object[] UserOIDList(string GroupStr, Object Starter, Object StartPostn, Object StartDivision, Object StartORG, Object Performer, Object PerformerPostn, Object PerformerDivision, Object PerformerORG);Object[] UserOIDList(string GroupStr);}

///

/// ///

群组字符串 ///

流程启动者GUID /// 根据组定义获取用户列表

///

流程启动岗位GUID ///

流程启动部门GUID ///

流程启动企业GUID ///

当前执行人GUID ///

当前执行人岗位GUID ///

当前执行人部门GUID ///

当前执行人企业GUID /// 返回GUID类型的用户ID  在UCMLCONF.XML文件里添加如下节点:

true dll名称 类名称11、12、修改人工节点上的业务标识符为为自己的页面 工作流计算工作日客户自定义接口

1.自定义类实现如下接口

public interface IWorkDay { ///

/// 计算任务完成期限,用于扩展节假日等非工作日的完成时间的计算

///

///

任务开始时间 ///

任务计划用时,单位为秒 ///

任务执行人OID /// 返回任务最终完成时间 DateTime GetLimitDateTime(DateTime startTime, long delayTime, Guid UserOID);}

2.在UCMLCONF.XML文件里添加如下节点:

< fCustomWorkDay>true < WorkDayAssembly>dll名称 < WorkDayClass>类名称

13、///

/// 流程切面时刻

///

public interface IWorkFlowRuntime { /// /// 流程创建时刻

///

///

工作流时刻切面接口

1.自定义类实现如下接口 ///

void OnCreateInstance(WorkFlowModel FlowInstance, DateTime CreateTime);///

/// 流程完成时刻

///

///

///

void OnFinishInstance(WorkFlowModel FlowInstance, DateTime EndTime);///

/// 流程终止时刻

///

///

///

void OnAbortInstance(WorkFlowModel FlowInstance, DateTime AbortTime);} ///

/// 活动节点切面接口时刻

///

public interface IActivityRunTime { /// /// 任务创建时刻

///

///

///

///

void OnCreateTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime CreateTime);///

/// 完成任务分配时刻

///

///

///

///

void OnFinishAssignTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime FinishTime);///

/// 完成整个任务时刻

///

///

///

///

工作流系统的设计与实现 篇3

关键词:工作流;工作流管理系统;计算模型

工作流就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间利用计算机,按某种预定规则自动传递文档、信息或者任务。

工作流管理系统的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现,主要组成部分包括:

过程定义工具

过程定义

工作流执行子系统和工作流引擎

工作流控制数据

工作流相关数据

应用程序和应用数据

工作表和工作表处理程序

业界的工作流主要遵循两个标准:WFMC和BPEL。BPEL标准是由IBM、Microsoft等公司联合发布的标准,他们的工作流产品如IBM Lotus Workflow、Microsoft Windows Workflow Foundation。

对于工作流系统的设计,一个工作流管理系统通常包含3个不同层次的工作流定义,即全局工作流、局部工作流和工作流实例。当系统边界确定之后,整个系统拥有一个全局工作流。对于较为复杂的系统,一个全局工作流可能包含或者可以拆分为多个局部工作流,它们之间通常可以并发或者通过较为松散的关系交织在一起。以OA系统为例,可将OA系统的全局工作流拆分为信息发布、公文管理、会议管理、用车管理四个局部工作流,再细分下去,公文管理还可以分为收文管理与发文管理。

值得一提的是,相对于静态工作流系统,动态工作流系统的设计要复杂得多。这主要是因为后者需要考虑动态的过程定义,一般来说需要开发平台或开发环境的一定程度的支持并能够很容易地体现在表现层中。

最后,我们讨论一下工作流系统的实现。由于国内外很多软件公司均有各自的工作流产品及成熟的软件开发架构,这里以Microsoft Windows Workflow Foundation为例提出一个可行的解决方案。此解决方案采用多层模式架构,分Web表示层、工作流层、业务层、实体层、数据访问层和数据库。对于非工作流需求(仅面向数据模型)只访问业务层,而对于工作流需求则可能需要同时访问工作流层和业务层,这取决于工作流是否包含对数据模型的访问。采用这种架构的工作流容易变更,业务层作为工作流框架的底层服务更加独立,仅依赖于数据访问层。

以“用车管理”工作流框架为例,首先创建一个用车活动类型:

public sealed class AutomobileActivity : CodeActivity

然后重写AutomobileActivity中的Execute方法,根据传入的上下文,选择具体的子活动(申请、审批、安排出车、交车):

protected override Boolean Execute(CodeActivityContext context)

{

Boolean result = false;switch(ActivityName.Get(context)

{

case“申请”:

……

break;

case审批”:

……

break;

case“安排出车”:

……

break;

case“交车”:

……

break;

}

return result;

}

至于业务层、实体层、数据访问层,这里不再详述。

以上是基于微软WF工作流技术的一种工作流系统解决方案,与很多解决方案相同仅支持静态的工作流定义。

工作流办公系统 篇4

关键词:高校,协同办公

随着经济社会的发展, 高等职业院校进入了一个快速发展的黄金时期。新校区的搬迁, 办学规模日益扩大, 学院的管理信息畅通、管理关系的协调与统一等随之出现的新情况、新问题都需待解决。传统的办公模式已不能满足学校发展的需求。在传统的办公模式中, 完成办公业务主要是通过手工, 学校办公人员需消耗大量的时间和精力在重复繁杂的工作中, 这样就容易造成工作效率低和资源浪费等问题。因此, 要提升学校的现代化管理水平和办公效率, 必须建立一套以计算机网络为基础, 结合最新的管理思想和管理理念, 使学校在面对易变和复杂的外部环境时能突破以往传统的部门分工的协同办公系统。

1 工作流管理技术

工作流是一类能够完全或者部分自动执行的经营过程, 根据一系列过程规则、文档、信息或任务能够在不同的执行者之间传递与执行。

工作流管理系统 (Workflow Management System, WFMS) 是一个完全定义、管理和执行工作流的系统。它的主要功能是通过计算机技术的支持去定义、执行和管理工作流, 协调工作流执行过程中工作之间以及群体成员之间的信息交互;它可通过单个或多个工作流引擎 (Workflow Engine) 运行, 并能存储和解释过程定义。

2 系统主要功能模块

协同办公系统面向全校教职员工, 用户在该平台下通过网络发送和接收有关信息, 在线处理的各项业务, 再根据自己的职责权限, 管理各种申请、查询和统计报表的输出打印等。主要功能模块包括文件管理、档案管理、会议管理、用印管理、车辆管理、宣传管理、文印管理、个人办公等子系统。

3 系统安全性设计

系统应根据各部门人员的实际应用需求来设计不同的用户访问权限, 如系统管理员和普通用户等。为其建立不同的应用角色, 需确定每个角色对数据库表的操作权限, 包括:创建、检索、更新、删除等操作。应用级的用户ID密码应与数据库操作密码加以区分, 防止普通用户直接操作数据库。用户只能用ID登陆到系统应用界面, 通过系统访问数据库, 杜绝通过其它途径操作数据库。用户ID的密码都经过加密处理, 在任何地方的查询都不会出现密码明文。在界面操作上控制出错机率, 排除可能会使应用非正常中止的错误。限制用户输入值的种类和位数, 避免用户录入无效的数据。系统可取消造成等待时间较长的操作。对错误操作支持可逆性处理, 同时对可能发生严重后果的操作有补救措施, 确保用户可返回正确状态。

4 系统总体架构

系统总体流程如下: (1) 用户层发送请求给通讯层, 通讯层对请求进行解析, 然后转发给适配层; (2) 适配层根据通讯层转发的请求, 适配到具体的业务; (3) 业务处理层进行相应的业务处理, 并调用持久层的接口, 进行数据的存取; (4) 业务处理成功后, 提交事务; (5) 事务处理完毕, 将响应返回。

5 系统运行控制

5.1 登陆模块

通过输入用户名、密码和登录类型连接数据库查询是否存在此用户。如果用户存在且密码正确, 则按登录类型转到相应的页面, 如该用户不存在或密码错误, 则会弹出出错信息。

5.2 管理员模块

通过登录进入管理员操作界面, 管理员可在此界面下添加或删除用户、修改用户密码和增添用户使用权限等操作。

6 系统数据库

从数据构成上看, 本系统的数据库部分主要由流程基本信息、流程信息处理、基础数据维护、用户信息及用户权限控制等部分组成。

流程及其相关处理是系统的核心部分, 保存了所有与业务流程有关的数据和信息, 包括静态信息和动态信息。其中, 静态信息主要是流程基本信息, 这些基础业务数据一旦保存到数据库中, 就很少变动, 维护成本低, 是系统最关键的基础数据, 一切业务操作都是围绕它展开的;动态信息是在系统运行过程产生的, 随着各项业务的进行, 数据量增长很快, 对这些数据的处理能力反映了数据库设计水平优劣。基础数据维护主要是维护系统的最基本的数据。用户信息主要用来存放用户信息如用户的基本信息, 组织结构等。权限控制主要用于管理用户的操作和阅读权限。

7 结束语

协同办公系统是高校数字化校园建设的重要组成部分。它结束了传统的办公模式, 实现无纸化办公, 减少资源浪费。该系统的设计与学校实际情况紧密结合, 具有广泛的应用价值。

参考文献

[1]郭丽.协同办公自动化系统的设计与开发[J].兰州大学学报, 2007.

[2]张晓刚, 李明树.基于工作流的知识流建模与控制[J].微计算机信息, 2005 (2) :89-90.

[3]Sinan Si Alhi:著, 常晓波译.UML技术手册[M].中国电力出版社, 2002.

[4]王艺.基于知识管理的第三代办公自动化系统的构建[J].铁路计算机应用, 2003.

[5]曾劲松.第三代办公自动化系统安全设计与实现[J].研究通信技术, 2003.

工作流办公系统 篇5

本标准实适用于于本段文秘工作岗位

1、职责范围

1.1、受办公室主任直接领导。

1.2、负责段领导会议及讲话文稿的起草、记录工作。

2、工作内容与要求

2.1、及时准确做好段领导,每次会议、讲话的文字记录工作。

2.2、起草好段领导每次会议讲话文稿。

2.3、及时收集段一线车间、工区生产生活资料,做好行政对内和对外的宣传报道工作。

2.4、完成领导交给的临时工作。

3、责任与权限

3.1、对行政对外宣传报道有审查权。

3.2、对因工作失职、失误造成的不良后果或影响负责。

4、人员资格要求

4.1、具有本科文化程度,接受过行政文秘管理工作培训。

4.2、遵纪守法、工作仔细认真,作风严谨,责任心强,认同企业文化。

5、检查与考核

5.1、检查内容:按本标准第二章逐项进行检查。

工作流办公系统 篇6

关键词:互联网广告;工作流;管理系统;JSP(Java Server Pages)

中图分类号:TP311.52文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

Ad Management System Design Based on Workflow Technology

Liang Dehua

(Jiangxi Tourism Business Vocational College,Nanchang330000,China)

Abstract:According to clients and advertising company on Internet advertising management needs,standardized application of workflow technology has developed an Internet ad management system.Web ad management simplified,lower cost,safe and reliable.This paper describes the system design and implementation of key technology,including ad rotation,billing management.

Keywords:Internet advertising;Workflow;Management system;JSP(Java Server Pages)

一、引言

随着互联网应用的普及,网络广告迅猛发展。截止2010年底,我国网站数量166.9万,上网用户4.5亿,网络广告收入达到42亿元。网络广告正在成为商家宣传产品、维护品牌形象的重要手段,其发展潜力巨大。网络广告的主要形式有:横幅式广告,按钮式广告,弹出式广告等。本文就如何开发互联网广告管理系统进行研究,试图找出适合一般网站互联网广告管理系统的构建思路。希望本文所做的探讨以及设计和实现的思路能够对国内互联网广告投放管理系统的建设有一定的参考价值。

二、系统的分析与设计

(一)需求分析。针对当前网络广告管理中存在的问题,我们确定网络广告管理系统的目标是:

1.方便广告管理:广告的增加、删除、修改和查询,广告位置和广告条设置都能够直接通过浏览器进行,不需要进入数据库操作,保证数据的统一性。

2.实现广告轮播:用户添加了广告后,如果一个广告位有不止一个广告条目,它们将轮流显示。

3.系统应该计费准确,防止作弊。

(二)系统功能设计。网络广告管理系统的主要功能有:

1.广告价格的设置:管理员对广告价格的添加、删除和修改。

2.广告位置的设置:管理员对具体广告位置的增加、删除和修改。

3.广告条的管理:管理员添加、删除和修改广告条信息。以广告添加为例:首先选择广告价格和具体广告位置,然后进入广告添加界面,输入具体广告信息,比如:广告类型,广告的发布人,广告的链接网站,广告图片地址,广告的限制条件,广告播放方式,备注等。

4.广告信息的查询:通过不同的方式查看广告价格、广告位置、广告条信息。例如,根据广告ID或关键词进行搜索。

5.广告轮播功能;通过编写脚本函数,实现网页对添加的广告条的调用。

6.广告显示与点击的计数功能。可以统计广告点击次数,记录相应的IP地址。例如:统计点击率最高、最低的广告,正常广告列表,暂停广告列表,失效广告列表。

(三)系统工作流设计。随着工作流技术的迅速发展,工作流产品需求不断扩大,许多公司纷纷推出了自己的工作流产品。工作流管理系统是以计算机支持的分布式、协同工作业务流程的软件系统。广告投放管理系统的流程可以设计成以下几方面:

1.取得竞价资格。首先,广告要与网页内容相关,至于如何分析网页、匹配关键字显然不是本文所能涵盖的,在此暂且跳过;其次,设定的内容出价应高于相应关键字的最低每次点击费用,这里的最低每次点击费用由系统根据关键字及广告的质量得分决定,而质量得分取决于关键字的点击率、关键字和广告文字与相应广告组的相关性、目标网页质量及其他相关因素。

2.竞价与广告排名。所谓的竞价过程,简单地说,便是按一定的算法为有资格竞争同一位置的广告排定顺序。同样地,广告排名(Ad Rank)由广告组的内容出价和质量得分决定。此处的质量得分由广告在相应网站以及类似网站上的既往效果、目标网页的质量及其他相关因素决定。

3.广告商支付的费用。这是系统最有趣的地方,虽然通常我们将其称为竞价广告系统,而事实上,广告商真正支付的费用基本上与其自身设定的内容出价无关——当然,可将其视为最高限价,即以支付费用不高出该价格为基础——而是由排名位列其后的广告商出价所决定。

从广告主进行广告计划开始到广告的制作,再到最后的广告费用结算和广告效果。广告主,广告商,广告制作商根据自己的角色不同,完成整个工作流的过程。

(四)数据库设计。根据数据实体之间联系以及关系规范化理论,本系统使用的主要数据库表包括:管理员表、广告价格表、广告位置表、广告条目表、点击IP记录表等。其中,广告条目表的组成较复杂,主要包含:广告标识、名称、广告投放人信息、广告状态、播放条件、显示类型、广告价格、广告链接地址、广告的有关属性描述、点击计数、广告添加时间、最后显示时间等。

三、系统实现的关键技术

根据各个广告的显示等级,随机选择本次显示的广告;更新数据库中该广告的显示次数;输出标题广告的HTML代码;在数据库历史表中保存显示和点击历史纪录。实现算法如下:

(一)计算播放等级总和。广告选择算法:首先计算出当前所有可用广告的播放等级总和,然后根据这个值生成一个随机数,再根据这个随机数来确定本次显示的广告。

(二)选择可用广告记录。查询并提取所有可用广告记录。在遍历可用广告记录时,记录已读取记录的weight值总和nWeighCount,当nWeightCount大于等于前面生成的随机数nRandomNumber时,则找到本次要显示的广告。这样播放级别高的广告将获得较高的优先播放机会。

(三)更新当前广告的显示次数。在确定本次要显示的广告之后,程序就可以更新该广告记录的show字段。如果新的show值超过了显示次数限制(shows)或者新的click值超过了点击次数限制(clicks),该广告则不可再显示。

(四)生成HTML代码。接下来就可以输出显示广告的HTML代码。所输出的HTML代码可以分成以下几个部分:重定向页面-->目标URL-->其他参数-->图片标记。这里没有直接链接到广告客户指定的URL,原因是我们希望能够记录广告的点击数量,通过在重定向页面就可以更新该广告的Click字段值。

互联网广告的发展前景广阔,开发互联网广告管理系统具有现实的实用价值。下一步的工作是完善本系统的功能,进一步提高计费管理的准确性和安全性。

参考文献:

[1]陈健.基于OLAP的互联网广告投放分析系统的设计与实现[J].计算机应用研究,2007,5

工作流办公系统 篇7

从技术变更的角度看办公自动化系统的发展, 大致分为三个阶段:第一个阶段实现了数据输入统计的电子化和文档处理的无纸化, 从而使信息的载体从纸到比特。第二个阶段是随着网络技术的发展和工作流技术的出现, 基于“客户端/服务器”结构的OA系统出现了, 从而使公文的收发过程实现自动化。第三个阶段, 随着ASP.NET、J2EE架构开发的Web服务器和关系型数据库的广泛应用, 以“浏览器/服务器”结构的应用系统开始盛行;并且工作流技术成为了知识传递的方式, OA系统也逐步向具备知识收集和共享等功能的统一网络办公平台。本文将介绍采用较为轻量的J2EE开发框架和开源的工作流引擎设计和开发统一办公平台。

1 相关技术基础

1.1 SSH框架

SSH框架是指由struts2、spring、hibernate三个框架集成的、适合进行Web应用程序开发的开源框架。基于MVC的Struts2框架创建的目的是提供统一的架构作为基础, 使开发人员更为容易地使用基于Java Servlet和JSP技术来研发Web应用程序, 而无需担心系统的体系结构。Spring框架是一个开源的、分层的框架, 它为J2EE各层的应用都提供了解决方案, 有通过I o C模式实现依赖注入的BeanF actory, 有为Web应用程序提供上下文的组件, 甚至有能够用于开发Web应用程序的MVC框架等。使用者可以根据应用程序的需要选用其中一个或者多个, 使应用程序的各个模块保持松散的耦合度, 减少开发的复杂性。Hibernate是一个面向Java环境的对象/关系数据库映射工具, 用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去[1]。

传统的J2EE框架属于重量级开发框架, 耦合度高、对服务器要求较高, 而且通常使用EJB组件实现业务逻辑层, 部署相对比较复杂。以Struts2+Spring+Hibernate的轻量级框架, 相比于传统的重型开发框架, 耦合度低、部署成本低, 而且更加灵活和容易掌控。

1.2 j BPM工作流管理系统

工作流管理系统是一个作为业务系统的软件支持系统。它被用来支持定义、管理和执行工作流程[2]。它将工作流程转换成经过计算的流程定义, 并推进工作流程的进行。工作流管理联盟 (Wf MC) 提出的工作流管理系统参考模型如图1所示。其中工作流引擎是整个系统的心脏, 它的作用是解析流程定义、组织调度流程实例, 推进工作流程, 处理工作任务、调用其他接口。流程定义工具是一个图形化设计建模工具, 功能是产生XML格式的流程定义。工作流客户端应用是提供工作流程表单和查询。执行外部应用是用来访问其他的应用系统的接口。其他工作流应用接口服务是希望通过该接口使用同一的标准, 与其他工作流引擎系统实现互认互通。管理和监控工具是搜集管理信息的工具, 该工具的目的是提供丰富的管理能力。

jB PM (java Business Process Management) 是一个包含功能强大的开源工作流引擎和业务流程管理组件的软件包。jB PM是一个开放性很强的业务流程开发框架。它与Hibernate框架能很好地结合, 互留的接口利于业务扩展;它完全支持嵌入式的应用, 能在事务处理、数据持久化等方面与应用进行灵活的集成。开发者可以很容易地以jB PM框架作为自己的流程框架的基础, 开发所需要的业务模块或者功能。jB PM框架的流程定义组件, 定义语言是基于XML的, 定义界面是支持图形化, 并且包括业务流程的常用活动 (例如start, state, fork-join, decision, end等) , 使无论是开发人员还是最终系统用户都能很容易地理解和使用这些组件。

2 系统功能与架构设计

2.1 系统功能

本文所构建的OA系统要实现三大部分的功能:第一, 实现行政人员日常办公所需的功能, 例如公文、车辆、会议的管理等;第二, 为所有人员提供日常工作管理和沟通交流的工具, 例如日程安排、通讯录等;第三, 整合提供单位内部的知识资源, 例如规章制度、办事流程。图2所示为OA系统是功能模块图。

2.2 系统架构

本文所构建的系统采用基于B/S模式的MVC三层架构:基于Struts2框架的表现层、基于Spring架构的业务逻辑层、基于Hibernate架构的数据持久层。在表示层, 采用struts2、JSP、Html标签开发页面, 同时以Struts2框架的控制器组件为核心, 负责相关业务流程的请求和响应, 通过配置Struts.xml调用相应的Action类处理数据维护和流程处理的Request和Response。在业务逻辑层, 以Spring框架作为IoC容器, 将处理事务的责任从程序代码转移到框架, 为表现层提供功能接口, 为数据持久层数据对象进行封装。在数据持久层, Hibernate框架负责持久化类的定义、持久化对象的映射定义、持久化的执行等。

2.3 工作流程的实现方式

在OA系统里, 运用j BPM工作流引擎实现公文流转的基本过程, 该过程可以分成以下四个阶段:首先设计和定义业务流程, 其次将流程定义和文件部署到数据库, 跟着创建公文并结合已定义的流程定义来发起流程实例, 最后公文流转过程的执行。

(1) 设计和定义流程。流程表示业务过程进行的次序或步骤。通过j BPM设计和定义流程, 就是使用j BPM的图形化流程设计器GPD, 将业务流程中的某个具体业务以活动节点表示, 并通过有向线条连接不同的节点反映流程的流向。GPD所定义的流程模型是遵循j PDL (j BPM的流程定义语言) 规范的, 并以XML文件进行保存, 并在第三个阶段被工作流引擎执行。图4是流程定义的图形化显示。

(2) 部署流程定义和文件。以XML文件保存的jP DL流程定义和其他相关文件会被打包成JAR文件, 并被工作流引擎所识别, 工作流引擎的通过调用相应的部署API将流程定义和文件存放到jB PM或应用数据库中, 在发起流程实例的时候再通过调用相应的API解析流程定义模板即可。其他相关文件, 如流程图片文件、业务表单页面等也可以通过调用API进行使用。

(3) 创建公文和发起流程实例。在本OA系统中, 每一类的公文有其特定的流转过程, 经过办公人员对流转过程进行定义后, 流程定义将以文件的形式保存在数据库。当一个公文创建需要进行流转, 就要先选择一个特定的流程, 并发起基于该特定流程定义的流程实例。

(4) 流程的执行。所谓执行就是公文按照流程实例从当前活动点并完成一定的业务后转到下一个活动点的过程。在本系统中, jB PM是通过“执行”指针来实现整个执行过程。“执行”指针首先会判定当前活动点是否正确, 执行当前活动点的业务逻辑, 并把流程实例推进到下一个活动节点, 再判定下一个活动点是否正确。在开发中, 公文实体需要把唯一标示 (可以是公文No、ID等) 作为其流程实例的变量, 以保证流程实例与公文的对应, 实现公文的流转跟踪查询功能。

2.4 系统主要功能的设计

公文的收发管理是OA系统中最为重要的功能之一, 因此主要介绍收文和发文管理的工作流程的设计。

(1) 收文工作流程。收文管理是指对接收到的公文的登记、拟办、签批、分阅、办结和归档等流程的管理。收文的流程既可以预先定义, 也可以根据需要进行修改或者重新定义。文件的密级、查阅的权限需要能严格控制。流程的状态能够实时的监控和进行提醒。收文的工作流程如图5所示。

(2) 发文工作流程。发文管理是一个公文签发的流转过程, 通常每个单位的发文流程都有相对固定流程, 发文流程首先需要单位发文拟稿、审核, 其次进行发文登记、核稿、复核, 跟着由领导进行会签、签发, 跟着排版校对完后才发文查阅, 最后进行归档。与收文功能一样, 发文流程也可预设或修改重设, 文件和流程的查阅权限受到控制, 流程装能进行监控和提醒。发文的工作流程如图6所示。

3 结语

从实践中看出, 采用SSH轻量级架构和采用j BPM架构开发Web应用程序, 能够很好地实现用户界面、业务逻辑和数据访问的分离, 使结构层次清晰, 提高编程效率, 从而缩短开发周期, 提高开发效率, 使系统的业务流程管理变得灵活和方便。系统今后的改进方向则是, 基于现有系统较好的模块化结构, 完善与知识管理相关的功能, 实现以知识管理为核心的办公平台。

摘要:本文针对信息化建设的需要, 提出基于SSH架构和工作流引擎的办公自动化系统的开发方案。首先对系统所采用主要技术的进行介绍, 跟着对系统功能、架构及流程进行分析设计, 并介绍工作流引擎在系统公文流转中的应用。

关键词:办公自动化,工作流,SSH

参考文献

[1]唐倩, 张伟.轻量级J2EE中SSH框架的研究及其应用[J].物联网技术, 2013 (12) :52-55.

[2]胡奇.jBPM4工作流应用开发指南.北京, 电子工业出版社, 20010.10.

[3]JBoss jBPM.jBPM Developers Guide[OL].http://docs.jboss.com/jbpm/v4/devguide/html_single/, 2011.09.

工作流办公系统 篇8

关键词:工作流,Jbpm,协同办公,公文流转

随着以计算机技术、通讯技术为代表的信息技术的发展,办公自动化发挥越来越重要的作用,协同办公是将现代化办公和计算机网络功能结合起来的一种新型的办公方式,是当前新技术革命中一个非常活跃和具有很强生命力的技术应用领域,是信息化社会的产物。通过网络,组织机构内部的人员可以跨越时间、地点协同办公。

工作流管理强调以过程管理为中心的管理模式,要求抽取出业务流程,实时监控业务过程,以达到提高组织业务能力和经营效益的目的。因此工作流技术受到了广泛的重视,使工作流技术及产品迅速发展,市场上出现了各种不同的工作流产品[1]。

本文介绍了以工作流管理系统以及j BPM工作流引擎的相关概念,提出了基于j BPM的工作流技术在协同办公系统技术架构,并以协同办公系统中起着重要重要作用的公文流转模块为例介绍了公文流转模块的主要功能,流程定义,流程部署以及流程运行机制。

1 关键技术介绍

1.1 工作流的基本概念和定义

工作流管理(Workflow Management,Wf M)[2]是人与计算机共同工作的自动化协调、控制和通讯,在计算机化的业务过程上,通过在网络上运行软件,使所有命令的执行都处于受控状态。在工作流管理下,工作量可以被监督分派工作到不同的用户达成平衡。工作流管理联盟[3](Workflow Management Coalition,Wf MC)的定义是工作流管理系统通过软件定义、创建工作流并管理其执行。工作流是可以运行在一个或多个工作流引擎上,这些引擎解释对过程的定义,与工作流的参与者(包括人或软件)相互作用,并根据需要调用其他的软件工具或应用[4]。

工作流管理是一个人机结合的系统,其工作流是其最为核心的功能组件,在协同办公、公文处理、档案管理等部分被广泛调用。它的基本功能体现在几个方面[5]:

1)定义工作流,包括具体的活动、规则等,这些定义是同时被人以及计算机所能够“理解”的。

2)按照工作流的定义创建和运行实际的工作流。

3)监察、控制、管理运行中的业务(工作流),例如任务、工作量与进度的检察、平衡等。

1.2 j BPM工作流引擎

j BPM(java business process management)是一个灵活的、易扩展的开源工作流管理系统,也是一个基于J2EE的轻量级工作流管理系统。选用j BPM为开发基础,是因为其具有以下特性[6]:

1)j BPM采用了一种简单而功能强大的语言JPDL(Jboss JBPM Process Definition Language)。JPDL把一个业务流程看作是一个UML活动图,详细定义了这个活动图的每个部分,如起始、结束状态、状态之间的转换等,有利于业务人员和开发人员之间的沟通,从而获得高效的业务解决方案。

2)j BPM使用Hibernate来实现它的流程持久化。Hibernate是目前Java领域最好的一种数据持久层解决方案,它解决了不同数据库SQL dialect差异的问题,使得j BPM能适应现有的所有数据库,而且通过Hibernate,j BPM将数据的管理职能分离出去,自己专注于业务逻辑的实现。

2 协同办公系统的系统架构

本应用采用j BPM工作流引擎为中间件,将流程逻辑从业务逻辑中分离出来,降低系统内部的耦合度,提高系统自适应能力。协同办公系统的架构图如图1所示。

第一层是页面表示层,全部由JSP文件生成Web页;第二层为应用逻辑层,该层建立在第三层的基础上,工作流引擎位于这一层,并由工作流引擎调用的若干JAVA对象作具体的业务逻辑操作,为表现层的表单业务对象提供逻辑判断,事务操作及流程控制服务;第三层为数据抽象层,也是由若干JAVA对象组成,主要目的是屏蔽JDBC调用,同时完成从数据库记录、字段表示的数据到便于应用逻辑使用的JAVA对象的双向转换,利用Hibernate技术实现。

3 公文流转模块实现

公文流转模块是协同办公系统中的核心模块,下面我们以公文流转模块为例,介绍其主要功能,流程定义以及模块的实现。

3.1 公文流转模块主要功能

该模块的主要共有发文管理、收文管理、文档管理、系统管理四大功能,其功能结构图如图2所示。

1)收文管理。收文管理包括收文登录(包括全息信息)、收文拟办(自动形成拟办意见)、收文的跟踪、查询、批阅流转以及办理完毕的文件的归档处理。

2)发文管理。包括文件起草人拟稿、部门领导审稿、机关秘书核稿以及单位领导会签、签发文件、批阅流转和文件维护并自动生成发文号、归档等管理;形成红头文件。

3)文档管理。收发文管理模块归档过来的文件可以直接以任何方式组成案卷,对不是收发文归档过来的文件在进行登记处理后也可以进行同样的案卷操作。

4)系统管理。该管理模块主要管理内容包括组织结构管理、目录结构管理、内容管理、权限和用户管理、时限管理、信息同步复制管理、个性化服务管理、数据库访问管理、系统日志管理。

3.2 公文流转流程processdefinition.xml定义

j BPM的流程定义文件是借助j BPM为Eclipse提供的插件来实现的,由于其图形化的设计功能,极大提高了流程的设计开发效率,同时也方便业务人员与开发人员的沟通。由图形化流程工具生成的XML代码严格满足JPDL规范。start-state与end-state元素分别代表流程定义的开始和结束结点,他们由j BPM负责处理,从start-state开始工作流程,在end-state结束工作流程。另外state、decision、task-node元素也代表流程定义的结点。

3.3 部署processdefinition.xml

通过编程解析processdefinition.xml,解析流程代码设计如下:

通过部署Process Definition.xml,将发文流程的相关信息部署到My SQL数据库中,实现持久化保存。图3是某高校发文业务过程图。

4 结束语

本文提出的基于j BPM的工作流技术在协同办公系统中的应用方案体现出较好的可管理性、可扩展性和可维护性。该系统对于用户权限设置使用group、membership、user三者的关联来设置,这种方法对于复杂的安全需求使用起来显的很复杂,而且容易出错。因此,下一步的工作,准备将原系统向Acegi系统移植。Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。

参考文献

[1]范玉顺,吴澄.工作流管理技术研究与产品现状及发展趋势[J].计算机集成制造系统-CIMS,2000,6(1):1-7.

[2]D.Georgakopolous,M.Hornick,A.Sheth.An overview of workflow management:from process modelling to workflow automation infrastruc-ture.Distributed and Parallel Databases,1995,3(2):119-152.

[3]Workflow Management Coalition.The workflow reference model,WFMC TC00-1003,1994.

[4]周建涛,史美林,叶新铭.柔性工作流技术研究的现状与趋势[J].计算机集成制造系统,2005,11(11):1-2.

[5]范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.

工作流办公系统 篇9

1 总体要求

工作流程控制系统的总体要求是为电力调控系统的稳定运行提供保证, 并保证其每一个工作流程都能顺利的衔接到下一个工作流程之上。电力调度生产管理信息系统的工作流要保证能够满足大范围高强度的电力供应。例如省级调度系统, 要求以省为单位的调度系统、发电厂以及变电站之间能够相互协作办公。因为省级电力系统供应的庞大性, 导致工作流在云新过程中必须要多方位考虑运行效果。一般的电力调控系统都有调控中心、分中心以及终端三个部分组成, 这三者以不同的形式分布在省内的多个地方, 及分工合作又相互衔接着办公。如图1所示。

2 调度生产流程管理的需求

2.1 对生产流程的描述

流程控制系统的运行过程, 将任务分配给角色扮演不同的角色而不是个人, 这样就能够保证系统在有相关人事变动时, 也能保证工作流程的顺利进行。[1]只要确定人员的变化依然与适当的角色相适应, 就可以较少对程序大型变动的操作。

2.2 业务流程

业务流程是工作流程的整体运行过程, 其主体主要是任务以及操作过程。任何一个任务的进行都是从起步到结尾, 任务从分配到任务的完成, 是一整个业务流程。在操作过程中, 要求对相关的任务操作做好信息记录, 把握不同流程的发展方式, 掌握好信息的发生以及传导过程。

2.3 工作项

工作项是指业务流程主要处理的业务事项, 包括文稿、表格以及图像等文件。在电力调度的系统中, 其业务流程主要针对电网系统的具体供电业务进行的相关操作, 不同于普通的业务流程, 电力调度生产管理信息系统的工作项可以是具体的实物, 也可以是电网中的相关系数。

2.4 角色与参与者

参与者可以是一对一, 也可以是一对多的关系, 这是由于数据库系统的数据特性决定的, 数据都存放到数据库系统中, 进行统一的使用与归集。比如, 秘书的工作一是处理领导下放的工作, 另外对下属进行命令的传递。起到一个承前启后的重要作用。同时, 也要承担相应的责任。

2.5 流程

每当一个参与者完成了分配的任务时, 便会进行下一项任务的定义。主要有直流、分流、并流以及会流等流程传导方式。根据不同的工作需求, 参与者在完成任务时, 还通过不同的流程范式, 对任务进行完整、顺利的操作。

2.6 任务

任务的完成与数据库中的数据有着重要的关系, 特别是具体的流程运行, 都与数据库中的数据有着密切的联系。为了促使任务完成过程的顺利以及稳定, 一定要对任务内外部的管理进行严格的控制, 使其顺利的返回到相应的结果。[2]

2.7 流程的管理

系统在运行过程中要对业务过程进行严格的监督与控制, 要对于系统的流程进行详细的过程继续, 使得信息的使用者及时了解到系统的运行状态, 并传递相关的数据记录, 使控制人员能够及时的对系统的下一步运行做好准备, 保证系统运行的效率。

2.8 流程的启动与结束

流程的启动既可以以流程内部的相关系统的工作任务启动, 也可以是流程外部通过网页等方式进行的触发启动;在流程运行技术后, 在对于业务流程的相关参数进行留档记录后, 还要对其重要的信息进行相关处理, 保证重要信息的安全性。

3 加强流程控制系统的策略

3.1 需要完成的环境

电力调度生产管理信息系统需要处理的流程是需要具体处理的, 其需要处理的信息是复杂的、多样的, 因此, NOTES系统在这种系统条件是不具有优势的。因此, 工作流系统的使用是我国电力调度生产管理信息系统最适应的数据处理系统。因为, 工作流系统将处理的数据全部整理在数据库中, 并通过管理系统对相关的信息进行处理与分析, 并且在过程中对数据的处理以及转换也是非常适合的, 可以在很大程度上减轻工作的强度, 提高工作效率。过程管理系统必须是要能够面向对象、能够动态的处理历程、以及多方式处理数据的操作系统。

3.2 实现跨系统流程的建设

电力调度生产管理信息系统要求数据处理能够跨区域进行工作, 这就对流程的跨区域工作能力有较强的工作水平。因此, 工作流系统是适应我国电力调度生产管理信息系统的工作性能, 使得不同区域的系统能够相互结合着工作。基于XML操作技术的数据交换系统可以很好地解决数据交流的不同要求, 能够满足不同数据的处理方式是我国电力调度生产管理信息系统经常运行的系统。

3.3 数据相关流向的处理

数据相关流向一般寻找不到规律, 因为其随机的特性, 流程处理系统无法对规律进行统一的管理。[3]因此, 需要管理系统都采用人工的方式, 会很容易产生错误。

另外, 还可以针对特定的流程进行专门的数据程序开发, 并在运行中进行动态的调试, 使其适应数据流的随机性。工作流系统通过对程序中掺入一定的程序, 解决了系统运行难度大以及工作强度高等想象, 可以有效的处理数据流的相关操作。

4 结语

目前, 在我国电力调度生产管理信息系统中逐渐投入运行, 并已经取得了显著的成效。这种数据处理模式, 将数据的处理流程更加规模化、规范化。工作流系统以Web三层体系体系与服务器体系, 将系统运行的各个系统相互结合, 保证信息传输的稳定与快速。工作流系统在我国电力调度生产管理信息系统中的应用, 以其大量的数据处理功能、自动处理装置的高速、稳定特点, 为我国电力调度系统的运营提供必要的保证, 保障电力供应的持续与稳定。

摘要:工作流系统是电力调度生产管理信息系统中的一个重要的组成部分, 保证着调度生产管理信息系统的稳定运行, 在电力调度生产管理信息系统中起到很重要的作用。工作流系统通过不同的组织形式, 在对于不同的电力调度系统中展现着不同的功能。工作流系统的工作程序非常复杂, 被应用于多种多样的电力调度系统中, 因此一定要对进行管理, 保证其作用的顺利发挥。本文通过工作流系统在电力调度生产管理信息系统中应用的总体要求, 深入了解我国电力调度生产流程管理的需求, 以及为加强我国流程控制系统提出一些策略, 保证电力调度系统的顺利运行。

关键词:工作流系统,稳定,电力调度生产管理信息系统

参考文献

[1]邓兆云, 张建平.电力调度生产管理信息系统的工作流系统[J].电力系统自动化, 2003, 16:78-80.

[2]王卿玮.电力调度生产管理信息系统的工作流系统[J].电子制作, 2016, Z1:91-92.

工作流办公系统 篇10

关键词:办公自动化,工作流,多重数字签名

0前言

在当今信息时代, 无论政府机关, 还是企事业单位都需要加强各部门人员之间的交流、协调和协作, 都需要更好的获取信息, 更快的反应情况, 共享信息资源, 掌握每一项工作的进度, 为领导决策提供大力支持, 为业务人员提供服务。因此, 许多企业、政府部门都十分重视建设自身的办公自动化系统。

本系统研究的目的旨在将工作流管理技术作为一种过程建模和过程管理的核心技术, 和OA系统有效地结合, 生成符合政府机关或企事业单位需求的管理系统, 从而提高其工作效率和质量, 辅助决策, 提高信息化应用水平[1]。

1 系统研究的意义

系统研究的意义主要体现在以下几个方面:

1.1 减小工作人员的劳动强度, 提高办公效率。

系统使办公人员从枯燥、繁杂、重复性的劳动中解放出来, 使人们有更多的时间和精力去研究和思考重要的问题, 最终把办公任务转变成一个思考型而不是业务型的任务, 从而提高办公效率的科学决策水平。

1.2 实现信息的高度共享。

系统基于大型数据库 (SQL Server) , 通过Internet网实现上下级单位之间的公文运转、信息交流和信息共享。系统可以快速有效地接收上级机关各种文件和下级单位的上报信息, 并组织、协调办公系统内的各种信息, 使用户能够方便、快捷地获取所需信息, 确保资料的完整性和连续性。

1.3 实现工作管理的规范化、信息化。

充分利用网络资源, 实现资源共享、协同工作和信息处理的及时性, 提高各部门的协同工作效率和整体办公水平, 使各级管理机构的运作更加规范化、网络化和自动化。

总之, 基于工作流的OA系统的实现可以为政府机关或企事业单位提供一个集成的办公环境, 提高办公效率、节约办公经费, 规范单位工作管理, 让所有工作人员能够利用网络实现协同工作和知识管理, 从而逐步实现办公无纸化、资源信息化和决策科学化。这无论从办公自动化系统的实际应用还是从软件开发角度来讲, 都具有很强的实际意义。

2 系统达到的目标

系统的总体目标是:以先进成熟的计算机和通信技术为主要手段, 建成一个覆盖各部门的办公自动化系统, 建立高质量、高效率的信息网络, 为领导决策和办公提供服务, 实现办公现代化、信息资源化、传输网络化和决策科学化[2]。

系统的具体目标是办公自动化, 即实现各部门之间办公信息化、自动化的需求, 并辅以日常行政事务管理手段.具体内容如下:

(1) 能够满足企业办公人员高效率处理日常事务的工作需要, 提供公文流转、会议组织、日程安排、邮件服务、个人办公、议题讨论等功能。

(2) 采用合理的工作流程方式处理影响工作效率的各个环节, 最大限度地避免人工传送实物的工作。

(3) 提供自动监督工作功能, 为部门之间实现真正的协同工作提供保证, 促使部门之间的工作流程由过去的一环接一环的松散结构向紧凑的工作流结构迁移, 摆脱以往多个部门协作时经常出现的互相等待的状况。

(4) 为在外出差人员和在家办公人员提供远程拨号访问接入系统。

(5) 从数字签名、身份认证、访问控制、数据传输加密以及病毒防护等方面实现网上信息的安全保密。

3 系统采用的技术方案

3.1 技术关键

为了实现预计的设计目标, 我们可能要采取的关键技术有:

(1) 办公自动化系统中的工作流技术。办公自动化是提高机关企业的办公效率的重要手段, 其主要目标之一是实现内部的公文流转和信息共享, 希望网上办公系统不仅能够解决办公过程中某个独立环节的业务问题, 而且能够将过程中的所有环节衔接起来, 使得上一个环节的业务处理结果能自动流转到下一环节以便利用或处理, 而这也正是工作流技术要解决的最基本的问题[3]。

(2) 基于工作流的多重数字签名技术。在办公自动化系统中, 当需要由多个人对同一份文件进行签名时, 就涉及到多重数字签名的应用。数字签名是实现网络身份认证、数据完整性保护和非否认服务的基础。在办公自动化系统中, 往往需要多个用户对同一文件进行认证, 在最初的解决方法中, 每个签名者独立的对同一份消息签名, 他们的签名合起来作为多重签名[4]。但这种方式不能称为合作, 签名者彼此之间没有制约, 容易形成联合欺诈, 于是我们提出了多重签名体制来代替多次单独签名的集合。

3.2 技术方案

(1) 正确描述公文流转系统中的动态流转过程, 应考虑该动态流转中的参与者、流转介质、任务的执行和任务转移路线等公文流转路线包含若干活动状态。我们可以定义每个活动状态为公文逻辑上指派的一个任务, 如果一个任务有n个人参与, 则把任务划分为n个子任务, 即把活动状态划分为多个子活动状态, 每个人执行相应的子任务, 如果每个任务有明确的时间先后关系, 可以采用顺序流控制结构进行描述, 如果任务之间没有明确的时间先后关系, 可以采用并发流控制结构。整个流转流程只有一个起始点和一个终结点。为了把参与人员的职责组织起来, 可以采用泳道方法, 泳道将活动图中的活动状态分组, 每一组表示负责那些活动的参与人员, 可以把参与人员分配到不同的泳道, 然后把该人员的执行活动放在泳道中。下面以公文流转中的收文管理和督办为例, 进行说明。

图1中工作流程的活动和逻辑关系可以映射成为一个由节点和有向箭头组成的有向图, 图中的节点表示一个可执行的活动单元, 两个节点之间的有向箭头, 表示活动的先后顺序关系。“收文管理”工作流模型的有向图如上图所示。该模型属于平行的类型, 其中流程由“初始标记”开始, 首先是收文登记, 办公室人员签发后发给有关部门和领导, 等到领导和相关部门负责人批阅后再返回办公室处理, 处理完的资料就可以归档了, “结束标记”被激活, 整个工作流也随之结束。整个流程简单、明了, 便于分析。

(2) 多重数字签名技术可以采用两种方式:一种是有序多重数字签名, 另一种是广播多重数字签名[5]。根据办公自动化系统的特性, 即签名是有等级顺序的, 所以系统采用有序多重签名方案。

文件的签名管理是文档管理的一部分, 文件与签名等信息可以通过数据库进行关联并进行管理。在实际工作过程中, 往往需要对起草的文件进行个人意见签署, 不单单是同意与否。本系统采取将意见、签名、公钥证书等信息直接与原文件存储在一起, 形成一个文件, 称为签名文件。不同的部门主管可以统一采用此种通用的格式按照一定的顺序来进行签名, 逐次追加意见, 并进行签名。在第一次对原文进行签名时, 将原文、意见、数字签名及公钥证书等形成一个签名文件, 然后将该签名文件提交给其他人进行审查并签名。以后每增加一次签名, 都将意见、数字签名及公钥证书等附在签名文件的后面。这样, 前一级签名者在次一级签名后, 不经次一级签名者的合作则不能修改自己的签名, 从而保证了多重签名的有序性或等级性。最后, 在存档时只需将最后的签名文件保存即可。因为最后的签名中已经包含了所有的签名意见。

由于办公自动化系统是基于浏览器/服务器模式的, 因此可以方便的在需要浏览原文件或意见时先从签名文件中恢复出原文文件或意见文件, 然后再调用原生成软件进行显示。从签名文件中可以随时查看签名者的身份, 再通过公钥证书管理系统也可以验证签名者的公钥证书的有效性。

参考文献

[1]李听.办公自动化系统分析与设计[D].吉林大学软件工程学院, 2005.

[2]方明.基于动态工作流的企业办公自动化系统的研究[D].武汉:武汉理工大学, 2005.

[3]刘伟, 朱一凡, 魏洪涛.工作流技术在办公自动化中的应用[J].计算机工程与设计, 2006, 27 (7) :1308-1309.

[4]赵卫东, 陈杰.基于对象的角色工作流模型研究[J].计算机工程, 2004, 30 (5) :87-89.

工作流办公系统 篇11

关键词: Agent; 选课系统; 工作流; 产生式规则; 推理

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2012)10-34-04

引言

随着计算机应用能力的提高,人们对软件的功能提出了越来越高的需求,这些需求推动了软件工程的发展。在软件开发的早期,人们利用功能分解的方法开发程序,后来又出现了结构化和面向对象的方法,这些方法都提高了软件的生产效率。但是,随着软件的复杂程度、并行程度的提高,传统的面向对象的方法显现出一定的局限性,人们开始将Agent思想运用到软件工程中。Yoav Shoham早在1993年就提出了Agent-oriented programming(AOP)。Agent是一种特殊的对象,因此,面向Agent技术是面向对象的软件工程的一个特例,它并不是完全不同于面向对象技术的一套新方法,而是对面向对象技术的发展,它被誉为“软件开发的又一重要突破”。

本文利用面向Agent的软件开发方法,结合软件工程的基本思想、原理和原则设计系统模型;同时将工作流技术与Agent技术相结合,设计多Agent工作流管理系统模型;对选课系统进行实例化,有效地协调系统中不同角色人员的不同活动,尽量避免冲突,使选课系统更加科学化、高效化、智能化、安全化。

1 Agent和工作流基本概念

Agent技术源于分布式人工智能,是人工智能和计算机科学新的综合,可用来解决复杂分布的现实问题。Agent按其应用,又分为单Agent和多Agent系统两种。面向Agent的软件开发方法是对基于Agent技术的软件系统的设计和开发。Agent是具有自主性、自动性和智能化的对象,它强调封装的概念,使用消息传递的通讯方式,并且可以使用继承和聚集定义结构,其结构模型如图1所示。面向Agent的方法继承了面向对象和面向模块方法的优点,具有模块性、重用性、扩张性、移植性的特点。

工作流是一类能够完全或者部分自动执行的业务流程,它根据一系列过程规则,使文档、信息或任务能够在不同的执行者之间进行传递与执行,图2为工作流管理的系统图。工作流技术被业界广泛应用并迅速发展,它的主要特点是使业务的处理流程自动化,使人与应用工具之间相互协调工作,以完成某项工作。工作流管理的目的是为了让合适的人或软件在恰当的时间执行正确的工作。

目前的工作流系统缺乏健壮性和可重用性,没有备份机制和有效的恢复手段,容错问题基本上也没有考虑,系统对于出错的恢复弹性是极小的。传统的工作流系统在定义流程时隐含假设了所有的任务的实现和它们之间的协作均能被事先准确、完善地定义,事实上并非如此,大量业务流程对环境变化很敏感。同时,由于许多工作流运行周期长,在运行过程中难免发生变化,因此,工作流管理系统必须考虑异常情况和例外的处理。

鉴于上述原因,Agent技术与工作流技术的结合成为了如今研究的重点。目前,大多数工作流管理系统都是独立地管理单个工作流,忽略了其间的资源约束关系,而基于Agent的工作流管理系统能够有效地解决这个问题。基于Agent的工作流技术对解决传统的软件工程方法中的问题有着很重要的作用,它是软件工程方法发展的一个必然趋势。

在工作流管理系统中,利用Agent可以有效地解决下列问题:

⑴ 工作流系统中的资源冲突问题;

⑵ 执行中的模式僵化问题;

⑶ 用户被动地处理工作项问题。

本文提出一个多Agent工作流管理系统。该系统的结构是一个递阶、不确定的动态结构。其模型结构如图3所示。

图3中的模型结构,横向将工作流管理分为工作流开发环境和工作流运行环境。纵向将工作流管理与业务流程过程分为定义层、控制管理层和流程建模层。

⑴ 对话定义层

由用户接口Agent和工作流定义接口Agent组成,是用户与计算机进行人机对话的接口,也是系统获取外部信息的接口。

⑵ 控制管理层

由工作流服务器和Agent服务器组成。

工作流服务器借助于一个或多个工作流引擎,解释过程定义,控制实例的执行,控制工作流中各种活动的执行顺序等。在工作流的创建和执行过程中,工作流服务器同Agent服务器交互,Agent服务器根据工作流服务器中的流程控制信息,完成相应的Agent的生成,调度和执行。例如:在工作流实例的创建过程中,根据工作流服务器中的相应活动的定义和描述,系统服务器生成相应的任务Agent,并在跟踪服务器中注册。

Agent服务器实际上是为任务Agent提供服务功能的代理(Agent),它和工作流服务器交互,保存了重要的过程定义和结构信息。它根据过程定义在工作流实例化的过程中生成相应的任务Agent,每个任务Agent对应于一个工作流过程实例。Agent服务器中包含管理和控制两个Agent部分。控制Agent是整个系统中最关键的核心部件,是工作流运行的“引擎”。负责对活动和问题的分解,子活动和子问题的分配和协商,以及提供工作流运行控制服务;控制Agent记录了各种供给其他Agent共享的全局信息,同时监督和控制选择相应的Agent。管理Agent 则是对工作流开发环境中工作流过程实例的定义和状态进行监控与管理。

⑶ 流程建模层

流程建模层在工作流开发环境中是由工作流模型定义Agent、过程定义Agent和Agent活动定义等多个Agent 组成的;当业务流程新增或发生变化时,对以往不存在的,系统中未包含的业务流进行定义,并定义该业务流过程Agent,以提供系统使用。

工作流运行环境中是由任务Agent、活动Agent等多个Agent组成的;主要是针对流程重组或工作流建模的各子问题及目标,由各任务Agent根据其内部知识选择相应的资源Agent或多个用户Agent合作,构成相应的子业务流程或工作流模型。各任务Agent在构建工作流模型过程中,既可单独也可相互合作,并能通过工作流模型的不断构建进行自我演化、删除和修改过程的某些成分和无用或过时的活动实例。

⑷ 工作表服务器

工作表服务器维护工作流参与人员的任务信息,而且负责通知任务Agent有关动态修改的信息。它是任务Agent生成任务项的惟一场所(生成任务项的过程为任务Agent向工作表服务器查询用户Agent信息,并在相应的用户Agent中生成新工作项),故在系统中不可缺少。

2 应用实例:基于Agent技术和工作流技术的选课系统

目前,高校选课系统的运用,使得学校管理自动化逐步提高。它不仅实现了学生跨学院、跨年级、跨专业进行选课,还支持学生自主“选教师、选方向、选教材”的行为,体现了以学生为本的教育教学理念。

高校选课系统仍然存在很多问题。如:学生虽可以自由选课,但系统往往不加审核,导致违反教学拓扑规律现象的产生;学生选课只是一种形式上的确认选课,表明选课信息已进入计算机管理,其实学生只拥有少部分自主选课的权利;如果管理策略、方法、对象等发生变化,开发人员就得修改甚至重新开发系统,现行的系统基本不具备适应变化的能力。

针对高校管理的需要,本文将多Agent工作流管理系统实例化,设计一套具有自动化、适应性和灵活性的智能选课系统模型。利用Agent概念及思想解决传统选课系统所不能解决的问题。同时,在选课系统中,尽量减少手工确认审核的麻烦等,利用Agent自动完成这些工作,让选课系统真正发挥它的作用。

⑴ 在选课的过程中,根据学生的专业以及该专业的教学计划为每个学生生成一个选课列表。在学生选中自己喜欢的课程之后,给出多个这门课的开设时间、任课教师等信息,学生可以根据给出的信息进行选择。

⑵ 在选课的过程中,如果学生选择了课程B,但系统发现其课程B的先行课A没有修或没有通过,则系统会给出提示,学生必须先修A。

⑶ 如果学生当前的选课学分总数超过规定学分,则不允许选课,并给出超出的学分数。而且当学生的专业课有两门及以上没有通过,则给出提示等。

利用Agent软件管理学生的选课信息,就能动态跟踪学习者的选课行为,根据学习者先前的选课情况自动组织选课内容,从而克服了现阶段内容松散的超文本结构。Agent的社会属性能够满足建构主义协同选课的需要,可将每个学生和老师都看作独立的Agent。

根据选课系统使用者的不同身份,我们提出一种如图4所示的选课系统模型。该模型将系统划分为教师Agent、学生Agent、课程Agent、课程计划Agent、管理Agent。

图4描述了选课系统的体系结构。一般高校中的选课系统,大多数需要学生输入课程序号进行选课,而且专业必修课和专业选修课区分不是很明确,学生在选课的过程中会感觉很麻烦。而基于Agent的选课系统在学生进入选课的时候,就可以根据学生的专业和所学的先修课程及教学计划为他们列出一个本学期的可选课列表,并且给出课程的详细信息,学生可以很清楚地根据自己的兴趣爱好和要求进行选课。

2.1 Agent的形式化定义

⑵ 相关数据库和推理机制描述

学生基本信息库:记录学生的学号、姓名、性别、系所、年龄等基本信息。

成绩记录库:记录学生所选课程及分数。

个性分析推理机:根据课程计划Agent提供的相关选课规则与学生模型库的相关信息,以此作为选课的依据。在选课的过程中,推理机将不断地产生、修改学生模型库,准确反映学生的选课能力。

课程Agent、课程计划Agent、教师Agent、管理Agent的构建与设计与上述类似。

2.2 知识库的创建

知识库的概念是将传统的数据库技术和人工智能相结合的产物。现在用基于规则的知识表示方法来设计Agent。

在SQL Server中,创建规则可以使系统对输入的消息流自动做出反应,并能用预定义操作来响应特定的错误情况,或将这些消息整理成一个更明确的异议事件。这些规则使系统能够智能地响应预测到的事件模式,触发操作。这些规则也可以将某个事件序列与SQL知识库中的信息链接起来,即时向操作人员提供有关问题发生的原因、对特定问题的有效响应以及其他相关信息的连接。

2.2.1 产生式规则

2.2.2 推理系统的设计

采用关系模型表示系统中产生式的规则知识,使得推理系统的设计更简单而且有效。实际上利用现有RDBMS的优化查询能很容易实现。

2.3 用Agent技术和WFMS实现选课系统

工作流管理系统与传统的信息系统相比具有很多优势。但是由于目前传统的工作流管理系统仍然存在着适用范围窄、对异常情况处理不及时等问题,尤其是在工作流执行过程中,不能有效地进行工作流程所涉及的各种业务活动的合理调度和优化运行,使得其应用受到很大限制。由于Agent具有自主性、交互性、主动性等智能特点,将Agent技术结合到工作流管理中,能够解决工作流的上述不足,非常适合构造结构复杂、灵活、智能的工作流管理系统。Agent技术和工作流方法结合起来非常适合选课系统的建设,可以有效地协调系统中不同角色人员的不同活动,尽量避免冲突,使选课系统更加科学化、高效化、智能化、安全化。

在选课系统中,我们可以把每个Agent都看成是工作流的节点。当学生要求选课时,工作流引擎为每个学生提供一个选课流程,首先进入选课界面,系统根据学生的学号以及选课计划,列出该学生的选课项。如:信息学院的计算机科学与技术专业的学生,进入选课界面,如图5所示。

接下来学生根据自己的情况和教学计划进行选课,点击“选课”后出现界面如图6所示。

选课的人数在选课过程中随时都会变化(当学生选中这门课的时候,人数就会下降),而选课Agent,教学计划Agent,仲裁Agent,课程Agent,学生Agent就会互相协调,避免发生错误(如选课违反了选课规则,不符合教学计划等)。而管理Agent在整个工作流过程与其他Agent的协调提高了整个系统的效率和灵活性,使系统发挥最大的效能。

2.4 选课系统实现模型

当学生要求选课的时候,系统收到选课请求,并对其进行审核(看其是否符合选课规则),当满足选课规则时,就可以进行选课并修改课程清单,最终完成选课。

图7描述了选课系统功能模块结构,包括用户登录、选课、退课、查询选课、修改密码等。

3 结束语

工作流办公系统 篇12

办公自动化 (Office Automation, OA) 是一种基于计算机及互联网的新型办公方式, OA系统利用计算机技术手段可以提高办公效率, 其核心任务包括公文管理、流程审批、会议管理、协同工作、项目管理、计划管理、通讯录等。目前, OA系统已经被广泛应用于政府机关和企事业单位工作中。工作流 (Work Flow) 是一种将工作流程中的工作组织在一起的规则和逻辑在计算机中进行表示的计算模型, 属于计算机协同工作的一部分, 可以实现工作过程管理的自动化、智能化和整合化。工作流技术目前一个主要的应用领域就是OA系统。应用工作流技术的OA系统可以为用户提供更加直观和智能的工作流程管理和控制方法, 使得即使不熟悉计算机的办公室工作人员也可以利用用户友好的可视化环境完成文件流转、流程审批及计划管理等办公流程的控制[1]。针对政府行政管理部门对OA系统的实际业务需求, 本文设计了一种基于工作流技术的办公自动化系统, 主要实现了信息发布、公文审批和业务流程审批等功能。信息发布功能主要包括各种新闻、通知、公告、政策、规章制度等内容的发布与管理, 这种业务需求不需要进行过程流转。公文审批功能主要包括各种公文的发文、收文、签阅、签报以及会议纪要等文件的收发管理, 这种业务需求需要实现公文编号、自动套红和流转审批等功能;业务流程审批功能主要包括单位日常事务如请假审批、销假、用车审批、通信录及即时通信的管理与审批业务, 这种业务需求需要实现各种信息的流转及审批功能。基于工作流技术, 本文着重研究政府OA系统的系统架构和工作流引擎设计, 尤其是工作流模型的设计和流程的实现。

2 系统架构和工作流引擎设计

2.1 系统架构

目前, OA系统的开发技术主要有:Lotus/Domino、.Net、PHP和java[2,3]。Domino是一种由原Lotus公司推出的一款群组工作软件, 其具有强大的功能和丰富的界面, 主要用于辅助多人协同工作从而突破地域、组织、平台和技术的限制, 充分实现信息与技术的共享。由于Lotus/Domino平台的权限管理系统和文档管理方式非常适合审批类管理信息系统的开发, 同时考虑到政府部门工作人员对现有办公系统的使用习惯, 本文提出的OA系统采用Lotus/Domino平台的标准三层B/S架构, 如图1所示:

在图1中, 第一层为表示层, 该层的主要功能包括部组织结构、业务流程和权限控制等用户直观可见的信息, 是用户与系统进行交互的界面;第二层为服务层, 该层的主要功能是对用户通过表示层提交的请求提供分析处理并将处理完的请求结果返回给表示层进行展示。第三层为数据存储层, 该层的主要功能是对应用系统中的各种数据进行存储和管理。Domino服务器将服务层和数据存储层集成在了同一个平台中并以Domino数据库的形式进行数据存储和管理。

2.2 工作流引擎设计

所谓工作流引擎是指Work Flow作为应用系统的一部分, 并为之提供对各种应用系统有重要作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案, 主要包括流程的节点管理、流向管理和流程实例管理等重要功能。工作流引擎是OA系统的核心, 在办公自动化系统中起着非常重要的作用。

2.2.1 流程结构设计

针对政府部门的办公业务流程需求进行分析, 可以抽象出直流、单选分支、多选分支、条件流程和自由流程等五种基本的流程结构。 (1) 直流流程设计。直流流程是最简单的流程结构, 在直流流程中只有一个开始节点、一个结束节点和多个活动节点, 其中每一个活动节点有且只有一个后续节点, 所有活动节点的流向类型均为一般处理, 可以分别设置每一个活动节点的办理期限、催办方式、表单字段级权限控制和表单操作控制等。 (2) 单选分支流程设计。在单选分支流程结构中, 一个流程只有一个开始节点但可以有若干个结束节点和多个活动节点, 并且每一个活动节点可以有两个个分支节点, 分支节点的流向类型为单选处理, 可以分别设置每一个活动节点的办理期限、催办方式、表单字段级权限控制和表单操作控制等。 (3) 多选分支流程设计。在多选分支流程结构中, 所有节点最后必须合并到一个控制节点, 同时需要在控制节点设置节点办理的类型:单人办理或多人办理。单人办理表示在流程中只要有一个路由达到控制节点系统就能自动往下执行 (即路由之间是“或”关系) , 多人办理表示要等待所有的路由都到达控制节点后系统才能继续往下执行 (即路由之间是“与”关系) 。在多选分支流程中, 可以为每一个活动节点设置办理期限、催办方式、表单字段级权限控制和表单操作控制等。 (4) 条件流流程设计。在条件流流程结构中, 分支节点流向类型为条件处理, 在每一个活动节点, 可以根据相应的条件进行流程跳转, 可以为每一个活动节点设置办理期限、催办方式、表单字段级权限控制和表单操作控制等。 (5) 自由流程流程设计。自由流程是最灵活的流程模式, 它不受固定的流程约束, 允许当前办理人自定义下个处理点的办理人员和办理权限。

2.2.2流程节点设计

在基于工作流的OA系统中, 流程节点可以分为开始节点、活动节点、控制节点和结束节点等四种不同的节点处理类型。开始节点表示一个流程的启动位置, 一个流程有且只有一个开始节点;活动节点表示流程处理过程中的一个环节, 可移执行响应的事务处理;控制节点主要用于多选分支流程合并后控制该流程的流向, 即何时往下一节点流转以及如何往下一节点流转等;结束节点表示一个流程的结束, 一个流程可以对应一个或多个结束节点。

2.2.3 路由设计

在工作流系统中, 一个活动节点可能有多个输出节点与输入节点, 对应的下一流程就可能有多个活动并行执行或者只有一个活动执行, 可以引入路由节点以将活动执行和路由分离开来。路由节点集中了所有的多分支输出与输入, 能够简化工作流模型的结构并增强模型的可视性。在路由过程中需要遵循的规则包括单路由、多路由、自循环、退回等。单路由指在两个节点间有且只有一个路由可以选择, 多路由是指节点之间可以根据具体的业务规则设置必选路由、互斥路由或者缺省路由等, 自循环路由是指可以将办理件转发给他人处理而不进行节点跳转, 退回指在任何一个节点都可以将办理件执行退回操作。

2.2.4 流转模式设计

所谓的流转模式就是指公文在系统中流转的模式, 工作人员可以利用OA系统方便地处理日常办公中工的各种公告、新闻、通知和公告等各种公文的发布、审批、批转、签阅等操作。常用的公文流转模式如表1所示。

2.2.5 权限控制设计

基于工作流的OA系统提供了严格的权限控制机制, 授权用户可以控制每条记录的每个字段的每个操作的读写权限, 也可以对文件流转过程中的特定节点的用户设置不同的查阅权限。例如:流程中前一节点的用户可以指定后续节点的用户能够看到的审批意见或是可以指定审批意见的查看范围。另外, 系统采用了基于角色的访问控制, 在系统中的各种用户和各种操作权限之间建立起一个角色集合, 每一种角色对应一组相应的权限。一旦某个用户被分配了适当的角色后, 该用户就拥有了此角色所有的操作权限。这样做的好处是简化了用户的权限管理, 真正实现了“什么人在什么时间办理什么事情”的管理职能划分。

3 系统实现

基于上面的分析和讨论, 本节以“会议纪要”模块为例, 介绍基于工作流的OA系统的的流程流转结构和实现方法。在会议纪要模块中, 每个节点的流程结构如表2所示:

根据表2中对每个节点结构的分析, 结合“会议纪要”功能的实际需求, 可以对每个节点的基础信息、人员角色、意见、权限等进行定制, 如图2所示。在对系统中的每一个任务节点完成相应的配置后, 一个基本的会议纪要流转流程就完成了定制。

结束语

本文提出的基于工作流的OA系统结构, 解决了以往的OA系统会签流程只能单人逐个办理而不支持多人并行处理的问题。本文所提出的系统结构已经被政府部门采用, 实践表明本系统可以提高公文办理速度, 提升办公效率。

参考文献

[1]徐雯.办公自动化中的工作流及数字签名技术综述[J].科技广场, 2014 (11) :150-152.

[2]吴少俊.动态工作流办公自动化系统关键技术的分析[J].数字技术与应用, 2015 (11) :120-123.

上一篇:创业思路下一篇:对华政策