药物研发软件仓库及其软件包管理系统技术方案

技术编号:24352431 阅读:17 留言:0更新日期:2020-06-03 01:52
本发明专利技术提供一种药物研发软件仓库及其软件包管理系统,药物研发软件仓库,用户认证模块,软件包上传及创建索引模块,基线发布管理模块,授权管理模块,检索及下载软件包模块、适配器插件、存储层。软件包管理系统,包括认证模块、包管理服务模块、web前端模块、命令行工具模块。本发明专利技术通过插件化的方式,可以对接各种对象存储服务和软件仓库,从而实现了跨平台,多开发语言的软件包管理;加入了认证及软件授权功能,使得用户可以将公司内部研发的软件方便的授权给合作方使用,使得软件分发的方式更简洁;加入了基线管理功能,让软件对外发布更加简洁,同时提高内部开发人员在开发同一软件系统的不同软件包构建的协作效率。

Drug R & D software warehouse and its package management system

【技术实现步骤摘要】
药物研发软件仓库及其软件包管理系统
本专利技术属于药物研发数据处理
,具体涉及一种药物研发软件仓库及其软件包管理系统。
技术介绍
软件仓库和软件管理工具一般都配套使用,用于软件的发布和安装其中,软件仓库是一个预备好的目录,或是一系列存放软件的服务器,或是一个网站,包含了软件包和索引文件。软件管理包工具,可以在仓库中自动地定位并获取正确的软件包,并提供检索,安装,下载,删除等对于软件包的管理操作。常用的软件仓库及包管理工具如apt,yum,pip等,提供了软件包发布,存储,检索及安装功能。现有的软件仓库和软件管理工具存在以下的技术问题:(1)平台及开发语言限制:药物研发软件一般较为复杂,需要由多种软件开发语言组合开发,且需要提供夸平台的SDK以方便合作方企业对接使用。而现存的软件仓库及包管理系统只能用于单一开发语言或单一操作系统平台,如apt,yum只能用于linux系统软件的分发,pip只能用于python编写的软件的分发。(2)缺少授权功能:药物研发软件一般采用授权的方式交由合作方企业使用,因此需要一个具有授权功能的软件仓库。而现存的软件仓库及包管理系统多数用于开源软件,因开源软件具有免费使用的特点,所以现存的软件仓库都不具有软件授权功能或只有简单的账号密码验证功能。(3)缺少基线定义:药物研发软件一般较为复杂,由几十个软件包组合而成,需要通过定义基线的方式来管控软件包的发布,方便管理对外发布的包,同时也方便内部软件开发人员的协作,而现存的软件仓库及包管理系统多是对单个软件包和软件的管理,没有明确的基线定义。
技术实现思路
针对上述技术问题,本专利技术提供一种药物研发软件仓库及其软件包管理系统,从而实现了跨平台、多开发语言的软件包管理,使得软件分发的方式更简洁。所采用的技术方案为:药物研发软件仓库,包括:用户认证模块,软件包上传及创建索引模块,基线发布管理模块,授权管理模块,检索及下载软件包模块、适配器插件、存储层;所述的用户认证模块,用户通过用户名密码或appid&secretkey的方式进行认证后方可使用前端的命令行工具或web页面访问软件仓库资源;所述的软件包上传及创建索引模块,用户通过命令行或web前端页面上传软件包及软件包的元数据,元数据包括以下几个主要字段:包类型、包名、存储源地址、部署环境(对应development,testing,staging,production四个软件开发流程)、运行平台(linux-64,linux-32,win-64等),包版本、软件依赖、软件描述;软件仓库接收到前端传来的数据后,将元数据作为meta信息,存储到关系型数据库中,用于索引;再根据包类型选择相应的适配器插件,将包文件存储到相应的存储源中,如将conda类型的包采用conda适配器插件,存储到符合condachannel规范的对象存储服务中,系统中内置了conda,docker,通用文件包几个适配器插件,除了系统提供的几个适配器插件外,用户还可以编写其他适配器插件,用于对接更多的软件存储源;所述的基线发布管理模块,基线是软件仓库中某一个大型软件中每一个软件包构件在特定时期的一个“快照”,用于软件发布及保持不同软件包构件开发人员的工作同步。本系统对于基线的管理分为创建基线和基线提升两个主要功能。管理员可以在web界面上,针对某一要发布的大型软件创建基线,并选择组成基线的软件包构件及每个软件包的版本,完成软件基线的发布。经过一段时间的迭代后,达到新的稳定版本的要求时,可以选择基线提升,这时可以改变每个构件的版本号,以及增加新的软件包构件。本系统内部将基线也抽象成一种特殊的“软件包”来管理和存储,当用户在前端创建或提升基线时,系统内部会创建一个类型为baseline的包,将所有构件作为基线包的依赖声明,并通过baseline适配器将这个包存储到对象存储服务中。所述的授权管理模块,本系统采用RBAC(Role-BasedAccessControl,基于角色的访问控制)的方式进行授权管理,账号经过授权后才可以检索和安装相应的软件包。授权分为基线授权和软件包授权两种,可以授权访问某一基线所包含的所有软件包,也可以对某个软件包单独授权。所述的检索及下载软件包模块,经过授权的账号认证后,可以在授权范围内进行软件包的检索及下载。系统首先在关系型数据库中查找相应的meta信息,然后系统根据包类型选择相应的适配器插件进行软件包下载。所述的适配器插件,通过内置适配器插件和用户提供的适配器插件,对底层不同的软件仓库进行适配,使本系统能对接不同的对象存储系统和第三方软件仓库进行存储和下载;所述的存储层:使用对象存储服务和第三方软件仓库作为存储服务,存储软件包。使用关系型数据库存储软件包索引和其他元数据。上述药物研发软件仓库中的软件包,采用以下软件包管理系统管理,软件包管理系统包括以下模块:认证模块,用于认证用户的用户名密码,或appkey&secretkey,基于RBAC的方式对不同的账号授予不同的权限;包管理服务模块,基于flask的web服务,用于提供RESTWEBapi,通过调用不同的适配器,实现对软件包的管理;适配器插件,通过内置适配器插件和用户提供的适配器插件,对底层不同的软件仓库进行适配,使本系统能对接不同的对象存储系统和第三方软件仓库进行存储和下载;存储层:使用对象存储服务和第三方软件仓库作为存储服务(如dockerregistry,condachannel),存储软件包。使用关系型数据库存储软件包索引和其他元数据;web前端模块:提供web前端服务,让用户可以直接在web页面上进行包管理,授权管理,基线管理等操作;命令行工具模块:提供命令行工具,可以让用户在命令行客户端上进行软件包检索,安装,上传。本专利技术提供的药物研发软件仓库及其软件包管理系统,具有以下技术效果:1.本系统通过插件化的方式,可以对接各种对象存储服务和软件仓库,从而实现了跨平台,多开发语言的软件包管理,打破了传统软件仓库只能用于单一系统或语言的限制。2.本系统加入了认证及软件授权功能,使得用户可以将公司内部研发的软件方便的授权给合作方使用,使得软件分发的方式更简洁。3.本系统加入了基线管理功能,将基线抽象为一个特殊的软件包,从而达到对基线发布基线提升的管控,让软件对外发布更加简洁,同时提高内部开发人员在开发同一软件系统的不同软件包构建的协作效率。附图说明图1是本专利技术的软件仓库结构示意图。具体实施方式下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。如图1所述的软件仓库结构。本系统的实现主要基于python2.7语言的flaskweb开发框架所开发webapi和命令行客户端,以及基于electron框架所开发的web前端界面。其中包索引的关系型数据存储在托管本文档来自技高网
...

