第一篇:UCML工作流系统与现有应用系统集成
The best solution for how to develop WEB application on.Net quickly and efficiently
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
///
获取当前节点即将流向的目标节点,如果是并发输出将会多个流向。用于在当前节点完成时,马上选择下一节点执行人
///
/// 获取当前节点即将流向的目标节点,如果是并发输出将会多个流向
/// 用于在当前节点完成时,马上选择下一节点执行人
///
///
流程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悔签
悔签
///
public void RepentSignforTask(string assignTaskID) 任务跳回到执行人
///
/// 任务跳回到执行人
///
///
流程ID
///
流程实例句柄
///
节点ID
public void TaskReturn(string FlowID, Guid InstanceID, string ActivityID)
获取某个已完成节点的执行人
///
/// 获取某个已完成节点的执行人
///
///
流程ID
///
流程实例句柄
///
节点ID
///
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 ///
1.自定义类实现如下接口
public interface IWorkDay { ///
/// ///
任务开始时间 ///
任务计划用时,单位为秒 ///
任务执行人OID ///
2.在UCMLCONF.XML文件里添加如下节点:
< fCustomWorkDay>true fCustomWorkDay> < WorkDayAssembly>dll名称 WorkDayAssembly> < WorkDayClass>类名称 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);///
/// ///
///
///
void OnFinishTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime FinishTime);}
第二篇:工作流与AO系统
OA系统与工作流
随着网络的日益普及和全球信息化进程的发展,InternetPIntranet技术及其应用给我们工作和日常生活各个方面带来了深刻的影响,传统的办公方式正面临严峻的挑战。各单位都希望能够拥有一个能真正满足本单位实际工作需要的办公自动化系统,以提高工作效率,降低办公成本。以工作流为核心的OA 系统,已成为当前OA 系统的主流,逐渐受到政企办公部门和软件开发商的重视。1 概念阐述 1.1 办公自动化
简称OA(Office Automation),意为办公信息处理的自动化。它是指应用各种信息技术和集成技术,充分有效地利用信息,完成各种办公业务,提高办公效率和办公质量,实现多种资源的共享。办公自动化系统经历了两个发展阶段。第一个阶段是单机型办公自动化系统,它以OFFICE 等应用软件及传统的MIS 系统为代表。第二阶段是以网络为基础,工作流为中心的网络协同工作型办公自动化系统。目前正在进行知识管理型办公自动化系统的研究和探索。1.2 工作流及工作流管理系统 1.2.1 工作流
工作流(Work Flow)的概念起源于生产组织和办公自动化领域。它是针对日常工作中具有固定程序的活动而提出的一个概念,其目的是通过将一个具体的工作分解成多个任务、角色,按照一定的规则和过程,约束与监控这些任务的执行,从而提高企业生产经营管理水平。根据WfMC(工作流管理联盟)的定义:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。
1.2.2 工作流管理系统
工作流管理系统是支撑工作流的相应软件系统,根据WfMC的定义,工作流管理系统是“一种在工作流形式化表示的驱动下,通过软件的执行而完成工作流定义、管理及执行的系统。”按照传统的时空分类法,工作流管理系统属于支持多人进行异地、异步协作的系统。工作流管理系统可以运行在一个或多个工作流引擎上,主要用于定义、实现和管理工作流运行。它与工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。2 基于工作流技术的OA 系统模型
办公自动化系统不仅要实现信息的采集和自动整理,而且应该能开发和利用信息辅助管理层进行科学决策。因此,办公自动化系统必须是一个综合的,且具备多种办公信息处理功能的系统。办公自动化系统需要单位内部的领导人员、行政管理人员、文秘人员、专业人员的共同参与。办公室的工作种类繁多,有信息录入、收发文件、文件编辑、人事管理、文件及信函归档和查询、邮件发送、会议安排、个人、部门及领导日程安排和接待管理等。它的特点是一项工作一般由多个办公人员协作完成,并且他们之间具有一定的办公流程。按工作流管理的概念来分析,每项工作都由一个任务集和任务之间的流程关系组成。任务集是独立的工作项集合,分别由特定的人员或机构来处理;任务之间的流程关系是文档对象的传递和处理关系。2.1 OA 系统模型
根据学校日常办公的特点和实际需求,我们提出了一个基于工作流技术的OA 系统模型,如图所示:
整个系统由公文管理、信息发布管理、工作日程管理、资源使用管理模块、文件档案管理、邮件管理、系统管理及自定义工作流管理等模块构成。各模块既各自独立,又相互依存,组合成一个有机的整体。2.2 公文管理模块
公文流转是办公系统的核心,公文管理可分为收文管理和发文管理两大功能,其中包括公文查询和归档处理。采用数据库模式实现内部公文的收发,保证了对公文流转的有效控制。2.2.1 收文管理
实现收文、登记、处理、查询、归档。实现对公文分类、标识信息(包括标题、种类、缓急、密级、收文字号、主题词、收文机关、发往单位、印发时间、生效时间、承办人等)的登记;批示和处理情况登记;查阅收文办理情况,包括经手的领导、部门名单、收文时间,相应的处理意见等;按归档要求对收文进行立卷登记或销毁登记。2.2.2 发文管理
实现发文、处理、查询、归档。包括设定发文题目及发文负责人,填写发文拟稿纸,草拟文件内容,领导对草拟文件内容审核、批示意见, 有关领导对发文稿进行会签并签发, 对正式发文稿进行校对,按要求查阅需要使用的公文内容,按归档要求对发文进行立卷登记或销毁登记等工作。92 2.3 信息发布和交流建立一个内部信息管理系统,实现内部信息采集、编辑与发布,以达到信息集中、高效的管理。该模块为用户提供了大量实用的信息发布与共享功能,包括:新闻通告、交流园地(BBS)、留言本、征求意见等。其中,新闻通告的发布需要通过相关部门的审核,通过审核则自动发布在学校网站(主页)上,没有通过则限于OA 中浏览。2.4 自定义流程管理模块 可以进行自定义工作流程的规划和设立,工作流自定义包括定义整个流程的名称、所属类别、流程适用范围、流程权限等;定义流程中各个环节的名称、办理方式、办理人员、办理权限等。对于常用、固定工作流程,系统预先加以定义形成工作流模板,供用户使用;并允许用户自定义工作流程模板。自定义流程管理模块还承担对工作流项目的协调管理工作。从一个工作流的启动,到各个工作步骤流转,直到工作流结束的整个过程中,自定义流程管理模块可以按照规则自动选择下一步工作的接管人,管理工作附件及流程进展信息。相关工作流之间可以互相协调,例如一个工作流的完成是另一个工作流的开始触发条件。2.5 文件档案管理
本模块主要是对单位的文件、案卷及重要信息(新闻)等电子文档资料进行归档及管理,并提供多种查询方式,供用户根据权限查询和阅读。常用文档可以收入自己的文件夹。2.6 系统管理模块
此模块定义了系统管理员、部门管理员及各类用户的各种不同权限, 实现了用户层次化的管理。用户权限的设置可以使各级、各类用户有不同的权限,在用户登陆系统后,可以使用相应的系统功能。添加部门或用户、用户的权限设置、系统各类工作流模板等系统设置均在此模块中完成。
2.7 系统其他模块简述
系统还提供了邮件管理、工作日程安排、资源使用管理模块等。其中邮件管理可以提供校内用户相互传送信息,并可以传输文档附件。工作日程安排设学校工作安排、部门工作安排及个人工作安排三个层次的模块,并根据工作日程安排的需要(侧重点)设置重要提醒;资源使用管理可以对公用资源(如汽车、会议室等)进行统一分配和管理,提高资源的利用率。3 OA 系统结构级运行架构
采用BPS 网络体系结构,软件的安装只在服务器端进行,客户端实现零安装。所有系统管理及升级只在服务器端进行,各个客户端无需任何设定。网络的数据库,使用基于MICROSOFT WIN2000Server 的SQL Server 2000。整个系统用Visua l Stu2dio.NET 开发,ASP.NET 技术框架,实现语言采用C# 或VB.NET语言。要求客户端使用WIN98 或以上版本,浏览器要求IE6.0 以上。开发过程中有关问题的探讨
4.1 重视分析现有工作流程,抽象出适用的工作流办公处理过程有它的随意性和不可预测性。开发一个成功的OA 系统不但受到技术因素的制约,还会受到传统模式和相关人员整体素质的挑战。系统开发前期必须做好系统的需求分析工作,首先,明确组织结构、业务划分和具体业务处理过程,及其处理过程的数据来源及流向。实际的工作流错综复杂,要实现软件模块的原子化和系统的自组织性必须使软件系统模块与具体的处室、人员无关。这就要求我们在对现有的组织机构、每个工作的工作过程、活动内容、数据来源、数据去向及约束性等进行细致分析的基础上对提取的工作流进行优化,提取出与具体的组织机构无关的工作流逻辑模 型。这样,才能保证OA 系统的灵活性,才能适应单位组织机构的不断调整变化。这一优化过程,不能受限于现有组织机构及现在工作流程,不能局限于对现状的简单模拟。否则,轻则降低了系统的效率,重则会造成系统的开发失败。办公自动化是一场变革,是一个渐进的、潜移默化的过程,因而是长期的、持久的,不可能一劳永逸,更不可能花钱一买就得。必须加强对使用者的培训,并获得单位领导的理解与支持。4.2 系统安全性设计是贯彻开发过程的主线
由于OA 系统使用人员构成复杂,涉及数据一般比较敏感,所以系统的安全至关重要。本系统主
要通过下列两种方式进行安全管理:(1)每个用户都要经过严格的身份认证。系统在进入每个页面时都要检查当前用户的状态。(2)通过用户权限设置,保证系统信息安全。只有经过授权才能使用相应的功能。本系统在权限进行分配时,引入了系统权限和工作流权限两类权限,可实现多级组织结构和用户多角色的权限分配机制。系统管理员同时拥有上述两类权限的所有管理权限。基于单位的层级结构,在系统权限中分设管理员、部门级和员工级三个级别。其中管理员具有系统管理最高权限,如系统初始化、用户管理等;部门级用户有发布信息、管理自己发布的信息、管理本部门用户等权限;员工级用户则只拥有最基本的浏览信息权限。同时管理员可以修改任何用户任何模块的读写权限,部门级用户可以把自己拥有的权限分配给下属用户。这意味着权限具有可继承性和灵活性。在工作流执行过程中,权限大小则是由用户在工作流中所处的位置所决定,不受系统权限等级的限制。工作流发起者具有此项工作流的管理权限,可以察看工作流执行状态和修改工作流,工作流的其他参与者只具有与自己工作相关的权限。另外,数据加密、数据的及时备份、系统日志等安全技术也被采用,以加强安全性。BPS 结构由于不需要安装客户端,很难做到高等级的安全防护。为此,针对一些特殊应用,系统采取了IP 地址与用户名绑定的措施,限制一些高等级操作。部分采用CPS 结构可能是更好的选择。4.3 友好的用户界面、操作快捷方便是系统开发取得成功的重要因素直接用户满意度是衡量一个系统是否成功的重要指标,功能完备、使用方便是直接用户最为关心的主要问题。为此,可在以下几个方面加以注意:(1)应尽量采用图形化、表格化的用户界面;(2)设计过程中注意操作的简便性,在统一的界面上,充分考虑信息流程和用户的原有操作习惯,减轻用户的重新学习负担;(3)设置方便快捷的查询体系,增强用户对系统的依赖性;(4)通过多种提醒方式,实现实时通知,可以保证办公工作流的正常流转。实时通信是目前办公系统发展的一个方向。本系统设置了系统启动时提醒、定时提醒、邮件提醒等多种提醒方式。如果能实现手机短信、外部邮件提醒,对于外出人员及时了解工作进展,将有极大的帮助。与类似腾讯TM 之类的实时通信软件相结合,可进一步提高系统的实时信息处理能力,简化系统开发。
4.4 在信息集成环境下的OA 系统,不是孤立的系统,在其设计与实施过程中,要注意从整体和集成的角度加以考虑,做好和各类已有系统的集成工作一般学校都有教务管理、人事管理、财务管理、图书管理等多种管理信息系统,这些系统相当一部分可能是专用系统。如何实现与这些系统的信息共享,是OA 系统设计必须解决的问题。对于已有系统,可通过各系统的数据导入、导出功能实现与本系统的数据交换,对于今后可能建立的系统,应预留数据转换接口。在数据库设计时,应给予更多的考虑。4.5 需要进一步研究的问题
4.5.1 修改痕迹的保留办公数据在流转过程中,可能会涉及多人对文件的修改。工作流处理过程中如何保留文件修改痕迹,是一个难题。保留修改痕迹,可以通过使用系统专用文本编辑器、集成OFFICE 类软件等方式解决。使用系统专用文本编辑器,虽然可以有效地解决痕迹保留的问题,但是设计开发难度较大、可能和用户的原有操作习惯不一致,且存在与日常通用文档的数据兼容问题,所以使用范围受到一定的限制。集成OFFICE 类软件,直接处理WPS、DOC、XLS、PDF 类文本,可以较好的克服使用专用文本编辑器所带来的缺陷,但是修改痕迹可能被非授权地破坏。如何有效保留修改痕迹,需要进一步加以研究、解决。4.5.2 信息有效性的确认
信息的有效性体现在保证重要数据是真实有效的,可以认为是数据的源是真实有效的,比如校长办公室发布一条消息,OA 系统关心的是这条消息是不是校长办公室所拥有的账号发布的,发布后有没有被修改。当然可以通过加强账号和口令的管理,但更可靠的方法是通过数字签名等加以确认。已发布的数字签名法并没有具体限定未来网上签名使用何种模式。目前使用的数字签名主要有三种模式:智慧卡式、密码式、生物测定式,无论哪种方法都涉及硬件的投入问题。自主开发数字签名的难度很大。5 结语
本文给出的基于工作流管理技术和采用BPS 结构的OA 系统设计方案,能够通过InternetPIntranet进行办公业务处理,提供规范、灵活的办公流程管理,具有功能齐全、使用方便、安全性好、可靠性高等特点,并已得到实际应用。智能化决策、网络协同办公已经成为现代化管理的趋势,基于工作流的网络OA办公系统将发挥越来越大的作用。
第三篇:工作流与信息流
工作流与信息流
工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述。
工作流在大多数的实际应用中的情况可以这样来简单地描述:在网络、服务器和多台计算机客户端的硬件平台上,业务过程按照预先设定的规则并借助应用程序和人对相关数据的处理而完成。例如,在日常办公中,当撰写好某份报告之后,可能需要将其提交给领导进行审阅或批示;审批意见可能需要汇集并提交给另外一个人,以便对报告进行进一步的修改。这样,可能会形成同一篇文档在多个人之间的顺序或同时传递。对于这样的情况,我们可以使用工作流技术来控制和管理文档在各个计算机之间自动传递,而非手工传递。这就可以称之为工作流。
类似的关于文档的自动化处理只是工作流技术的一种简单应用。事实上,工作流技术在现实生活中能够完成更多更复杂的任务。如企业(或机构)内部的各种数据或信息的自动处理,多种业务流程的整合,企业(或机构)之间的数据交换,借助Internet技术实现跨地域的数据传输和处理等等。
一、工作流发展
工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未普及,网络技术水平还很低以及理论基础匮乏,这项新技术并未取得成功。1983年至1985年间,在图像处理领域和电子邮件领域出现了早期的含有工作流特征的商用系统。
进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮。1993年8月,第一个工作流技术标准化的工业组织——工作流管理联盟(Workflow Management Coalition,简称WFMC,下同)成立。1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。与此同时,关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来。进入二十一世纪以来,工作流技术已被越来越多的人认可,与之相关的标准规范、工作流引擎及商业产品不胜枚举。人们在开发推广工作流产品的同时,更加注重工作流的理论研究,以推动该项技术走向成熟。
二、工作流的特点
1,图形化、可视化设计流程图
2,支持各种复杂流程
3,组织结构级处理者指定功能
4,B/S结构,纯浏览器应用
5,强大的安全性特色
6,表单功能强大,扩展便捷
7,灵活的外出、超时管理策略
8,处理过程可跟踪、管理
9,丰富的统计、查询、报表功能
10,与MAIL系统集成三、工作流的优点
企业实施工作流管理所带来的好处是非常明显的,这包括提高企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高工作效率、集中精力处理核心业务、跟踪业务处理过程、量化考核业务处理的效率、减少浪费、增加利润、充分发挥现有计算机网络资源的作用。实施工作流将达到缩短企业运营周期、改善企业内(外)部流程、优化并合理利用资源、减少人为差错和延误,提高劳动生产率等目的。
总结实施工作流带来的好处,可以归纳为以下几点:
1,要处理的事项已自动传递到个人电脑上
2,不再需要对员工进行流程的培训,平滑实现流程变更
3,员工只需将精力集中在处理自己关心的数据上
4,随时得到历史数据
5,随时生成处理效率报表
6,达到无纸化办公的目标
7,完全支持移动办公,使作业同步化
8,科学管理更进一层,办公效率明显提高
9,企业的核心竞争力将有提升
10,通过流程自动化与数据库集成,以及各类表单统计查询功能,提高决策能力
信息流 information flow
信息流是在空间和时间上向同一方向运动中的一组信息,它有共同的信息源和信息接收者,即是由一个分支机构(信息源)向另一个分支机构(地址)传递的全部信息的集合。各个信息流组成了企业的信息网,称之为企业的神经系统。信息流畅与否,决定着企业生产经营活动是否能正常运行。
信息流是企业发展的脉络
评价企业成功与否,一个简易的办法是看其物流、工作流和信息流“三流”的情况,其中,信息流的质量、速度和覆盖范围,尤其可以“映照”企业的生产、管理和决策等各方面的“成色”。企业的“生命活动”最终都将以信息流的“高级形式”展现……
评价企业成功与否,一个简易的办法是看其物流、工作流和信息流“三流”的情况,其中,信息流的质量、速度和覆盖范围,尤其可以“映照”企业的生产、管理和决策等各方面的“成色”。因为物流、工作流在企业的“生命活动”中无不最终以信息流的“高级形式”展现,就象生物体的所有活动都是基于神经系统传递的生物电信号一样。因此,深入认识“信息流”,将掀开企业发展的新视角。
如同流动的资金带来价值一样,当信息不受限制的从一个地点流动到另一地点,帮助企业实时获取信息,并促使企业创造出真正的经济效益时,才具有最高的价值和意义。其关键,是打造闭环的信息流。不仅要打破企业内部各种信息孤岛,实现数据的收集整合、加工分析、信息的传递应用,以及信息数据的再加工、应用的反复“循环”,还要将企业内部的信息流与企业外部上下游用户的需求信息结合起来,形成“内外融合”的闭环的“大信息流”。这样认识信息流,可以帮助用户“打开眼界”,审视IT建设中局部与整体统一规划和发展的问题,即通过集成实现不同层面的信息流同时,也要为建立企业间高效的信息流打好基础。
此外,建立全面的信息流也是实现业界提出的“按需应用IT资源”理想的基础。信息流具有速度、质量等特征,反映着企业的IT基础水平。信息流速度慢,企业无法及时获取所需信息。而系统数据不完整或得到不一致数据,又将严重影响信息流的质量,进而影响业务系统的成败。只有高质量的信息数据不受任何限制平稳地流向所需位置,才能最终实现按需应用的理想。这对企业各层系统的无缝集成提出了更高的要求。为此,建立丰富的实施信息流的技术方案体系,包括数据层集成、应用层集成、垂直业务处理层集成、发布层集成以及通用建模和开发工具的应用。“信息流”是企业发展的基本脉络。
第四篇:工作流管理系统体系结构设计
工作流管理系统体系结构设计
2010-04-30
清华领导力培训
机电之家
本文主要从三个层次深入介绍了工作流管理系统结构,工作流管理系统将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统,但工作流技术目前还不够完善。深入研究工作流管理系统模型和各大主流工作流管理系统基础上设计一套全面系统结构。
工作流管理系统是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
目前已有上百种声称具有工作流管理功能的商品化软件或原型系统。为了对这些系统的功能、特点等有一具清晰的认识,可以根据工作流过程本身的特点、系统建模的方式、所使用的底层支撑技术、以及工作流过程的执行方式等的不同而对它们进行相应的分类如下:
1、结构化的与即席的
结构化工作流指的是在实际工作过程中会反复重复、严格按照某个固定的步骤进行的业务过程。定义此种工作流所需要的各种类型的信息可以通过对业务过程进行详细的分析而得到,从而得到完整的过程定义并在以后的应用过程中反复使用。大量的办公程序,如公文处理、审批等都属此类。即席工作流则是针对那些重复性不是很强或没有重复性的工作流程的,关于这类流程执行所需的有关参数(如参加者等)事先无法确定,而必须推迟到过程实例运行时才能确定,同时在执行过程中间还可能会发生一些意外的情况。这种动态多变的特点在提供更高灵活性的同时,也为过程的建模与执行带来更多的复杂性。
2、面向文档的与面向过程的
前者的侧着点在于将电子形式的文档、图像等在有关的人员之间进行分发,以便能够得到不同人的处理与审阅。现有的文档管理与映像管理系统均属此类。在面向过程的WfMS中,工作流被描述成一序列执行环节。与各环节相应都有待处理的数据对象。各环节的数据对象可以按不同的方式分发到其他环节中去,如可以将数据对象的值作为控制条件、或者依此数据对象组装成其他的数据对象等。高端的WfMS一般都属此类系统。
3、基于邮件和基于数据库
前者使用电子邮件来完成过程实例执行过程中消息的传递、数据的分发与事件的通知。低端的系统所使用的经常就是此种方法,它可以充分发挥电子邮件系统在广域环境下的数据分发功能,但整个系统将运行于一种松散耦合的模式下。在基于数据库的WfMS中,所有的数据都保存在某种类型的DBMS中,过程的执行实际上就是对这些数据的查询与处理。高端的大规模系统所使用的一般都是此种方法。
4、任务推动的与目标拉动的
前者指的是从过程的开始逐步地一个环节一个环节的执行,当某个活动实例被处理完之后,后续的有关活动将被创建并被激活,由此直至整个工作流程的完成。这是目前大多数面向过程的WfMS所使用的执行方式。而在目标拉动的WfMS中,一个业务流程被看成是一个目标。过程实例执行时,该目标将被分解得到多个相互之间按一定约束条件的关联起来的可执行的多个环节,其中各环节还可以当成是子目标而进一步进行分解。在各环节均执行完毕之后,整个过程也就完成了。目标拉动是一种全新的执行方式,下一代的WfMS将具有此种特征。应该说明的是:上述分类只是从不同的角度入手的。一般来说,后面那些特点将给WfMS带来更好的灵活性,同时也将成为那些能够支持跨机构的大规模复杂工作流管理、面向关键任务的WfMS不可缺少的特征。
工作流管理系统将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统,但工作流技术目前还不够完善。本文深入研究工作流管理系统模型和各大主流工作流管理系统的基础上设计了一套功能全面的工作流管理系统体系结构。本文主要从该体系结构的三个层次深入介绍了该系统结构。
1、引言
在一个组织内部存在着两种信息:一种是数据信息,另一种是业务信息。在组织之间也同样存在着两种信息:一种是数据信息,另一种是业务往来信息。如果这两种信息用计算机系统来管理,前一种属于组织内部的信息系统,后一种属于B2B电子商务系统。目前对数据信息的计算机管理系统(即:数据库管理系统)经过多年的发展已经成熟。对业务过程的计算机管理系统由于比较复杂,可变因素较多,难度大,因此发展还不成熟。工作流技术作为现代组织实现过程管理与过程控制的一项关键技术,为组织的业务处理过程提供了一个从模型建立、管理到运行、分析的完整框架。同时,工作流管理系统(Workflow Management System,WFMS)通过一套集成化、可互操作的软件工具为这个框架提供了全过程的支持。Thomas Koulopoulos曾预言:工作流管理系统将最终成为覆盖于各类台式机与网络操作系统(如:Windows,Unix,Windows NT)之上的业务操作系统BOS(Business Operating System),它将带来操作系统的一次革命。但是目前工作流技术无论从理论上还是从实践都还不够完善,要实现Thomas Koulopoulos的预言可能还需有一段路要走。本文主要介绍了由作者独立设计一套工作流管理系统体系结构,以供工作流技术爱好者参考。
2、工作流管理系统的基本概念
顾名思义,工作流就是工作任务在多个人或单位之间的流转。在计算机网络环境下,这种流转实际上表现为信息或数据在多个人之间的传送。工作流管理联盟(Workflow Management Coalition,WfMC)对工作流的定义是:“业务过程的部分或全部在计算机应用环境下的自动化”。她所要解决的主要问题是,“使在多个参与者之间按照某种预定义规则传递的文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者是促使此目标的实现”。
工作流管理系统就是通过管理一序列的工作活动以及相关人员、资源、信息技术资料来提供业务处理程序上的自动控制。工作流管理系统通过计算机软件来定义、管理和执行工作流程。在工作流管理系统中计算机运用程序的执行顺序是由工作流逻辑的计算机描述来驱动的。她的主要目标是对业务过程中各步骤(或称活动、环节)发生的先后次序,以及同各个步骤相关的人力、资源、信息资料的调用等进行管理,从而实现业务过程的自动化。当然这种管理可能会在不同的信息及通信环境下实现,所涉及的范围可以小至一个只有几人的工作组,也可以大到政府、企业组织各个机构之间。工作流管理系统将人员、组织结构、设备资源、信息源(如数据库、文件系统、电子邮件、计算机辅助设计工具等)整和成一个整体。这样,工作流管理系统就成为了一个理想的用来收容业务逻辑的业务知识仓库,并给予业务逻辑一个易操作易控制的界面。
工作流管理系统的最大优点就是实现具体应用逻辑和过程逻辑的分离,实现在不修改具体功能的情况下,通过修改业务流程模板来改变系统的功能,完成对组织生产经营过程的部分业务或全部业务的集成管理,有效的把人力资源、物质资源和信息组织在一起,发挥最大的效能。
3、工作流管理系统体系结构
工作流管理系统在实际运用中一般分为三个阶段:工作流建模阶段,工作流模型实例化阶段和工作流执行阶段,如图1。在工作流建模阶段主要通过工作流建模工具完成业务流程的模型建立,将实际的业务操作流程转为为计算机可模拟处理的工作流模型;在模型实例化阶段主要通过工作流引擎完成具体业务流程的实例化,为具体业务流程办理流转提供工作流相关数据和工作流控制数据,并为业务流程的办理提供所需要资源(如人力资源和物料、设备资源等); 工作流执行阶段主要完成业务流程的执行,重点是完成人机交互和系统内部应用或外部应用程序的调用。
图
1、实施的三个步骤
根据工作流的三个阶段的分工,工作流管理系统结构可以分为过程设计定义功能、运行控制功能和运行交互接口三个层次的功能,如图2。
4、过程设计定义功能
过程设计定义功能主要作业务处理流程的计算机定义,她提供了一种分析、建模、系统定义技术,将一个现实世界的业务处理过程转换成计算机可处理的定义;最终的定义叫作工作流模型、过程模版或过程定义,她可以用图形符号进行表示。工作流管理系统结构这一层次主要包括以下功能:业务建模与信息建模、组织管理、资源管理、内部应用开发工具、数据窗口开发工具、工作流定义等功能。
4.1业务建模与信息建模
业务流程是由各业务环节连接而成,而每一个业务环节都由多个相互关联、不同层次的要素构成。在业务建模时可自顶向下的将业务流程中各个业务环节最终分解成一系列的原子任务。所谓原子任务,即将有可能发生的每笔业务进行原子化分解,细分到不能再分割的操作单元,每个操作单元即是一个原子任务。任务之间的相互联结也将最终转化为数据流、信息流、协作流、资源流。这样各个原子任务的控制连接,就成为了工作流模型。因此,工作流是企业中过程流、数据流、信息流、协作流、资源流等各种流的综合集成。业务建模工具主要提供流程定义开发人员便捷的与数据流图工具或活动图等流程描述工具类似的业务流程分析工具。
业务模型是信息模型的出发点。信息模型说明了业务处理对象中所包含的信息,或者说执行具体功能的活动的输入、输出数据、以及这些数据之间的逻辑关系。信息建模工具可提供使用E-R图方法构建信息系统的逻辑数据模型;根据实际选用的数据库管理系统,建立适用于该数据库管理系统的物理数据模型,同时可生成目标数据库管理系统的数据库创建脚本。信息模型是个两层次的建立过程,先建立逻辑模型,再建立物理模型。逻辑模型支持数据的概念模式,它从抽象的层次上反映内部数据间的关联,不管具体的数据结构及数据存储方式等等。物理模型支持数据库的物理设计,它与具体选定的数据库类型密切相关。
4.2组织管理
在组织单位中组织结构是信息决策、任务执行和监督管理等重要活动的载体,组织结构揭示了组织单位人员管理的层次,反映了人与工作、决策、责权之间的联系。因此,组织结构对于一个组织单位中如何完成业务流程的建模和提高管理、生产效率是至关重要的。组织结构、工作流、过程建模等概念的提出,为描述组织单位业务流程提供了有力的工具,也使过程到组织的映射模型的建立成为可能。
工作流管理系统结构提供了组织管理功能,用于定义业务单位的组织架构和人员管理职责分配等工作。为工作流模型的定义和工作流的实例化、执行提供人力资源约束和支持。
4.3资源管理
资源是进行生产经营不可缺少的物资因素,在工作流的执行过程,必须得到企业资源的支持,相应的组织实体才能够按照要求完成活动。同时,工作流要保证将正确的信息和资源在正确的时刻以正确的方式送给正确的小组或成员。
工作流管理系统结构提供了资源管理功能,用于建立组织单位的资源模型,表示组织单位的资源结构和配置情况,描述组织单位各种资源对象之间的联系和关系,为工作流模型提供资源约束和支持。
4.4内部应用开发工具
工作流管理系统结构提供了图形化应用开发工具,用户可以使用图形化设计方法,开发出动态页面应用,其结果可保存为html或jsp或其他可直接调度执行的运用程序。这些内部应用程序具有数据库访问能力,能够访问或存储工作流相关数据和控制数据。在流程定义时流程开发人员可以直接设计并提供流程节点预调用。运行时用户可以在任务列表中直接调用,执行所需完成的工作。它的最大的优点是让开发人员避免了复杂业务处理应用程序的开发。
4.5数据窗口开发工具
工作流管理系统结构提供了图形化设计复杂报表页面的能力,可设计任意复杂的报表,并可画出各种统计分析图并能够使用多种形式输出。在流程定义时数据窗口开发工具就像内部应用开发工具一样可以由用户自行定义并提供流程节点预调用。当流程实例运用到指定节点时,用户可以直接调用该数据窗口以用户所需要的形式展现相关信息内容。
4.6工作流建模工具
工作流建模工具以工作流元模型为基础,通过分析不同类型的业务过程,采用有向图的方法对现实的业务活动进行形式化描述,建立业务过程到工作流模型的映射机制。对于建模工具而言一方面为用户提供了一个建立规范的业务过程的接口,另一方面,所建立的工作流过程可以存储于工作流库中作为工作流引擎的输入,投入运转、执行并接受监控。建模工具的主要包含以下功能:
提供建立工作流模型所需的各类基本元素,比如活动、子过程、连接弧等;
支持图形用户界面的基本操作,比如鼠标的点击与拖动;
提供用户定义各模型单元属性的对话框;
模型的保存与读取;
支持多层次建模;
与外部自动应用的接口;
4.7工作流模型库
工作流模型库主要用于保存和管理已定义完成的工作流模型。在工作流程启动时工作流引擎将直接加载并将其实例化,同时为工作流的流转提供基础模板。
5、运行控制功能
运行控制功能主要对工作流模型的定义进行解释,创建并控制过程的运行实例,调度过程的各种行为步骤,调用适当的人力、资源和应用程序以完成任务的执行。工作流管理系统的核心部件就是工作流管理控制软件——工作流引擎。工作流管理系统结构在这一层次的主要包括:工作流引擎和工作流监控管理2部分。
5.1工作流引擎
工作流引擎可以说是工作流管理系统的心脏。一个工作流管理系统通常可以包括一个或多个工作流引擎,不同工作流引擎通过协作共同执行工作流程。工作流引擎实际上是经营过程的任务调度器,在某种程度上还是资源的分配器。在采用工作流管理系统支持经营过程中,工作流引擎可以看成是一个业务操作系统BOS(Business Operating System)。业务过程在她的管理、监控之下运行,因此工作流引擎的性能和可靠性就直接决定了业务过程的运行效率和安全性。
5.2工作流监控管理
系统管理与监控是工作流系统一个非常重要的功能。工作流系统管理与监控工具能够对工作流在整个组织内部的流动状况进行监视,并提供一系列的管理功能,实现安全性、过程控制和授权操作等方面的管理。它包括以下几个方面的功能:
1)建立、设置和优化组成工作流管理系统的各个软件。
2)对过程模型进行实例化。
3)将过程模型中的角色实例化。
4)将运行中的过程实例、活动实例和数据分发到各个工作流机中。
5)启动、挂起、恢复和终止过程实例。
6)管理正在执行的过程实例,并对正常结束或异常退出的过程实例的历史数据进行统计和分析。
6、运行交互接口
运行交互接口主要提供工作流管理系统与人员或应用程序工具的交互接口来处理各种活动步骤。交互接口对于活动间的控制传递是必须的,如确定过程的状态,调用应用程序工具,传递应用程序数据等。
7、结论
该工作流管理系统体系结构是作者深入研究了工作流管理联盟提供的工作流管理系统模型和各大主流工作流管理系统的基础上设计出来的。以该体系结构为基础作者领导开发了基于J2EE架构的新一代工作流管理系统UniFlow。UniFlow工作流管理系统目前已在电子政务中取得了广泛的运用。
第五篇:GSM_R系统与应用
摘要:介绍了铁路专用通信网的现状及将在铁路专用通信网中采用的铁路移动通信全球系统(GSMR)的组成、网络结构及特点、主要功能和延伸功能,探讨了铁路对GSM-R网络建设的特殊要求,以及在GSM-R 网络建设中需要做的一些工作。
关键词:铁路移动通信全球系统;专用通信网;铁路通信
随着铁路跨越式发展和提速工作的顺利进行,传统独立的专用通信网技术及信号技术正在相互融合和向数字化、智能化、综合化的方向发展;移动通信技术与专用通信网技术也在有机地结合,逐步形成铁路专用移动通信网络。1 现有的铁路专用无线通信网络
专用无线通信网是指在有关部门和单位内部使用的移动通信网络,主要用于调度通信,也称为无线调度通信网。专用无线通信网的特征是网络拓扑为星状结构,便于实现调度中心对各个移动终端的指令传输。网络功能包括:动态重组、划分优先级及组呼、选呼等。通信方式以单工通信为主。目前铁路的专用无线通信网主要由无线列车调度系统和站场无线通信系统两大部分组成:
(1)作为保障铁路行车安全的重要通信手段,无线列车调度系统分为A、B、C 三种制式。A 制式是按调度员直接指挥机车行车的方式设计的,以调度员—司机间的通信为主;B 制式是按照以车站指挥行车为主,允许调度员加入行车指挥的方式设计的,以车站值班员—司机—车长三者间的通信为主;C 制式是按照车站值班员直接指挥行车设计的,可以提供车站台对调度台的通信转接等。另外无线列调还具有列车尾部风压信息的传送及车机联控录音等功能。
(2)站场无线通信系统主要用于铁路区段站、编组站间的无线通信,包括平面调车、车号、列检等,属于站场单工无线通信系统,由相应的单位自行投资和建设,已被广泛应用。2 GSM-R 系统 2.1 概述
GSM-R 网络是基于目前最成熟、最通用的G S M 公共移动通信系统平台之上,针对铁路运输通信调度、列车控制和支持高速列车运行等特点,为铁路运营提供特定的附加功能开发的一种数字移动通信系统和经济高效的综合无线通信系统,其终端的外形与普通的手机差不多,可以通话、也可以传递短消息。由于GSM-R 是一种数字式的集群系统,从集群通信的角度看,GSM-R 能提供无线列调、编组调车通信、应急通信及养护维修组通信等语音通信功能;能满足列车在0~500 km/h 运行速度下无线通信的要求和作为信号及控制系统良好的传输平台。随着列车的提速,磁悬浮式的速度信号灯将被逐步淘汰,取而代之的是GSM-R 直接传递控制信息的方式,逐步实现列车自动驾驶。同时,GSM-R 也将被服务和安全检查人员用来随时传递信令,实现便、快捷的工作。所以,GSM-R 不久即会与铁路现有的专用无线通信资源相结合而被应用于专用无线通信网络中。2.2 系统组成、网络结构及特点
GSM-R 系统是在G S M 蜂窝移动通信系统的基础上增加调度通信功能构成的一个综合性的专用移动通信系统,共分交换系统(SSS)、基站系统(BSS)和操作维护系统(OMS)三大部分。与GSM 相比较,只是在系统中增加了为调度通信建立呼叫用的组呼寄存器(GCR),并将接口UM 和ABIS 分别修改为U、R 和ABIS-R,其它接口,如A、B、C、D、E 的标准和定义均与GSM 相同。GSM-R 的网络结构也与GSM 相同,可构成链状覆盖或面状覆盖的蜂窝网络。GSM-R 基于GSM PHASE Ⅱ + ,在GSM PHASE 基础上,引入了智能网的应用部分(INAP),可应用移动网高级客户化应用程序(CAMFL)将业务交换和业务生成逻辑分开;引入了高速数据通信和更多的补充业务,如先进的语音呼叫业务(ASCL:Advanced Speech Call),包括优先级(EMLPP)、语音广播业务(VBS)和语音组呼业务(VGCS)等。在软件方面,GSM-R 采用了用于优化呼叫建立时间的业务信道分配算法、越区算法,及用于增强高速移动体(如高速铁路)通信服务质量的高速抗失真算法等。利用GSM/GSM-R 双模手机可进行G S M 网的公众移动通信,也可以进行GSM-R 网的专用移动通信。2.3 主要功能及延伸功能
(1)G S MR 的延伸功能
G S MR 网络与普通的G S M 网络无太大的区别,包括在网元标准接口和网络扩展上,都无太大的区别。目前,在公网中引入的一系列新技术,如优化利用频率,在高话务量区域(如车站)使用微蜂窝,以及多层覆盖和根据速度进行越区切换技术等等,经过略加改动后都可以用于铁路G S M-R 网络上。其区别仅在于因铁路网的特殊需求而引起的网络结构和规划上的不同而已。中国铁路发展G S MR 网络的特殊要求主要有:
(1)高达200~500 km/h 的无缝通信。(2)对有限频点数(例如20 个)的有效利用。(3)载干比(C/I)至少12 dB。
(4)在一个制定区域内应有95% 的时段及95% 的覆盖率,信号强度应大于-90 dBm。
(5)在GSM-R 之间切换,成功率应高于99.5%。(6)传输通道和网络设备必须有很高的可用性。
(7)在车站和编组站内覆盖要好,在隧道处应能覆盖到隧道内。(8)通信建立时间要短,95% 的通信建立时间应在标准要求之内,其余的5% 不高于标准的1.5 倍。