CN105630470A - 代码共建方法、***、源码服务器及开放服务器 - Google Patents

代码共建方法、***、源码服务器及开放服务器 Download PDF

Info

Publication number
CN105630470A
CN105630470A CN201410608412.3A CN201410608412A CN105630470A CN 105630470 A CN105630470 A CN 105630470A CN 201410608412 A CN201410608412 A CN 201410608412A CN 105630470 A CN105630470 A CN 105630470A
Authority
CN
China
Prior art keywords
server
code
open
code library
oss
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410608412.3A
Other languages
English (en)
Other versions
CN105630470B (zh
Inventor
吴振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410608412.3A priority Critical patent/CN105630470B/zh
Publication of CN105630470A publication Critical patent/CN105630470A/zh
Application granted granted Critical
Publication of CN105630470B publication Critical patent/CN105630470B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种代码共建方法、***、源码服务器以及开放服务器,所述源码服务器和合作方服务器能够访问所述开放服务器,所述开放服务器和所述合作方服务器不能访问所述源码服务器;所述代码共建方法包括步骤有:所述源码服务器根据操作***级的代码和预定的开库规则,定制化建立多个代码库;所述源码服务器将所述代码库迁移至所述开放服务器;所述合作方服务器在所述开放服务器上进行代码共建。借此,本申请能够满足多个公司对于操作***代码库结构的指定需求,可增强移植性及完善共建效果,提高效率并减小成本;并且提高了代码共建的安全性,且交互更加高效。

Description

代码共建方法、***、源码服务器及开放服务器
技术领域
本申请涉及互联网技术领域,尤其涉及一种代码共建方法、***、源码服务器以及开放服务器。
背景技术
目前业内的操作***级开放代码,采取开源社区模式,如谷歌(***)的安卓(Android)开源社区。所述开源社区模式解决了单向开放的问题,但无法适应解决代码共建的需求。开放代码是指公司A将自己的代码开放给公司B使用。而代码共建属于开放代码的一种模式,公司A将自己的代码开放给公司B使用,公司B将代码修改后提供给公司A。而操作***级的代码共建,其模式主要为线上或线下代码同步(如邮件、硬盘、U盘),即公司A将自己的代码打包,发送给公司B,公司B基于公司A的代码进行研发,再同步给公司A,然后产出产品。
目前操作***的代码共建技术,主要存在以下几个问题:
安全性问题:如果采取邮件、网盘等线上代码同步模式,若代码在同步过程中被劫持或被第三方网盘公司获取,这对于在操作***上的架构上创新及新功能的保护是极其不利的,代码一旦泄露带来的损失巨大。
效率性问题:如果采用硬盘等线下代码同步模式,虽然代码安全得到了保证,但是效率过低,每次同步代码带来的成本过高,在互联网的高速发展情况下很难满足业务需求。
交互性及成本问题:传统模式中,虽然基于同一套代码进行研发,但是由于双方代码管理工具及建库模式上的差异,两公司的研发人员交互效率低下,无法实现提交代码的即时性和研发人员对于彼此修改的说明都不能很明晰的展现出来。这对于操作***级代码的研发无疑增加很大的成本。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本申请的目的在于提供一种代码共建方法、***、源码服务器以及开放服务器,其通过定制化建立代码库,能够满足多个公司对于操作***代码库结构的指定需求,可增强移植性及完善共建效果,提高效率并减小成本;并且提高了代码共建的安全性,且交互更加高效。
为了实现上述目的,本申请提供一种源码服务器,所述源码服务器与开放服务器通信连接,所述开放服务器和合作方服务器通信连接,所述源码服务器和所述合作方服务器能够访问所述开放服务器,所述开放服务器和所述合作方服务器不能访问所述源码服务器;所述源码服务器包括:
代码库定制模块,用于根据操作***级的代码和预定的开库规则,定制化建立多个代码库;
代码库处理模块,用于将所述代码库迁移至所述开放服务器,供所述合作方服务器在所述开放服务器上进行代码共建。
根据本申请所述的源码服务器,所述代码库定制模块进一步包括:
代码库定制子模块,用于根据所述开库规则,对操作***级的代码包进行扫描,建立起包括多个所述代码库的代码库结构,生成描述所述代码库结构的索引文件,并将所述代码包中文件创建并上传到所述代码库中。
根据本申请所述的源码服务器,所述开库规则根据所述源码服务器和/或所述合作服务器对代码库结构的指定需求制定。
根据本申请所述的源码服务器,所述代码库处理模块进一步包括:
处理子模块,用于将操作***级的所述代码进行适配、二进制化集成并测试;
第一检查子模块,用于若测试通过后,将所述代码进行安全检查;
迁移子模块,用于若代码安全检查通过后,将所述代码库迁移至所述开放服务器。
根据本申请所述的源码服务器,所述源码服务器设于内部网络,所述开放服务器设于对外开放网络,所述合作方服务器设于互联网络;所述内部网络和所述互联网络能够访问所述对外开放网络,所述对外开放网络和所述互联网络不能访问所述内部网络。
根据本申请所述的源码服务器,所述源码服务器的所述代码库定制模块进一步包括:
扫描子模块,用于扫描所述代码及日志获取每个所述代码库的数据量、变更频率和读取频率;
计算子模块,用于根据每个所述代码库的所述数据量、所述变更频率、所述读取频率和预定的代码库拆分值算法,计算出所述代码库的拆分值;
拆库子模块,用于根据预定的需求库总数,以及保证每个所述代码库的拆分值相近的拆分规则,对所述代码库进行拆库。
根据本申请所述的源码服务器,所述代码库拆分值算法为:
代码库的拆分值G=pc*(S*VC)+pd*(S*VD);
其中pc和pd分别为加权值,S为当前代码库的数据量,VC为当前代码库的数据变更频率,VD为当前代码库的数据读取频率。
本申请还提供一种开放服务器,所述开放服务器分别与源码服务器和合作方服务器通信连接,所述源码服务器和所述合作方服务器能够访问所述开放服务器,所述开放服务器和所述合作方服务器不能访问所述源码服务器;所述开放服务器包括:
代码存储模块,用于接收并存储所述源码服务器根据操作***级的代码和预定的开库规则所定制化建立的多个代码库,供所述合作方服务器在所述开放服务器上进行代码共建。
根据本申请所述的开放服务器,所述开放服务器进一步包括:
第二检查模块,用于对存储到所述开放服务器中的所述代码库中的所述代码进行代码安全检查;
代码库开放模块,用于若代码安全检查通过后,将所述开放服务器中的所述代码库进行开放。
根据本申请所述的开放服务器,所述开放服务器为所述合作方服务器提供指定端口的访问权限。
根据本申请所述的开放服务器,所述开放服务器创建授权账号,所述授权账号对应所述开放服务器的所述指定端口的访问权限;所述合作方服务器通过所述授权账号访问所述开放服务器的所述指定端口进行代码共建。
根据本申请所述的开放服务器,所述源码服务器设于内部网络,所述开放服务器设于对外开放网络,所述合作方服务器设于互联网络;所述内部网络和所述互联网络能够访问所述对外开放网络,所述对外开放网络和所述互联网络不能访问所述内部网络。
本申请还提供一种代码共建***,包括所述源码服务器、所述开放服务器以及所述合作方服务器。
本申请还提供一种代码共建方法,所述代码共建方法应用于包括源码服务器、开放服务器和至少一合作方服务器的代码共建***中,所述源码服务器和所述合作方服务器能够访问所述开放服务器,所述开放服务器和所述合作方服务器不能访问所述源码服务器;所述代码共建方法包括步骤有:
所述源码服务器根据操作***级的代码和预定的开库规则,定制化建立多个代码库;
所述源码服务器将所述代码库迁移至所述开放服务器;
所述合作方服务器在所述开放服务器上进行代码共建。
根据本申请所述的代码共建方法,所述源码服务器根据操作***级的代码和开库规则,定制化建立多个代码库的步骤包括:
所述源码服务器根据所述开库规则,对操作***级的代码包进行扫描,建立起包括多个所述代码库的代码库结构,生成用于描述所述代码库结构的索引文件,并将所述代码包中文件创建并上传到所述代码库中。
根据本申请所述的代码共建方法,所述开库规则根据所述源码服务器和/或所述合作服务器对代码库结构的指定需求制定。
根据本申请所述的代码共建方法,所述源码服务器将所述代码库迁移至所述开放服务器的步骤包括:
将操作***级的所述代码进行适配、二进制化集成并测试;
若测试通过后,将所述代码进行安全检查;
若代码安全检查通过后,将所述代码库迁移至所述开放服务器。
根据本申请所述的代码共建方法,所述将代码库迁移至所述开放服务器的步骤之后包括:
所述开放服务器对所述代码库中的所述代码进行代码安全检查;
若代码安全检查通过后,将所述开放服务器中的所述代码库进行开放。
根据本申请所述的代码共建方法,所述开放服务器为合作方服务器提供指定端口的访问权限。
根据本申请所述的代码共建方法,所述开放服务器创建授权账号,所述授权账号对应所述开放服务器的所述指定端口的访问权限;
所述合作方服务器在所述开放服务器上进行代码共建的步骤包括:
所述合作方服务器通过所述授权账号访问所述开放服务器的所述指定端口进行代码共建。
根据本申请所述的代码共建方法,所述源码服务器设于内部网络,所述开放服务器设于对外开放网络,所述合作方服务器设于互联网络;所述内部网络和所述互联网络能够访问所述对外开放网络,所述对外开放网络和所述互联网络不能访问所述内部网络。
根据本申请所述的代码共建方法,所述源码服务器根据操作***级的代码和预定的开库规则,定制化建立多个代码库的步骤之后还包括:
扫描所述代码及日志获取每个所述代码库的数据量、变更频率和读取频率;
根据每个所述代码库的所述数据量、所述变更频率、所述读取频率和预定的代码库拆分值算法,计算出所述代码库的拆分值;
根据预定的需求库总数,以及保证每个所述代码库的拆分值相近的拆分规则,对所述代码库进行拆库。
根据本申请所述的代码共建方法,所述代码库拆分值算法为:
代码库的拆分值G=pc*(S*VC)+pd*(S*VD);
其中pc和pd分别为加权值,S为当前代码库的数据量,VC为当前代码库的数据变更频率,VD为当前代码库的数据读取频率。
本申请提供操作***级的代码共建技术方案,由源码服务器根据操作***级的代码和预定的开库规则,定制化建立多个代码库,并将所述代码库迁移至开放服务器,合作方服务器在开放服务器上进行代码共建。借此,本申请通过定制化建立代码库,能够满足多个公司对于操作***代码库结构的指定需求,可增强移植性及完善共建效果,提高效率并减小成本;并且,由于本申请采用服务器点对点单向授权共建方法,大幅度减少代码中途泄露的可能性,提高了代码共建的安全性;另外,由于本申请中多个公司之间在同一台开放服务器上进行研发,其实现效果与在同公司研发效果类似,因此交互更加高效。
附图说明
图1是本申请代码共建***的结构示意图;
图2是本申请优选代码共建***的结构示意图;
图3是本申请代码共建方法的流程图;
图4是本申请优选代码共建方法的流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器
(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
图1是本申请代码共建***的结构示意图,所述代码共建***100包括源码服务器10、开放服务器20和至少一合作方服务器30,所述源码服务器10和合作方服务器30能够访问开放服务器20,所述开放服务器20和合作方服务器30不能访问源码服务器10,即所述开放服务器20采用单向网络隔离的模式。优选的是,源码服务器10设于内部网络,开放服务器20设于对外开放网络,合作方服务器30设于互联网络(Internet),此实现各服务器之间的网域隔离,并且内部网络和互联网络能够访问对外开放网络,所述对外开放网络和互联网络不能访问内部网络。
本申请提供一种源码服务器10,所述源码服务器10与开放服务器20通信连接,开放服务器20和合作方服务器30通信连接,源码服务器10和合作方服务器30能够访问开放服务器20,开放服务器20和合作方服务器30不能访问源码服务器10;所述源码服务器10包括:
代码库定制模块11,用于根据操作***级的代码和预定的开库规则,定制化建立多个代码库。通常,每个操作***版本约300个代码库。所述开库规则根据源码服务器10和/或合作服务器30对代码库结构的指定需求制定,从而满足各个公司对于操作***代码库结构的指定需求。
代码库处理模块12,用于将代码库迁移至开放服务器20。
所述合作方服务器30,用于在开放服务器20上进行代码共建。这里,合作方服务器30直接在开放服务器20上将代码修改,源码服务器10可以直接获取修改后的代码。
在本申请具体实施例中,其实现方案为:基于基础代码包,进行定制化建立代码库(每个操作***版本约300个小库),这些小库基于开库规则进行库深度及广度进行扫描,建立起代码库结构,生成索引文件,并基于代码包中文件批量创建并上传到代码库中,整个操作***代码库创建内部代码完毕;该代码在内部研发人员进行适配后,进行二进制化集成,测试完毕后,进行代码开放;代码开放前,进行自动化安全检查,即扫描共建库中是否存在不想开放的源码文件,通过后,将整个库自动化迁移至开放服务器20;在开放服务器20上进行进一步自动化代码安全检查,校验法务协议是否签署,若均已经通过,进入下一步;创建开放厂家的账号,打通开放服务器20,合作方服务器30的外部研发人员用该帐号与内部研发人员进行代码共建,整个代码管理可采用已经有的开源工具。
本申请解决多个公司操作***代码的代码共建问题。由于操作***具有与其它代码不具备的特性,安全性高、代码量大、代码结构复杂多变(芯片型号多样),主要解决以下问题:1、代码合作涉及的安全性及高效性问题;2、操作***代码量大及与芯片个性化导致代码结构复杂的问题。传统的建库,只是根据需求创建库,进行代码管理。本申请不仅实现了自动化,并根据具体的使用情况进行建库,使得研发人员更精确的拿到所需的代码,大幅度减少下载及上传时间,提高研发效率。
图2是本申请优选代码共建***的结构示意图,所述代码共建***100包括源码服务器10、开放服务器20和至少一合作方服务器30,源码服务器10和合作方服务器30能够访问开放服务器20,开放服务器20和合作方服务器30不能访问源码服务器10。优选的是,源码服务器10设于内部网络,开放服务器20设于对外开放网络,合作方服务器30设于互联网络。内部网络和互联网络能够访问对外开放网络,所述对外开放网络和互联网络不能访问内部网络。
本申请提供一种源码服务器10,所述源码服务器10与开放服务器20通信连接,开放服务器20和合作方服务器30通信连接,源码服务器10和合作方服务器30能够访问开放服务器20,开放服务器20和合作方服务器30不能访问源码服务器10;所述源码服务器10包括:
代码库定制模块11,用于根据操作***级的代码和预定的开库规则,定制化建立多个代码库。所述开库规则根据源码服务器10和/或合作服务器30对代码库结构的指定需求制定,从而满足各个公司对于操作***代码库结构的指定需求。
所述代码库定制模块11进一步包括:
代码库定制子模块111,用于根据开库规则,对操作***级的代码包进行库深度及库广度扫描,建立起包括多个代码库的代码库结构,生成索引文件,并将代码包中文件批量创建并上传到代码库中。
扫描子模块112,用于扫描代码及日志获取每个代码库的数据量、变更频率和读取频率。
计算子模块113,用于根据每个代码库的数据量、变更频率、读取频率和预定的代码库拆分值算法,计算出代码库的拆分值。
优选的是,所述代码库拆分值算法为:
代码库的拆分值G=pc*(S*VC)+pd*(S*VD),其中pc和pd分别为加权值,S为当前代码库的数据量,VC为当前代码库的数据变更频率,VD为当前代码库的数据读取频率。
拆库子模块114,用于根据预定的需求库总数,以及保证每个代码库的拆分值相近的拆分规则,对代码库进行拆库。
本申请定制化技术针对整个代码包,采用权值计算的方法进行扫描,最后得出一个各代码库权值均衡的定制化方案,再根据需求库总数量进行库的拆分值选取。
二级属性 变更度 读取度
计算方法 S*VC S*VD
加权值 pc pd
说明 当前目录的数据变更度 当前目录的数据读取度
注:权值可根据具体的使用情况进行微调
拆库规则:正如上面三级属性的说明,每个目录会根据数据量、变更频率、读取频率产生一个拆分值,在拆库时,保证每个代码库的拆分值相等的规则进行。每个拆分值与拆分数量近似成反比。
本申请自动化实现扫描代码及log(日志)获取数据量、变更频率、读取频率,并进行计算得出拆分值,并根据已知要拆的数量,进行定制化拆库。
下面描述一个简单实现单元实例:该实例只是作为原理简述用,实际拆分远比这里复杂的多。
|--公司A
||--e(10,5,10)
|`--f(5,15,10)
|--公司B
||--g(3,2,8)
|`--h(20,3,2)
上表是一个简单的目录树形结构,后面“()”中的属性分别为数据量、变更频率、读取频率。本次模拟采用pc=2/3,pd=1/3,计算得,G(公司Ae)=200/3,G(公司Af)=200/3,G(公司Bg)=36/3,G(公司Bh)=160/3,上一层级目录的拆分值为G(公司A)=G(公司Ae)+G(公司Af)=400/3,G(公司B)=G(公司Bg)+G(公司Bh)=196/3。本次拆分可看出,公司B目录的拆分值与公司A的子目录相近,所以拆分结构为公司Ae、公司Af、公司B三个目录分别作为代码库进行拆分。
代码库处理模块12,用于将代码库迁移至开放服务器20。优选的是,所述代码库处理模块12进一步包括:
处理子模块121,用于将操作***级的代码进行适配、二进制化集成并测试。
第一检查子模块122,用于若测试通过后,将代码进行安全检查。即扫描共建用的代码库中是否存在不想开放的源码文件,若存在不想开放的源码文件则禁止开放。
迁移子模块123,用于若代码安全检查通过后,将代码库迁移至开放服务器20。
本申请提供一种开放服务器20,所述开放服务器20分别与源码服务器10和合作方服务器30通信连接,源码服务器10和合作方服务器30能够访问开放服务器20,开放服务器20和合作方服务器30不能访问源码服务器10。所述开放服务器20至少包括:
代码存储模块21,用于接收并存储源码服务器10根据操作***级的代码和预定的开库规则所定制化建立的多个代码库,供合作方服务器30在开放服务器20上进行代码共建。
优选的是,所述开放服务器20进一步包括:
第二检查模块22,用于对存储到开放服务器20中的代码库中的代码进行代码安全检查。
代码库开放模块23,用于若代码安全检查通过后,将开放服务器20中的代码库进行开放。
所述合作方服务器30,用于在开放服务器20上进行代码共建。优选的是,开放服务器20为所述合作方服务器30提供指定端口的访问权限。更好的是,开放服务器20创建授权账号,授权账号对应开放服务器20的指定端口的访问权限。合作方服务器30通过授权账号访问开放服务器20的指定端口进行代码共建。
本申请采用网域隔离服务器、点对点单向授权共建方法。所谓网域隔离是指在开放服务器20与源码服务器10间采取网域隔离(具体可采用物理隔离或网络隔离均可);单向访问,即服务器间只能单向访问,源码服务器10可访问开放服务器20,开放服务器20不可访问源码服务器10;单向授权,即开放服务器20只对需共建方提供单独认证及端口,使其具有访问该端口指定码段的权限。
本申请关键技术点包括:1)基于操作***级代码库定制化技术及拆库规则;2)基于操作***级代码共建网域隔离服务器点对点式代码交互方法。本申请具有如下技术效果:
安全性高:采取服务器点对点直连的方式,避免了第三方的介入,大幅度减少代码中途泄露的可能性;采取单向授权的指定端口共建模式,即只有授权服务器才能获取服务器的该端口代码,加大了对于服务器安全性;开放服务器20采取单向网络隔离的模式,即使开放服务器20被攻破,仍然不会影响到其他服务器群。
高效交互:共建公司之间在同一台开放服务器20上进行研发,每次提交的log(日志)彼此可查看,提交具有即时性,即对于研发人员来说实现效果与在同公司研发效果类似,即时提交即时更新,且节省不必要的成本。
定制化技术及拆库规则:由于采取共建于同台服务器的模式,又必须满足每个公司对于操作***代码库树结构的特殊需求,本申请基于库深度及广度进行解析,定制化批量自动建库。满足各方需求,增强移植性及完善共建效果,提高效率减小成本。同时,本申请除了满足个性化需求,还采取了算法对于拆库进行优化,大幅度提高代码库本身的使用效率。
图3是本申请代码共建方法的流程图,代码共建方法应用如图1或图2所示的代码共建***100中,所述代码共建方法包括步骤有:
步骤S301,源码服务器10根据操作***级的代码和预定的开库规则,定制化建立多个代码库。
通常,每个操作***版本约300个代码库。优选的是,源码服务器10根据开库规则,对操作***级的代码包进行库深度及库广度扫描,建立起包括多个代码库的代码库结构,生成索引文件,并将代码包中文件批量创建并上传到代码库中。所述开库规则根据源码服务器10和/或合作服务器对代码库结构的指定需求制定,从而满足各个公司对于操作***代码库结构的指定需求。
步骤S302,源码服务器10将代码库迁移至开放服务器20。
步骤S303,合作方服务器30在开放服务器20上进行代码共建。
这里,合作方服务器30直接在开放服务器20上将代码修改,源码服务器10可以直接获取修改后的代码。优选的是,开放服务器20为合作方服务器30提供指定端口的访问权限。更好的是,开放服务器20创建授权账号,授权账号对应开放服务器20的指定端口的访问权限。合作方服务器30通过授权账号访问开放服务器20的指定端口进行代码共建。
图4是本申请优选代码共建方法的流程图,代码共建方法应用如图2所示的代码共建***100中,所述代码共建方法包括步骤有:
步骤S401,源码服务器10根据操作***级的代码和预定的开库规则,定制化建立多个代码库。
优选的是,源码服务器10根据开库规则,对操作***级的代码包进行库深度及库广度扫描,建立起包括多个代码库的代码库结构,生成索引文件,并将代码包中文件批量创建并上传到代码库中。所述开库规则根据源码服务器10和/或合作服务器对代码库结构的指定需求制定,从而满足各个公司对于操作***代码库结构的指定需求。
步骤S402,扫描代码及日志获取每个代码库的数据量、变更频率和读取频率。
步骤S403,根据每个代码库的数据量、变更频率、读取频率和预定的代码库拆分值算法,计算出代码库的拆分值。
优选的是,所述代码库拆分值算法为:
代码库的拆分值G=pc*(S*VC)+pd*(S*VD),其中pc和pd分别为加权值,S为当前代码库的数据量,VC为当前代码库的数据变更频率,VD为当前代码库的数据读取频率。
步骤S404,根据预定的需求库总数,以及保证每个代码库的拆分值相近的拆分规则,对代码库进行拆库。
步骤S405,将操作***级的代码进行适配、二进制化集成并测试。
步骤S406,若测试通过后,将代码进行安全检查。
即扫描代码库中是否存在不想开放的源码文件,若存在不想开放的源码文件则禁止开放。
步骤S407,若代码安全检查通过后,将代码库迁移至开放服务器20。
步骤S408,开放服务器20对代码库中的代码进行代码安全检查。
即扫描代码库中是否存在不想开放的源码文件,若存在不想开放的源码文件则禁止开放。
步骤S409,若代码安全检查通过后,将开放服务器20中的代码库进行开放。
步骤S410,合作方服务器30在开放服务器20上进行代码共建。
优选的是,开放服务器20为合作方服务器30提供指定端口的访问权限。更好的是,开放服务器20创建授权账号,授权账号对应开放服务器20的指定端口的访问权限。合作方服务器30通过授权账号访问开放服务器20的指定端口进行代码共建。
综上所述,本申请提供操作***级的代码共建技术方案,由源码服务器根据操作***级的代码和预定的开库规则,定制化建立多个代码库,并将所述代码库迁移至开放服务器,合作方服务器在开放服务器上进行代码共建。借此,本申请通过定制化建立代码库,能够满足多个公司对于操作***代码库结构的指定需求,可增强移植性及完善共建效果,提高效率并减小成本;并且,由于本申请采用服务器点对点单向授权共建方法,大幅度减少代码中途泄露的可能性,提高了代码共建的安全性;另外,由于本申请中多个公司之间在同一台开放服务器上进行研发,其实现效果与在同公司研发效果类似,因此交互更加高效。
当然,本申请还可有其它多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请所附的权利要求的保护范围。

