一种库的更新、上传、管理方法、装置及库管理系统与流程

文档序号:14897367发布日期:2018-07-08 08:52阅读:137来源:国知局

本发明涉及库链接技术领域,特别是涉及一种库的更新、上传、管理方法、装置及库管理系统。



背景技术:

在大型公司的软件开发项目中,往往需要多个部门或者多个团队协作进行共同开发,例如,库开发团队使用库提供侧客户端开发某个模块的库(如:算法库,通讯库等等),以及宿主程序开发团队使用库应用侧客户端将库提供侧客户端提供的这些库链接起来,从而实现某个功能。在上述场景中,就会产生一个环节:库应用侧客户端从库提供侧客户端处获得这些模块的库并进行链接。

在现有技术中,库提供侧客户端将库发送至svn(subversion)服务器,以实现对库的存储与共享。由于svn服务器没有主动推送的功能,库提供侧客户端在将库发送至svn服务器的同时,需要库开发团队人为将库进行了更新的消息,通知给对应的库应用侧客户端的宿主程序开发团队,并告知宿主程序开发团队哪些库进行了更新。当宿主程序开发团队被告知库进行了更新后,宿主程序开发团队需要首先向svn服务器查询对应的库的更新内容,进而手动根据更新内容更新库应用侧客户端本地的库。

在现有技术中,由于库提供侧客户端通知对应的库应用侧客户端库的更新情况是人为通知的,不够智能,且当宿主程序开发团队被告知库被更新时,还需要手动向svn服务器查询对应的库的更新内容,并进一步手动更新库应用侧客户端本地的库,操作非常繁琐。



技术实现要素:

本发明实施例的目的在于提供一种库的更新、上传、管理方法、装置及库管理系统,以实现库应用侧客户端无需库提供侧客户端的通知,在应用库时能够主动识别到库的更新,并对库进行自动更新。具体技术方案如下:

一方面,本发明实施例提供了一种库的更新方法,应用于库管理系统中的库应用侧客户端,所述库管理系统还包括:库服务器和库提供侧客户端,所述方法包括:

从第一编译规则文件中确定待更新的库的第一库标识;

根据所述第一库标识获得所对应待更新的库的当前版本号;

向所述库服务器发送携带所述第一库标识的版本号获得指令,其中,所述库服务器用于存储所述库提供侧客户端上传的库、库对应的库标识以及版本号;

接收所述库服务器返回的所述待更新的库对应的最新版本号;

判断所述最新版本号和所述当前版本号是否一致;

当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

可选的,所述从第一编译规则文件中获得待更新的库的第一库标识的步骤,包括:

获得所述第一编译规则文件以及获得编译转换指令;

响应所述编译转换指令,对所述第一编译规则文件执行编译转换操作;

当确定所述第一编译规则文件中包含更新标记时,中断所述编译转换操作,获得所述待更新的库的第一库标识;

在所述获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库的步骤之后,所述方法还包括:

继续对所述第一编译规则文件执行所述编译转换操作,生成第二编译规则文件;

获得编译指令;

响应所述编译指令,依据所述第二编译规则文件对待编译源代码执行编译操作,生成可执行文件。

可选的,在所述向所述库服务器发送携带所述第一库标识的版本号获得指令的步骤之前,所述方法还包括:

判断所述编译转换指令中是否携带更换原版本库标记,其中,所述更换原版本库标记包括:在针对所述当前版本号对应的待更新的库生成的可执行文件运行失败时所添加的标记;

当判断所述编译转换指令中携带更换原版本库标记时,获得所述第一库标识对应的待更新的库的原版本号;

向所述库服务器发送更换原版本库指令,其中,所述更换原版本库指令中携带所述库应用侧客户端的标识、所述第一库标识以及所述原版本号,以使所述库服务器接收所述更换原版本库指令后,根据所述原版本号确定所述第一库标识对应的原版本库,并根据所述库应用侧客户端的标识将所述原版本库返回至所述库应用侧客户端;

接收所述库服务器返回的所述原版本号对应的所述原版本库,并将本地所存储的当前版本号对应的待更新的库更新为所述原版本号对应的原版本库;

当判断所述编译转换指令中未携带所述更换原版本库标记时,执行所述向所述库服务器发送携带所述第一库标识的版本号获得指令的步骤。

可选的,所述方法还包括:

当判断所述最新版本号和所述当前版本号不一致时,接收所述库服务器返回的所有版本号高于所述当前版本号的高版本库以及每个高版本库对应的更改信息,其中,所述库服务器中还存储有每个高版本库对应的更改信息,所述每个高版本库对应的更改信息均为:相对于自身版本号的前一版本号的库的更改信息;

显示第一更新提示信息,其中,所述第一更新提示信息中包括每个高版本库对应的版本号以及更改信息;

所述获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库的步骤,包括:

获得基于每个高版本库对应的更改信息的第一库更新指令,其中,所述第一库更新指令中包括第一高版本库的第一版本号;

根据所述第一库更新指令,获得所述第一版本号对应的第一高版本库,并将本地存储的所述当前版本号对应的待更新的库更新为所述第一高版本库。

可选的,所述方法还包括:

当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库的更改级别;

当根据所述更改级别确定出:所述库应用侧客户端更新完所述最新版本号对应的库后,需要修改所述第一编译规则文件时,显示第二更新提示信息,所述第二更新提示信息中包含:提示所述库应用侧客户端是否更新所述待更新的库的信息。

可选的,在所述根据所述第一库标识获得所对应待更新的库的当前版本号的步骤之前,所述方法还包括:

判断本地是否存在所述第一库标识对应的待更新的库;

当判断本地存在所述第一库标识对应的待更新的库时,执行所述根据所述第一库标识获得所对应待更新的库的当前版本号的步骤;

当判断本地不存在所述第一库标识对应的待更新的库时,向所述库服务器发送携带所述第一库标识的库下载指令;

接收并存储所述库服务器返回的所述第一库标识对应的库。

可选的,在所述接收并存储所述库服务器返回的所述第一库标识对应的库的步骤之后,所述方法还包括:

对应所述第一库标识,生成隐藏文件,其中,所述隐藏文件中包含所接收并存储的库的第一库标识以及对应的版本号。

可选的,在所述接收所述库服务器返回的所述待更新的库对应的最新版本号的步骤之前,所述方法还包括:

向所述库服务器发送第一账号申请请求,其中,所述第一账号申请请求携带所述库应用侧客户端的标识;

接收所述库服务器依据所述库应用侧客户端的标识发送的第一账号授权信息,其中,所述第一账号授权信息中包含:表明所述库应用侧客户端具有获得所述第一库标识所对应库的最新版本号的权限的信息。

可选的,所述方法还包括:

当所述库应用侧客户端账号申请成功后,向所述库服务器发送关于所述第一库标识对应的待更新的库的路径申请请求,其中,所述路径申请请求中包含所述库应用侧客户端的标识以及所述第一库标识对应的待更新的库的路径信息;

接收所述库服务器依据所述库应用侧客户端的标识发送的第一路径授权信息,其中,所述第一路径授权信息中包含:表明所述库应用侧客户端具有基于所述路径信息访问对应的路径,以获得所述第一库标识对应库的最新版本号的权限的信息。

可选的,所述方法还包括:

当所述库应用侧客户端账号申请成功后,接收库提供侧客户端发送的路径邀请信息,其中,所述路径邀请信息为所述库提供侧客户端创建路径后发送的信息,所述路径邀请信息中包含所述库应用侧客户端的标识、路径的路径信息以及第一权限信息,所述第一权限信息表征:所述库应用侧客户端的标识对应的库应用侧客户端具有基于所述路径信息访问对应的路径,以获取所述路径中存储的库的权限。

一方面,本发明实施例提供了一种库的上传方法,应用于库管理系统的库提供侧客户端,所述库管理系统还包括:库服务器和库应用侧客户端,所述方法包括:

向所述库服务器上传库以及所述库的库标识,以使所述库服务器存储所述库以及所述库的库标识,并为所述库添加版本号。

可选的,在所述向所述库服务器上传库以及所述库的库标识的步骤之前,所述方法还包括:

检测所述库是否为预定格式;

当检测所述库为预定格式时,执行所述向所述库服务器上传库以及所述库的库标识的步骤。

可选的,所述向所述库服务器上传库以及所述库的库标识的步骤,包括:

向所述库服务器上传所述库、所述库的库标识以及更改信息,其中,所述更改信息为:相对于自身版本号的前一版本号的库的更改信息。

可选的,所述向所述库服务器上传库以及所述库的库标识的步骤,包括:

向所述库服务器上传库、所述库的库标识以及更改级别,其中,所述更改级别用于表征:库应用侧客户端更新所述库后,是否需要修改对应的第一编译规则文件。

可选的,在所述向所述库服务器上传库以及所述库的库标识的步骤之前,所述方法还包括:

向所述库服务器发送第二账号申请请求,其中,所述第二账号申请请求携带所述库提供侧客户端的标识;

接收所述库服务器依据所述库提供侧客户端的标识发送的所述第二账号授权信息,其中,所述第二账号授权信息包含:表明所述库提供侧客户端的标识对应的库提供侧客户端具有创建路径的权限的信息。

可选的,所述方法还包括:

当所述库提供侧客户端账号申请成功后,创建路径,以使所述库服务器对应所创建路径的路径信息,为所述库提供侧客户端配置读写权限;

获得所述库服务器为所述库提供侧客户端对应所创建路径配置的读写权限;

所述向所述库服务器上传库以及所述库的库标识的步骤,包括:

根据所创建路径以及所配置的读写权限,向所述库服务器上传库以及所述库的库标识。

可选的,在所述创建路径的步骤之后,所述方法还包括:

向库应用侧客户端发送路径邀请信息,其中,所述路径邀请信息中包含所述库应用侧客户端的标识、所述路径信息以及第二权限信息,所述第二权限信息表征:所述库应用侧客户端的标识对应的库应用侧客户端具有基于所述路径信息访问对应的路径,以获取所述路径中存储的库的权限。

一方面,本发明实施例提供了一种库的管理方法,应用于库管理系统中的库服务器,所述库管理系统还包括:库提供侧客户端和库应用侧客户端,所述方法包括:

接收所述库提供侧客户端上传的库以及所述库的库标识;

为所述库添加版本号;

存储所述库、所述库的库标识以及版本号;

获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令,其中,所述第一库标识为所述库应用侧客户端的待更新的库的库标识;

获得所述第一库标识对应的待更新的库的最新版本号;

向所述库应用侧客户端发送所获得的最新版本号以及所述最新版本号对应的库,以使所述库应用侧客户端接收所述库服务器返回的所述最新版本号,并判断所述最新版本号和所述库应用侧客户端存储的所述待更新的库的当前版本号是否一致;当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

可选的,所述接收所述库提供侧客户端上传的库以及所述库的库标识的步骤,包括:

接收所述库提供侧客户端上传的库、所述库的库标识以及更改信息,其中,所述更改信息为:相对于自身版本号的前一版本号的库的更改信息;

所述存储所述库、所述库的库标识以及版本号的步骤,包括:

存储所述库、所述库的库标识、版本号以及更改信息。

可选的,所述接收所述库提供侧客户端上传的库以及所述库的库标识的步骤,包括:

接收所述库提供侧客户端上传的库、所述库的库标识以及更改级别,其中,所述更改级别用于表征:库应用侧客户端更新所述库后,是否需要修改对应的第一编译规则文件;

所述为所述库添加版本号的步骤,包括:

根据所述更改级别,为所述库添加版本号;

所述存储所述库、所述库的库标识以及版本号的步骤,包括:

