uright

导航

 

刚在公司做完一个工作流的项目,总结下项目的心得
工作流产品采用对象序列化技术,将每个表单作为二进制文件存入数据库,然后在运行流程的时候,把表单对象序列化回来进行相关操作,这种技术虽然不是什么新的技术,但用法很奇特,贯穿于正个工作流项目。

这样设计的优点:
1.数据库设计非常简洁,明了
2.流程的属性可以任意修改,而不会影响到数据库
3.获取流程对象实例很简单,只需要访问一次数据库,即一次访问,即可获取流程的所有属性
这样设计的缺点:
1.对于数据分析,数据的批量处理不方便,影响效率。
    如:查找所有流程属性为**时,可能就得把所有流程对象实例读出来,然后反序列化看各个流程实例的属性,这样效率就低在频繁的反序列化对象上了。
解决的方案:为尽可能少反序列化流程实例,在设计数据库时,将某些常用的公有属性设计出来,比如流程ID,流程uniqueName,流程状态等,还有一些业务操作数据也不提炼出来,比如申请,签核,待签等操作,专门用于存储业务数据,方便对业务数据的报表分析。
2.出错信息不明显,由于在数据库中是二进制文件,所以基本看不出里面的数据是什么,增加调试工作量。

错误处理:
采用Log4Net,区分错误信息的等级,分为Debug,Error等,在写异常信息的时候,采用了Log4的缓存机制,对于多的异常,避免的频繁访问数据库写Log日志

功能模块:
分为流程设计,组织架构设计,系统配置

未完待续……


posted on 2005-07-05 11:21  uright  阅读(460)  评论(0)    收藏  举报