
图4 工作流执行服务的结构图
其具体的执行过程:工作流机接受从外部接口发送过来有关过程控制的请求(如过程初始化、获取活动以及结束活动等),然后根据不同的请求类型调用相应的处理模块完成与本次请求相关的操作并将结果返回。事实上可以将工作流机看成一个多线程的并发服务器,它可以对多个外部请求提供并发服务。对外部请求的处理过程中肯定会涉及到对工作流相关数据的读写和更改操作,同时工作流机还维护着工作流的控制数据,通过工作流控制数据来辨别每个过程或活动实例的状态,并推动着工作流过程的执行。
过程、活动、工作项构成了工作流机的主要逻辑。在我们的系统中采用了对象的封装和继承的方法,把它包装为普通的C#类。三个类的定义如下:
(1)、public class WEProInstanceManager {} //工作流执行机的过程实例的管理类
(2)、public class WEActInstanceManager {} //工作流执行机的活动实例的管理类
(3)、public class WEWorkItemManager {} //工作流工作列表管理类
工作流的错误包含两种错误,一是流程错误,如活动的执行者不存在,活动的应用程序定义错误等;另一类是系统的错误,如:网络不通,数据库系统异常。对于工作流执行机来说,前类异常是属于无法处理的错误,只能进行错误的通知;后者是执行机可以处理的错误,如数据库异常或连接临时中断等等,执行机可以进行容错处理,例如:在数据库恢复后自动重新建立连接。执行机对可能出现的错误进行编码,并附有对应的描述信息。
在我们的系统中采用了C#的异常处理思想(在C#的编程思想中,系统的错误是通过捕获异常来实现的),抛出的异常通过异常类WEException来描述。WEException类继承了C#的异常处理类Exception。并覆盖了Exception类的属性Message(){get{}},其中WEException类中保存了可识别的异常对照表。在C#的异常处理中,在出错的地方将异常抛出,不进行处理。异常被抛到更高的层次,直到某个层次能够进行这种异常的处理。
4.3、工作流管理系统的安全权限控制
工作流管理系统对安全性要求较高,为了达到要求,必须做到充分的安全控制。在我们的系统中,共设置了5层安全控制级别。
上一页 1 2 3 4 56 下一页
