基于微服务架构的铁路科研协作平台研究与设计

2020-05-10 11:01郭洋洋赵泽乾王腾霄
铁路计算机应用 2020年4期
关键词:科研项目协作架构

陈 亮,郭洋洋,赵泽乾,刘 磊、王腾霄

(1.中国铁道科学研究院集团有限公司 铁道科学技术研究发展中心,北京 100081;2.中国铁道科学研究院集团有限公司 电子技术研究所,北京 100081)

近年来,我国铁路科技迅猛发展,技术创新逐渐成为推动铁路发展的源动力。为了解决铁路建设中各项工程的重大问题,跨学科或产学研结合的科研项目无论在数量上还是在研发经费上都呈逐年增多的趋势。铁路科研工作越来越多地显现系统综合性、复杂性和跨学科性的发展趋势。因此,通过研究多学科、多专业、多人员交叉的复杂系统需求,开发一套铁路科研协作平台对提高铁路科研项目的研发效率与质量具有重要意义。

现阶段的科研信息化平台多以项目牵头或项目甲方的需求为出发点进行开发[1],而考虑所有项目参与方需求的研究较少。同时,众多信息化平台中,采用传统单体式结构的较多,采用微服务架构的较少[2]。

本文从微服务架构与传统单体式架构对比分析出发,通过对铁路科研协作进行全面、立体、多层级的需求分析,设计平台的总体架构和技术架构,为铁路科研协作平台的研究开发提供支撑。

1 传统单体式架构与微服务架构方式对比

1.1 传统单体式架构

基于传统单体式架构的信息系统仅以实现业务功能为目的,将所有功能集中在同一工程内部,业务逻辑耦合紧密。在铁路科研协作平台中,铁路的各个专业交叉多且功能众多,单体式架构的缺点较为明显[3],包括:(1)增加新的协作需求时,平台不能及时扩展;(2)需求变更时,难以快速在原有复杂的平台基础上进行更新;(3)可靠性较低,受到逻辑耦合紧密的影响,可能会由于一个模块的影响导致整个平台宕机;(4)新接手的成员对于原有复杂系统的理解、上手较慢,造成维护成本较高。综上,在新的需求变更驱动下,一个小而简单的应用都会慢慢变得臃肿且庞大[4]。

1.2 微服务架构

微服务架构是目前比较流行的软件架构风格,是一种将软件的应用设计为可单独部署的服务套件的特定软件架构方式。该架构将复杂的单体应用分解为小而专一、耦合度低、高度自治的服务。每个服务集中于各自的应用业务确定边界,可以进行独立的开发、测试以及部署,实现按需配置扩展[5],便于后续的系统运营与维护。每个服务都运行于独立进程中,通过轻量级通信机制,可以避开开发语言的限制[6],实现相互协同工作,完整系统功能。

铁路科研协作平台内模块众多,应基于微服务架构方式,按照高内聚、低耦合的思路进行开发,否则越到后期维护以及二次开发时,成本代价越大,同时也给系统的稳定性带来一定风险。

2 平台需求分析

铁路科研协作平台是铁路科研项目综合信息化的重要手段。从服务项目管理团队、科研团队的角度出发,建立接口丰富、功能便捷的平台,将项目文档、经费、人才、知识、成果交流等随项目一同产生及必需的数据统一录入,避免科研信息孤岛,实现项目立项、检查、变更、验收全过程协作的目的[7]。

铁路科研协作平台为科研管理绩效考评和制定科学决策提供依据,促进科研工作的开展和科技成果的转化与推广,满足铁路建设的科研协作需求。平台功能需求主要包括门户管理、项目管理、协作管理、经费管理、人才管理、成果与知识管理、决策分析、移动办公[8]。

2.1 平台门户

针对不同角色的人员,应分配不同的门户及其对应的权限,具体角色包括:决策人员、科研管理人员、项目负责人、项目成员、项目需求人员、游客。平台应针对不同角色配备不同的权限,配置好的权限可以根据角色批量分配给用户。

(1)决策人员:具有系统所有功能模块的操作权限;

(2)科研管理人员:具有项目管理及发起协作权限;

(3)项目负责人:具有项目组内分工、委任权限,并对委任工作进行相应评价;

(4)项目需求人员:提出实际需求、根据科研管理人员分配的权限,查看已完成项目的成果情况;

(5)游客:查看项目公告栏、公开通知等内容。

2.2 项目管理

项目管理模块的需求包括:

(1)立项:由项目牵头单位发起立项申请,项目各参与方共同协作立项,项目团队成员可以查看立项申请进度、审批情况等内容;

(2)项目进度控制:跟踪科研计划进度,从内容及经费等方面对项目合同立项、中期检查、验收结题进行协作控制;

(3)合同变更:合同变更的申报审核、补充协议的签订以及变更合同的浏览等功能。

2.3 协作管理

协作管理模块的需求包括:

(1)撰文协作,多人协同编辑同一份文档文件,并实现修订、批注、评论等功能;

(2)实现团队内部任务分解功能,负责人向团队进行任务指派、任务评价功能;

(3)通过手机App 及短信方式,发送任务提醒功能;

(4)团队、个人的日历日程共享功能;

(5)根据权限管理文档、共享资料;

(6)项目协同进度展示功能,采用如甘特图等图表方式。

2.4 经费管理

经费管理模块的需求包括:

(1)项目经费预算的申报及审批;

(2)配置不同级别项目的经费模板,支持按照自定义预算标准生成预算申请单;

