基于SharePoint2013的认证辅助系统的设计与实现

2017-02-06 00:05宫丽
无线互联科技 2016年14期

宫丽

摘要:文章介绍了基于SharePoint平台的认证辅助系统的设计与实现。该项目将SharePoint与传统的认证机制相结合,实现了更加易于理解和跟踪的认证辅助系统,提高了相关部门的工作效率,固化了认证申请流程,加强了产品认证质量管控。

关键词:SharePoint;认证辅助系统;认证质量

1行业现状与需求

目前认证辅助管理部门都是采用人工手动来处理各种认证申请。包括在提交申请前的咨询、材料提交、认证材料预审、认证材料提交到政府、认证信息整理等。

但是由于认证申请牵涉到国内众多的国家级、行业级等多种级别的法律、法规、规范等,需要操作者对国内和行业的各种法律、法规、规范都非常熟悉,且需要通过不断地关注国内有关法律、法规的更新,及时与各项目组进行沟通。这对操作者的技术经验要求较高,同时对于人员流动带来的风险较大。

2技术背景介绍

2.1SharePoint 2013

通过针对SharePoint环境的有效配置,可以提供对企业中的各种文档和其他信息的针对性个性化访问,可以有效地提高企业的业务流程效率。

基于SharePoint的二次开发具有如下几点优势:

(1)由于SharePoint本身具有访问控制机制,因此对于用户权限的分配和配置,无需过多的代码干预。对于快速开发来说,这一点是非常有利的。

(2)SharePoint提供了Library,List等多种控件,非常易于管理,在Library和List中,还设有视图的配置,简化了数据库的设计与开发,降低了开发成本。

(3)通过对SharePoint的二次开发,可以在SharePoint本身自带的页面/功能基础上,定制化一些企业需要的个性化功能,整个工程建立、发布和部署的过程都相对比较简单。

2.2UpdatePanel

AJAX扩展中的UpdatePanel主要用于局部刷新。UpdatePanel与ScriptManager的结合运用,可以实现页面的异步局部更新。其中,UpdatePanel用于设置页面中需要进行局部更新的区域,还可以根据需要进行嵌套使用。在页面中嵌套使用UpdatePanel,可以很好地解决由控件联动引起的局部刷新问题。

3认证辅助系统总体设计

整个系统主要分为Reminder Mail Sender Monitor,Certmanagement,Website Monitor,Scheduled Backup四大模块。整个系统的结构,如图1所示。

3.1后台数据存储设计

在数据存储方面,由于SharePoint有自带的SQL数据库,只需要基于Library和List建表后,根据需要配置不同的视图,供用户交互即可。

在本项目中,本文主要设计了3个List,一个主要用于存储产品认证申请信息的Product Request,包含:申请人、审批人、目前状态、申请所需材料、认证类型等;一个主要用于存储所有产品己完成的认证相关信息的Product Info,例如:证书编号、证书扫描件、证书生效时间、证书发布时间、证书有效期等;还有一个用于记录所有法律法规类文档的Library-All Standards&Regulations,用于存放所有与法律法规文件相关的文档及其相关属性,例如:有效期、影响的产品功能、文件名、版本、级别、类型、发布日期、负责部门、起草人等。

与此同时,本文还设计了一些辅助类List,例如:RequestType,Cert Type、BG Profile等,以便更好地针对一些字段值属性值进行配置,避免由于一些字段值或属性值更新所引起的数据不一致性。

3.2认证申请状态更新

为了更好地提高终端用户与管理员之间的交互效率,减少申请等待时间,每次认证申请的状态发生改变时,系统都会自动发送通知邮件。

认证申请系统通过监听Product Request的Item Added事件,发送新申请并提交。一旦有新的认证申请提交,系统就会在这个事件中,发送申请状态改变的通知邮件。当认证申请系统监听到Product Request的Item Updating事件,说明终端用户在对认证申请作出修改,这时也会发送一封通知邮件给修改人、产品负责人以及管理员,并将更改后的信息放入通知邮件,供相关人员参考。

认证申请系统通过监听Product Info的Item Added事件,发送认证获取信息提醒。一旦有新产品拿到认证,系统会在这个事件中,发送提醒邮件给产品负责人,告知认证结果以及认证相关信息,例如:证书编号、有效期等。

这样的设计可以有效减少各场景中的等待时间,有效减少终端用户或管理员频繁登录系统进行状态检查的成本。

3.3系统监控中心

为了确保认证辅助系统的日常运作的稳定性,也为了帮助维护工程师快速地发现系统出现的任何偏差,本文针对网站和主机作了不同级别的监控。除了针对website的24小时不问断监控外,还对主机进行了监控,防止由于意外发生时造成服务不可用。

另外,为了可以及时发送一些提醒通知邮件,本文还基于window Service建立了轮询机制,如果在轮询中发现部分产品认证距离过期时间不足3个月,那么系统会发出一份提醒邮件,根据系统配置情况发送给相关人,提醒有关人士开始处理该产品的续证的申请工作。

4认证辅助系统界面设计

根据系统的业务需要,部分页面需要使用自定义页面实现,其中主要包括2个部分的自定义页面:第一个部分是认证准备页面,另一个页面是认证申请页面。