【技术保护点】
1.药物研发软件仓库,其特征在于,包括:用户认证模块,软件包上传及创建索引模块,基线发布管理模块,授权管理模块,检索及下载软件包模块、适配器插件、存储层;/n所述的用户认证模块,用户通过用户名密码或appid & secretkey 的方式进行认证后方可使用前端的命令行工具或 web 页面访问软件仓库资源;/n所述的软件包上传及创建索引模块,用户通过命令行或 web 前端页面上传软件包及软件包的元数据;软件仓库接收到前端传来的数据后,将元数据作为 meta 信息,存储到关系型数据库中,用于索引;再根据包类型选择相应的适配器插件,将包文件存储到相应的存储源中;/n所述的基线发布管理模块,对于基线的管理分为创建基线和基线提升两个主要功能;管理员在 web 界面上,针对某一要发布的大型软件创建基线,并选择组成基线的软件包构件及每个软件包的版本,完成软件基线的发布;经过一段时间的迭代后,达到新的稳定版本的要求时,选择基线提升,这时改变每个构件的版本号,以及增加新的软件包构件;/n所述的授权管理模块,采用基于角色的访问控制的方式进行授权管理,账号经过授权后才可以检索和安装相应的软件包;/n所述的检索及下载软件包模块,经过授权的账号认证后,可以在授权范围内进行软件包的检索及下载;/n所述的适配器插件,通过内置适配器插件和用户提供的适配器插件,对底层不同的软件仓库进行适配,使本系统能对接不同的对象存储系统和第三方软件仓库进行存储和下载;/n所述的存储层:使用对象存储服务和第三方软件仓库作为存储服务,存储软件包,使用关系型数据库存储软件包索引和其他元数据。/n...

【技术特征摘要】
1.药物研发软件仓库,其特征在于,包括:用户认证模块,软件包上传及创建索引模块,基线发布管理模块,授权管理模块,检索及下载软件包模块、适配器插件、存储层;
所述的用户认证模块,用户通过用户名密码或appid&secretkey的方式进行认证后方可使用前端的命令行工具或web页面访问软件仓库资源;
所述的软件包上传及创建索引模块,用户通过命令行或web前端页面上传软件包及软件包的元数据;软件仓库接收到前端传来的数据后,将元数据作为meta信息,存储到关系型数据库中,用于索引;再根据包类型选择相应的适配器插件,将包文件存储到相应的存储源中;
所述的基线发布管理模块,对于基线的管理分为创建基线和基线提升两个主要功能;管理员在web界面上,针对某一要发布的大型软件创建基线,并选择组成基线的软件包构件及每个软件包的版本,完成软件基线的发布;经过一段时间的迭代后,达到新的稳定版本的要求时,选择基线提升,这时改变每个构件的版本号,以及增加新的软件包构件;
所述的授权管理模块,采用基于角色的访问控制的方式进行授权管理,账号经过授权后才可以检索和安装相应的软件包;
所述的检索及下载软件包模块,经过授权的账号认证后,可以在授权范围内进行软件包的检索及下载;
所述的适配器插件,通过内置适配器插件和用户提供的适配器插件,对底层不同的软件仓库进行适配,使本系统能对接不同的对象存储系统和第三方软件仓库进行存储和下载;
所述的存储层:使用对象存储服务和第三方软件仓库作为存储服务,存储软件包,使用关系型数据库存储软件包索引和其他元数据。


2.根据权利要求1所述的药物研发软件仓库,其特征在于,软件包上传及创建索引模块中,所述的元数据,包括以下几个主要字段:包类型、包名、存储源地址、部署环境、运行平台、包版本、软件依赖、软件描述。


3.根据权利要求1所述的药...

【专利技术属性】
技术研发人员:李柄坤谈樑吴楚楠马健赖力鹏温书豪
申请(专利权)人:深圳晶泰科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1