基于文档的项目管理系统的设计和实现_第1页
基于文档的项目管理系统的设计和实现_第2页
基于文档的项目管理系统的设计和实现_第3页
基于文档的项目管理系统的设计和实现_第4页
基于文档的项目管理系统的设计和实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于文档的项目管理系统的设计和实现李艳春,李振英,李艳玲(北京市西城区三里河东路52号网络信息中心0A室,北京100864liensiyun)摘要:讨论了传统项目管理系统的不足,提出了建立基于文档的项目管理系统的方法,以满足项目管理发展的需要。给出了基于文档的项目管理系统的建模方法和步骤,并给出了设计思路、总体框架和实现方法。关键词:基于文档的项目管理系统;工作流;基于文档的项目模型中图分类号:TP391The Design and Implement of Project on Document Management SystemLI Yan-chun LI Zh

2、en-ying LI Yan-ling (Computer Network Information Center, Beijing 100864)Abstract: With discussing the deficiency of traditional project management system, the project on document management system (PDM) applying workflow technical is put forward, to meet the development of project managing. The met

3、hod and process of constructing PDMS is introduced, and the designing method、total frame and realization of the system are also presented.Key words:PDMS(project on document management system); workflow; the model of project on document1 引言当今,每一个单位都会有自己的项目,文档在项目中占有重要的地位。项目可以分为科技类项目、经济类项目多种类型。所有的项目都会涉

4、及到相关的资产调用,人员参与,费用产生,工作计划,效益分析等。每个项目也有它自己的生命周期,项目生命周期是指项目从立项开始到项目完成的整个过程。从项目的生命周期来看,它们都有申报、受理、评审、审批,执行、控制管理和归档等多个阶段。文档的生命周期为:拟稿、核稿、签发、审阅、发布、存档。传统的项目管理系统都是对项目本身进行管理,没有把项目与整个完成过程中每个阶段所涉及到的文档结合起来。或者文档管理系统只对文档本身进行管理,并没有把文档和与其相关的工作结合起来,这就出现了项目管理与文档管理的分离现象,不利于对项目进行合理有效的管理。本文提出了基于文档的项目管理系统(PDMSProject on Do

5、cument Management System)是在项目的整个生命周期实施全过程中,结合工作流技术对项目的不同阶段实施基于文档的管理。能轻松的控制项目不同阶段所有信息及其所涉及到的文档,使一个项目在控制下高效进展,合理安排项目及其文档计划,以便分析一个项目的成本和效益,取得更好的收益。2 基于文档的项目管理的建模我们的基于文档的项目管理系统结合了工作流技术,因为引入工作流技术,通过业务流程的自动化,减少许多不必要的任务和步骤,提高了工作效率;通过改进业务过程的管理,实现标准化的工作方法以及有效的审核跟踪,能过更好的控制流程;以信息技术为基础的流程设计,在实际实施以前,可以根据业务需求的变化,

6、重新定义和仿真,有更大的灵活性。 工作流管理联盟给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。1 工作流包括三R(规则Rule,角色Role,路由Route)。结合工作流定义,描述基于文档的项目的工作流可用一个二元组表示workflow=<workFlowFSM,status>。status 用来表示项目的工作流状态,如执行、挂起、完成等,它由工作流管理系统来管理,它能读写工作流状态,系统通过状态属性来控制工作流,workFlowFSM是一个有限状态机:<A,R,f,F>(

7、1)A有限状态集,是基于文档的项目工作流活动(Activity)集合,工作流活动等同业务流程步骤;(2)有限的输入集合R 为工作流的过程规则(Rule);(3)f为流程变迁函数 ,f:ARA(表示叉积),或用函数表示f(a,r)=a( a,aA,rR,i,jN),变迁函数表示工作流活动a在规则r作用下转到工作流活动a,a为a的后继工作流活动; (4)A是项目唯一的起始工作流活动; (5)F 为变迁函数f 的集合,它表示工作流的路由(Route),即对象流动的方向和目的,对象是工作流定义中的文档、信息或任务。基于文档的项目管理系统的工作流活动集合A 可以用一个五元组来表示:A=<name,

8、document,role,state,application>。其中name 表示工作流活动名称;document表示工作流活动中所涉及到的文档;role表示处理工作流活动的角色;state表示工作流活动的状态(如就绪、执行、挂起和完成等);application表示工作流活动处理用户请求所要调用的应用程序(Application)。参考WFMC制定的工作流产品实现模型和工作流参考模型2,我们给出一种基于文档的项目管理系统工作流技术的建模模型。2.1过程模型基于文档的项目业务流程的过程模型是一个无自环的有向图G。有向图G可以用一个五元组<P,C,B,T,D>表示,其中:P表