认证准备页面主要是用来规划产品认证信息用的,主要分为3个部分:第一个部分包含了用户所在部门的产品认证相关负责人信息,例如:产品负责人、认证负责人、法务相关负责人等;第二个部分则包含了用户所在部门当年目前己登记的产品规划列表,当用户选中某一个产品之后,在已有产品规划列表下方会显示该选中产品的详细信息,包括:产品名、版本号、发布日期、产品大致功能等。这一模块需要使用局部刷新来实现,以避免整个页面刷新所带来的视觉冲突,并达到了降低页面刷新时间成本的效果。第三个部分则显示该产品与标准之间的关系,例如:哪些标准对该产品会产生影响,影响的程度是什么,相关的标准名字、标准链接等。这个模块也采用了局部刷新技术来实现。由于页面内容过多,图2只是认证申请页面的前2个部分的界面设计例图。

认证申请页面同样也主要分为3个部分,前2个部分与认证规划页面雷同,第3个部分用来提交各种申请文档,填写认证申请信息。也同样采用了局部刷新技术,提高用户体验。

图3是认证申请页面的第3个部分的界面设计图,为了可以有一个比较直观的用户体验,这些界面设计图都是通过在Excel中添加控件后,作了一些格式调整后实现的,作为原型图供用户审核与确认。

这2个自定义页面都综合运用了UpdatePanel与ScriptManager,实现了异步局部刷新,以体现更好的局部刷新效果,有效降低了网络数据传送和页面刷新成本。

5认证辅助系统安全性设计

本系统采用了基于角色的访问控制机制,主要采用了用户、管理员、系统管理员这3种角色。用户又根据部门进行分组,不同组的用户只可以访问自己组内产品的基本信息,提交认证申请;管理员负责认证申请的审批;系统管理员则负责整个网站的安全、配置、权限分配等职责。

由于本系统需要开放给全公司上万名员工,因此在项目初期权限分配的工作负载略高。另外,根据历史经验,该公司每半年可能有一些部门及人员调整,这也给系统管理工作带来了一定的困难。但也正是由于该系统是面向内部用户的,因此对于一些恶意、蓄意行为不需要特别关注。

因此,本文设计了一个自我分配机制,首先给everyone赋予读取权限,当用户访问本站点时,会针对他的权限进行判定,判定他是否己被分配组别,如果答案是否定的,会有弹出窗口,要求用户自行定位自己的组别身份,是属于某部门普通用户还是某产品部门认证负责人等。但是这些自我分配仅限于用户相关权限,并不开放管理员权限和系统管理员权限。

这样处理的好处在于:

(1)系统管理员不需要过多的干预,用户可以自行分配自己所在组别。

(2)大部分的用户都可以通过自我分配机制拿到合适的权限,无需等待审批。

(3)降低了系统管理员的工作负载。

(4)提升了用户的权限分配体验,每个用户都是自己的管理员,可以为自己提供所在部门选择。

而所有的这些操作也将成为操作日志的一部分,记录在系统中备查,可以有效避免一些误解和冲突。管理员会定期检查操作日志,有效防止一些误操作引起的问题。

6认证辅助系统配置类功能设计

6.1可维护性设计

为了便于系统的后期维护,在本项目中,很多字段都采用了Lookup类型,尤其是针对一些可能不定期产生变动的数据,防止由于这些变动引起的数据不一致问题。

例如:Cert Type,Request TVpe,Product Function等。这些字段在Product request和Product Info里的相应字段中,都采用了Lookup类型,不仅可以有效地避免由于字段值的改变引起的数据不一致问题,也可以减少一些由于误填、错填引起的数据混乱问题。Lookup字段在编辑页面将会转换为选项框,同时也为用户输入带来了便捷。

6.2日志设计

在本项目中,采用了多种日志,对项目信息进行记录,主要包含3种类型的日志:第一种是认证申请的状态改变日志,每一次状态改变都会记录在案,包括操作人、操作日期等,以便于后续跟踪;第二种是查询日志,该日志包含了所有用户在与系统交互时建立的查询,主要是记录了查询条件,便于管理员对这些数据进行统计分析,整理用户关注点,便于在后续工作中,有针对性地对网站进行优化;第三种则是操作日志,几乎所有的针对网站的操作都会被记录,包括操作类型、操作人、操作范围等。这些日志有助于在网站发生问题后,及时、快速地定位错误发生根源,可以帮助系统管理员更好地对网站进行管理。

7结语

基于SharePoint 2013的认证辅助系统相对于传统的认证机制具有以下几点优势:

(1)传统的认证机制很难将历时认证经验和信息进行传承。

(2)基于SharePoint 2013的认证辅助系统,可以减少整个认证申请中的无效等待时间。

(3)基于SharePoint 2013的认证辅助系统,固化了认证申请流程,从人治转为了机治。

(4)基于SharePoint 2013的认证辅助系统,有效提高了认证相关部门的工作效率,减少产品认证的冗余工作。有效提升认证申请审核专家的工作效率,集中在解决专业问题上,将认证申请相关的基本信息交互交给系统来完成。

(5)增加了认证申请流程的透明度,加强了审核员与申请者之间的沟通,及时分享进度信息。