存储所述库、所述库的库标识、版本号以及更改级别。

可选的,在所述接收所述库提供侧客户端上传的库以及所述库的库标识的步骤之前,所述方法还包括:

接收所述库提供侧客户端发送的第二账号申请请求,其中,所述第二账号申请请求携带所述库提供侧客户端的标识;

获得对应所述库提供侧客户端的标识的第一授权信息;

当所述第一授权信息包含表明所述库提供侧客户端账号申请成功的信息时,在本地存储的配置文件中添加所述库提供侧客户端的标识,并记录所述库提供侧客户端获得创建路径的权限的第三权限信息;

向所述库提供侧客户端发送包含所述第三权限信息的第二账号授权信息。

可选的,所述方法还包括:

当确定所述库提供侧客户端创建路径后,获得所述库提供侧客户端所创建路径的路径信息;

对应所述库提供侧客户端的标识,在所述配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录读写权限。

可选的,所述方法还包括:

获得库提供侧客户端针对所述库应用侧客户端发送的路径邀请信息,其中,所述路径邀请信息为所述库提供侧客户端创建路径后发送的信息,所述路径邀请信息中包含所述库应用侧客户端的标识、所创建路径的路径信息以及第四权限信息;

对应所述库应用侧客户端的标识,在所述配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录所述第四权限信息。

可选的,在所述获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令的步骤之前,所述方法还包括:

接收所述库应用侧客户端发送的第一账号申请请求,其中,所述第一账号申请请求携带所述库应用侧客户端的标识;

获得对应所述库应用侧客户端的标识的第二授权信息;

当所述第二授权信息包含表明所述库应用侧客户端账号申请成功的信息时,在所述配置文件中添加所述库应用侧客户端的标识,并记录所述库应用侧客户端获得申请路径的第五权限信息;

向所述库应用侧客户端发送包含所述第五权限信息的第一账号授权信息。

可选的,所述方法还包括:

接收所述库应用侧客户端发送的关于所述第一库标识对应的待更新的库的路径申请请求,其中,所述路径申请请求中包含所述库应用侧客户端的标识、所述第一库标识对应的待更新的库的路径信息,所述路径申请请求为所述库应用侧客户端账号申请成功后发送的;

获得对应所述库应用侧客户端的标识的第三授权信息;

当所述第三授权信息包含表明所述库应用侧客户端路径申请成功的信息时,依据所述库应用侧客户端的标识,在所述配置文件中添加所述待更新的库的路径信息,并记录所述库应用侧客户端具有读取所述第一库标识所对应库的最新版本号的第六权限信息;

向所述库应用侧客户端发送包含所述第六权限信息的第一路径授权信息。

可选的,所述方法还包括:

接收所述库应用侧客户端发送的更换原版本库指令,其中,所述更换原版本库指令中携带所述库应用侧客户端的标识、所述第一库标识和原版本号;

根据所述原版本号,获得所述第一库标识对应的原版本库;

根据所述库应用侧客户端的标识,将所述原版本库发送至所述库应用侧客户端。

一方面,本发明实施例提供了一种库的更新装置,应用于库管理系统中的库应用侧客户端,所述库管理系统还包括:库服务器和库提供侧客户端,所述装置包括:

第一确定模块,用于从第一编译规则文件中确定待更新的库的第一库标识;

第一获得模块,用于根据所述第一库标识获得所对应待更新的库的当前版本号;

第一发送模块,用于向所述库服务器发送携带所述第一库标识的版本号获得指令,其中,所述库服务器用于存储所述库提供侧客户端上传的库、库对应的库标识以及版本号;

第一接收模块,用于接收所述库服务器返回的所述待更新的库对应的最新版本号;

第一判断模块,用于判断所述最新版本号和所述当前版本号是否一致;

第一更新模块,用于当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

可选的,所述第一确定模块包括第一获得单元、操作执行单元、中断获得单元、生成单元、第二获得单元和执行生成单元;

所述第一获得单元,用于获得所述第一编译规则文件以及获得编译转换指令;

所述操作执行单元,用于响应所述编译转换指令,对所述第一编译规则文件执行编译转换操作;

所述中断单元,用于当确定所述第一编译规则文件中包含更新标记时,中断所述编译转换操作,获得所述待更新的库的第一库标识;

所述生成单元,用于在所述获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库的步骤之后,继续对所述第一编译规则文件执行所述编译转换操作,生成第二编译规则文件;

所述第二获得单元,用于获得编译指令;

所述执行生成单元,用于响应所述编译指令,依据所述第二编译规则文件对待编译源代码执行编译操作,生成可执行文件。

可选的,所述装置还包括第二判断模块、第二获得模块、第二发送模块和第二接收模块;

所述第二判断模块,用于在所述向所述库服务器发送携带所述第一库标识的版本号获得指令的步骤之前,判断所述编译转换指令中是否携带更换原版本库标记,其中,所述更换原版本库标记包括:在针对所述当前版本号对应的待更新的库生成的可执行文件运行失败时所添加的标记;

所述第二获得模块,用于当判断所述编译转换指令中携带更换原版本库标记时,获得所述第一库标识对应的待更新的库的原版本号;

所述第二发送模块,用于向所述库服务器发送更换原版本库指令,其中,所述更换原版本库指令中携带所述库应用侧客户端的标识、所述第一库标识以及所述原版本号,以使所述库服务器接收所述更换原版本库指令后,根据所述原版本号确定所述第一库标识对应的原版本库,并根据所述库应用侧客户端的标识将所述原版本库返回至所述库应用侧客户端;

所述第二接收模块,用于接收所述库服务器返回的所述原版本号对应的所述原版本库,并将本地所存储的当前版本号对应的待更新的库更新为所述原版本号对应的原版本库;

当判断所述编译转换指令中未携带所述更换原版本库标记时,触发所述第一发送模块。

可选的,所述装置还包括第三接收模块和第一显示模块;

所述第三接收模块,用于当判断所述最新版本号和所述当前版本号不一致时,接收所述库服务器返回的所有版本号高于所述当前版本号的高版本库以及每个高版本库对应的更改信息,其中,所述库服务器中还存储有每个高版本库对应的更改信息,所述每个高版本库对应的更改信息均为:相对于自身版本号的前一版本号的库的更改信息;

所述第一显示模块,用于显示第一更新提示信息,其中,所述第一更新提示信息中包括每个高版本库对应的版本号以及更改信息;

所述第一更新模块包括接收单元和更新单元;

所述接收单元,用于获得基于每个高版本库对应的更改信息的第一库更新指令,其中,所述第一库更新指令中包括第一高版本库的第一版本号;

所述更新单元,用于根据所述第一库更新指令,获得所述第一版本号对应的第一高版本库,并将本地存储的所述当前版本号对应的待更新的库更新为所述第一高版本库。

可选的,所述装置还包括第三获得模块和第二显示模块;

所述第三获得模块,用于当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库的更改级别;

所述第二显示模块,用于当根据所述更改级别确定出:所述库应用侧客户端更新完所述最新版本号对应的库后,需要修改所述第一编译规则文件时,显示第二更新提示信息,所述第二更新提示信息中包含:提示所述库应用侧客户端是否更新所述待更新的库的信息。

可选的,所述装置还包括第三判断模块、第三发送模块和接收存储模块;

所述第三判断模块,用于在所述根据所述第一库标识获得所对应待更新的库的当前版本号的步骤之前,判断本地是否存在所述第一库标识对应的待更新的库;当判断本地存在所述第一库标识对应的待更新的库时,触发所述第一获得模块;

所述第三发送模块,用于当判断本地不存在所述第一库标识对应的待更新的库时,向所述库服务器发送携带所述第一库标识的库下载指令;

所述接收存储模块,用于接收并存储所述库服务器返回的所述第一库标识对应的库。

可选的,所述装置还包括文件生成模块;

所述文件生成模块,用于在所述接收并存储所述库服务器返回的所述第一库标识对应的库的步骤之后,对应所述第一库标识,生成隐藏文件,其中,所述隐藏文件中包含所接收并存储的库的第一库标识以及对应的版本号。

可选的,所述装置还包括第四发送模块和第四接收模块;

所述第四发送模块,用于在所述接收所述库服务器返回的所述待更新的库对应的最新版本号的步骤之前,向所述库服务器发送第一账号申请请求,其中,所述第一账号申请请求携带所述库应用侧客户端的标识;

所述第四接收模块,用于接收所述库服务器依据所述库应用侧客户端的标识发送的第一账号授权信息,其中,所述第一账号授权信息中包含:表明所述库应用侧客户端具有获得所述第一库标识所对应库的最新版本号的权限的信息。

可选的,所述装置还包括第五发送模块和第五接收模块;

所述第五发送模块,用于当所述库应用侧客户端账号申请成功后,向所述库服务器发送关于所述第一库标识对应的待更新的库的路径申请请求,其中,所述路径申请请求中包含所述库应用侧客户端的标识以及所述第一库标识对应的待更新的库的路径信息;

所述第五接收模块,用于接收所述库服务器依据所述库应用侧客户端的标识发送的第一路径授权信息,其中,所述第一路径授权信息中包含:表明所述库应用侧客户端具有基于所述路径信息访问对应的路径,以获得所述第一库标识对应库的最新版本号的权限的信息。

可选的,所述装置还包括第六接收模块;

所述第六接收模块,用于当所述库应用侧客户端账号申请成功后,接收库提供侧客户端发送的路径邀请信息,其中,所述路径邀请信息为所述库提供侧客户端创建路径后发送的信息,所述路径邀请信息中包含所述库应用侧客户端的标识、路径的路径信息以及第一权限信息,所述第一权限信息表征:所述库应用侧客户端的标识对应的库应用侧客户端具有基于所述路径信息访问对应的路径,以获取所述路径中存储的库的权限。

一方面,本发明实施例提供了一种库的上传装置,应用于库管理系统的库提供侧客户端,所述库管理系统还包括:库服务器和库应用侧客户端,所述装置包括:

上传模块,用于向所述库服务器上传库以及所述库的库标识,以使库服务器存储所述库以及所述库的库标识,并为所述库添加版本号。

可选的,所述装置还包括检测模块;

所述检测模块,用于在所述向所述库服务器上传库以及所述库的库标识的步骤之前,检测所述库是否为预定格式;当检测所述库为预定格式时,触发所述上传模块。

可选的,所述上传模块,具体用于向所述库服务器上传所述库、所述库的库标识以及更改信息,其中,所述更改信息为:相对于自身版本号的前一版本号的库的更改信息。

可选的,所述上传模块,具体用于向所述库服务器上传库、所述库的库标识以及更改级别,其中,所述更改级别用于表征:库应用侧客户端更新所述库后,是否需要修改对应的第一编译规则文件。

可选的,所述装置还包括第六发送模块和第七接收模块;

所述第六发送模块,用于在所述向所述库服务器上传库以及所述库的库标识的步骤之前,向所述库服务器发送第二账号申请请求,其中,所述第二账号申请请求携带所述库提供侧客户端的标识;

所述第七接收模块,用于接收所述库服务器依据所述库提供侧客户端的标识发送的所述第二账号授权信息,其中,所述第二账号授权信息包含:表明所述库提供侧客户端的标识对应的库提供侧客户端具有创建路径的权限的信息。

可选的,所述装置还包括路径创建模块和权限获得模块;

所述路径创建模块,用于当所述库提供侧客户端账号申请成功后,创建路径,以使所述库服务器对应所创建路径的路径信息,为所述库提供侧客户端配置读写权限;

所述权限获得模块,用于获得所述库服务器为所述库提供侧客户端对应所创建路径配置的读写权限;