9、示过程,过程是一个子流程,在基于文档的项目管理流程中,经常包含一些子流程,这些子流程在组成上,也包含过程模型的所有要素。因为一般情况下这些子流程在母流程定义时,其流转过程还不能确认,因此,用一个过程来表示,而在具体执行过程还不能确认,比如项目审核时的审批就是一个过程,审批步骤是否执行,如果执行,包含哪些文档、角色是无法确认的,在该模型实例化后,再根据需要,由相关部门的参与审核人员来定义其步骤。C为有限节点集c,c,c,节点表示工作流活动与五元组A=<name,document,role, state,applicationLink>集合表达式相对应。B表示为图G的边,边的集合与有限

10、状态机的变迁函数集合F相对应。T为C上的(0,1)函数,表示结点的输入/输出逻辑。T(c)=0表示合取逻辑,T(c)=1表示析取逻辑,这样就可以根据系统满足不同的条件(单接点输入、输出;AND合取输入、合取输出;OR析取输入,析取输出)来执行不同的结果。建立起过程模型后,工作人员就可以根据设计好的过程模型,建立实际的基于文档的项目的过程实例,这个工作称为过程的实例化。2.2 组织模型由于每个用户在工作流活动中都扮演着一定的角色,每个工作流活动都有相应的角色与之相对应,角色通常独立于执行角色的具体用户,包括组织单元、具体的参与人、角色功能和资源,而每种角色都拥有着一定的操作和管理权限。在基于文档

11、的项目管理过程模型中,我们是在将过程模型实例化后,才将角色和用户相对应。用户根据所扮演的角色而拥有的权限对此系统进行访问和操作。因此,过程模型的建立和实例化需要建立角色、用户,角色、权限的关系表,这就是组织模型。在该基于文档的项目管理系统中,组织模型的建立包括以下三个要素。用户:在这个系统中,用户就是基于文档的项目管理过程中的各步骤实际操作者;角色:基于文档的项目管理过程中,对具有某种权限的一些用户的统称;权限:包括查看、新建、修改、删除、查询等。组织模型与过程模型的联系如下:首先,基于文档的项目建模时,根据基于文档的项目所涉及到的用户确定他在此过程中所扮演的角色。然后,在过程模型实例化的过程

12、中,将角色和具体的用户相对应。最后,在控制过程中,用户根据自己的权限对基于文档的项目进行不同的操作。3 系统设计3.1系统功能结构 基于文档的项目管理系统的功能结构图如图1所示。其中,工作流管理子系统是管理和监督工作流执行的子系统。它的功能有以下几方面:根据基于文档的项目工作流模型,进行基于文档的项目的过程实例化;按照项目过程实例执行项目的工作流;能改变过程实例或工作流活动实例的状态,能暂停、恢复和退出全部或部分过程实例,以达到对工作流管理的目的;能监督过程实例的执行。应用程序是操纵应用数据的程序,由用户管理、项目管理、文档管理、系统维护等子系统组成。3.2查询设计我们的基于文档的项目管理系统

13、的查询是一个综合的查询系统,通过它管理员可以查询符合输入条件的过程,管理员还可以查询分配给指定用户的工作项,用户根据自己的权限进行查询与自己有关的工作项、项目和相关文档,查询的范围也可以通过对项目库和文档库的指定来加以限制。条件与条件间可通过“与/或”关系的组合来进一步增强组合条件的严格性与复杂程度。服务器用户端系统维护子系统基于文档的项目管理系统(各种界面)人员管理模块数据操作数据查询数据打印Web服务器应用数据库(应用程序)元数据图1 基于文档的项目管理系统功能图文档数据库用户管理子系统项目管理子系统文档管理子系统角色管理模块权限管理模块未启动项目管理模块项目成果管理模块已结束项目管理模块

14、正运行项目管理模块建立文档管理模块修改文档管理模块审批文档管理模块文档归档管理模块工作流管理子系统工作流模型库 3.3 数据库设计数据库系统的设计比较复杂,其中的数据主要分为属性数据和元数据。由于各个工作流程不是一成不便的,所以我们才采用元数据来表示每个工作流活动的应用数据,这样改变工作流程就不用更改整个系统,只需改写部分数据表中的数据就可以了。 表1 元数据表例中文名字英文名字属性长度备注字段号Field_idNumber8pk字段名称Field_nameVarchar250字段所在的数据表Field_tableVarchar250字段类型Field_typeVarchar250字段长度Fi

