一种共享库管理方法和系统转让专利

申请号 : CN201110182142.0

文献号 : CN102393845B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈春松

申请人 : 北京新媒传信科技有限公司

摘要 :

本发明公开了一种共享库管理方法和系统。所述方法包括:将JDK的和共享库的文件上传到版本控制服务器中;将JDK的描述信息、共享库描述信息和共享库依赖信息保存到信息数据库中;当需要获取指定JDK时,先到信息数据库中查找对应的描述信息,根据描述信息从版本控制服务器获取该指定JDK的文件;当需要获取指定共享库时,先到信息数据库中查找对应的共享库描述信息和共享库依赖信息,根据共享库描述信息从版本控制服务器获取该指定共享库的文件,根据共享库依赖信息获取被该指定共享库所依赖的其它包的文件。本发明的技术方案能合理地管理JDK和共享库,以便能被其他服务快速、一致地引用。

权利要求 :

1.一种共享库管理方法,其特征在于,该方法包括:将JDK的文件上传到版本控制服务器的指定位置,将共享库的文件上传到版本控制服务器中的对应共享库类别的存放位置下;

将JDK的描述信息保存到信息数据库中;其中,JDK的描述信息包括:JDK的标示和JDK在版本控制服务器上的存放位置;

将共享库描述信息和共享库依赖信息保存到信息数据库中;

所述共享库的描述信息包括:共享库的类别信息、共享库信息、具体版本的共享库信息、具体版本的共享库包含的文件信息、具体版本共享库的属性信息;其中共享库的类别信息中包含共享库在版本控制服务器中的位置信息;

所述共享库的依赖信息包括:具体版本共享库的库标示和被依赖的共享库的库标示;

当需要获取指定JDK时,先到信息数据库中查找对应的描述信息,根据描述信息从版本控制服务器获取该指定JDK的文件;

当需要获取指定共享库时,先到信息数据库中查找对应的共享库描述信息和共享库依赖信息,根据共享库描述信息从版本控制服务器获取该指定共享库的文件,根据共享库依赖信息获取被该指定共享库所依赖的其它包的文件;

在指定类别中增加一个共享库:找到该共享库所属的类别,如果不存在,则创建该类别;创建共享库,将共享库的文件上传到版本控制服务器;如果该共享库依赖于其他的共享库,则还需要增加被依赖的所述其他共享库。

2.根据权利要求1所述的方法,其特征在于,

所述共享库包括:第三方包和共享服务;其中,所述共享服务包括:公共服务、工具服务、业务服务;

其中工具服务和业务服务器的描述信息还包括:方法信息。

3.根据权利要求1或2所述的方法,其特征在于,

所述JDK的标示包括:JDK版本标示和JDK版本;

所述共享库的类别信息的数据结构为:分区标示、分区名称、类型掩码、针对该区的最小值、针对该区的最大标示,以及类别标示、类别名称、类别描述、类别掩码、父类别、在版本控制服务器中的位置信息;

所述共享库信息的数据结构为:库标示、类别标示、库名称、库描述、库类型、库提供商、官网、引入者、引入原因、服务是否过时;

所述具体版本的共享库信息的数据结构为:具体版本的库标示、库标示、库版本、兼容版本号、该版本的特别描述、JDK版本标示、上传者、上传原因、服务标示、是否已过时、许可类型;

具体版本的共享库包含的文件信息的数据结构为:具体版本的库标示、文件类型、文件名、文件路径;

具体版本共享库的属性信息的数据结构为:具体版本的库标示、属性名称、服务类型序列号、属性类型、属性值。

4.根据权利要求3所述的方法,其特征在于,

所述类别标示由64个比特组成,其中1-3比特表示第一级类别、4-8比特表示第二级类别、9-16比特表示第三级类别、17-24比特表示第四级类别、25-32比特表示第五级类别、第

33-48比特表示第六级类别、第49-56比特表示库标示、第57-64比特标示库版本。

5.根据权利要求3所述的方法,其特征在于,该方法进一步包括:在共享库类别中增加一条记录;

和/或,

废弃指定版本的共享库;

和/或,

删除指定版本的共享库;

和/或,