所述上传模块,具体用于根据所创建路径以及所配置的读写权限,向所述库服务器上传库以及所述库的库标识。

可选的,所述装置还包括第七发送模块;

所述第七发送模块,用于在所述创建路径的步骤之后,向库应用侧客户端发送路径邀请信息,其中,所述路径邀请信息中包含所述库应用侧客户端的标识、所述路径信息以及第二权限信息,所述第二权限信息表征:所述库应用侧客户端的标识对应的库应用侧客户端具有基于所述路径信息访问对应的路径,以获取所述路径中存储的库的权限。

一方面,本发明实施例提供了一种库的管理方法,应用于库管理系统中的库服务器,所述库管理系统还包括:库提供侧客户端和库应用侧客户端,所述装置包括:

第八接收模块,用于接收所述库提供侧客户端上传的库以及所述库的库标识;

第一添加模块,用于为所述库添加版本号;

存储模块,用于存储所述库、所述库的库标识以及版本号;

第四获得模块,用于获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令,其中,所述第一库标识为所述库应用侧客户端的待更新的库的库标识;

第五获得模块,用于获得所述第一库标识对应的待更新的库的最新版本号;

第八发送模块,用于向所述库应用侧客户端发送所获得的最新版本号以及所述最新版本号对应的库,以使所述库应用侧客户端接收所述库服务器返回的所述最新版本号,并判断所述最新版本号和所述库应用侧客户端存储的所述待更新的库的当前版本号是否一致;当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

可选的,所述第八接收模块,具体用于接收所述库提供侧客户端上传的库、所述库的库标识以及更改信息,其中,所述更改信息为:相对于自身版本号的前一版本号的库的更改信息;

所述存储模块,具体用于存储所述库、所述库的库标识、版本号以及更改信息。

可选的,所述第九接收模块,具体用于接收所述库提供侧客户端上传的库、所述库的库标识以及更改级别,其中,所述更改级别用于表征:库应用侧客户端更新所述库后,是否需要修改对应的第一编译规则文件;

所述第一添加模块,具体用于根据所述更改级别,为所述库添加版本号;

所述存储模块,具体用于存储所述库、所述库的库标识、版本号以及更改级别。

可选的,所述装置还包括第九接收模块、第六获得模块、第二添加模块和第九发送模块;

所述第九接收模块,用于在所述接收所述库提供侧客户端上传的库以及所述库的库标识的步骤之前,接收所述库提供侧客户端发送的第二账号申请请求,其中,所述第二账号申请请求携带所述库提供侧客户端的标识;

所述第六获得模块,用于获得对应所述库提供侧客户端的标识的第一授权信息;

所述第二添加模块,用于当所述第一授权信息包含表明所述库提供侧客户端账号申请成功的信息时,在本地存储的配置文件中添加所述库提供侧客户端的标识,并记录所述库提供侧客户端获得创建路径的权限的第三权限信息;

所述第九发送模块,用于向所述库提供侧客户端发送包含所述第三权限信息的第二账号授权信息。

可选的,所述装置还包括路径信息获得模块和第三添加模块;

所述路径信息获得模块,用于当确定所述库提供侧客户端创建路径后,获得所述库提供侧客户端所创建路径的路径信息;

所述第三添加模块,用于对应所述库提供侧客户端的标识,在所述配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录读写权限。

可选的,所述装置还包括第七获得模块和第四添加模块;

所述第七获得模块,用于获得库提供侧客户端针对所述库应用侧客户端发送的路径邀请信息,其中,所述路径邀请信息为所述库提供侧客户端创建路径后发送的信息,所述路径邀请信息中包含所述库应用侧客户端的标识、所创建路径的路径信息以及第四权限信息;

所述第四添加模块,用于对应所述库应用侧客户端的标识,在所述配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录所述第四权限信息。

可选的,所述装置还包括第十接收模块、第八获得模块、第十发送模块和第五添加模块;

所述第十接收模块,用于在所述获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令的步骤之前,接收所述库应用侧客户端发送的第一账号申请请求,其中,所述第一账号申请请求携带所述库应用侧客户端的标识;

所述第八获得模块,用于获得对应所述库应用侧客户端的标识的第二授权信息;

所述第五添加模块,用于当所述第二授权信息包含表明所述库应用侧客户端账号申请成功的信息时,在所述配置文件中添加所述库应用侧客户端的标识,并记录所述库应用侧客户端获得申请路径的第五权限信息;

所述第十发送模块,用于向所述库应用侧客户端发送包含所述第五权限信息的第一账号授权信息。

可选的,所述装置还包括第十一接收模块、第九获得模块、第十一发送模块和第六添加模块;

所述第十一接收模块,用于接收所述库应用侧客户端发送的关于所述第一库标识对应的待更新的库的路径申请请求,其中,所述路径申请请求中包含所述库应用侧客户端的标识、所述第一库标识对应的待更新的库的路径信息,所述路径申请请求为所述库应用侧客户端账号申请成功后发送的;

所述第九获得模块,用于获得对应所述库应用侧客户端的标识的第三授权信息;

所述第六添加模块,用于当所述第三授权信息包含表明所述库应用侧客户端路径申请成功的信息时,依据所述库应用侧客户端的标识,在所述配置文件中添加所述待更新的库的路径信息,并记录所述库应用侧客户端具有读取所述第一库标识所对应库的最新版本号的第六权限信息;

所述第十一发送模块,用于向所述库应用侧客户端发送包含所述第六权限信息的第一路径授权信息。

可选的,所述装置还包括第十二接收模块、第十获得模块、第二确定模块和十二发送模块;

所述第十二接收模块,用于接收所述库应用侧客户端发送的更换原版本库指令,其中,所述更换原版本库指令中携带所述库应用侧客户端的标识、所述第一库标识和原版本号;

所述第十获得模块,用于根据所述原版本号,获得所述第一库标识对应的原版本库;

所述第二确定模块,用于根据所述原版本号,获得所述第一库标识对应的原版本库;

所述十二发送模块,用于根据所述库应用侧客户端的标识,将所述原版本库发送至所述库应用侧客户端。

另一方面,本发明实施例提供了一种库管理系统,所述库管理系统包括库提供侧客户端、库服务器和库应用侧客户端,所述系统包括:

所述库提供侧客户端,用于向所述库服务器上传库以及所述库的库标识;

所述库服务器,用于接收所述库提供侧客户端上传的库以及所述库的库标识;为所述库添加版本号;存储所述库、所述库的库标识以及版本号;还用于获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令,其中,所述第一库标识为所述库应用侧客户端的待更新的库的库标识;获得所述第一库标识对应的待更新的库的最新版本号;向所述库应用侧客户端发送所获得的最新版本号以及所述最新版本号对应的库;

所述库应用侧客户端,用于从第一编译规则文件中确定待更新的库的第一库标识;根据所述第一库标识获得所对应待更新的库的当前版本号;向所述库服务器发送携带所述第一库标识的版本号获得指令;接收所述库服务器返回的所述待更新的库对应的最新版本号;判断所述最新版本号和所述当前版本号是否一致;当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

本发明实施例中,库应用侧客户端从第一编译规则文件中确定待更新的库的第一库标识;根据第一库标识获得所对应待更新的库的当前版本号;向库服务器发送携带第一库标识的版本号获得指令,其中,库服务器用于存储库提供侧客户端上传的库、以及库对应的库标识以及版本号;接收库服务器返回的待更新的库对应的最新版本号;判断最新版本号和当前版本号是否一致;当判断最新版本号和当前版本号不一致时,获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库。可见,本发明实施例中的库应用侧客户端在对第一编译规则文件进行编译转换的过程中,可以根据所确定的待更新的库的库标识,自动检测库服务器是否存储有版本号高于库应用侧客户端本地的当前版本号的该库标识对应的库,并在检测到存在时,可以自动对库应用侧客户端本地存储的库进行更新,无需库提供侧客户端的通知,在应用库时能够主动识别到库的更新,并对库进行自动更新。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种库的更新方法的流程示意图;

图2为本发明实施例提供的一种库的上传方法的流程示意图;

图3为本发明实施例提供的一种库的管理方法的流程示意图;

图4为本发明实施例提供的一种库的更新装置的结构示意图;

图5为本发明实施例提供的一种库的上传装置的结构示意图;

图6为本发明实施例提供的一种库的管理装置的结构示意图;

图7为本发明实施例提供的一种库管理系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种库的更新、上传、管理方法、装置及库管理系统,以实现库应用侧客户端无需库提供侧客户端的通知,在应用库时能够主动识别到库的更新,并对库进行自动更新。

需要说明的是,本发明实施例所提供的库的更新、上传、管理方法可以通过ssll(spanserverlibrarylink,跨服务器库链接)服务实现。库应用侧客户端、库提供侧客户端与库服务器可以配置该ssll服务,以实现本发明实施例所提供的库的更新、上传、管理方法。其中,该库服务器可以是任一配置有该ssll服务的具有存储功能的电子设备。

库服务器配置日志记录功能,存储日志信息,该日志信息可以分为两种,一种为记录库提供侧客户端向库服务器注册帐号、申请路径的读写权限、上传库、下载库等操作,记录库应用侧客户端向库服务器向库服务器注册帐号、申请路径的读写权限、下载库、更新库等操作。针对上述操作的日志记录,对库服务器的管理人员可见,以使管理人员根据上述操作的日志记录对库服务器进行管理。另一种为记录库提供侧客户端上传的库以及库的相关信息,该库的相关信息可以包括库对应的版本号,以及各版本号对应的库的更改级别,以及各版本号对应的库相对于前一版本号的库的更改信息,该更改信息可以但不限于包括所对应库相对于自身版本号的前一版本号的库修改过哪些组件、增加了哪些组件、添加了哪些接口,等等,以用于库应用侧客户端对应的用户根据所记录的库的相关信息判断是否需要更改编译、链接库时所需的相关代码。

库服务器中配置有容灾机制,为了防止库服务器因为硬盘损坏、宕机等问题造成所存储的库的丢失或服务暂停的现象,需要对库服务器进行主备部署,主备库服务器共享一个标识,例如共享一个虚拟ip地址,且主备库服务器之间进行数据同步,使得当主库服务器出现故障后,备库服务器可以支持正常服务。

如图1所示,本发明实施例提供了一种库的更新方法,可以应用于库管理系统中的库应用侧客户端,该库管理系统还可以包括:库服务器和库提供侧客户端,可以包括如下步骤:

s101:从第一编译规则文件中确定待更新的库的第一库标识;

库应用侧客户端在对第一编译规则文件进行编译转换时,从第一编译规则文件中获得待更新的库的库标识,将所获得的库标识确定为待更新的库的第一库标识。其中,该第一库标识可以为对应的库的名称、编号或者其他可以唯一确定该对应的库的信息。

s102:根据第一库标识获得所对应待更新的库的当前版本号;

当库应用侧客户端存储有该第一库标识对应的待更新的库时,可以根据该第一库标识,获得对应的待更新的库的当前版本号。

库应用侧客户端从库服务器中首次下载一个库标识对应的库时,库应用侧客户端在存储所下载的库时,会对应该库生成一个隐藏文件,该隐藏文件中对应记录有该库的库标识以及该库的版本号,此时,库应用侧客户端存储的库所对应的版本号即为该库的当前版本号。

s103:向库服务器发送携带第一库标识的版本号获得指令;

其中,该库服务器用于存储所述库提供侧客户端上传的库、库对应的库标识以及版本号。