15、eld_sizeNumber10字段是否为主键Field_isKeyBoolean字段是否为空Field_isNullBoolean字段在数据表中显示的顺序Field_orderNumber5属性数据表的设计遵循“对象关键字代码+属性字段组”的设计原则,根据工作流管理子系统我们还在数据库中创建工作流状态属性控制表、工作流活动表、规则集合表、变迁函数集合表,其中变迁函数集合表,状态属性控制是记录项目运转过程中相关属性和控制数据。元数据表记录了数据的产生、数据的定义以及数据之间关系的各种属性,包括数据的具体描述、数据结构等,每个工作流活动的应用数据可以采用元数据来表示和产生。由于元数据的可以采用相

16、同的格式来表示,所以我们用一个通用的应用程序通过元数据去操纵应用数据,而不必为每个工作流活动的应用数据开发相应的应用程序。4 系统实现考虑到支持协同设计的需要, 以及Web应用程序支持工作流管理且易于管理和移植的特点, 本系统在实现时参照WFMC规范,采用了基于B/S模式的浏览器、服务器和应用服务器、数据库服务器三层结构。同时, 为了实现系统的可扩展性、开放性和可靠性,我们采用了BEA WebLogic Server作为Web服务器的管理程序, 利用JAVA 开发Web构件、元数据定义工具和客户端下载的应用程序, 并用JSP作为系统集成的框架语言。数据库工具采用ORACLE 9i。具体的系统结

17、构图如图2所示。表示层数 据请 求下载Applet请 求客户端中间件数据库Web浏览器Web服务器应用服务器Servlet Oracle 9i功能层数据层Internet图2 DPM系统结构图4.1 系统实现的关键技术SUN公司的开放的数据库连接方案JDBC为Java和数据库的连接提供了解决方案。它是基于SQL层的API。通过把SQL 语句嵌入JDBC接口的方法中,用户可以通过Java 程序执行几乎所有的数据库操作。JDBC只提供了接口,具体的类的实现是我们自己完成的。JDBC是面向与“平台无关”设计的,所以在编程的时候不需要关心自己要使用的是什么数据库产品。该系统使用JDBC技术从而可以利用

18、JDBC API来实现特定的需求。 由于数据表中的数据比较多,而且数据录入人员不可能十分清楚的每张表格的每个字段的字段号,还有我们的用户不是直接对数据表进行操作的而是直接操作应用程序,所以他们不可能知道每个字段号是多少,因此我们把所有数据表的字段号作为自增字段,这样就方便的数据库录入人员和用户的操作。下面以元数据表中记录号为例,记录号FIELD_ID的自增字段Trigger代码如下所示:CREATE OR REPLACE TRIGGER "DOCPM"."FIELD_ID" BEFOREINSERT ON " METADATA _TABLE&q

19、uot; FOR EACH ROWDECLARE num NUMBER; bh NUMBER;BEGIN select count(FIELD_ID) into num from METADATA_TABLE; if num=0 then bh:=0; else select max(FIELD_ID) into bh from METADATA_TABLE; end if; bh :=bh + 1; :new. FIELD_ID:=bh;END;在对文档的操作过程中涉及到文件的上传和下载,而且还要能够支持各种文件。在基于文档的项目管理系统中文件的上传用到了J2EE中的EJB组件3。我在实现时

20、用一个简单的JSP页面up.jsp,提供一个表单,用户从这里选择文件并填写一些信息把文件上载到服务器。将.jsp调用UpBean的代码其他代码省略, <jsp:useBean  id="TheBean"  scope="page"  class="UpBean  "  />   <%  TheBean.doUpload(request);   %>    在实现文件下载时,直接在JS

21、P页面中进行文件下载操作没有调用到Java文件。首先将文件“file_name”用InputStream inStream=new FileInputStream(file_name)语句读到流中,然后用response.reset(); response.setContentType("bin"); response.addHeader("Content-Disposition","attachment; filename="" + fileName + """);三条语句设置输出的格式,最后用byte b = new byte1000; int len; while(len=inStream.read(b) >0) response.getOutputStream().write(b,0,len); inStream.close();等语句循环取出流中的数据。5总结本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论