Claims (23)

1.一种源码服务器,其特征在于,所述源码服务器与开放服务器通信连接,所述开放服务器和合作方服务器通信连接,所述源码服务器和所述合作方服务器能够访问所述开放服务器,所述开放服务器和所述合作方服务器不能访问所述源码服务器;所述源码服务器包括:
代码库定制模块,用于根据操作***级的代码和预定的开库规则,定制化建立多个代码库;
代码库处理模块,用于将所述代码库迁移至所述开放服务器,供所述合作方服务器在所述开放服务器上进行代码共建。
2.根据权利要求1所述的源码服务器,其特征在于,所述代码库定制模块进一步包括:
代码库定制子模块,用于根据所述开库规则,对操作***级的代码包进行扫描,建立起包括多个所述代码库的代码库结构,生成描述所述代码库结构的索引文件,并将所述代码包中文件创建并上传到所述代码库中。
3.根据权利要求1所述的源码服务器,其特征在于,所述开库规则根据所述源码服务器和/或所述合作服务器对代码库结构的指定需求制定。
4.根据权利要求1所述的源码服务器,其特征在于,所述代码库处理模块进一步包括:
处理子模块,用于将操作***级的所述代码进行适配、二进制化集成并测试;
第一检查子模块,用于若测试通过后,将所述代码进行安全检查;
迁移子模块,用于若代码安全检查通过后,将所述代码库迁移至所述开放服务器。
5.根据权利要求1所述的源码服务器,其特征在于,所述源码服务器设于内部网络,所述开放服务器设于对外开放网络,所述合作方服务器设于互联网络;所述内部网络和所述互联网络能够访问所述对外开放网络,所述对外开放网络和所述互联网络不能访问所述内部网络。
6.根据权利要求1所述的源码服务器,其特征在于,所述源码服务器的所述代码库定制模块进一步包括:
扫描子模块,用于扫描所述代码及日志获取每个所述代码库的数据量、变更频率和读取频率;
计算子模块,用于根据每个所述代码库的所述数据量、所述变更频率、所述读取频率和预定的代码库拆分值算法,计算出所述代码库的拆分值;
拆库子模块,用于根据预定的需求库总数,以及保证每个所述代码库的拆分值相近的拆分规则,对所述代码库进行拆库。
7.根据权利要求1所述的源码服务器,其特征在于,所述代码库拆分值算法为:
代码库的拆分值G=pc*(S*VC)+pd*(S*VD);
其中pc和pd分别为加权值,S为当前代码库的数据量,VC为当前代码库的数据变更频率,VD为当前代码库的数据读取频率。
8.一种开放服务器,其特征在于,所述开放服务器分别与源码服务器和合作方服务器通信连接,所述源码服务器和所述合作方服务器能够访问所述开放服务器,所述开放服务器和所述合作方服务器不能访问所述源码服务器;所述开放服务器包括:
代码存储模块,用于接收并存储所述源码服务器根据操作***级的代码和预定的开库规则所定制化建立的多个代码库,供所述合作方服务器在所述开放服务器上进行代码共建。
9.根据权利要求8所述的开放服务器,其特征在于,所述开放服务器进一步包括:
第二检查模块,用于对存储到所述开放服务器中的所述代码库中的所述代码进行代码安全检查;
代码库开放模块,用于若代码安全检查通过后,将所述开放服务器中的所述代码库进行开放。
10.根据权利要求8所述的开放服务器,其特征在于,所述开放服务器为所述合作方服务器提供指定端口的访问权限。
11.根据权利要求10所述的开放服务器,其特征在于,所述开放服务器创建授权账号,所述授权账号对应所述开放服务器的所述指定端口的访问权限;所述合作方服务器通过所述授权账号访问所述开放服务器的所述指定端口进行代码共建。
12.根据权利要求8所述的开放服务器,其特征在于,所述源码服务器设于内部网络,所述开放服务器设于对外开放网络,所述合作方服务器设于互联网络;所述内部网络和所述互联网络能够访问所述对外开放网络,所述对外开放网络和所述互联网络不能访问所述内部网络。
13.一种代码共建***,其特征在于,所述代码共建***包括有如权利要求1~7任一项所述的源码服务器、如权利要求8~12任一项所述的开放服务器以及所述合作方服务器。
14.一种代码共建方法,其特征在于,所述代码共建方法应用于包括源码服务器、开放服务器和至少一合作方服务器的代码共建***中,所述源码服务器和所述合作方服务器能够访问所述开放服务器,所述开放服务器和所述合作方服务器不能访问所述源码服务器;所述代码共建方法包括步骤有:
所述源码服务器根据操作***级的代码和预定的开库规则,定制化建立多个代码库;
所述源码服务器将所述代码库迁移至所述开放服务器;
所述合作方服务器在所述开放服务器上进行代码共建。
15.根据权利要求14所述的代码共建方法,其特征在于,所述源码服务器根据操作***级的代码和开库规则,定制化建立多个代码库的步骤包括:
所述源码服务器根据所述开库规则,对操作***级的代码包进行扫描,建立起包括多个所述代码库的代码库结构,生成用于描述所述代码库结构的索引文件,并将所述代码包中文件创建并上传到所述代码库中。
16.根据权利要求14所述的代码共建方法,其特征在于,所述开库规则根据所述源码服务器和/或所述合作服务器对代码库结构的指定需求制定。
17.根据权利要求14所述的代码共建方法,其特征在于,所述源码服务器将所述代码库迁移至所述开放服务器的步骤包括:
将操作***级的所述代码进行适配、二进制化集成并测试;
若测试通过后,将所述代码进行安全检查;
若代码安全检查通过后,将所述代码库迁移至所述开放服务器。
18.根据权利要求17所述的代码共建方法,其特征在于,所述将代码库迁移至所述开放服务器的步骤之后包括:
所述开放服务器对所述代码库中的所述代码进行代码安全检查;
若代码安全检查通过后,将所述开放服务器中的所述代码库进行开放。
19.根据权利要求14所述的代码共建方法,其特征在于,所述开放服务器为合作方服务器提供指定端口的访问权限。
20.根据权利要求19所述的代码共建方法,其特征在于,所述开放服务器创建授权账号,所述授权账号对应所述开放服务器的所述指定端口的访问权限;
所述合作方服务器在所述开放服务器上进行代码共建的步骤包括:
所述合作方服务器通过所述授权账号访问所述开放服务器的所述指定端口进行代码共建。
21.根据权利要求14所述的代码共建方法,其特征在于,所述源码服务器设于内部网络,所述开放服务器设于对外开放网络,所述合作方服务器设于互联网络;所述内部网络和所述互联网络能够访问所述对外开放网络,所述对外开放网络和所述互联网络不能访问所述内部网络。
22.根据权利要求14~21任一项所述的代码共建方法,其特征在于,所述源码服务器根据操作***级的代码和预定的开库规则,定制化建立多个代码库的步骤之后还包括:
扫描所述代码及日志获取每个所述代码库的数据量、变更频率和读取频率;
根据每个所述代码库的所述数据量、所述变更频率、所述读取频率和预定的代码库拆分值算法,计算出所述代码库的拆分值;
根据预定的需求库总数,以及保证每个所述代码库的拆分值相近的拆分规则,对所述代码库进行拆库。
23.根据权利要求22所述的代码共建方法,其特征在于,所述代码库拆分值算法为:
代码库的拆分值G=pc*(S*VC)+pd*(S*VD);
其中pc和pd分别为加权值,S为当前代码库的数据量,VC为当前代码库的数据变更频率,VD为当前代码库的数据读取频率。
CN201410608412.3A 2014-10-31 2014-10-31 代码共建方法、***、源码服务器及开放服务器 Active CN105630470B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410608412.3A CN105630470B (zh) 2014-10-31 2014-10-31 代码共建方法、***、源码服务器及开放服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410608412.3A CN105630470B (zh) 2014-10-31 2014-10-31 代码共建方法、***、源码服务器及开放服务器