库应用侧客户端利用所配置的ssll服务实现与库服务器的交互,向库服务器发送携带第一库标识的版本号获得指令。可以理解的是,该版本号获得指令中还携带库应用侧客户端的标识。该库服务器从本地查找第一库标识对应的最新版本的库,并且获得该最新版本的库对应的最新版本号,然后根据库应用侧客户端的标识,向库应用侧客户端反馈该最新版本号。

s104:接收库服务器返回的待更新的库对应的最新版本号;

s105:判断最新版本号和当前版本号是否一致;

当判断最新版本号和当前版本号一致时,表明该待更新的库为最新版本的库,即库应用侧客户端本地所存储的库为最新版本的库,无需更新。当判断最新版本号和当前版本号不一致时,可以表明该待更新的库不为最新版本的库,库服务器中存储有所对应版本号高于当前版本号的高版本的库,则继续进行后续的流程。

s106:当判断最新版本号和当前版本号不一致时,获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库。

当判断最新版本号和当前版本号不一致时,可以直接下载该最新版本号对应的库,将本地存储的当前版本号对应的待更新的库替换为该最新版本号对应的库。或者,输出提示信息,以提示库应用侧客户端库服务器中存储有所对应版本号高于当前版本号的高版本库。后续的,库应用侧客户端的用户可以根据自身需求,确定是否更新本地存储的当前版本号对应的待更新的库。另外的,当库服务器中存储的高于当前版本号的高版本的库存在多个时,用户还可以根据自身需求确定下载哪一个版本的库。

应用本发明实施例,库应用侧客户端从第一编译规则文件中确定待更新的库的第一库标识;根据第一库标识获得所对应待更新的库的当前版本号;向库服务器发送携带第一库标识的版本号获得指令,其中,库服务器用于存储库提供侧客户端上传的库、以及库对应的库标识以及版本号;接收库服务器返回的待更新的库对应的最新版本号;判断最新版本号和当前版本号是否一致;当判断最新版本号和当前版本号不一致时,获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库。可见,本发明实施例中的库应用侧客户端在对第一编译规则文件进行编译转换的过程中,可以根据所确定的待更新的库的第一库标识,自动检测库服务器是否存储有版本号高于库应用侧客户端本地的当前版本号的该第一库标识对应的库,并在检测到存在时,可以自动对库应用侧客户端本地存储的库进行更新,无需库提供侧客户端的通知,库应用侧客户端在应用库时能够主动识别到库的更新,并对库进行自动更新。

在一种实现方式中,所述s101从第一编译规则文件中获得待更新的库的第一库标识的步骤,可以包括:

获得第一编译规则文件以及获得编译转换指令;

响应编译转换指令,对第一编译规则文件执行编译转换操作;

当确定第一编译规则文件中包含更新标记时,中断编译转换操作,获得待更新的库的第一库标识;

在所述s106获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库的步骤之后,所述方法还可以包括:

继续对第一编译规则文件执行编译转换操作,生成第二编译规则文件;

获得编译指令;

响应编译指令,依据第二编译规则文件对待编译源代码执行编译操作,生成可执行文件。

对待编译源代码的编译过程中,需要依据第二编译规则文件,并且,该待编译源代码可以通过第二编译规则文件获得。在一种实现方式中,该第二编译规则文件可以通过第一编译规则文件得到,即针对第一编译规则文件触发编译转换指令,可以生成第二编译规则文件。在一种实现方式中,该第一编译规则文件可以为cmakelists.txt,该编译转换指令可以为cmake指令。该第一编译规则文件以及第二编译规则文件中均记录有待编译、链接的库的库标识以及存储路径,编译、链接库所需的头文件的存储路径、对外逻辑以及编译描述等信息,该对外逻辑可以包括如何编译、链接库的规则信息,该编译描述可以包括描述要将库编译、链接成模块库文件还是可执行文件的信息,当需要将库编译、链接成可执行文件时,该编译描述还可以包括将库编译、链接成适用于哪类系统(例如:windows系统、unix系统等)的可执行文件的信息,等等。该第一编译规则文件以及第二编译规则文件的编写语法不同。

库应用侧客户端可以调用cmake,并获得cmake指令,以对第一编译规则文件进行编译转换,转换生成第二编译规则文件。其中,该cmake是一个跨平台的安装(编译)工具,可以对该cmake进行二次开发,以支持本发明实施例所提供的ssll服务,例如:可以在cmake中增加设置识别更新标记、以及后续提到的更换原版本库标记的程序代码,以能够识别更新标记以及后续提到的更换原版本库标记等。

在一种实现方式中,配置有ssll服务的库应用侧客户端,在对第一编译规则文件进行编译转换的过程中,会默认执行本发明实施例所提供的库的更新流程。

另外的,为了提高库应用侧客户端对应的用户的使用体验,该第一编译规则文件中可以包含更新标记,仅当该第一编译规则文件中包含更新标记时,才会执行本发明实施例所提供的库的更新流程,当该第一编译规则文件中不包含更新标记时,则不执行本发明实施例所提供的库的更新流程。其中,库应用侧客户端的用户可以根据自身需求在第一编译规则文件中添加该更新标记。

在本发明实施例中,该更新标记可以用标志位cmake_lib_on_server标识。在对第一编译规则文件执行编译转换操作过程中,当确定第一编译规则文件中包含标志位cmake_lib_on_server时,中断编译转换操作,并执行本发明实施例所提供的库的更新流程。可选地,该编译转换指令可以为预先输入的命令行。

后续可以继续对第一编译规则文件执行编译转换操作,生成第二编译规则文件,在一种实现方式中,该第二编译规则文件可以为makelist文件,该编译指令可以为make指令。在一种实现方式中,该编译指令可以为预先输入的命令行。

可以理解的是,在生成第二编译规则文件后,库应用侧客户端还可以输出生成提示信息,以提示用户第二编译规则文件已生成,进一步的,该用户可以针对第二编译规则文件进行后续的操作。

当库应用侧客户端响应该编译指令,依据第二编译规则文件对待编译源代码执行编译操作,生成可执行文件时,可以继续运行该可执行文件,以验证更新后的库是否编译、链接成功。当可执行文件运行成功时,表明更新后的库编译、链接成功;当可执行文件运行失败时,表明更新后的库编译、链接失败。其中,出现库编译、链接失败的原因可能是:更新后的库与待编译源代码不匹配或者更新后的库与第一编译规则文件中的对外逻辑不匹配。针对上述情况,可以将更新后的库还原为更新前的库。具体流程可以参照下文。

在一种实现方式中,可能会出现库应用侧客户端本地未存储第一库标识对应的待更新的库的情况,此时,就需要从库服务器中下载该第一库标识对应的库,并在本地存储该下载的库。此时,当本地未存储第一库标识对应的待更新的库,向库服务器下载第一库标识对应的库时,可以直接下载该在第一库标识对应的最新版本号对应的库,也可以显示第一库标识对应的所有版本的库,以供库应用侧客户端的用户选择。在一种实现方式中,所述s102根据所述第一库标识获得所对应待更新的库的当前版本号的步骤之前,所述方法还可以包括:

判断本地是否存在第一库标识对应的待更新的库;

当判断本地存在第一库标识对应的待更新的库时,执行s102;

当判断本地不存在第一库标识对应的待更新的库时,向库服务器发送携带第一库标识的库下载指令;

接收并存储库服务器返回的第一库标识对应的库。

在一种实现方式中,在所述接收并存储库服务器返回的第一库标识对应的库的步骤之后,所述方法还可以包括:

对应第一库标识,生成隐藏文件,其中,隐藏文件中包含所接收并存储的库的第一库标识以及对应的版本号。

库应用侧客户端为了便于后续的对所存储的库的管理,可以在存储库时,对应该库的第一库标识生成一个包含第一库标识以及库对应的版本号的隐藏文件。后续的,库应用侧客户端在对库进行更新时,可以依据库对应的隐藏文件中所包含的库的当前版本号,确定库是否为最新的库,进一步确定是否需要更新库。

当将库更新为新版本的库后,可以对应更新隐藏文件中的信息,此时,可以将所更新的新版本的库对应的版本号作为库的当前版本号进行存储,可以将更新前的库对应的版本号作为库的原版本号进行存储,这都是可以的。

在库应用侧客户端更新完本地存储的库后,可能会出现对应更新后的库编译、链接生成的可执行文件运行失败的情况。对应上述情况,库应用侧客户端可能需要将更新后的库替换为更新前的库。此时,库应用侧客户端可以修改第一编译规则文件进行编译转换所依赖的编译转换指令,以实现将更新后的库替换为更新前的库。在一种实现方式中,在编译转换指令中增加更换原版本库标记,库应用侧客户端在获得该编译转换指令,对第一编译规则文件执行编译转换操作时,识别到该更换原版本库标记后,响应该更换原版本库标记,将库应用侧客户端本地存储的库更新为原版本库。在一种实现方式中,在所述s103向库服务器发送携带第一库标识的版本号获得指令的步骤之前,所述方法还可以包括:

判断编译转换指令中是否携带更换原版本库标记,其中,更换原版本库标记包括:在针对当前版本号对应的待更新的库生成的可执行文件运行失败时所添加的标记;

当判断编译转换指令中携带更换原版本库标记时,获得第一库标识对应的待更新的库的原版本号;

向库服务器发送更换原版本库指令,其中,更换原版本库指令中携带库应用侧客户端的标识、第一库标识以及原版本号,以使库服务器接收更换原版本库指令后,根据原版本号确定第一库标识对应的原版本库,并根据库应用侧客户端的标识将原版本库返回至库应用侧客户端;

接收库服务器返回的原版本号对应的原版本库,并将本地所存储的当前版本号对应的待更新的库更新为原版本号对应的原版本库;

当判断编译转换指令中未携带更换原版本库标记时,执行s103。

举例而言,库应用侧客户端在对cmakelists.txt对执行编译转换操作(例如:cmake操作)时,确定cmakelists.tet中包含更新标记(例如:cmake_lib_on_server);此时,库应用侧客户端中断编译转换操作,从cmakelists.txt中获得待更新的库的库标识1,将所获得的库标识确定为待更新的库的第一库标识1;

库应用侧客户端根据第一库标识1,获得所对应待更新的库a的当前版本号为1.1.2;

库应用侧客户端判断cmakelists.txt中是否包含更换原版本库标记;

当判断为包含更换原版本库标记时,从本地对应第一库标识1生成的隐藏文件中,获得第一库标识1对应的待更新的库a的原版本号为1.1.1,向库服务器发送更换原版本库指令,其中,更换原版本库指令中携带库应用侧客户端的标识、第一库标识1以及原版本号1.1.1;以使库服务器接收到更换原版本库指令后,根据原版本号1.1.1确定原版本库b;库服务器根据库应用侧客户端的标识,将原版本库b返回至库应用侧客户端;

库应用侧客户端接收原版本库b,将第一库标识1对应的待更新的库a替换为第一库标识1对应的原版本库b。

可以理解的是,当库应用侧客户端首次下载存储第一库标识对应的库时,会对应第一库标识生成一个隐藏文件,其中,该隐藏文件中存储有第一库标识以及对应的库的版本号,并将所存储的库的版本号作为该库的当前版本号进行存储,当库应用侧客户端应用本发明实施例所提供的库的更新流程,对第一库标识对应的库进行更新时,会将库更新为版本更高的库,此时,库应用侧客户端会将版本更高的库对应的版本号作为库的当前版本号,存储于第一库标识对应的隐藏文件中,而将原来的当前版本号作为原版本号进行存储。

举例而言,库应用侧客户端下载第一库标识2对应的库m,库m对应的版本号为3.4.5;库应用侧客户端对应第一库标识2生成隐藏文件m,隐藏文件m中记录有第一库标识2以及当前版本号3.4.5,由于是首次下载第一库标识2对应的库,此时原版本号可以为空;