展示指定版本的共享库的依赖关系。

6.一种共享库管理系统,其特征在于,该系统包括:版本控制服务器、信息数据库和访问管理中心,其中:版本控制服务器,用于在自身的指定位置中保存JDK,在自身的指定位置中按类别保存共享库;

信息数据库,用于保存JDK的描述信息,以及共享库的描述信息和共享库的依赖信息;

其中,JDK的描述信息包括:JDK的标示和JDK在版本控制服务器上的存放位置;所述共享库的描述信息包括:共享库的类别信息、共享库信息、具体版本的共享库信息、具体版本的共享库包含的文件信息、具体版本共享库的属性信息;其中共享库的类别信息中包含共享库在版本控制服务器中的位置信息;所述共享库的依赖信息包括:共享库的库标示和被依赖的共享库的库标示;

访问管理中心,用于在需要获取指定JDK时,先到信息数据库中查找对应的描述信息,根据描述信息从版本控制服务器获取该指定JDK的文件;用于在需要获取指定共享库时,先到信息数据库中查找对应的共享库描述信息和共享库依赖信息,根据共享库描述信息从版本控制服务器获取该指定共享库的文件,根据共享库依赖信息获取被该指定共享库所依赖的其它包的文件;用于在指定类别中增加一个共享库:找到该共享库所属的类别,如果不存在,则创建该类别;创建共享库,将共享库的文件上传到版本控制服务器;如果该共享库依赖于其他的共享库,则还需要增加被依赖的所述其他共享库。

7.根据权利要求6所述的系统,其特征在于,

所述共享库包括:第三方包和共享服务;其中,所述共享服务包括:公共服务、工具服务、业务服务;

其中工具服务和业务服务器的描述信息还包括:方法信息。

8.根据权利要求6或7所述的系统,其特征在于,所述信息数据库中按如下数据结构保存信息:所述JDK的标示包括:JDK版本标示和JDK版本;

所述共享库的类别信息的数据结构为:分区标示、分区名称、类型掩码、针对该区的最小值、针对该区的最大标示,以及类别标示、类别名称、类别描述、类别掩码、父类别、在版本控制服务器中的位置信息;

所述共享库信息的数据结构为:库标示、类别标示、库名称、库描述、库类型、库提供商、官网、引入者、引入原因、服务是否过时;

所述具体版本的共享库信息的数据结构为:具体版本的库标示、库标示、库版本、兼容版本号、该版本的特别描述、JDK版本标示、上传者、上传原因、服务标示、是否已过时、许可类型;

具体版本的共享库包含的文件信息的数据结构为:具体版本的库标示、文件类型、文件名、文件路径;

具体版本共享库的属性信息的数据结构为:具体版本的库标示、属性名称、服务类型序列号、属性类型、属性值。

9.根据权利要求8所述的系统,其特征在于,在所述信息数据库中,所述类别标示由64个比特组成,其中1-3比特表示第一级类别、4-8比特表示第二级类别、9-16比特表示第三级类别、17-24比特表示第四级类别、25-32比特表示第五级类别、第

33-48比特表示第六级类别、第49-56比特表示库标示、第57-64比特标示库版本。

10.根据权利要求8所述的系统,其特征在于,所述访问管理中心,进一步用于在共享库类别中增加一条记录;

和/或,

废弃指定版本的共享库;

和/或,

删除指定版本的共享库;

和/或,

展示指定版本的共享库的依赖关系。

说明书 :

一种共享库管理方法和系统

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及一种共享库管理方法和系统。

背景技术

[0002] 在互联网时代,消费者对虚拟服务的需求日益提高,服务提供商对新服务的快速响应能力是吸引消费者,提高消费者忠诚度的重要指标。
[0003] 但在快速开发、快速部署服务的过程中,会遇到以下问题:越来越多的第三方库将被引入,过去ad-hoc的引入方式,导致第三方包在引入上存在重复引入、不兼容引入、不一致引入等问题;这些问题为今后的服务的部署造成潜在的问题;因此如何在全公司内合理地、正确地、一致性地使用和管理第三方库,是公司在开发中面临的重要问题。此外,对于越来越多的服务资源;如何有效地利用、复用现有服务,是对提升公司资源的利用率,降低成本起到关键作用。