Publications (2)

Publication Number Publication Date
CN105630470A true CN105630470A (zh) 2016-06-01
CN105630470B CN105630470B (zh) 2018-12-21

Family

ID=56045462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410608412.3A Active CN105630470B (zh) 2014-10-31 2014-10-31 代码共建方法、***、源码服务器及开放服务器

Country Status (1)

Country Link
CN (1) CN105630470B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867903A (zh) * 2015-12-29 2016-08-17 乐视致新电子科技(天津)有限公司 代码库拆分的方法及装置
CN110378082A (zh) * 2019-07-24 2019-10-25 湖南国科微电子股份有限公司 软件安全开发方法及***
CN113535230A (zh) * 2021-06-07 2021-10-22 上海古鳌电子科技股份有限公司 一种工程源码动态自适应不同硬件资源的方法及***

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487713B1 (en) * 1999-09-24 2002-11-26 Phoenix Technologies Ltd. Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation
US20060150144A1 (en) * 2005-01-04 2006-07-06 Youngsoft Private Ltd. System and method for application development and deployment
CN101042645A (zh) * 2007-01-17 2007-09-26 北京立通无限科技有限公司 统一软件开发环境的方法、设备及***
WO2011082627A1 (zh) * 2010-01-11 2011-07-14 北京世纪高通科技有限公司 软件开发的***和方法
CN102207866A (zh) * 2011-05-25 2011-10-05 盛乐信息技术(上海)有限公司 基于WebOS的应用程序开发、发布、安装、运行***及方法
US20130080995A1 (en) * 2011-09-23 2013-03-28 Ahmad RAZA Method and an apparatus for developing software
CN103534684A (zh) * 2011-04-20 2014-01-22 索尼电脑娱乐美国公司 社交互动代码开发
CN103593173A (zh) * 2012-10-29 2014-02-19 百度在线网络技术(北京)有限公司 一种应用程序的一体化开发***、方法及装置
CN104090776A (zh) * 2014-07-24 2014-10-08 北京全路通信信号研究设计院有限公司 一种软件开发方法及***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487713B1 (en) * 1999-09-24 2002-11-26 Phoenix Technologies Ltd. Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation
US20060150144A1 (en) * 2005-01-04 2006-07-06 Youngsoft Private Ltd. System and method for application development and deployment
CN101042645A (zh) * 2007-01-17 2007-09-26 北京立通无限科技有限公司 统一软件开发环境的方法、设备及***
WO2011082627A1 (zh) * 2010-01-11 2011-07-14 北京世纪高通科技有限公司 软件开发的***和方法
CN103534684A (zh) * 2011-04-20 2014-01-22 索尼电脑娱乐美国公司 社交互动代码开发
CN102207866A (zh) * 2011-05-25 2011-10-05 盛乐信息技术(上海)有限公司 基于WebOS的应用程序开发、发布、安装、运行***及方法
US20130080995A1 (en) * 2011-09-23 2013-03-28 Ahmad RAZA Method and an apparatus for developing software
CN103593173A (zh) * 2012-10-29 2014-02-19 百度在线网络技术(北京)有限公司 一种应用程序的一体化开发***、方法及装置
CN104090776A (zh) * 2014-07-24 2014-10-08 北京全路通信信号研究设计院有限公司 一种软件开发方法及***

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867903A (zh) * 2015-12-29 2016-08-17 乐视致新电子科技(天津)有限公司 代码库拆分的方法及装置
CN110378082A (zh) * 2019-07-24 2019-10-25 湖南国科微电子股份有限公司 软件安全开发方法及***
CN113535230A (zh) * 2021-06-07 2021-10-22 上海古鳌电子科技股份有限公司 一种工程源码动态自适应不同硬件资源的方法及***