当库应用侧客户端根据本发明实施例提供的库的更新流程,将第一库标识2对应的库m,更新为第一库标识2对应的库n,库n对应的版本号为3.4.6;对应的库应用侧客户端将隐藏文件m中的当前版本号修改为3.4.6,而将原版本号确定为3.4.5;

后续的,当库应用侧客户端根据本发明实施例提供的库的更新流程,将第一库标识2对应的库n,更新为第一库标识2对应的库p,库p对应的版本号为3.5.0;对应的库应用侧客户端将隐藏文件m中的当前版本号修改为3.5.0,原本版号修改为3.4.6,并将版本号3.4.5作为前一原本版号进行存储。

可以理解的是,更换原版本库标记可以通过参数标识,例如:编译转换指令为cmake指令时,该参数标识可以为cmakelib-1,lib-1标识将库应用侧客户端本地存储的库更新为更新前的库,即将当前版本号对应的库更新为原版本号对应的原本版库。

承接上述例子:当库应用侧客户端识别到cmake指令中携带的cmakelib-1时,从本地存储的第一库标识2对应的隐藏文件m中获得原本版号3.4.6,并向库服务器发送携带原本版号3.4.6、第一库标识2以及库应用侧客户端的标识的更换原版本库指令,以进行后续的库的更新流程。

另外的,当cmake指令中携带cmakelib-2时,该lib-2可以标识将当前版本号对应的库更新为前一原版本号对应的前一原本版库,这也是可以的。

在一种实现方式中,库服务器中可能存储有多个对应第一库标识的且版本号高于当前版本号的高版本库,为了更好的提高用户的使用体验,满足用户的需求,所述方法还可以包括:

当判断最新版本号和当前版本号不一致时,接收库服务器返回的所有版本号高于当前版本号的高版本库以及每个高版本库对应的更改信息,其中,库服务器中还存储有每个高版本库对应的更改信息,每个高版本库对应的更改信息均为:相对于自身版本号的前一版本号的库的更改信息;

显示第一更新提示信息,其中,第一更新提示信息中包括每个高版本库对应的版本号以及更改信息;

所述s106获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库的步骤,可以包括:

获得基于每个高版本库对应的更改信息的第一库更新指令,其中,第一库更新指令中包括第一高版本库的第一版本号;

根据第一库更新指令,获得第一版本号对应的第一高版本库,并将本地存储的当前版本号对应的待更新的库更新为第一高版本库。

当判断最新版本号和当前版本号不一致时,可以表明库服务器中存储有至少一个对应第一库标识的且版本号高于当前版本号的高版本库。此时,库应用侧客户端可以接收库服务器返回的所有版本号高于当前版本号的高版本库以及每个高版本库对应的更改信息,并展示给用户,以供用户选择。用户可以根据所显示的每一高版本库对应的更改信息,确定是否需要更新库,进一步的,在确定更新库时,根据所更新的库的更改信息,确定是否需要修改第一编译规则文件(例如:修改库编译、链接所需的头文件和对外逻辑等),以及如何修改第一编译规则文件。

举例而言,库应用侧客户端接收的库服务器返回的所有版本号高于当前版本号的高版本库分别为库b、库c和库d,其中,库a为存储于库应用侧客户端本地存储的库,即库a为当前版本号对应的库;库a、库b、库c和库d均对应第一库标识;库a为库b的前一版本,库b为库c的前一版本,库c为库d的前一版本库;

库b对应更改信息b,库c对应更改信息c,库d对应更改信息d;其中,库b对应的更改信息b是相应于库a的更改信息,库c对应的更改信息c是相对于库b的更改信息,库d对应的更改信息d是相对于库c的更改信息;

库应用侧客户端显示第一更新提示信息,第一更新提示信息包括库b、库c和库d以及库b对应更改信息b,库c对应更改信息c,库d对应更改信息d;

获得基于每个高版本库对应的更改信息的第一库更新指令,该第一库更新指令中包含库d对应的版本号,其中,该第一库更新指令可以为人为输入的指令;

库应用侧客户端将库应用侧客户端本地存储的库a更新为库d。

库应用侧客户端更新完库后,可能会需要修改所对应的第一编译规则文件,此时,为了更好的提高用户体验,在一种实现方式中,所述方法还可以包括:

当判断最新版本号和当前版本号不一致时,获得最新版本号对应的库的更改级别,更改级别可以表征:库应用侧客户端更新完最新版本号对应的库后,是否需要修改第一编译规则文件;

当更改级别表征:库应用侧客户端更新完最新版本号对应的库后,需要修改第一编译规则文件时,显示第二更新提示信息,第二更新提示信息中包含:提示库应用侧客户端是否更新待更新的库的信息。

另外,当更改级别表征库应用侧客户端更新完最新版本号对应的库后,不需要修改第一编译规则文件时,可以直接后台更新该最新版本号对应的库。

在一种实现方式中,更改级别可以分为第一等、第二等和第三等三个等级(可以用数值1、2和3表示更改级别第一等、第二等和第三等),其中,数值越低,所对应更改级别越高,即第一等对应的更改级别最高,第三等对应的更改级别最低;

当更改级别为第三等时,下载更新对应的库后,无需修改所对应的第一编译规则文件,当更改级别为第一等或第二等时,下载更新对应的库后,则需要修改所对应的第一编译规则文件(例如:修改编译、链接库所需的头文件以及对外逻辑等)。举例而言,当库的更改级别为第一等或第二等时,在库更新前,编译、链接该库时所需头文件为头文件1;在库更新后,编译、链接该更新后的库时所需头文件为头文件2,此时将第一编译规则文件中记录的头文件1修改为头文件2。

承接上述实施例,当库服务器中存储有多个对应第一库标识的且版本号高于当前版本号的高版本库时,且每个高版本库对应一个更改级别。此时,库应用侧客户端也可以根据所接收的每个高版本库对应的更改级别,确定是否显示第一更新提示信息;

例如:当所接收的每个高版本库对应的更改级别均为第三等时,可以表征库应用侧客户端无需修改第一编译规则文件,针对此种情况,库应用侧客户端可以不显示第一更新提示信息,直接在后台根据所确定的最新版本号对库进行更新;

当上述所确定的高版本库对应的更改级别中出现至少一个不为第三等时,即出现至少一个高版本库对应的更改级别为第一等或第二等,可以表征库应用侧客户端可能需要修改第一编译规则文件,针对此种情况,库应用侧客户端就需要显示第一更新提示信息,以供用户选择是否更新库。例如:当库应用侧客户端根据该第一更新提示信息确定不更新库时,结束库的更新流程。又例如:当库应用侧客户端根据该第一更新提示信息确定更新库时,则继续库的更新流程,后续的库应用侧客户端的库更新完成后,可以根据所更新的库对应的更改信息,确定是否需要修改第一编译规则文件,并确定如何修改第一编译规则文件。其中,根据所更新的库对应的更改信息,确定是否需要修改第一编译规则文件,并确定如何修改第一编译规则文件的步骤,可以由库应用侧客户端的用户设定。

在一种实现方式中,库服务器可以依据库的更改级别,为库添加版本号。举例而言,更改级别可以分为第一等、第二等和第三等三个等级,并且该三个等级可以通过版本号进行表示。例如,版本号可以由主版本号、次版本号和发布版本号三部分组成。

当库的更改级别为第一等时,为该库添加版本号的过程可以为:先确定该库的前一版本的库对应的前版本号,将该前版本号中的主版本号的数值加1,并分别将该前版本号中的次版本号和发布版本号的数值设置为0;然后将所得到的结果确定为该库的版本号;

当库的更改级别为第二等时,为该库添加版本号的过程可以为:先确定该库的前一版本的库对应的前版本号,保持该前版本号中的主版本号的数值不变,将该前版本号中的次版本号的数值加1,该前版本号中的发布版本号的数值设置为0;然后将所得到的结果确定为该库的版本号;

当库的更改级别为第三等时,为该库添加版本号的过程可以为:先确定该库的前一版本的库对应的前版本号,保持该前版本号中的主版本号的数值以及次版本号的数值不变,将该前版本号中的发布版本号的数值加1;然后将所得到的结果确定为该库的版本号。

举例而言:库1对应的当前版本号为1.2.3,其中,库1的库标识为1;

库标识1还对应库2,库2为针对库1的新版本的库,当库2针对库1对应的更改级别为1时,库2的版本号可以为2.0.0;当库2针对库1对应的更改级别为2时,库2的版本号可以为1.3.0;当库2针对库1对应的更改级别为3时,库2的版本号可以为1.2.4。

在一种实现方式中,在所述s104接收库服务器返回的待更新的库对应的最新版本号的步骤之前,所述方法还可以包括:

向库服务器发送第一账号申请请求,其中,第一账号申请请求携带库应用侧客户端的标识;

接收库服务器依据库应用侧客户端的标识发送的第一账号授权信息,其中,第一账号授权信息中包含:表明库应用侧客户端具有获得第一库标识所对应库的最新版本号的权限的信息。

库服务器中可以存储有库提供侧客户端的标识与权限的映射关系,以及库应用侧客户端的标识与权限的映射关系。上述映射关系可以由库服务器的审核员预先设置或调整。

为了保证库服务器中存储的库的安全性,每个库应用侧客户端在使用库服务器中存储的库前,需要先向库服务器发送携带库应用侧客户端的标识的第一账号申请请求,库服务器接收该第一账号申请请求,库服务器对库应用侧客户端的标识对应的库应用侧客户端进行审核,确定该库应用侧客户端的账号申请是否成功。只有在库应用侧客户端的账号申请成功后,该库应用侧客户端才有申请路径的权限,进一步的,库应用侧客户端拥有路径的权限后,才具有获得第一库标识所对应库的最新版本号的权限。

在一种实现方式中,当库应用侧客户端账号申请成功后,还可以向库服务器发送路径申请请求,以获得所申请的路径下所存储的库的读取权限。所述方法还可以包括:

当库应用侧客户端账号申请成功后,向库服务器发送关于第一库标识对应的待更新的库的路径申请请求,其中,路径申请请求中包含库应用侧客户端的标识以及第一库标识对应的待更新的库的路径信息;

接收库服务器依据库应用侧客户端的标识发送的第一路径授权信息,其中,第一路径授权信息中包含:表明库应用侧客户端具有基于路径信息访问对应的路径,以获得第一库标识对应库的最新版本号的权限的信息。

另外的,库应用侧客户端还可以在账号申请成功后,在对应的账号下创建路径,例如:库应用侧客户端在所申请账号下新建文件夹。

在一种实现方式中,库提供侧客户端知道哪些库应用侧客户端有使用自身所上传的库的可能,为了防止库应用侧客户端可能会不清楚所需的库在库服务器中的存储位置的情况,此时,库提供侧客户端可以通过库服务器向库应用侧客户端发送路径邀请信息。当库应用侧客户端接收到该路径邀请信息后,可以直接获得该路径邀请信息对应的路径的权限,当然具体权限由库提供侧客户端确定。所述方法还可以包括:

当库应用侧客户端账号申请成功后,接收库提供侧客户端发送的路径邀请信息,其中,路径邀请信息为库提供侧客户端创建路径后发送的信息,路径邀请信息中包含库应用侧客户端的标识、路径的路径信息以及第一权限信息,第一权限信息表征:库应用侧客户端的标识对应的库应用侧客户端具有基于路径信息访问对应的路径,以获取路径中存储的库的权限。