发明内容

[0004] 本发明提供了一种共享库管理方法,该方法能合理地管理JDK和共享库,以便能被其他服务快速、一致地引用。
[0005] 本发明还提供了一种共享库管理系统,该系统能合理地管理JDK和共享库,以便能被其他服务快速、一致地引用。
[0006] 为达到上述目的,本发明的技术方案是这样实现的:
[0007] 本发明公开了一种共享库管理方法,该方法包括:
[0008] 将JDK的文件上传到版本控制服务器的指定位置,将共享库的文件上传到版本控制服务器中的对应共享库类别的存放位置下;
[0009] 将JDK的描述信息保存到信息数据库中;其中,JDK的描述信息包括:JDK的标示和JDK在版本控制服务器上的存放位置;
[0010] 将共享库描述信息和共享库依赖信息保存到信息数据库中;
[0011] 所述共享库的描述信息包括:共享库的类别信息、共享库信息、具体版本的共享库信息、具体版本的共享库包含的文件信息、具体版本共享库的属性信息;其中共享库的类别信息中包含共享库在版本控制服务器中的位置信息;
[0012] 所述共享库的依赖信息包括:共享库的库标示和被依赖的共享库的库标示;
[0013] 当需要获取指定JDK时,先到信息数据库中查找对应的描述信息,根据描述信息从版本控制服务器获取该指定JDK的文件;
[0014] 当需要获取指定共享库时,先到信息数据库中查找对应的共享库描述信息和共享库依赖信息,根据共享库描述信息从版本控制服务器获取该指定共享库的文件,根据共享库依赖信息获取被该指定共享库所依赖的其它包的文件。
[0015] 本发明还提供了一种共享库管理系统,该系统包括:版本控制服务器、信息数据库和访问管理中心,其中:
[0016] 版本控制服务器,用于在自身的指定位置中保存JDK,在自身的指定位置中按类别保存共享库;
[0017] 信息数据库,用于保存JDK的描述信息,以及共享库的描述信息和共享库的依赖信息;
[0018] 其中,JDK的描述信息包括:JDK的标示和JDK在版本控制服务器上的存放位置;所述共享库的描述信息包括:共享库的类别信息、共享库信息、具体版本的共享库信息、具体版本的共享库包含的文件信息、具体版本共享库的属性信息;其中共享库的类别信息中包含共享库在版本控制服务器中的位置信息;所述共享库的依赖信息包括:共享库的库标示和被依赖的共享库的库标示;
[0019] 访问管理中心,用于在需要获取指定JDK时,先到信息数据库中查找对应的描述信息,根据描述信息从版本控制服务器获取该指定JDK的文件;用于在需要获取指定共享库时,先到信息数据库中查找对应的共享库描述信息和共享库依赖信息,根据共享库描述信息从版本控制服务器获取该指定共享库的文件,根据共享库依赖信息获取被该指定共享库所依赖的其它包的文件。
[0020] 由上述可见,本发明这种将JDK和共享库保存到版本控制服务器上,将将JDK的描述信息以及共享库的描述信息和共享库的依赖信息保存到信息数据库中,当需要获取某个包时,首先到信息数据库上获取相关信息,然后从版本控制服务器获取具体文件的技术方案,能合理地管理JDK和共享库,以便能被其他服务快速、一致地引用。

附图说明

[0021] 图1是本发明实施例中的服务开发框架示意图;
[0022] 图2是本发明实施例中的具体的依赖关系的示意图;
[0023] 图3是本发明实施例中的一种共享库管理方法的流程图;
[0024] 图4是本发明实施例中的一种共享库管理系统的组成结构示意图。

具体实施方式