Also Published As

Publication number Publication date
CN105630470B (zh) 2018-12-21

Similar Documents

Publication Publication Date Title
US11163906B2 (en) Adaptive redaction and data releasability systems using dynamic parameters and user defined rule sets
US20210326321A1 (en) Lightning connect adapter
US20170048314A1 (en) Migrating cloud resources
EP2922273A1 (en) Resource sharing method, apparatus, system, and terminal, and resource management center
CN103701909B (zh) 视频应用的快速生成方法及***
CN109725980B (zh) 生成镜像标签的方法、设备以及计算机可读介质
CN103631604A (zh) 一种基于celts-41规范的标准化数字学习资源管理方法及***
EP3374858B1 (en) Creating and modifying applications from a mobile device
CN105630470A (zh) 代码共建方法、***、源码服务器及开放服务器
CN106951593B (zh) 一种生成保护测控装置的配置文件的方法和装置
US20200387813A1 (en) Dynamically adaptable rules and communication system to manage process control-based use cases
Proctor Mobile in museums: From interpretation to conversation
CN112148672A (zh) 一种用于土地调查的快速建库方法及***
Nguyen et al. Mobile learning object authoring tool and management system for mobile ad hoc wireless networks
CN112306964A (zh) 由知识数据库大规模地驱动的基于元数据的科学数据表征
CN110347921A (zh) 一种多模态数据信息的标签抽取方法及装置
CN103595705A (zh) 一种网站生成***及方法
CN112230929B (zh) 一种cim模型的数据解析方法、装置及存储介质
Svanberg The world as collected; or, museum collections as situated materialities
CN109933567A (zh) 基于gis模型技术的测绘档案空间化处理应用***及方法
Lin Design and Implementation of WEB-based Computer Experiment Management System.
CN109739106A (zh) 智能制造平台及自适应接入智能制造平台的方法
CN103106273B (zh) 民用大飞机机载网络的数据管理***及方法
Liu et al. [Retracted] Laboratory Virtualization Management Based on Deep Integration of Cloud Desktop
Kaur et al. Integration of heterogeneous cloud storages through an intermediate WCF service

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant