:电子公文管理系统设计与实现
:
3.4 文档版本控制
“临时公文管理”模块主要是将正在撰写尚未正式定稿的公文存放到数据库中进行备份,同时支持同一稿件在撰写修改过程中产生的多个不同版本维护功能。文档修改前后的比较、版本控制是这一模块的主要技术点。
版本控制主要是通过获取文件最近修改时间来实现的。具体来说包括以下步骤:1)系统启动时,通过oracle中的sysdate函数取得数据库服务器的当前时间,并将客户端时间与服务器时间进行自动同步;2)临时公文上传到服务器进行备份时,获得文件的最近修改时间并保存在数据库中的updatetime字段中;3)检查本地文件与数据库备份文件是否一致时,再次获得本地文件的最近修改时间,通过与数据库中保存的时间进行比
较完成。
获取文件最近修改时间功能实现,主要是通过windows的api函数findfirstfile()获得文件属性数据,该数据的ftlastwritetime属性即为文件的最后修改时间。值得注意的是,该属性获得的是用32位表示的文件时间戳,为操作系统使用。要想转换为用户能看懂的本地系统时间,需要通过filetimetolocalfiletime()、filetimetosystemtime()以及systemtimetodatetime()函数进行转换。
4 测试验证
为了验证依据上述分析设计的有效性,对已实现的公文管理系统进行了测试验证。
4.1 实验设置
试验在2台pc机组成的局域网内进行。数据库服务器的基本配置为piv 2.0g cpu,1g内存,120g硬盘,其上安装了oracle 9i;客户端pc机配置为piii 1g cpu,512m内存,80g硬盘,安装了oracle客户端和office XX软件。
实验数据集为某单位XX-XX.6产生的500个实际公文文件,大小从50k到500k不等,平均大小约为200k。在其上进行了存储开销比较、查询性能、自动归档性能以及全文检索性能的实验。
3.4 文档版本控制
“临时公文管理”模块主要是将正在撰写尚未正式定稿的公文存放到数据库中进行备份,同时支持同一稿件在撰写修改过程中产生的多个不同版本维护功能。文档修改前后的比较、版本控制是这一模块的主要技术点。
版本控制主要是通过获取文件最近修改时间来实现的。具体来说包括以下步骤:1)系统启动时,通过oracle中的sysdate函数取得数据库服务器的当前时间,并将客户端时间与服务器时间进行自动同步;2)临时公文上传到服务器进行备份时,获得文件的最近修改时间并保存在数据库中的updatetime字段中;3)检查本地文件与数据库备份文件是否一致时,再次获得本地文件的最近修改时间,通过与数据库中保存的时间进行比
较完成。
获取文件最近修改时间功能实现,主要是通过windows的api函数findfirstfile()获得文件属性数据,该数据的ftlastwritetime属性即为文件的最后修改时间。值得注意的是,该属性获得的是用32位表示的文件时间戳,为操作系统使用。要想转换为用户能看懂的本地系统时间,需要通过filetimetolocalfiletime()、filetimetosystemtime()以及systemtimetodatetime()函数进行转换。
4 测试验证
为了验证依据上述分析设计的有效性,对已实现的公文管理系统进行了测试验证。
4.1 实验设置
试验在2台pc机组成的局域网内进行。数据库服务器的基本配置为piv 2.0g cpu,1g内存,120g硬盘,其上安装了oracle 9i;客户端pc机配置为piii 1g cpu,512m内存,80g硬盘,安装了oracle客户端和office XX软件。
实验数据集为某单位XX-XX.6产生的500个实际公文文件,大小从50k到500k不等,平均大小约为200k。在其上进行了存储开销比较、查询性能、自动归档性能以及全文检索性能的实验。