[0025] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0026] 图1是本发明实施例中的服务开发框架示意图。在图1中,各个部分的描述如下:
[0027] ·开发人员
[0028] ·用来开发服务
[0029] ·管理人员
[0030] ·用来查看、监测服务的各种信息。
[0031] ·服务开发环境
[0032] ·用来快速开发服务
[0033] ·创建服务,并产生服务描述信息。
[0034] ·产生服务代码框架,应用服务编码规则。
[0035] ·查询现有服务
[0036] ·编译、打包、发布服务
[0037] ·验证服务一致性
[0038] ·浏览器
[0039] ·管理人员用来通过web服务器浏览服务信息。
[0040] ·服务包
[0041] ·Jar包,用来发布服务
[0042] ·版本控制服务器
[0043] ·用来保存服务代码,服务发布包
[0044] ·应用服务器
[0045] ·用来运行服务
[0046] ·服务信息数据库
[0047] ·保存服务描述信息
[0048] ·保存服务依赖信息
[0049] ·保存服务运行日志
[0050] ·Web服务器
[0051] ·实现服务的查询、监测。
[0052] 服务要正常运行,必须依赖其他资源,一般情况下,其依赖可以有以下几类:
[0053] ·JDK依赖
[0054] ·共享库依赖
[0055] ·第三方包依赖
[0056] ·共享服务依赖
[0057] ·公共服务依赖
[0058] ·工具服务依赖
[0059] ·业务服务依赖
[0060] ·兄弟服务依赖
[0061] 可见服务正常运行可能依赖的包有JDK和共享库,其中,共享库包括:第三方包和共享服务;所述共享服务又包括:公共服务、工具服务、业务服务。
[0062] 除了对包的依赖,服务还有对协议、标准的依赖。但一般情况下,对协议、标准的依赖可以最终转换成对协议、标准实现包的依赖,因为特定版本的协议、标准实现包一定对应一定版本的协议、标准,因此对协议、标准的依赖性就可以间接表示成对包的依赖性[0063] 图2是本发明实施例中的具体的依赖关系的示意图。由图2可以看出JDK不依赖于其他任何包。
[0064] 接下来对本发明中如果管理被依赖的JDK和共享库,以便其他服务能快速、一致地引用进行说明。
[0065] 图3是本发明实施例中的一种共享库管理方法的流程图。如图3所示,包括:
[0066] 301,将JDK的文件上传到版本控制服务器的指定位置,将共享库的文件上传到版本控制服务器中的对应共享库类别的存放位置下。
[0067] 302,将JDK的描述信息保存到信息数据库中。
[0068] 其中,JDK的描述信息包括:JDK的标示和JDK在版本控制服务器上的存放位置;
[0069] 303,将共享库描述信息和共享库依赖信息保存到信息数据库中。
[0070] 其中,所述共享库的描述信息包括:共享库的类别信息、共享库信息、具体版本的共享库信息、具体版本的共享库包含的文件信息、具体版本共享库的属性信息;其中共享库的类别信息中包含共享库在版本控制服务器中的位置信息;
[0071] 所述共享库的依赖信息包括:共享库的库标示和被依赖的共享库的库标示;
[0072] 304,当需要获取指定JDK时,先到信息数据库中查找对应的描述信息,根据描述信息从版本控制服务器获取该指定JDK的文件。
[0073] 305,当需要获取指定共享库时,先到信息数据库中查找对应的共享库描述信息和共享库依赖信息,根据共享库描述信息从版本控制服务器获取该指定共享库的文件,根据共享库依赖信息获取被该指定共享库所依赖的其它包的文件。
[0074] 下面对为实现JDK和共享库的合理管理,在信息数据库上保存这些信息时所采用的数据结构进行说明:
[0075] 1.JDK
[0076] 为公司需要支持的JDK版本建立一个库,所有的第三方包,共享服务包,以及属于一个产品的服务都必须显示指定其所依赖的最小的JDK版本。
[0077] 一个JDK的描述(jdk_version)信息如表1所示:
[0078]字段名称 字段说明 数据类型 主键 可否为空 默认值和备注
JdkVersionld Jdk版本标示 Int PK N 自增长字段
JdkVersion Jdk版本 Varchar(10) N
Repository 存放位置 Nvarchar(256) N
[0079] 表1
[0080] 备注:在JdkVersionId上建立唯一索引。
[0081] 表1中,存放位置是指JDK在版本控制服务器上的存放位置。
[0082] 2.共享库
[0083] 共享库是需要在全局范围内共享使用的包,包括:
[0084] ·第三方包依赖
[0085] ·共享服务依赖
[0086] ·公共服务依赖
[0087] ·工具服务依赖
[0088] ·业务服务依赖
[0089] 一旦一个包进入共享平台,其他开发人员就能迅速地找到并使用该服务,从而有效地避免重复开发、无序使用的问题
[0090] 所有共享库将通过一套相同的数据结构管理起来。在本发明中,共享库按类别进行区分。共享库的类别(lib_id_mask,shared_lib_category)信息如表2和表3所示。
[0091]
[0092]
[0093] 表2
[0094] 备注:
[0095] ·CategoryId用分区编码的方式来产生库类型标示
[0096] xxx xxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
[0097] Level1 Level2 Level3 Level4 Level5 Level6 库标示 库版本
[0098] 一般而言:
[0099] ·Level1:可以定义三大类:系统级、第三方、本公司
[0100] 以后的类别,可以根据不同的大类进行各自分级,虽然上面给出的编码中显示每个类别的编码格式一样,但实际运用中,可根据不同的情况,对不同的类别进行不同的分区编码。
[0101] 可见在本发明的实施例中,类别标示由64个比特组成,其中1-3比特表示第一级类别、4-8比特表示第二级类别、9-16比特表示第三级类别、17-24比特表示第四级类别、25-32比特表示第五级类别、第33-48比特表示第六级类别、第49-56比特表示库标示、第
57-64比特标示库版本。
[0102]
[0103] 表3
[0104] 备注:
[0105] ·在Parent上建立外部键,引用字段是:lib_category.CategoryId[0106] ·CategoryId用分区编码的方式来产生库类型标示
[0107] xxx xxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
[0108] Level1 Level2 Level3 Level4 Level5 Level6 库标示 库版本
[0109] 一般而言:
[0110] ·Level1:可以定义三大类:系统级、第三方、本公司
[0111] ·以后的类别,可以根据不同的大类进行各自分级,虽然上面给出的编码中显示每个类别的编码格式一样,但实际运用中,可根据不同的情况,对不同的类别进行不同的分区编码。
[0112] Repository:指向该共享库类别在版本控制服务器中的存放位置。
[0113] 共享库(share_lib)信息如表4所示:
[0114]
[0115] 表4
[0116] 备注:
[0117] ·LibName:必须用英文字母、数字、下划线、连线字符等。
[0118] 该共享库在版本控制服务器中的存放位置是该共享库所属类别的存放位置下的子目录,子目录名称为“LibName”。
[0119] 具体版本的共享库(share_versioned_lib)信息如表5所示:
[0120]
[0121] 表5
[0122] 备注:
[0123] ·LibName:必须用英文字母、数字、下划线、连线字符等。
[0124] 该共享库在版本控制服务器中的存放位置是该共享库所属类别的存放位置下的子目录,子目录名称为“LibName”。该共享版本的所有版本都存放在该位置的一个子目录下。子目录名称直接采用版本号。
[0125] 具体版本的共享库包含的文件(share_versioned_lib_file)信息如表6所示:
[0126]
[0127] 表6
[0128] 具体版本共享库的属性(share_versioned_lib_property)信息如表7所示:
[0129]
[0130] 表7
[0131] 备注:
[0132] ·Seq:当属性值太大时,一个属性值可能需要多行来保存数据,这是候用Seq来表示顺序。大部分情况,属性值都可以用一行表示,这种情况下,Seq总是为1。
[0133] 共享库的依赖(share_versioned_lib_depedency)信息如表8所示:
[0134]
[0136] 表8
[0137] 在本发明的实施例中,第三方包的具体依赖又可分为两大类:系统级和第三方。
[0138] 系统级表现为属于java标准的一些包,比如j2ee等。
[0139] 系统级包对应的类别标示将采用以下规则:
[0140] xxx xxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
[0141] Level1 Level2 Level3 Level4 Level5 Level6 库标示 库版本
[0142] Level1:001表示系统库
[0143] Leve2:表示系统库对应的领域,比如
[0144] ■00001:http
[0145] ■00010:ejb
[0146] ■00011:xml
[0147] ■00100:jms
[0148] ■00101:jdbc
[0149] Level3:不用
[0150] Level4:不用
[0151] Level5:不用
[0152] Level6:不用
[0153] 库标示:库名称
[0154] 库版本:具体版本的库
[0155] 第三方包对应的类别标示将采用以下规则:
[0156] xxx xxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
[0157] Level1 Level2 Level3 Level4 Level5 Level6 库标示 库版本
[0158] Level1:010表示第三方包
[0159] Level2:表示第三方包对应的领域,比如
[0160] 00001:http
[0161] 00010:xml
[0162] 00011:jdbc
[0163] 00100:rpc
[0164] Level3:细分领域
[0165] Level4:进一步细分领域
[0166] Level5:更精伊布细分领域
[0167] Level6:实现类型
[0168] 库标示:库名称
[0169] 库版本:具体版本的库
[0170] 在本发明的实施例中,
[0171] 共享服务依赖是指依赖公司开发的、且发布到共享平台的服务。
[0172] 共享服务有三种类型
[0173] 公共服务:不支持热插拔功能。
[0174] 工具服务:支持热插拔功能,具有服务接口和多个服务方法。
[0175] 业务服务:支持热插拔功能,具有服务接口和多个服务方法。
[0176] 对工具服务、业务服务,提供服务方法的详细描述,以方便客户端的共享。
[0177] 也就是说工具服务和业务服务的描述信息还包括:方法信息。
[0178] 一个具体版本共享库(工具服务或业务服务)的方法信息如表9所示:
[0179]
[0180] 表9
[0181] 前面介绍的信息数据库中保存的信息的数据结构。基于上述数据结构可以对共享库进行新增、废弃、删除、展示以及获取等操作。
[0182] 具体介绍如下。
[0183] 本发明的方案实现对企业共享库的一致性管理,该共享库包括第三方的共享库和公司自己开发的共享服务;具体功能包括:
[0184] 增加共享库类别。
[0185] 增加共享库
[0186] 上传特定版本的共享库
[0187] 废弃特定版本的共享库
[0188] 删除特定版本的共享库
[0189] 验证特定版本的共享库依赖性
[0190] 展示特定版本的共享库依赖性
[0191] 1.增加共享库类别
[0192] 在共享库类别中增加一条记录;增加时,必须指定以下信息:类别名称、类别描述、父类别
[0193] 2.增加共享库
[0194] 在共享库类别中增加一条记录;增加时,须遵循以下步骤:
[0195] 1)找到该共享库的类别,如果不存在,则创建它。
[0196] 2)创建该共享库,
[0197] a)库名称
[0198] b)库描述
[0199] c)库类型
[0200] d)库提供商
[0201] e)库的官网
[0202] f)引入原因
[0203] 3)对需要上传的特定版本共享库,并提供以下信息
[0204] a)包版本
[0205] b)该版本的兼容版本号
[0206] c)该版本的描述
[0207] d)需要的jdk版本
[0208] e)上传原因
[0209] f)服务标示(如果该服务是公司自己开发的共享服务,则需要标示)[0210] g)许可类型
[0211] 4)上传共享库文件到版本控制服务器,同时对每一个文件提供以下信息[0212] a)文件类型
[0213] b)文件名
[0214] 5)如果该库有一些特殊属性,则需要将特殊属性一一配置;特别是对企业内部开发的共享服务,经常需要一些属性来简化开发。
[0215] a)属性名称
[0216] b)属性类型
[0217] c)属性值
[0218] 6)如果该库依赖了其他共享库,则检查每一个共享库,如果该共享库以及依赖的共享库版本已经存在,则不需要处理该共享库;否则
[0219] a)如果共享库不存在,则必须按照增加共享库的逻辑增加该依赖的共享库以及共享库版本;
[0220] b)如果共享库存在,但依赖的版本不存在,则必须按照增加共享库版本的逻辑增加该依赖的共享库版本。
[0221] 3.增加具体版本的共享库
[0222] 为共享库增加一个共享库版本,增加时,遵循以下步骤:
[0223] 1)找到该共享库
[0224] 2)对需要上传的特定版本共享库,提供以下信息:
[0225] a)包版本
[0226] b)该版本的兼容版本号
[0227] c)该版本的描述
[0228] d)需要的jdk版本
[0229] e)上传原因
[0230] f)服务标示(如果该服务是公司自己开发的共享服务,则需要标示)[0231] g)License类型
[0232] 3)上传共享库文件到版本控制服务器,同时对每一个文件提供以下信息:
[0233] a)文件类型
[0234] b)文件名
[0235] 4)如果该库有一些特殊属性,则需要将特殊属性一一配置;特别是对企业内部开发的共享服务,经常需要一些属性来简化开发。
[0236] a)属性名称
[0237] b)属性类型
[0238] c)属性值
[0239] 5)如果该库依赖了其他共享库,则检查每一个共享库,如果该共享库以及依赖的共享库版本已经存在,则不需要处理该共享库;否则
[0240] a)如果共享库不存在,则必须按照增加共享库的逻辑增加该依赖的共享库以及共享库版本;
[0241] b)如果共享库存在,但依赖的版本不存在,则必须按照增加共享库版本的逻辑增加该依赖的共享库版本。
[0242] 4.废弃特定版本的共享库
[0243] 即标示一个特定版本的共享库为废弃状态;标示后,以后的服务将不能再引用该库。但已经存在的引用则可以继续引用。
[0244] 废弃步骤很简单:
[0245] 1)找到需要废弃的共享库的特定版本。
[0246] 2)点击“确认”。
[0247] 3)系统将找出依赖(直接和间接)该共享库的其他所共享库(第三方共享库,共享服务);而且如果共享库管理和面向服务的共享开发一起使用,则同时找出依赖该共享库的其他正在开发的服务。并将它们显示出来。
[0248] 4)用户检查后,可以点击“取消”,来取消该次操作;也可选择“确认”,来继续废弃该版本。
[0249] 5.删除特定版本的共享库
[0250] 即删除一个特定版本的共享库;删除后,该版本将不再存在。
[0251] 即标示一个特定版本的共享库为废弃状态;标示后,以后的服务将不能再引用该库。但已经存在的引用则可以继续引用。
[0252] 废弃步骤很简单:
[0253] 1)找到需要废弃的共享库的特定版本。
[0254] 2)点击“确认”。
[0255] 3)系统将找出依赖(直接和间接)该共享库的其他所共享库(第三方共享库,共享服务);而且如果共享库管理和面向服务的共享开发一起使用,则同时找出依赖该共享库的其他正在开发的服务。并将它们显示出来。
[0256] 4)如果存在依赖的其它共享库和正在开发的服务,则直接退出;否则,显示“取消”按钮,让用户取消该次操作;显示“确认”按钮,让用户继续删除。
[0257] 6.展示特定版本的共享库依赖性
[0258] 对一个特定版本的共享库,用图形方式展示其所有的依赖关系,包括在上下游依赖链中,所有服务、共享库的完整依赖关系。
[0259] 7.获取一个共享库
[0260] 当一个服务需要从共享库中获取一个第三方包或共享服务时,遵循以下步骤:
[0261] 1)找到该第三方包或者共享服务的具体类别。
[0262] 2)系统显示该类别下的所有共享库,以及相关信息。
[0263] 3)如果该系统和面向服务开发一起使用,则系统将查询该服务的兄弟服务是否依赖了相同共享库类别中的共享库,如果依赖了,则将依赖的共享库选中,作为这次依赖的共享库以及共享库版本。跳过第4)、5)步骤,直接运行第6)步;
[0264] 4)如果没有预先选好的共享库及其版本,则选择一个共享库。然后,系统列出选择的共享库中的所有版本,用户进一步选择共享库版本。
[0265] 5)用户点击“确认”,系统将验证选择的共享库的特定版本与服务的依赖性是否兼容,如不兼容,则提示错误信息,然后返回第4步。
[0266] 6)系统将找到共享库在版本控制服务器中的路径,自动从版本控制服务器中下载这些文件。当然如果与maven合作,则可以在pom文件中,生成对该版本的共享库的依赖。
[0267] 基于上述实施例接下来给出本发明中的一种共享库管理系统的组成结构。
[0268] 图4是本发明实施例中的一种共享库管理系统的组成结构示意图。如图4所示,该系统包括:版本控制服务器401、信息数据库402和访问管理中心403,其中:
[0269] 版本控制服务器401,用于在自身的指定位置中保存JDK,在自身的指定位置中按类别保存共享库;
[0270] 信息数据库402,用于保存JDK的描述信息,以及共享库的描述信息和共享库的依赖信息;
[0271] 其中,JDK的描述信息包括:JDK的标示和JDK在版本控制服务器上的存放位置;所述共享库的描述信息包括:共享库的类别信息、共享库信息、具体版本的共享库信息、具体版本的共享库包含的文件信息、具体版本共享库的属性信息;其中共享库的类别信息中包含共享库在版本控制服务器中的位置信息;所述共享库的依赖信息包括:共享库的库标示和被依赖的共享库的库标示;
[0272] 访问管理中心403,用于在需要获取指定JDK时,先到信息数据库402中查找对应的描述信息,根据描述信息从版本控制服务器401获取该指定JDK的文件;用于在需要获取指定共享库时,先到信息数据库402中查找对应的共享库描述信息和共享库依赖信息,根据共享库描述信息从版本控制服务器401获取该指定共享库的文件,根据共享库依赖信息获取被该指定共享库所依赖的其它包的文件。
[0273] 这里,访问管理中心可以是图1所示框架中的服务开发环境中的一个功能组成部分。
[0274] 在图4所示的系统中,所述共享库包括:第三方包和共享服务;其中,所述共享服务包括:公共服务、工具服务、业务服务;
[0275] 其中工具服务和业务服务器的描述信息还包括:方法信息。
[0276] 在图4所示的系统中,所述信息数据库中按如下数据结构保存信息:
[0277] 所述JDK的标示包括:JDK版本标示和JDK版本;
[0278] 所述共享库的类别信息的数据结构为:分区标示、分区名称、类型掩码、针对该区的最小值、针对该区的最大标示,以及类别标示、类别名称、类别描述、类别掩码、父类别、在版本控制服务器中的位置信息;
[0279] 所述共享库信息的数据结构为:库标示、类别标示、库名称、库描述、库类型、库提供商、官网、引入者、引入原因、服务是否过时;
[0280] 所述具体版本的共享库信息的数据结构为:具体版本的库标示、库标示、库版本、兼容版本号、该版本的特别描述、JDK版本标示、上传者、上传原因、服务标示、是否已过时、许可类型;
[0281] 具体版本的共享库包含的文件信息的数据结构为:具体版本的库标示、文件类型、文件名、文件路径;
[0282] 具体版本共享库的属性信息的数据结构为:具体版本的库标示、属性名称、服务类型序列号、属性类型、属性值。
[0283] 在图4所示的系统中,在所述信息数据库中,所述类别标示由64个比特组成,其中1-3比特表示第一级类别、4-8比特表示第二级类别、9-16比特表示第三级类别、17-24比特表示第四级类别、25-32比特表示第五级类别、第33-48比特表示第六级类别、第49-56比特表示库标示、第57-64比特标示库版本。
[0284] 在图4所示的系统中,所述访问管理中心,进一步用于
[0285] 在共享库类别中增加一条记录;
[0286] 和/或,
[0287] 在指定类别中增加一个共享库:找到该共享库所属的类别,如果不存在,则创建该类别;创建共享库,将共享库的文件上传到版本控制服务器;如果该共享库依赖于其他的共享库,则还需要增加被依赖的所述其他共享库;
[0288] 和/或,
[0289] 废弃指定版本的共享库;
[0290] 和/或,
[0291] 删除指定版本的共享库;
[0292] 和/或,
[0293] 展示指定版本的共享库的依赖关系。
[0294] 综上所述,本发明这种将JDK和共享库保存到版本控制服务器上,将将JDK的描述信息以及共享库的描述信息和共享库的依赖信息保存到信息数据库中,当需要获取某个包时,首先到信息数据库上获取相关信息,然后从版本控制服务器获取具体文件的技术方案,能合理地管理JDK和共享库,以便能被其他服务快速、一致地引用。
[0295] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。