基于B/S模式的公文管理系统关键技术分析

来源 :群文天地 | 被引量 : 0次 | 上传用户:cuilu206
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   本文研究了一般公文管理系统中普遍需要实现的三个核心功能,分别是权限控制机制、公文群发机制和签收机制,通过探讨能够使大家更深入的了解公文管理软件的精髓。
   一、引言
   随着信息化时代的高速发展,基于网络的信息管理平台大量涌现,给传统的工作方式带来了革命性变化。在各政府机关、企事业单位中,以公文流转为核心的web办公自动化系统(OA)应用已较为广泛。于此同时,也涌现出很多公文管理软件,它们的功能各有特色,但其核心功能都是相似的。本文希望通过权限控制机制的实现、公文群发机制和签收机制探讨能够使大家更深入的了解公文管理软件的精髓。
   二、服务器开发平台
   在介绍三种关键技术之前,首先介绍一下本系统的开发平台。本系统的软件平台采用开源的LAMP组合技术,并使用免费的Ajax类库XAjax实现部分异步通信功能。服务器主要软件配置如下:
   (1)服务器操作系统采用Linux系统,版本为Red Hat Enterprise Linux 5.0,其内核为2.6.18,具有支持Xen虚拟化技术, 集群存储等。
   (2)Web发布软件采用Apache,其版本为2.2。
   (3)系统开发语言采用PHP,其版本为5.2.6。
   (4)网络数据库采用MySQL,其版本为5.0.21。
   (5)异步通信采用XAjax。
   三、系统关键技术及实现
   (一)用户权限控制机制的实现
   (1) 权限存储策略
   本系统中,用户权限控制是实现整个系统正常操作流程的重要基础和技术重点。下面从权限的存储策略、权限验证策略、技术实现三个方面介绍本用户权限控制机制的原理。
   首先将抽象的“权限”概念具体化,将系统中所有需要经过权限认证才能进行的操作进行分类、细化,概括成若干个独立的、具体的权限。给出权限的文字描述,实现权限和程序之间的一一对应。并对每个权限进行编号。本系统的权限设置和编号情况如图所示。权限编号完毕后,将权限编号、权限名称、权限描述存入一个配置文件中。配置文件主要包括高级用户管理权限、普通用户管理权限、个人帐号管理、自定义发文群组管理、审批发文群组、内部发文群组管理、公共普发信息管理和手机短信管理等内容。
   在用户基本信息表中,设置一个专用字段privlist,类型为text,可以支持极高长度的文本,本字段用于存放本用户的权限列表。在用户权限设置页面中,使用PHP的文本操作函数库,打开本配置文件,使用循环逐行读取文件内容,然后使用字符串处理函数将一行内容分割为数组,然后将当前权限输出。
   (2)权限验证策略
   在这里,设计一个专门的PHP函数实现权限验证。
   Boolean function checkpriv($privid);
   本函数接收一个权限ID,判断当前登录的用户是否具有此权限。其方法是:
   ①检查$privid是否大于0,是则进入②,否则返回false;
   ②从SESSION中取出当前登录用户的privlist,使用explode()函数将其处理成数组。
   $arr = explode(“|”,$privlist);
   ③使用in_array()函数判断$privid是否是$arr中的一个元素,如果是则返回true,否则返回false;
   ④函数结束。
   (3)技术实现
   ①PHP读取文本类型的配置文件。本操作使用PHP提供的文件操作函数,打开文本文件流,每次读取一行,循环处理直至文件末尾。具体实现代码概要如下:
   $fp =@ fopen(“privlist.ini” , ’r’);
   While ( $line = fgets ($fp , 1024) ) {
   $arr = explode (“|” , $line);
   //$arr[0]-权限编号
   //$arr[1]-权限名称
   //$arr[2]-权限描述}
   @fclose($fp);
   ②前台用户权限的序列化。在用户权限设置、修改等页面中,需要将所有权限以下拉列表方式列出,管理员对用户的权限进行增删操作,操作完毕后点击提交。在点击提交之后和发生提交之前,使用Javascript将所有已选权限(列在一个动态的下拉列表中)序列化为一个以“|”分割的字符串,并将这个字符串赋值给一个事先设置好的hidden表单中,与整个表单值一起提交到服务器。这个Javascript函数的技术实现如下:
   function collectPrivs(){
   var priv = "";
   for(i=0;i   priv += "|"+form1.userpriv.options[i].value; }
   return priv;
   }
   其他技术实现细节不再赘述。
   (二)公文群发与签收机制的实现
   (1)公文群发机制的实现
   一般而言,在Web系统设计中,对于群发信息一般采取两种方式:一种是向每个用户发送一份信息的拷贝。一旦发出无法撤回,接收者可以对信息进行各种操作包括删除,这种机制类似于电子信箱。这种方式下发送者无法或者很难掌握已发出信息的状态。第二种方式是只在服务器上存储一份信息的拷贝,所有用户共用这个拷贝。这种方式的好处是可以大大减少存储空间,同时便于管理,发送者可以随时跟踪所发信息的状态。
   根据系统需求等综合考虑,本系统采用后一种方式开发。在具体实现上,为每一个文件设置一个memberlist字段和一个responlist字段。Memberlist字段用来存储所有收文用户的ID序列,responlist存储未签收的用户ID序列。按以下步骤进行发文操作:
   ①发送公文第一步,输入公文基本属性(标题、文号、内容等)。点击提交后将本基本信息插入公文数据表,在公文数据表中插入一条新记录,产生本文件的唯一编号(ID),并将文件状态初始化为1(编辑状态)。并将文件ID传入下一步。
   ②发送公文第二步,添加和编辑附件。在附件设置完毕后,根据上一步传递过来的文件ID,将附件信息写入附件数据表,并继续将文件ID传入下一步。
   ③发送公文第三步,选择收文用户。用户选择方式仍采用下拉列表,允许按不同群组选择。用户选择完毕后,生成用户ID的字符串(与权限管理功能原理相同),将字符串存入本文件的memberlist字段,同时将responlist字段也初始化为同样的值。继续将文件ID传入下一步。
   ④确认发文。提示用户是否确认发送文件,如果确定,则将文件的状态更新为2(已发送),并将发文时间字段更新为当前时间。如果否,则转入草稿箱。
   ⑤提示用户是否发送短信通知。如果是,则发送短信,否则不发送。
   由于所有收文用户的ID都被存储在了文件的memberlist字段中,因此实现了集约式的公文群发。用户只需通过必要的操作检索数据库,即可知道哪些公文是发送给自己的。
   (2)公文签收机制的实现
   对终端用户而言,收文分为未读文件、已读文件和全部文件三种情况。收文按照以下思路和步骤进行:
   ①从SESSION中取得当前用户的ID。
   ②查询文件数据表,根据查询文件类型不同,分为三种方式:
   未读文件:搜索memberlist中包含ID、responlist中也包含ID的记录。对应的SQL概念语句为:select [] from [] where LOCATE(‘|用户ID|’,memberlist)!=-1 and LOCATE(‘|用户ID|’,responlist)!=-1 ……
   已读文件:搜索memberlist中包含ID,responlist中不包含ID的记录。对应的SQL概念语句为:select [] from [] where LOCATE(‘|用户ID|’,memberlist)!=-1 and LOCATE(‘|用户ID|’,responlist)=-1 ……
   全部文件:搜索memberlist中包含ID的记录。对应的SQL概念语句为:select [] from [] where LOCATE(‘|用户ID|’,memberlist)!=-1 ……
   ③循环输出文件列表。
   ④收文结束。
   未读文件的签收方法为:使用REPLACE语句,对文件数据表中指定文件的responlist值进行替换,将当前用户ID替换为空。其对应的SQL概念语句为;
   UPDATE [] set responlist =REPLACE(‘|用户ID|’,’’,responlist) where id=文件ID
   四、结束语
   在本文中,作者研究了基于B/S模式的公文系统中的三项重要技术,很好的解决了开发中的难题,其中运用到了PHP脚本语言和SQL语言,因此该模块具有良好的跨平台性,特别是权限控制,为开发其他的管理信息系统提供了很好的参考价值。
  
   参考文献:
   [1]张玉琢.基于软件体系结构的软件重用技术[J].云南:云南师范大学学报(自然科学版),1999(06).
   [2]聂庆鹏,毛书朋.PHP+MySQL动态网站开发与全程实例[M].北京:清华大学出版社,2007.
   [3]刘新涛.软件体系结构分析与评估方法研究[D].哈尔滨:哈尔滨工程大学,2006.
  
   (作者简介:宋宁琳(1984.8-),男,湖北宜昌人,大学本科,武汉大学计算机学院工程硕士在读,研究方向:计算机技术。)
其他文献
期刊
近日,2015年香港桑麻基金会颁奖典礼在浙江理工大学举行,东华大学材料学院的“干法纺聚酰亚胺纤维工程化关键技术及成套设备研发”获得2015年香港桑麻基金会纺织科技奖特等奖
2007年8月28至31日,来自海内外的四十余名专家学者齐集津门,举行了“宋以后宗族形态的演进与社会变迁”国际学术研讨会。研讨会上宣读讨论的43篇特别演讲与专题报告,在一定程
目的:探讨腹部B超检查对脂肪肝、肾结石等疾病的诊断价值.方法:我院体检中心连续3年对湖北省某高速公路1707例职工进行健康体检.结果:2010年发现异常201例,总检出率为31.02%;2
“新课程”指2001年开始的基础教育课程改革。自从2001年开始实施新课程改革以来,八个年头已经过去,从小学语文教学、中学语文教学一直到大学语文教学,语文教师都在不停地探索语文教学改革的问题。改革的理念是关注人性的发展,关注个性的发展。巴班斯基说:“教育与个性发展相统一相联系是教育的规律。”①而语文教学是一门科学,更是一门艺术。艺术的生命就是鲜明的个性。同理,语文教学的生命就是重视学生个性的培养与
“德”即是指人道德品质行为的一种表现。幼儿德育就是教师根据幼儿的年龄特点与认知特征,有目的、有计划、系统地对幼儿进行思想、道德及行为能力等方面的培养的一种教育活动
期刊
摘 要: 本文通过对独立学院大学物理教学现状的分析,指出大学物理教学中存在的几个问题,并针对问题,提出从教材的选取,教学方式和手段,以及课后辅导答疑的重要性等诸多方面入手进行改革,为进一步搞好大学物理教学进行有益探索。  关键词: 独立学院 大学物理教学 教学改革  独立学院是最近十几年才出现的新兴事物,是我国高等教育大众化发展过程中的一种产物,它的出现符合我国经济发展的现状,顺应我国高等教育大众
为探究吕家坨井田地质构造格局,根据钻孔勘探资料,采用分形理论和趋势面分析方法,研究了井田7
1rn赵明克是那种开车只走中间一条线的人:既不会因为左边岔道上刚上来的车子减速,也不会因为在快车道车速不够快而被按喇叭.