其中,第一权限信息中可以包括对所创建路径中存储的库的读权限或写权限或读写权限,该第一权限信息由发出路径邀请信息的库提供侧客户端确定,当库提供侧客户端仅有对上述路径信息对应的路径的读权限时,该第一权限信息中仅包括对上述路径信息对应的路径的读权限;当库提供侧客户端仅有对上述路径信息对应的路径的写权限时,该第一权限信息中仅包括对上述路径信息对应的路径的写权限;库提供侧客户端有对上述路径信息对应的路径的读权限和写权限时,该第一权限信息中可以包括对上述路径信息对应的路径的读权限,也可以包括对上述所创建路径的写权限,也可以包括对上述所创建路径的读权限和写权限。

可以理解的是,库应用侧客户端接收到库提供侧客户端发送的路径邀请信息后,库应用侧客户端可以直接获得该路径邀请信息对应的路径的权限(包括读权限或写权限或读写权限,由库提供侧客户端确定),无需经由库服务器对应的审核员的审核,降低了库应用侧客户端进行路径申请的时间消耗,提高了用户的使用体验。库提供侧客户端向库应用侧客户端发送路径邀请信息后,库应用侧客户端接收到该路径邀请信息时,该库服务器会响应该路径邀请信息,在库服务器本地存储的配置文件中,对应该库应用侧客户端的标识添加该路径邀请信息对应的路径信息以及第一权限信息,以使库应用侧客户端获得该路径邀请信息对应的路径的权限。

另一方面,本发明实施例提供了一种库的上传方法,可以应用于库管理系统的库提供侧库提供侧客户端,库管理系统还可以包括:库服务器和库应用侧库应用侧客户端,如图2所示,可以包括如下步骤:

s201:向库服务器上传库以及库的库标识,以使库服务器存储库以及库的库标识,并为库添加版本号。

当库提供侧客户端需要上传库时,获得用户针对待上传的库的上传指令,该上传指令中携带待上传的库的库标识,库提供侧客户端根据该上传指令,获得库标识对应的库,并向库服务器上传库以及库的库标识。

举例而言,当库提供侧客户端的用户编写完成一个库后,对该库进行保存时,可以同时触发上传机制,生成上传指令。或者,对库进行保存完成后,通过预定触发机制触发上传机制,进而生成上传指令。

应用本发明实施例,向库服务器上传库以及库的库标识,以使库服务器存储库以及库的库标识,并为库添加版本号。可见,库提供侧客户端可以向库服务器上传库以及库的标识,库服务器可以存储该库以及库标识,并为库添加版本号,使得在库应用侧客户端进行库的更新流程时,可以根据库服务器存储的库的版本号,进行库的自动更新。

在一种实现方式中,为了保证上传至库服务器的均为库,如图2所示,在所述向库服务器上传库以及库的库标识的步骤之前,所述方法还可以包括:

s202:检测库是否为预定格式;当检测库为预定格式时,执行s201。

其中,预定格式可以为“.so”格式、“.dil”格式、“.a”格式和/或“lib”。通过检测库是否为预定格式,可以避免库提供侧客户端向库服务器上传除库外的文件。

在一种实现方式中,所述向库服务器上传库以及库的库标识的步骤,可以包括:

向库服务器上传库、库的库标识以及更改信息,其中,更改信息为:相对于自身版本号的前一版本号的库的更改信息。

库提供侧客户端在上传库的同时,上传库的更改信息,使得库服务器中存储的库的相关信息更加全面,有利于后续的库应用侧客户端根据库服务器所存储的库的相关信息,更好的了解库,并确定所需的库。

在一种实现方式中,所述向库服务器上传库以及库的库标识的步骤,可以包括:

向库服务器上传库、库的库标识以及更改级别,其中,更改级别用于表征:库应用侧客户端更新该库后,是否需要修改对应的第一编译规则文件。

可选地,对应的第一编译规则文件可以是更新库所依赖的第一编译规则文件。

库提供侧客户端向库服务器上传库的更改级别,可以利于库应用侧客户端在更新库时,根据该更改级别确定是否能够后台更新库,提高用户体验。

在一种实现方式中,在所述向库服务器上传库以及库的库标识的步骤之前,所述方法还可以包括:

向库服务器发送第二账号申请请求,其中,第二账号申请请求携带库提供侧客户端的标识;

接收库服务器依据库提供侧客户端的标识发送的第二账号授权信息,其中,第二账号授权信息包含:表明库提供侧客户端的标识对应的库提供侧客户端具有创建路径的权限的信息。

为了保证库服务器中所存储的库的安全性,需要库提供侧客户端在向库服务器上传库之前,向库服务器发送第二账号申请请求,只有当库提供侧客户端的账号申请成功后,才具有创建路径的权限,进一步的,才能向库服务器上传库。

在一种实现方式中,在库提供侧客户端账号申请成功,向库服务器上传库之前,可以先创建路径,以将库上传至所创建的路径中。所述方法还可以包括:

当库提供侧客户端账号申请成功后,创建路径,以使库服务器对应所创建路径的路径信息,为库提供侧客户端配置读写权限;

获得库服务器为库提供侧客户端对应所创建路径配置的读写权限;

所述向库服务器上传库以及库的库标识的步骤,可以包括:

根据所创建的路径以及所配置的读写权限,向库服务器上传库以及库的库标识。

当库提供侧客户端账号申请成功后,即获得在所申请账号下创建路径的权限。当库提供侧客户端创建路径后,库服务器自动获得该库提供侧客户端所创建路径的路径信息,并在本地的配置文件中,对应该库提供侧客户端记录该路径信息,并分配读写权限。当库提供侧客户端获得所创建路径的读写权限后,可以将库上传至该所创建路径,以进行保存。

在一种实现方式中,库提供侧客户端创建路径后,可以向库应用侧客户端发送路径邀请信息,在所述创建路径的步骤之后,所述方法还可以包括:

向库应用侧客户端发送路径邀请信息,其中,路径邀请信息中包含库应用侧客户端的标识、路径信息以及第二权限信息,第二权限信息表征:库应用侧客户端的标识对应的库应用侧客户端具有基于路径信息访问对应的路径,以获取该路径中存储的库的权限。

该第二权限信息中可以包括对路径信息对应的路径中存储的库的读权限或写权限或读写权限,当第二权限信息中包括对该路径信息对应的路径的读权限时,库应用侧客户端对该路径信息对应的路径具有读权限;当第二权限信息中包括对该路径信息对应的路径的写权限时,库应用侧客户端对该路径信息对应的路径具有写权限;当第二权限信息中包括对该路径信息对应的路径的读写权限时,库应用侧客户端对该路径信息对应的路径具有读写权限。

库提供侧客户端路径创建完成后,可以马上向库应用侧客户端发送路径邀请信息,也可以不马上发送路径邀请信息,只要库提供侧客户端拥有对路径的读和/或写权限,可随时向库应用侧客户端发送路径邀请信息。

另一方面,本发明实施例提供了一种库的管理方法,可以应用于库管理系统中的库服务器,库管理系统还可以包括:库提供侧客户端和库应用侧客户端,如图3所示,可以包括如下步骤:

s301:接收库提供侧客户端上传的库以及库的库标识;

s302:为该库添加版本号;

s303:存储库、库的库标识以及版本号;

库服务器在存储库提供侧客户端上传的库、库的库标识以及版本号时,可以获得库提供侧客户端的库提供侧客户端的标识,对应库提供侧客户端的标识记录库提供侧客户端的操作记录。记录内容可以为:库提供侧客户端的标识1-时间1-上传-库标识1-版本号1。

s304:获得库应用侧客户端发送的携带第一库标识的版本号获得指令,其中,第一库标识为库应用侧客户端的待更新的库的库标识;

s305:获得第一库标识对应的待更新的库的最新版本号;

s306:向库应用侧客户端发送所获得的最新版本号以及最新版本号对应的库,以使库应用侧客户端接收库服务器返回的最新版本号,并判断最新版本号和库应用侧客户端存储的待更新的库的当前版本号是否一致;当判断最新版本号和当前版本号不一致时,获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库。

可以理解的是,在库服务器将最新版本号返回至库应用侧客户端时,同时也将最新版本号对应的库返回至库应用侧客户端,以使当库应用侧客户端判断最新版本号和当前版本号不一致时,获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库。

应用本发明实施例,库服务器接收并存储库提供侧客户端上传的库、库对应的库标识,为库添加版本号,并进行存储。在获得库应用侧客户端发送的携带第一库标识的版本号获得指令后,根据该版本号获得指令中的第一库标识,向库应用侧客户端发送待更新的库的最新版本号以及最新版本号对应的库,以使库应用侧客户端在确定本地存储的库需要更新时,自动根据最新版本号对应的库,自动更新本地存储的库。

在一种实现方式中,所述接收库提供侧客户端上传的库以及库的库标识的步骤,可以包括:

接收库提供侧客户端上传的库、库的库标识以及更改信息,其中,更改信息为:相对于自身版本号的前一版本号的库的更改信息;

所述存储库、库的库标识以及版本号的步骤,可以包括:

存储库、库的库标识、版本号以及更改信息。

库提供侧客户端在上传库的同时,上传库的更改信息,使得库服务器中存储的库的相关信息更加全面,有利于后续的库应用侧客户端根据库服务器所存储的库的相关信息,更好的了解库,并确定所需的库。

在一种实现方式中,所述接收库提供侧客户端上传的库以及库的库标识的步骤,可以包括:

接收库提供侧客户端上传的库、库的库标识以及更改级别,其中,更改级别用于表征:库应用侧客户端更新库后,是否需要修改对应的第一编译规则文件;

所述为库添加版本号的步骤,可以包括:

根据更改级别,为库添加版本号;

所述存储库、库的库标识以及版本号的步骤,可以包括:

存储库、库的库标识、版本号以及更改级别。

在库服务器中对应库存储库的更改级别,可以为库应用侧客户端在更新库的过程中提供便利,库应用侧客户端在更新库时,可以根据所需更新下载的库对应的更改级别,确定是否需要显示提示库应用侧客户端是否更新待更新的库的信息。当所需更新下载的库对应的更改级别较低时,则可以直接后台更新下载库。

在一种实现方式中,在所述接收库提供侧客户端上传的库以及库的库标识的步骤之前,所述方法还可以包括:

接收库提供侧客户端发送的第二账号申请请求,其中,第二账号申请请求携带库提供侧客户端的标识;

获得对应库提供侧客户端的标识的第一授权信息;

当第一授权信息包含表明库提供侧客户端账号申请成功的信息时,在本地存储的配置文件中添加库提供侧客户端的标识,并记录库提供侧客户端获得创建路径的权限的第三权限信息;

向库提供侧客户端发送包含第三权限信息的第二账号授权信息。

其中,第一授权信息可以是根据库提供侧客户端的标识设置的。库服务器中可以存储有库提供侧客户端的标识与权限的映射关系,以及库应用侧客户端的标识与权限的映射关系。该第三权限信息可以包括记录该库提供侧客户端可以在所申请账号下创建路径的权限信息。

可选地,所有的授权信息、权限信息以及库服务器中存储的映射关系的设置,也可以由审核员人工介入,例如,审核员可以设置或调整某一库应用侧客户端的权限。

该第一授权信息中还可以包含表明库提供侧客户端账号申请失败的信息,此时,库服务器可以向库提供侧客户端发送携带表明库提供侧客户端账号申请失败的信息的账号授权失败信息,以提示库提供侧客户端账号申请失败。后续的,库提供侧客户端可以继续向库服务器发送第二账号申请请求,直至库提供侧客户端账号申请成功为止。

可以理解的是,库提供侧客户端向库服务器申请账号主要是为了向库服务器上传库,以实现对库的保存,以用于为库应用侧客户端提供其所需的库。在一种实现方式中,所述方法还可以包括:

