董杨浩
(中国电子科技集团公司第二十研究所,陕西 西安710000)
本系统基于WEB技术实现了用户随时随地进行项目管理的需求,尤其是智能手机和平板电脑的普及,使用户不再局限于传统PC机上的操作,提高了项目执行和管理的效率。基于WEB的项目管理系统与传统的管理模式相比,其优势主要体现在以下几个方面:
(1)强大的资源集成能力。通过网络管理平台上的数据,让人员通过统一的平台进行通信,并通过接口与系统的其他信息交互,实现资源集成的工作模式。
(2)良好的可操作性。此系统的操作主要通过收集数据和存储数据进行,基于数据存储系统的广泛性和准确性,调查研究更为客观。
(3)降低成本。在经济性方面,本系统投入的经济费用较少,投入产出比符合预期。
微服务的核心概念是应用复杂的应用程序以执行服务分段,即以独立的业务部门的形式将单个应用程序系统拆分为多个服务,每个服务都可以选择合适的技术来实现特定的业务功能,在一个独立的过程中运行并进行部署。微服务之间的功能界限很明确,并且使用轻量级的通信机制实现完整的应用程序。
微服务的本质是一个分散系统,该系统由一组可以独立交付的微服务业务部门组成。
(1)可控制的复杂性:微服务将复杂的应用程序系统分解为具有单一功能且能够根据业务功能进行管理的多个服务;
(2)灵活的架构:分布式架构部署多个服务,提升了性能;
(3)技术众多:每个微服务可以选择不同的开发技术进行开发,灵活性增强;
(4)轻松扩展:微服务之间相互独立,可扩展性较强;
(5)独立的自主权:每个微服务独立开发、运行、部署。
项目管理平台需要满足以下功能要求:
(1)人们使用平台有两种情况。由高校人事部门管理的人员或者校外人员,如评审专家等。
(2)用户的权限是每个功能的详细信息,例如,财务人员只能使用与财务相关的功能。
(3)可以添加、查询、修改和删除每个项目,实施过程和完成的项目无法删除。
(4)在项目实施时,可以设置部门、人员和任务。
(5)图表的形式直观地显示了项目的进度以及相关的信息、文档等。
(6)项目资金由财务管理。
(7)项目的统计信息以图表的形式展示。
除了功能的需求之外,在系统的需求当中还包括了系统的非功能需求。
系统的效率指的是系统的响应速度,通常来说系统的响应时间需要在3 s内。系统的实用性指的是用户的操作比较的简便。可维护性指的是在系统运行中若发生了异常的情况,要能够及时地排查及解决将系统的影响降到最低。可理解性指的是系统给出的提示信息要能够简而化之,用户看到提示信息之后就能够知道问题的所在。可扩展性指的是当业务不断地发生变化时,系统要有良好的可扩展性来适应新增的业务需求。
系统的设计需要遵循分层的原则,本系统通过MVC的模式进行开发,层与层之间相互独立偶合性降低[2],开发人员只需要专注自己的业务逻辑即可。系统的分层原则降低了服务人员的开发门槛,能够在短时间内进行业务的开发。
系统设计应该以客户需求为主要实施原则,注重满足不同客户的差异性需求,以及大多数用户对于使用习惯的共同体验,再根据这一原则做好相关技术设置上的程序编排。在具体操作中,依据具体客户的需求进行架构选择和设计,选择一个合理的设计架构关系着系统的使用寿命和开发难度[3]。系统框架图如图1所示。
图1 系统体系框架图
3.3.1 系统管理
系统管理包括日志管理、用户(组)管理、角色管理、权限管理等功能。如图2所示。
图2 系统管理需求结构图
(1)日志管理
日志管理是系统的必要功能。系统日志分为两种类型:系统日志和操作与维护日志。
(2)用户(组)管理
项目管理平台的用户(组)的管理,主要是对用户组进行维护。
(3)角色管理
角色管理功能是对用户的角色信息进行维护。
(4)权限管理
权限管理主要涉及用户权限管理及项目权限管理。
3.3.2 项目管理
项目管理功能如图3所示。
图3 项目管理功能结构图
(1)可行性管理
1)用户对可行性报告进行维护。
2)报告审批。
(2)项目文件管理
1)文档模板管理:模板维护。
2)用户文档管理:用户登录后即可上传与项目相关的文档,并对文档进行维护。
3)项目负责人文档管理:项目负责人对文档的维护。
4)提供表格的在线下载和打印。
(3)项目进度管理
1)项目负责人上传项目进度表。
2)用户可以查看项目进度表和项目的实施状态,在进度表中的相应节点上标记和管理自己的提醒点。
3)项目主管审查并管理项目负责人提交的项目进度文件和项目进度。
(4)子项目设置
许多项目将被划分为多个子项目,每个子项目都可以作为一个普通项目进行管理,最终项目进行整体协调。
(5)项目人员管理
1)项目管理部门负责设置可以使用该平台的相关人员信息。
2)项目管理部门负责设置项目负责人。
3)项目负责人负责选择项目参与者、项目专家和项目主管。
(6)项目设施设备管理
项目设施和设备管理是对项目、设备、负责人、用户和使用时间等信息的维护。
(7)项目资金管理
1)项目负责人在线索赔。
2)项目管理机构对网上进行索赔并经审查后对财务部门进行审查。
3)对账审核。
(8)项目状态设置
项目状态设置用于管理项目的运行状态,当项目处于暂停状态时,无法管理该项目;项目已在终止状态下停止执行,并且不会继续。
(9)子项目管理
对于某些大型项目,它将细分为较小的子项目进行管理,从而提高了项目管理和执行的效率。
(10)项目结题管理
在项目最终完成之后,项目负责人提交申请以结束项目,并通过指定的专家审查来演示项目过程、文件、成就等。其他必需的系统可以通过相应的界面调用在整个生命周期中获得的成就。
3.3.3 项目评审
项目评审详细需求的结构图如图4所示。主要包括:
(1)专家个人信息维护。
(2)专家个人意见管理。
(3)评审文件管理主要是文档权限的管理。
3.3.4 项目监理
项目监理的结构图如图5所示。主要包括:
(1)监督人信息管理
(2)监督文档管理
图4项目评审需求结构图
图5项目监督需求结构图
系统的安全证书使用SpringSecurity安全框架来管理权限。在系统中,安全部分主要基于用户的相应角色,而该角色对应于系统权限。在该系统中,权限的控制分为菜单级和请求级。对于菜单级别的权限控制,用户只需要将菜单分配给相应的角色[4]。
对于内部接口的安全认证,具体过程为:
用户登录系统后,系统将验证用户的身份并在通过后进入系统。权限信息,将获取的权限信息移交给SpringSecurity上下文,以维护和保存用户的权限信息。当用户访问系统的内部接口时,SpringSecurity框架将根据上下文信息验证当前用户是否有权访问该接口,如果允许,则放手;相反,将提示未授权用户访问。
该系统的权限是动态管理的。在权限管理中,建立权限信息,保存数据库,并将权限分配给角色。该角色具有分配的权限,并且在内部接口中设置了相应的权限访问控制。如下:
@PreAuthorize("hasAuthority('member_manage')")
此设置的含义是,当前登录的用户必须具有权限“member_manage”才能访问此接口,以实现权限控制的目的。