论文部分内容阅读
随着软件工程技术的发展,已经有众多的软件开发支撑工具广泛应用于业界,随之带来的问题是这些工具往往孤立地解决一类软件开发问题,譬如需求管理、任务管理、配置管理和缺陷管理。集成这些工具形成服务于软件开发全周期,并建立这些工具所管理的软件制品之间的跟踪关系非常重要且有意义。受软件服务化思想和总线技术的启发,本人所在研究团队提出了以服务化的方式封装软件工程工具产生的制品信息,并以数据总线的方式建立各服务间的数据交互机制的软件工程工具集成平台,其中代码管理是最核心的工具。Gitlab是最常用的代码管理工具,在软件开发过程中扮演着重要作用。在我们的集成环境中,选取Gitlab作为代码管理核心工具。本文主要研究Gitlab的服务化技术和用户权限增强技术。 在多类用户共同使用系统的情况下,针对不同用户进行权限管理显得十分必要。Gitlab中涉及两类用户、五种角色,管理员存在于系统顶层,普通开发人员存在于群组和项目中。Gitlab现有的权限体系存在管理员权限缺少限制、群组人员权限管控不足等问题,可能会引发软件开发管理的集中性风险和安全风险。基于以上问题,本文提出GITAuth权限增强方法,该方法以二级权限控制的形式,限制了管理员在群组管理和软件开发过程的权限,增强了群组内部的人员权限管理。GITAuth在具体实现时,兼容了Gitlab的固有权限管理方法。实验结果表明,GITAuth展现出了更强的权限管理能力,即使在引入二级权限机制的情况下,Gitlab运行时间依然几乎不受影响。 软件制品间使用服务化的方法进行交互,能够将制品内部产生的事件和数据以服务的形式产出。工作流是一种常见的用于处理消息流和事件流的方式,使得制品产生的事件和数据能够在不同制品间流转。Gitlab作为开源的、被广泛使用的代码与文档管理工具,针对其在工作流环境中进行对外服务能力的研究是很有意义的。Gitlab的服务化方法存在灵活性差,拓展能力弱,服务粒度粗等问题。基于这样的问题,本文提出GITService服务化方法,重新定义了Gitlab的服务流程和服务标准,在服务实现中,使用消息队列和异步机制,设计实现了新的监听服务和执行服务方案,并针对该解决方案进行了实验分析。实验表明,在保证Gitlab运行时间几乎不受影响的情况下,GITService展现出了灵活性好、扩展性强、细粒度的服务化能力。