(3)经费计算器自动核算金额,根据不同预算标准制定经费内各项预算;

(4)在项目执行期,通过对比经费的预算与实际使用情况,向用户提供经费使用情况预警。

2.5 人才管理

人才管理模块的需求包括:

(1)科研人员履历库的建立,支持科研机构及科研人员的注册,对科研人员的职称及履历进行管理;

(2)对科研信息库中的专家整体情况以及某一具体科研人员的详细信息进行查看、编辑、审核、履历管理,实现科研专家库储备、筛选与评价功能;

(3)科研机构与科研团队信息库的建立与管理。

2.6 成果与知识管理

成果与知识管理模块的需求包括:(1)由科研团队或个人完成平台内成果申请提报;(2)成果评审与鉴定,科研人员上传材料提交至平台,由相关科研管理部门组织专家进行鉴定、评审流程,专家组根据验收材料给出鉴定意见及结果;

(3)成果转化数据展示,平台可通过图形、图表的形式,将成果应用从取得情况、应用情况以及能够带来的经济效益等多维度进行全方位展示。

2.7 决策分析

决策分析模块的需求包括:

(1)能够根据科研项目的不同单位、类型、来源进行分析,也可以对项目任务、成果鉴定、奖励、知识归档使用等进行综合分析;

(2)对科研机构、科研人才的科研项目完成能力进行综合分析、评价;

(3)在对科研费用的预算和使用进度实时跟踪的基础上,对科研项目进行辅助决策。

2.8 移动办公

(1)通过手机App 及时向用户和群组推送系统通知等消息;

(2)用户可通过手机App 访问系统平台,进行上述各管理模块的应用。

3 平台设计

结合平台的需求分析,利用微服务架构组件化、独立部署、复杂度低、技术多元化、维护风险低等优势,对科研协作平台的总体架构、技术架构及功能架构进行分析设计。

3.1 微服务划分

根据平台建设的实际情况,将微服务分为共享微服务和定制微服务2 类。共享微服务又分为基础微服务和业务微服务。定制微服务是共享微服务在无法满足实际业务需求情况下的扩展。平台的部分微服务划分如表1 所示。

表1 平台部分微服务划分列表

平台由实现不同功能的微服务组成,将各类微服务都定义成独立的服务接口,相比于原来单体结构难以维护的情况,现在每个微服务只关注单一的业务功能。

3.2 平台总体架构

铁路科研协作平台是铁路信息化的重要组成部分。该平台从服务于科研立项单位、科研牵头单位、项目管理团队的角度出发,将科研项目、经费、人才、知识、成果等数据进行统一录入,建立科研项目档案,实现科研项目从立项、检查、变更、验收,到项目知识成果转化等的项目全生命周期服务。同时,平台引入科研项目所需的外部的人、财、物等系统的数据,实现科研协作的完整闭环。平台的总体架构如图1 所示。

3.3 技术架构

平台采用前后端完全分离的微服务技术架构,使用Spring Cloud 作为微服务应用框架,基于Spring Boot 进行开发,为PC 端及移动端提供接口服务。平台前端使用Vue.js 主流MVVM(Model-View-ViewModel)模式框架,实现页面的展示[9],如图2所示。

(1)资源层:负责数据长时间的存储,主要包含Oracle 数据库、Redis 分布式缓存、文件存储等。

(2)平台服务层:通过开发对应的服务实现具体业务的应用,服务分为项目管理所需的服务和用于保证数据及通信基础[10]的为平台提供支撑的服务。

(3)中间件:Web 对每个服务的访问,都通过API 网关层传递数据来实现。平台采用API Zuul 网关完成所有服务接口的统一,采用Shiro+JWT 方式完成身份认证的权限管理功能,使用Nginx 集群[11]、网关集群Zuul 以及Ribbon 负载均衡等中间件提供稳定的集群网络服务[12-14]。

(4)展示层:平台前端采用MVVM 模式实现页面展示,使用提供视图和视图模型双向数据绑定的基础架构,将前端视图与后端数据进行分离,实现数据与视图解耦的目的。

3.4 功能架构

平台由基础服务和业务服务构成,每个微服务都是一个独立组件,可根据实际业务情况进行服务配置,构成特定的业务子系统应用。当实际业务与基础服务和业务服务不一致时,通过业务定制微服务的方式,进行个性化定制开发,来满足实际需要。平台功能架构如图3 所示。

4 结束语

科研协作在现代铁路科研工作中发挥着越来越重要的作用,是铁路科研工作的发展趋势。本文通过比较传统单体架构与微服务架构的特点,采用微服务架构设计搭建了铁路科研协作平台。该平台可以灵活应对科研协作工作的复杂性,快速开发应用以满足科研工作中的新需求,更好地推进不同学科、不同分工的科研人员及组织间的相互配合与协作,为高标准、高质量完成铁路科研工作奠定基础。

猜你喜欢
科研项目协作架构
Therapeutic efficacy and safety rating of Tui-Pushing chest-back manipulation for children with cough variant asthma
功能架构在电子电气架构开发中的应用和实践
基于系统动力学的装备科研项目采购绩效评估模型
围绕科研项目建立定密管理框架的探讨
鲁渝扶贫协作进行曲
扶贫协作中的山东力量
航天科研项目评审工作的思考与探索实践
基于B/S架构的图书管理系统探究
构建富有活力和效率的社会治理架构
监督桥 沟通桥 协作桥