当确定库提供侧客户端创建路径后,获得库提供侧客户端所创建路径的路径信息;

对应库提供侧客户端的标识,在配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录读写权限。

可以理解的,当库提供侧客户端对所创建路径具有写权限时,才能向该所创建路径中写入库,以进行库的保存。当库服务器确定库提供侧客户端创建路径后,默认为库提供侧客户端所创建路径的路径信息配置读权限以及写权限。

在一种实现方式中,库提供侧客户端向库应用侧客户端发送路径邀请信息时,库应用侧客户端可以直接获得该路径邀请信息对应的路径信息的路径的权限。无需经过库服务器对应的审核员的审核,库服务器直接对应该路径邀请信息为库应用侧客户端授权,即在本地的配置文件中,对应库应用侧客户端的标识,记录该路径邀请信息对应的路径信息以及对应的权限。所述方法还可以包括:

获得库提供侧客户端针对库应用侧客户端发送的路径邀请信息,其中,路径邀请信息为库提供侧客户端创建路径后发送的信息,路径邀请信息中包含库应用侧客户端的标识、所创建路径的路径信息以及第四权限信息;

对应库应用侧客户端的标识,在配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录第四权限信息。

第四权限信息由库提供侧客户端确定,可包括读权限、写权限或读写权限。

库应用侧客户端从库服务器中更新下载库前,也需要先申请账号,在账号申请成功后,登录该账号后,才可以在一定权限内使用库服务器中存储的库。在一种实现方式中,在所述获得库应用侧客户端发送的携带第一库标识的版本号获得指令的步骤之前,所述方法还可以包括:

接收库应用侧客户端发送的第一账号申请请求,其中,第一账号申请请求携带库应用侧客户端的标识;

获得对应库应用侧客户端的标识的第二授权信息;

当第二授权信息包含表明库应用侧客户端账号申请成功的信息时,在配置文件中添加库应用侧客户端的标识,并记录库应用侧客户端获得申请路径的第五权限信息;

向库应用侧客户端发送包含第五权限信息的第一账号授权信息。

该第五权限信息中可以包含该库应用侧客户端可以申请路径的信息,或者可以包括该库应用侧客户端在账号申请成功后对预定路径的读权限的信息,等等。该第五权限信息可以由库服务器的审核员预先设置。

当库应用侧客户端需要下载库时,至少需要获得对存储该库的路径的读权限,当库应用侧客户端未拥有对该路径的读权限时,需要首先向库服务器申请对该路径的读权限。当库服务器获得库应用侧客户端对该路径的路径申请请求时,需要对该库应用侧客户端进行审核,以确定是否对该库应用侧客户端进行授权,以使该库应用侧客户端可以获得该路径的读权限。在一种实现方式中,所述方法还可以包括:

接收库应用侧客户端发送的关于第一库标识对应的待更新的库的路径申请请求,其中,路径申请请求中包含库应用侧客户端的标识、第一库标识对应的待更新的库的路径信息,路径申请请求为库应用侧客户端账号申请成功后发送的;

获得对应库应用侧客户端的标识的第三授权信息;

当第三授权信息包含表明库应用侧客户端路径申请成功的信息时,依据库应用侧客户端的标识,在配置文件中添加待更新的库的路径信息,并记录库应用侧客户端具有读取第一库标识所对应库的最新版本号的第六权限信息;

向库应用侧客户端发送包含第六权限信息的第一路径授权信息。

第三授权信息为库服务器根据库应用侧客户端的标识以及上述的路径信息设置的。该第三授权信息还可以包含表明库应用侧客户端路径申请失败的信息,此时,库服务器可以向库应用侧客户端发送路径授权失败信息,以提示库应用侧客户端路径授权失败。后续的,库应用侧客户端可以继续向库服务器发送路径申请请求,直至所申请路径被授权为止。

该第六权限信息可以由库服务器的审核员预先设置。

在一种实现方式中,库应用侧客户端可能会出现无法正常使用更新后的库的现象,此时,库应用侧客户端会向库服务器发送更换原版本库指令,该更换原版本库指令中携带第一库标识和原版本号,库服务器获得该更换原版本库指令后,需要向库应用侧客户端发送该更换原版本库指令对应的库,所述方法还可以包括:

接收库应用侧客户端发送的更换原版本库指令,其中,更换原版本库指令中携带库应用侧客户端的标识、第一库标识和原版本号;

根据原版本号,获得第一库标识对应的原版本库;

根据库应用侧客户端的标识,将原版本库发送至库应用侧客户端。

相应于上述方法实施例,如图4所示,本发明实施例还提供了一种库的更新装置,可以应用于库管理系统中的库应用侧客户端,库管理系统还可以包括:库服务器和库提供侧客户端,如图4所示,所述装置包括:

第一确定模块410,用于从第一编译规则文件中确定待更新的库的第一库标识;

第一获得模块420,用于根据所述第一库标识获得所对应待更新的库的当前版本号;

第一发送模块430,用于向所述库服务器发送携带所述第一库标识的版本号获得指令,其中,所述库服务器用于存储所述库提供侧客户端上传的库、库对应的库标识以及版本号;

第一接收模块440,用于接收所述库服务器返回的所述待更新的库对应的最新版本号;

第一判断模块450,用于判断所述最新版本号和所述当前版本号是否一致;

第一更新模块460,用于当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

应用本发明实施例,库应用侧客户端从第一编译规则文件中确定待更新的库的第一库标识;根据第一库标识获得所对应待更新的库的当前版本号;向库服务器发送携带第一库标识的版本号获得指令,其中,库服务器用于存储库提供侧客户端上传的库、以及库对应的库标识以及版本号;接收库服务器返回的待更新的库对应的最新版本号;判断最新版本号和当前版本号是否一致;当判断最新版本号和当前版本号不一致时,获得最新版本号对应的库,并根据最新版本号对应的库,更新本地存储的当前版本号对应的待更新的库。可见,本发明实施例中的库应用侧客户端在对第一编译规则文件进行编译转换的过程中,可以根据所确定的待更新的库的第一库标识,自动检测库服务器是否存储有版本号高于库应用侧客户端本地的当前版本号的该第一库标识对应的库,并在检测到存在时,可以自动对库应用侧客户端本地存储的库进行更新,无需库提供侧客户端的通知,库应用侧客户端在应用库时能够主动识别到库的更新,并对库进行自动更新。

在一种实现方式中,所述第一确定模块410包括第一获得单元、操作执行单元、中断获得单元、生成单元、第二获得单元和执行生成单元;

所述第一获得单元,用于获得所述第一编译规则文件以及获得编译转换指令;

所述操作执行单元,用于响应所述编译转换指令,对所述第一编译规则文件执行编译转换操作;

所述中断获得单元,用于当确定所述第一编译规则文件中包含更新标记时,中断所述编译转换操作,获得所述待更新的库的第一库标识;

所述生成单元,用于在所述获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库的步骤之后,继续对所述第一编译规则文件执行所述编译转换操作,生成第二编译规则文件;

所述第二获得单元,用于获得编译指令;

所述执行生成单元,用于响应所述编译指令,依据所述第二编译规则文件对待编译源代码执行编译操作,生成可执行文件。

在一种实现方式中,所述装置还可以包括第二判断模块、第二获得模块、第二发送模块和第二接收模块;

所述第二判断模块,用于在所述向所述库服务器发送携带所述第一库标识的版本号获得指令的步骤之前,判断所述编译转换指令中是否携带更换原版本库标记,其中,所述更换原版本库标记包括:在针对所述当前版本号对应的待更新的库生成的可执行文件运行失败时所添加的标记;

所述第二获得模块,用于当判断所述编译转换指令中携带更换原版本库标记时,获得所述第一库标识对应的待更新的库的原版本号;

所述第二发送模块,用于向所述库服务器发送更换原版本库指令,其中,所述更换原版本库指令中携带所述库应用侧客户端的标识、所述第一库标识以及所述原版本号,以使所述库服务器接收所述更换原版本库指令后,根据所述原版本号确定所述第一库标识对应的原版本库,并根据所述库应用侧客户端的标识将所述原版本库返回至所述库应用侧客户端;

所述第二接收模块,用于接收所述库服务器返回的所述原版本号对应的所述原版本库,并将本地所存储的当前版本号对应的待更新的库更新为所述原版本号对应的原版本库;

当判断所述编译转换指令中未携带所述更换原版本库标记时,触发所述第一发送模块430。

在一种实现方式中,所述装置还包括第三接收模块和第一显示模块;

所述第三接收模块,用于当判断所述最新版本号和所述当前版本号不一致时,接收所述库服务器返回的所有版本号高于所述当前版本号的高版本库以及每个高版本库对应的更改信息,其中,所述库服务器中还存储有每个高版本库对应的更改信息,所述每个高版本库对应的更改信息均为:相对于自身版本号的前一版本号的库的更改信息;

所述第一显示模块,用于显示第一更新提示信息,其中,所述第一更新提示信息中包括每个高版本库对应的版本号以及更改信息;

所述第一更新模块460包括接收单元和更新单元;

所述接收单元,用于获得基于每个高版本库对应的更改信息的第一库更新指令,其中,所述第一库更新指令中包括第一高版本库的第一版本号;

所述更新单元,用于根据所述第一库更新指令,获得所述第一版本号对应的第一高版本库,并将本地存储的所述当前版本号对应的待更新的库更新为所述第一高版本库。

在一种实现方式中,所述装置还可以包括第三获得模块和第二显示模块;

所述第三获得模块,用于当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库的更改级别,所述更改级别用于表征:所述库应用侧客户端更新完所述最新版本号对应的库后,需要修改所述第一编译规则文件或不需要修改所述第一编译规则文件;

所述第二显示模块,用于当所述更改级别表征:所述库应用侧客户端更新完所述最新版本号对应的库后,需要修改所述第一编译规则文件时,显示第二更新提示信息,所述第二更新提示信息中包含:提示所述库应用侧客户端是否更新所述待更新的库的信息。

在一种实现方式中,所述装置还可以包括第三判断模块、第三发送模块和接收存储模块;

所述第三判断模块,用于在所述根据所述第一库标识获得所对应待更新的库的当前版本号的步骤之前,判断本地是否存在所述第一库标识对应的待更新的库;当判断本地存在所述第一库标识对应的待更新的库时,触发所述第一获得模块420;

所述第三发送模块,用于当判断本地不存在所述第一库标识对应的待更新的库时,向所述库服务器发送携带所述第一库标识的库下载指令;

所述接收存储模块,用于接收并存储所述库服务器返回的所述第一库标识对应的库。

在一种实现方式中,所述装置还可以包括文件生成模块;

所述文件生成模块,用于在所述接收并存储所述库服务器返回的所述第一库标识对应的库的步骤之后,对应所述第一库标识,生成隐藏文件,其中,所述隐藏文件中包含所接收并存储的库的第一库标识以及对应的版本号。

在一种实现方式中,所述装置还可以包括第四发送模块和第四接收模块;

所述第四发送模块,用于在所述接收所述库服务器返回的所述待更新的库对应的最新版本号的步骤之前,向所述库服务器发送第一账号申请请求,其中,所述第一账号申请请求携带所述库应用侧客户端的标识;

所述第四接收模块,用于接收所述库服务器依据所述库应用侧客户端的标识发送的第一账号授权信息,其中,所述第一账号授权信息中包含:表明所述库应用侧客户端具有获得所述第一库标识所对应库的最新版本号的权限的信息。

在一种实现方式中,所述装置还可以包括第五发送模块和第五接收模块;

所述第五发送模块,用于当所述库应用侧客户端账号申请成功后,向所述库服务器发送关于所述第一库标识对应的待更新的库的路径申请请求,其中,所述路径申请请求中包含所述库应用侧客户端的标识以及所述第一库标识对应的待更新的库的路径信息;

所述第五接收模块,用于接收所述库服务器依据所述库应用侧客户端的标识发送的第一路径授权信息,其中,所述第一路径授权信息中包含:表明所述库应用侧客户端具有基于所述路径信息访问对应的路径,以获得所述第一库标识对应库的最新版本号的权限的信息。

在一种实现方式中,所述装置还可以包括第六接收模块;

所述第六接收模块,用于当所述库应用侧客户端账号申请成功后,接收库提供侧客户端发送的路径邀请信息,其中,所述路径邀请信息为所述库提供侧客户端创建路径后发送的信息,所述路径邀请信息中包含所述库应用侧客户端的标识、路径的路径信息以及第一权限信息,所述第一权限信息表征:所述库应用侧客户端的标识对应的库应用侧客户端具有基于所述路径信息访问对应的路径,以获取所述路径中存储的库的权限。

相应于上述方法实施例,如图5所示,本发明实施例还提供了一种库的上传装置,应用于库管理系统的库提供侧库提供侧客户端,所述库管理系统还包括:库服务器和库应用侧库应用侧客户端,所述装置可以包括:

上传模块510,用于向所述库服务器上传库以及所述库的库标识,以使库服务器存储所述库以及所述库的库标识,并为所述库添加版本号。

应用本发明实施例,向库服务器上传库以及库的库标识,以使库服务器存储库以及库的库标识,并为库添加版本号。可见,库提供侧客户端可以向库服务器上传库以及库的标识,库服务器可以存储该库以及库标识,并为库添加版本号,使得在库应用侧客户端进行库的更新流程时,可以根据库服务器存储的库的版本号,进行库的自动更新。

在一种实现方式中,如图5所示,所述装置还可以包括检测模块520;

所述检测模块520,用于在所述向所述库服务器上传库以及所述库的库标识的步骤之前,检测所述库是否为预定格式;当检测所述库为预定格式时,触发所述上传模块510。

在一种实现方式中,所述上传模块510,具体用于向所述库服务器上传所述库、所述库的库标识以及更改信息,其中,所述更改信息为:相对于自身版本号的前一版本号的库的更改信息。

在一种实现方式中,所述上传模块510,具体用于向所述库服务器上传库、所述库的库标识以及更改级别,其中,所述更改级别用于表征:库应用侧客户端更新所述库后,是否需要修改对应的第一编译规则文件。

在一种实现方式中,所述装置还可以包括第六发送模块和第七接收模块;

所述第六发送模块,用于在所述向所述库服务器上传库以及所述库的库标识的步骤之前,向所述库服务器发送第二账号申请请求,其中,所述第二账号申请请求携带所述库提供侧客户端的标识;

所述第七接收模块,用于接收所述库服务器依据所述库提供侧客户端的标识发送的所述第二账号授权信息,其中,所述第二账号授权信息包含:表明所述库提供侧客户端的标识对应的库提供侧客户端具有创建路径的权限的信息。

在一种实现方式中,所述装置还可以包括路径创建模块和权限获得模块;

所述路径创建模块,用于当所述库提供侧客户端账号申请成功后,创建路径,以使所述库服务器对应所创建路径的路径信息,为所述库提供侧客户端配置读写权限;

所述权限获得模块,用于获得所述库服务器为所述库提供侧客户端对应所创建路径配置的读写权限;

所述上传模块510,具体用于根据所创建路径以及所配置的读写权限,向所述库服务器上传库以及所述库的库标识。

在一种实现方式中,所述装置还可以包括第七发送模块;

所述第七发送模块,用于在所述创建路径的步骤之后,向库应用侧客户端发送路径邀请信息,其中,所述路径邀请信息中包含所述库应用侧客户端的标识、所述路径信息以及第二权限信息,所述第二权限信息表征:所述库应用侧客户端的标识对应的库应用侧客户端具有基于所述路径信息访问对应的路径,以获取所述路径中存储的库的权限。

相应于上述方法实施例,本发明实施例提供了一种库的管理方法,如图6所示,可以应用于库管理系统中的库服务器,所述库管理系统还包括:库提供侧客户端和库应用侧客户端,所述装置可以包括:

第八接收模块610,用于接收所述库提供侧客户端上传的库以及所述库的库标识;

第一添加模块620,用于为所述库添加版本号;

存储模块630,用于存储所述库、所述库的库标识以及版本号;

第四获得模块640,用于获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令,其中,所述第一库标识为所述库应用侧客户端的待更新的库的库标识;

第五获得模块650,用于获得所述第一库标识对应的待更新的库的最新版本号;

第八发送模块660,用于向所述库应用侧客户端发送所获得的最新版本号以及所述最新版本号对应的库,以使所述库应用侧客户端接收所述库服务器返回的所述最新版本号,并判断所述最新版本号和所述库应用侧客户端存储的所述待更新的库的当前版本号是否一致;当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

应用本发明实施例,库服务器接收并存储库提供侧客户端上传的库、库对应的库标识,为库添加版本号,并进行存储。在获得库应用侧客户端发送的携带第一库标识的版本号获得指令后,根据该版本号获得指令中的第一库标识,向库应用侧客户端发送待更新的库的最新版本号以及最新版本号对应的库,以使库应用侧客户端在确定本地存储的库需要更新时,自动根据最新版本号对应的库,自动更新本地存储的库。

在一种实现方式中,所述第八接收模块610,具体用于接收所述库提供侧客户端上传的库、所述库的库标识以及更改信息,其中,所述更改信息为:相对于自身版本号的前一版本号的库的更改信息;

所述存储模块630,具体用于存储所述库、所述库的库标识、版本号以及更改信息。

在一种实现方式中,所述第八接收模块610,具体用于接收所述库提供侧客户端上传的库、所述库的库标识以及更改级别,其中,所述更改级别用于表征:库应用侧客户端更新所述库后,是否需要修改对应的第一编译规则文件;

所述第一添加模块620,具体用于根据所述更改级别,为所述库添加版本号;

所述存储模块630,具体用于存储所述库、所述库的库标识、版本号以及更改级别。

在一种实现方式中,所述装置还可以包括所述装置还包括第九接收模块、第六获得模块、第二添加模块和第九发送模块;

所述第九接收模块,用于在所述接收所述库提供侧客户端上传的库以及所述库的库标识的步骤之前,接收所述库提供侧客户端发送的第二账号申请请求,其中,所述第二账号申请请求携带所述库提供侧客户端的标识;

所述第六获得模块,用于获得对应所述库提供侧客户端的标识的第一授权信息;

所述第二添加模块,用于当所述第一授权信息包含表明所述库提供侧客户端账号申请成功的信息时,在本地存储的配置文件中添加所述库提供侧客户端的标识,并记录所述库提供侧客户端获得创建路径的权限的第三权限信息;

所述第九发送模块,用于向所述库提供侧客户端发送包含所述第三权限信息的第二账号授权信息。

在一种实现方式中,所述装置还可以包括路径信息获得模块和第三添加模块;

所述路径信息获得模块,用于当确定所述库提供侧客户端创建路径后,获得所述库提供侧客户端所创建路径的路径信息;

所述第三添加模块,用于对应所述库提供侧客户端的标识,在所述配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录读写权限。

在一种实现方式中,所述装置还可以包括第七获得模块和第四添加模块;

所述第七获得模块,用于获得库提供侧客户端针对所述库应用侧客户端发送的路径邀请信息,其中,所述路径邀请信息为所述库提供侧客户端创建路径后发送的信息,所述路径邀请信息中包含所述库应用侧客户端的标识、所创建路径的路径信息以及第四权限信息;

所述第四添加模块,用于对应所述库应用侧客户端的标识,在所述配置文件中添加所创建路径的路径信息,并对应所创建路径的路径信息记录所述第四权限信息。

在一种实现方式中,所述装置还可以包括第十接收模块、第八获得模块、第十发送模块和第五添加模块;

所述第十接收模块,用于在所述获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令的步骤之前,接收所述库应用侧客户端发送的第一账号申请请求,其中,所述第一账号申请请求携带所述库应用侧客户端的标识;

所述第八获得模块,用于获得对应所述库应用侧客户端的标识的第二授权信息;

所述第五添加模块,用于当所述第二授权信息包含表明所述库应用侧客户端账号申请成功的信息时,在所述配置文件中添加所述库应用侧客户端的标识,并记录所述库应用侧客户端获得申请路径的第五权限信息;

所述第十发送模块,用于向所述库应用侧客户端发送包含所述第五权限信息的第一账号授权信息。

在一种实现方式中,所述装置还可以包括第十一接收模块、第九获得模块、第十一发送模块和第六添加模块;

所述第十一接收模块,用于接收所述库应用侧客户端发送的关于所述第一库标识对应的待更新的库的路径申请请求,其中,所述路径申请请求中包含所述库应用侧客户端的标识、所述第一库标识对应的待更新的库的路径信息,所述路径申请请求为所述库应用侧客户端账号申请成功后发送的;

所述第九获得模块,用于获得对应所述库应用侧客户端的标识的第三授权信息;

所述第六添加模块,用于当所述第三授权信息包含表明所述库应用侧客户端路径申请成功的信息时,依据所述库应用侧客户端的标识,在所述配置文件中添加所述待更新的库的路径信息,并记录所述库应用侧客户端具有读取所述第一库标识所对应库的最新版本号的第六权限信息;

所述第十一发送模块,用于向所述库应用侧客户端发送包含所述第六权限信息的第一路径授权信息。

在一种实现方式中,所述装置还可以包括第十二接收模块、第十获得模块、第二确定模块和十二发送模块;

所述第十二接收模块,用于接收所述库应用侧客户端发送的更换原版本库指令,其中,所述更换原版本库指令中携带所述库应用侧客户端的标识、所述第一库标识和原版本号;

所述第十获得模块,用于根据所述原版本号,获得所述第一库标识对应的原版本库;

所述第二确定模块,用于根据所述原版本号,获得所述第一库标识对应的原版本库;

所述十二发送模块,用于根据所述库应用侧客户端的标识,将所述原版本库发送至所述库应用侧客户端。

相应于上述方法实施例,如图7所示,本发明实施例还提供了一种库管理系统,所述库管理系统包括库提供侧客户端710、库服务器720和库应用侧客户端730,所述系统可以包括:

所述库提供侧客户端710,用于向所述库服务器上传库以及所述库的库标识;

所述库服务器720,用于接收所述库提供侧客户端上传的库以及所述库的库标识;为所述库添加版本号;存储所述库、所述库的库标识以及版本号;还用于获得所述库应用侧客户端发送的携带第一库标识的版本号获得指令,其中,所述第一库标识为所述库应用侧客户端的待更新的库的库标识;获得所述第一库标识对应的待更新的库的最新版本号;向所述库应用侧客户端发送所获得的最新版本号以及所述最新版本号对应的库;

所述库应用侧客户端730,用于从第一编译规则文件中确定待更新的库的第一库标识;根据所述第一库标识获得所对应待更新的库的当前版本号;向所述库服务器发送携带所述第一库标识的版本号获得指令;接收所述库服务器返回的所述待更新的库对应的最新版本号;判断所述最新版本号和所述当前版本号是否一致;当判断所述最新版本号和所述当前版本号不一致时,获得所述最新版本号对应的库,并根据所述最新版本号对应的库,更新本地存储的所述当前版本号对应的待更新的库。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1