编译平台、编译方法及装置.pdf

上传人:t**** 文档编号:6362602 上传时间:2019-06-04 格式:PDF 页数:24 大小:1.71MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510300429.7

申请日:

2015.06.03

公开号:

CN104965748A

公开日:

2015.10.07

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G06F 9/45变更事项:申请人变更前:广州华多网络科技有限公司变更后:广州华多网络科技有限公司变更事项:地址变更前:510655 广东省广州市黄埔大道中309号羊城创意产业园3-08栋变更后:511446 广东省广州市番禺区南村镇万博商务区万达广场B1座28层|||实质审查的生效IPC(主分类):G06F 9/45申请日:20150603|||公开

IPC分类号:

G06F9/45

主分类号:

G06F9/45

申请人:

广州华多网络科技有限公司

发明人:

母天石

地址:

510655广东省广州市黄埔大道中309号羊城创意产业园3-08栋

优先权:

专利代理机构:

北京三高永信知识产权代理有限责任公司11138

代理人:

周静

PDF下载: PDF下载
内容摘要

本发明公开了一种编译平台、编译方法及装置,属于软件开发领域。该编译平台包括:web服务器、调度服务器、n台编译机和数据库服务器,n台编译机具有相同的编译环境,n为正整数;web服务器,用于通过web页面接收开发终端上传的源程序和编译参数;将源程序和所述编译参数发送至调度服务器;调度服务器,用于接收web服务器发送的源程序和编译参数;根据源程序和编译参数生成编译任务;将编译任务分发给n台编译机;编译机,用于接收调度服务器下发的编译任务;根据编译任务对源程序进行编译,得到编译结果;数据库服务器,用于存储编译记录信息,每条编译记录信息包括源程序、编译参数和编译结果中的全部内容或者部分内容。

权利要求书

权利要求书
1.  一种编译平台,其特征在于,所述编译平台包括:web服务器、调度服务器、n台编译机和数据库服务器,所述n台编译机具有相同的编译环境,n为正整数;
所述web服务器,用于通过web页面接收开发终端上传的源程序和编译参数;将所述源程序和所述编译参数发送至所述调度服务器;
所述调度服务器,用于接收所述web服务器发送的所述源程序和所述编译参数;根据所述源程序和所述编译参数生成编译任务;将所述编译任务分发给所述n台编译机;
所述编译机,用于接收所述调度服务器下发的编译任务;根据所述编译任务对所述源程序进行编译,得到编译结果;
所述数据库服务器,用于存储编译记录信息,每条编译记录信息包括所述源程序、所述编译参数和所述编译结果中的全部内容或者部分内容。

2.  根据权利要求1所述的编译平台,其特征在于,所述web服务器通过web页面接收开发终端上传的源程序和编译参数时,具体用于:
所述web服务器向所述开发终端提供web页面;
所述web服务器接收所述开发终端通过所述web页面上传的所述源程序和所述编译参数,所述编译参数包括:编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息中的至少一项。

3.  根据权利要求1所述的编译平台,其特征在于,所述调度服务器在将所述编译任务分发给所述n台编译机时,具体用于:
根据负载均衡原则将所述编译任务分发给所述n台编译机。

4.  根据权利要求1至3任一所述的编译平台,其特征在于,
所述web服务器,还用于接收符合预定条件的开发终端发送的编译记录查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;将所述编译记录查询请求发送至所述数据库服务器;
所述数据库服务器,还用于接收所述编译记录查询请求;根据所述编译记录查询请求查找出至少一条所述编译记录信息;将所述编译记录信息作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端。

5.  根据权利要求1至3任一所述的编译平台,其特征在于,
所述web服务器,还用于接收符合预定条件的开发终端发送的差异查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;将所述差异查询请求发送至所述数据库服务器;
所述数据库服务器,还用于接收所述差异查询请求;根据所述差异查询请求查找出至少两份源代码;将所述至少两份源代码的比对结果作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端。

6.  一种编译方法,其特征在于,用于调度服务器中,所述方法包括:
接收开发终端通过web页面上传的源程序和编译参数,所述web页面由web服务器提供;
根据所述源程序和所述编译参数生成编译任务;
将所述编译任务分发给具有相同的编译环境的n台编译机,n为正整数;所述n台编译机用于根据所述编译任务对所述源程序进行编译,得到编译结果,并将所述源程序、所述编译参数和所述编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。

7.  根据权利要求6所述的方法,其特征在于,所述将所述编译任务分发给具有相同的编译环境的n台编译机,包括:
根据负载均衡原则将所述编译任务分发给所述n台编译机。

8.  一种编译方法,其特征在于,用于web服务器中,所述方法包括:
通过web页面接收开发终端上传的源程序和编译参数;
将所述源程序和所述编译参数发送至调度服务器,所述调度服务器用于根据所述源程序和所述编译参数生成编译任务,并将所述编译任务分发给具有相同的编译环境的n台编译机,n为正整数;所述n台编译机用于根据所述编译任 务对所述源程序进行编译,得到编译结果,并将所述源程序、所述编译参数和所述编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。

9.  根据权利要求8所述的方法,其特征在于,所述通过web页面接收开发终端上传的源程序和编译参数,包括:
向所述开发终端提供所述web页面;
接收所述开发终端通过所述web页面上传的所述源程序和所述编译参数,所述编译参数包括:编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息中的至少一项。

10.  根据权利要求8或9所述的方法,其特征在于,所述方法,还包括:
接收符合预定条件的开发终端发送的编译记录查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;
将所述编译记录查询请求发送至所述数据库服务器;所述数据库服务器用于根据所述编译记录查询请求查找出至少一条所述编译记录信息,将所述编译记录信息作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端;
接收所述数据库服务器发送的所述查询结果并反馈给所述符合预定条件的开发终端。

11.  根据权利要求8或9所述的方法,其特征在于,所述方法,还包括:
接收符合预定条件的开发终端发送的差异查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;
将所述差异查询请求发送至所述数据库服务器;所述数据库服务器用于根据所述差异查询请求查找出至少两份源代码;将所述至少两份源代码的比对结果作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端;
接收所述数据库服务器发送的所述查询结果并反馈给所述符合预定条件的开发终端。

12.  一种编译装置,其特征在于,用于调度服务器中,所述装置包括:
第一接收模块,用于接收开发终端通过web页面上传的源程序和编译参数,所述web页面由web服务器提供;
生成模块,用于根据所述源程序和所述编译参数生成编译任务;
分发模块,用于将所述编译任务分发给具有相同的编译环境的n台编译机,n为正整数;所述n台编译机用于根据所述编译任务对所述源程序进行编译,得到编译结果,并将所述源程序、所述编译参数和所述编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。

13.  根据权利要求12所述的装置,其特征在于,所述分发模块还用于根据负载均衡原则将所述编译任务分发给所述n台编译机。

14.  一种编译装置,其特征在于,用于web服务器中,所述装置包括:
上传模块,用于通过web页面接收开发终端上传的源程序和编译参数;
第一发送模块,用于将所述源程序和所述编译参数发送至调度服务器,所述调度服务器用于根据所述源程序和所述编译参数生成编译任务,并将所述编译任务分发给具有相同的编译环境的n台编译机,n为正整数;所述n台编译机用于根据所述编译任务对所述源程序进行编译,得到编译结果,并将所述源程序、所述编译参数和所述编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。

15.  根据权利要求14所述的装置,其特征在于,所述上传模块,包括:
提供单元,用于向所述开发终端提供所述web页面;
接收单元,用于接收所述开发终端通过所述web页面上传的所述源程序和所述编译参数,所述编译参数包括:编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息中的至少一项。

16.  根据权利要求14或15所述的装置,其特征在于,所述装置,还包括:
第二接收模块,用于接收符合预定条件的开发终端发送的编译记录查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;
第二发送模块,用于将所述编译记录查询请求发送至所述数据库服务器;所述数据库服务器用于根据所述编译记录查询请求查找出至少一条所述编译记录信息,将所述编译记录信息作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端;
第一反馈模块,用于接收所述数据库服务器发送的所述查询结果并反馈给所述符合预定条件的开发终端。

17.  根据权利要求14或15所述的装置,其特征在于,所述装置,还包括:
第三接收模块,用于接收符合预定条件的开发终端发送的差异查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;
第三发送模块,用于将所述差异查询请求发送至所述数据库服务器;所述数据库服务器用于根据所述差异查询请求查找出至少两份源代码;将所述至少两份源代码的比对结果作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端;
第二反馈模块,用于接收所述数据库服务器发送的所述查询结果并反馈给所述符合预定条件的开发终端。

说明书

说明书编译平台、编译方法及装置
技术领域
本发明涉及软件开发领域,特别涉及一种编译平台、编译方法及装置。
背景技术
编译是指利用编译程序将源语言编写的源程序生成为目标程序的过程。例如,在Linux平台上,最常用的是GNU make编译工具。
在编译程序的过程中,待编译的源程序通常需要依赖库文件,库文件是已经编译好的具有一定功能的程序文件。比如,一个源程序,需要依赖已经编译好的libA、libB和libC三个库文件,才能编译得到目标程序。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于每个开发人员独自使用一台开发终端,各个开发终端上的编译环境可能并不相同,也即每个编译环境中提供的库文件可能互不相同。这种编译环境的差异会导致编译过程出现冗余依赖等各种问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种编译平台、编译方法及装置。技术方案如下:
根据本发明实施例的第一方面,提供一种编译平台,该编译平台包括:web服务器、调度服务器、n台编译机和数据库服务器,n台编译机具有相同的编译环境,n为正整数;
web服务器,用于通过web页面接收开发终端上传的源程序和编译参数;将源程序和编译参数发送至调度服务器;
调度服务器,用于接收web服务器发送的源程序和编译参数;根据源程序和编译参数生成编译任务;将编译任务分发给n台编译机;
编译机,用于接收调度服务器下发的编译任务;根据编译任务对源程序进行编译,得到编译结果;
数据库服务器,用于存储编译记录信息,每条编译记录信息包括源程序、编译参数和编译结果中的全部内容或者部分内容。
根据本发明实施例的第二方面,提供一种编译方法,用于调度服务器中,该方法包括:
接收开发终端通过web页面上传的源程序和编译参数,web页面由web服务器提供;
根据源程序和编译参数生成编译任务;
将编译任务分发给具有相同的编译环境的n台编译机,n为正整数;n台编译机用于根据编译任务对源程序进行编译,得到编译结果,并将源程序、编译参数和编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
根据本发明实施例的第三方面,提供一种编译方法,用于web服务器中,该方法包括:
通过web页面接收开发终端上传的源程序和编译参数;
将源程序和编译参数发送至调度服务器,调度服务器用于根据源程序和编译参数生成编译任务,并将编译任务分发给具有相同的编译环境的n台编译机,n为正整数;n台编译机用于根据编译任务对源程序进行编译,得到编译结果,并将源程序、编译参数和编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
根据本发明实施例的第四方面,提供一种编译装置,用于调度服务器中,该装置包括:
第一接收模块,用于接收开发终端通过web页面上传的源程序和编译参数,web页面由web服务器提供;
生成模块,用于根据源程序和编译参数生成编译任务;
分发模块,用于将编译任务分发给具有相同的编译环境的n台编译机,n为正整数;n台编译机用于根据编译任务对源程序进行编译,得到编译结果,并将源程序、编译参数和编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
根据本发明实施例的第五方面,提供一种编译装置,用于web服务器中,该装置包括:
上传模块,用于通过web页面接收开发终端上传的源程序和编译参数;
第一发送模块,用于将源程序和编译参数发送至调度服务器,调度服务器用于根据源程序和编译参数生成编译任务,并将编译任务分发给具有相同的编译环境的n台编译机,n为正整数;n台编译机用于根据编译任务对源程序进行编译,得到编译结果,并将源程序、编译参数和编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
本发明实施例提供的技术方案带来的有益效果是:
通过调度服务器根据开发终端上传的源程序和编译参数生成编译任务,并分发至具有相同编译环境的n台编译机,由n台编译机执行编译任务;解决了编译环境的差异所导致的编译过程出现冗余依赖的问题;达到了由具有相同编译环境的n台编译机执行编译任务,不再出现冗余依赖的情况,且多台编译机共同执行编译任务,提高编译速度的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明各个实施例提供的编译方法所涉及的实施环境的环境示意图;
图2是本发明一个实施例提供的服务器的结构示意图;
图3A和图3B是本发明一个实施例提供的编译方法的实施示意图;
图4是本发明一个实施例提供的编译方法的方法流程图;
图5A是本发明另一实施例提供的编译方法的方法流程图;
图5B是本发明另一实施例提供的编译方法所涉及的获取编译信息过程的方法流程图;
图5C是本发明另一实施例提供的编译方法所涉及的编译信息查询过程的方法流程图;
图6A是本发明再一实施例提供的编译方法的方法流程图;
图6B是图6A所示编译方法的实施示意图;
图7是本发明一个实施例提供的编译装置的结构方框图;
图8是本发明另一实施例提供的编译装置的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
系统环境
请参考图1,其示出了本发明各个实施例提供的编译方法所涉及的实施环境的环境示意图。该实施环境包括开发终端110、web服务器120、调度服务器130、至少一台编译机140和数据库服务器150。
开发终端110是用于编写程序的电子设备,该电子设备可以是台式计算机或膝上型便携计算机等等。
开发终端110与web服务器120之间通过有线或无线网络相连。
web服务器120可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。该web服务器120用于向开发终端110提供web页面,并通过该web页面接收开发终端110上传的源程序和编译参数。
web服务器120与调度服务器130之间通过有线或无线网络相连。
调度服务器130可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。调度服务器130用于根据web服务器120上传的源程序和编译参数,生成编译任务并下发至至少一台编译机140。
调度服务器130与至少一台编译机140之间通过有线或无线网络相连。
编译机140是具有程序编译功能的电子设备。编译机140用于根据调度服务器130下发的编译任务对源程序进行编译,并将编译结果上报给数据库服务器150。
编译机140与数据库服务器150之间通过有线或无线网络相连。
数据库服务器150可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。数据库服务器150用于将编译结果反馈给预定的开发终端110。
数据库服务器150与开发终端110之间通过有线或无线网络相连。
计算机架构
图2示出了本发明一个实施例提供的服务器的结构示意图。该服务器可以是图1中的web服务器120、调度服务器130、编译机140或数据库服务器150。具体来讲:
服务器200包括中央处理单元(CPU)201、包括随机存取存储器(RAM)202和只读存储器(ROM)203的系统存储器204,以及连接系统存储器204和中央处理单元201的系统总线205。服务器200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)206,和用于存储操作系统213、应用程序214和其他程序模块215的大容量存储设备207。
基本输入/输出系统206包括有用于显示信息的显示器208和用于用户输入信息的诸如鼠标、键盘之类的输入设备209。其中显示器208和输入设备209都通过连接到系统总线205的输入输出控制器210连接到中央处理单元201。基本输入/输出系统206还可以包括输入输出控制器210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器210还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备207通过连接到系统总线205的大容量存储控制器(未示出)连接到中央处理单元201。大容量存储设备207及其相关联的计算机可读介质为服务器200提供非易失性存储。也就是说,大容量存储设备207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器204和大容量存储设备207可以统称为存储器。
根据本发明的各种实施例,服务器200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器200可以通过连接在系统总线205上的网络接口单元211连接到网络212,或者说,也可以使用网络接口单元211来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
在实际使用过程中,图1中的web服务器110、调度服务器130、至少一台编译机140和数据库服务器150可以构成一个编译平台,该编译平台用于根据开发终端110上传的源程序和编译参数执行相应的编译任务,并将编译结果发送给开发终端110,从而实现整个编译过程。
示意性实施例
web服务器120,用于通过web页面接收开发终端上传的源程序和编译参数;将源程序和编译参数发送至调度服务器。
为了提高开发终端110上传源程序和编译参数的效率,作为一种可能的实现方式,开发人员可以预先构建一个web页面,该web页面上包含有多个编译参数填写项,供开发人员在对程序进行编译时勾选或填写。当开发人员需要对程序进行编译时,只需要通过开发终端110向web服务器120发送访问请求,即可访问该web页面,并根据实际的编译需求,在web页面上勾选或填写相应的编译参数,由web服务器120将源程序和编译参数上传给调度服务器130,对应的,调度服务器130接收web服务器120上传的源程序和编译参数。
可选的,web服务器通过web页面接收开发终端上传的源程序和编译参数时:
web服务器120向开发终端110提供web页面。
比如,如图3A所示,开发人员通过开发终端向web服务器发送访问web页面31的请求,web服务器根据该请求向开发终端提供相应的web页面31,该web页面31中包含编译类型选择控件32,编译结果类型选择控件33,源代码路径34以及源代码版本号35。
web服务器120接收开发终端110通过web页面上传的源程序和编译参数,编译参数包括:编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息中的至少一项。
开发人员根据实际编译需求,在web页面上填写完相应的编译参数后,开发终端110即向web服务器120上传源程序和编译参数,对应的,web服务器120接收开发终端110上传的源程序和编译参数。该编译参数中包括编译类型、 编译结果类型、源代码路径、源代码版本号和开发者信息等等。
相较于传统的通过指令的方式执行程序编译,开发人员只需要在web页面上进行简单的勾选填写操作,即可实现程序的编译,编译效率显著提高。
调度服务器130,用于接收web服务器120发送的源程序和编译参数;根据源程序和编译参数生成编译任务;将编译任务分发给n台编译机140。
调度服务器130接收到web服务器120上传的源程序和编译参数后,即根据源程序和编译参数生成相应的编译任务,并分发给n台编译机140,每台编译机140执行一部分编译任务。
由于可能同时存在多个开发终端110通过web页面向调度服务器130上传源程序和编译参数,对应的,调度服务器130可能同时生成多个编译任务,所以编译平台中的部分编译机140可能处于编译状态,而另一部分编译机140可能处于空闲状态。当调度服务器130将新生成的编译任务分发到处于编译状态的编译机140时,会导致部分编译机140处理压力过大,而部分编译机140却处于空闲,为了便避免这种情况,调度服务器130在将编译任务分发给n台编译机140时,调度服务器130,还用于根据负载均衡原则将编译任务分发给n台编译机。
作为一种可能的实现方式,调度服务器130可以每隔预定时间间隔或在生成新的编译任务时,获取各个编译机140的负载情况,并根据负载均衡原则,优先将编译任务分发给负载较小的编译机140,从而避免部分编译机140处理压力较大的问题。
编译机140,用于接收调度服务器130下发的编译任务;根据编译任务对源程序进行编译,得到编译结果。
编译机140接收到调度服务器130下发的编译任务后,根据编译任务中的编译参数,对源程序进行编译,得到相应的编译结果。
需要说明的是,为了使开发人员能够通过该编译平台查询到历史编译记录,各个编译机140在得到编译结果后,需要将该编译结果、源程序和编译参数作为编译记录信息,发送至数据库服务器150,由数据库服务器150进行存储,方便后续的查询。
数据库服务器150,用于存储编译记录信息,每条编译记录信息包括源程序、编译参数和编译结果中的全部内容或者部分内容。
对应的,数据库服务器150接收各个编译机140发送的编译记录信息,并进行存储。
可选地,web服务器120,还用于接收符合预定条件的开发终端发送的编译记录查询请求,预定条件包括:开发终端110拥有与编译记录对应的查询权限;将编译记录查询请求发送至数据库服务器150。
拥有与编译记录对应的查询权限的开发终端可以是使用管理员账号登录web服务器120的开发终端。
数据库服务器150,还用于接收编译记录查询请求;根据编译记录查询请求查找出至少一条编译记录信息;将编译记录信息作为查询结果,并通过web服务器120反馈给符合预定条件的开发终端110。
比如,如图3B所示,数据库服务器接收到符合预定条件的开发终端发送的查询所有编译记录的请求,并根据该请求将查询到的所有编译记录信息通过web服务器发送至符合预定条件的开发终端,该开发终端对接收到的编译记录信息进行显示。
需要说明的,开发人员还可以通过输入编译类型、编译结果类型、源代码路径、源代码版本号或开发者信息中的任意一个参数,向数据库服务器150发送用于查询指定编译记录的编译记录查询请求,相应的,数据库服务器150将查询到的编译记录信息通过web服务器120发送至开发终端110。
可选地,web服务器120,还用于接收符合预定条件的开发终端发送的差异查询请求,预定条件包括:开发终端110拥有与编译记录对应的查询权限;将差异查询请求发送至数据库服务器150。
拥有与编译记录对应的查询权限的开发终端可以是使用管理员账号登录web服务器120的开发终端。
数据库服务器150,还用于接收差异查询请求;根据差异查询请求查找出至少两份源代码;将至少两份源代码的比对结果作为查询结果并通过web服务器120反馈给符合预定条件的开发终端110。
数据库服务器150还可以提供额外的信息查询功能,比如,可以接收开发终端110发送的差异查询请求,该差异查询请求中可以携带有源代码对应的包名。数据库服务器150根据该包名查找到至少两份源代码,每一份源代码都在前一份源代码的基础上进行了修改。数据库服务器150根据查找到的至少两份 源代码进行对比,并将对比结果作为查询结果通过web服务器120反馈给开发终端110,有助于开发人员更快的确定编译出错位置。
比如,如图3B所示,开发终端向数据库服务器发送携带有包名“DEMO_002”的差异查询请求,数据库服务器根据该差异查询请求获取编译编号为14、17和18对应的三份源代码,并对三份源代码进行对比,将对比结果发送至开发终端。
需要说明的,数据库服务器150还可以提供代码静态检查等额外功能,本实施例仅以数据库服务器150提供差异查询功能为例进行说明,并不对本公开构成限定。
显而易见的,由于该编译平台中的编译机具有相同的编译环境,在编译过程中不再出现冗余依赖的问题,且该编译平台中的数据库服务器还会对编译结果进行存储,方便开发人员对编译历史进行回溯。另外,该编译平台还提供额外的查询或测试功能,方便开发人员对编译出错的代码进行及时的纠正。
综上所述,本实施例提供的编译平台,通过调度服务器根据开发终端上传的源程序和编译参数生成编译任务,并分发至具有相同编译环境的n台编译机,由n台编译机执行编译任务;解决了编译环境的差异所导致的编译过程出现冗余依赖的问题;达到了由具有相同编译环境的n台编译机执行编译任务,不再出现冗余依赖的情况,且多台编译机共同执行编译任务,提高编译速度的效果。
本实施例中,通过预先构建的web页面接收开发终端上传的源代码和编译参数,当开发人员需要进行程序编译时,只需要访问该web页面,并勾选相应的编译参数即可完成编译前的设置,大大提高了编译效率。
本实施例中,调度服务器根据各个编译机的负载均衡情况,将编译任务分发给n台编译机,避免了编译任务集中分发到部分编译机,造成部分编译机编译压力过大的问题,进一步提高了编译效率。
本实施例中,开发终端还可以通过web服务器向数据库服务器发送差异查询请求,由数据库服务器根据该差异查询请求返回相应的查询结果,方便开发人员通过编译平台查询到更多的编译信息,丰富该编译平台的功能。
为了更详细地说明本发明实施例,下面采用方法实施例对本发明实施例提供的编译平台的运作原理进行阐述。
请参考图4,其示出了本发明一个实施例提供的编译方法的方法流程图。本 实施例以该编译方法应用于图1所示的调度服务器130来举例说明。该方法包括:
步骤401,接收开发终端通过web页面上传的源程序和编译参数,web页面由web服务器提供;
步骤402,根据源程序和编译参数生成编译任务;
步骤403,将编译任务分发给具有相同的编译环境的n台编译机,n为正整数;n台编译机用于根据编译任务对源程序进行编译,得到编译结果,并将源程序、编译参数和编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
综上所述,本实施例提供的编译方法,通过调度服务器根据开发终端上传的源程序和编译参数生成编译任务,并分发至具有相同编译环境的n台编译机,由n台编译机执行编译任务;解决了编译环境的差异所导致的编译过程出现冗余依赖的问题;达到了由具有相同编译环境的n台编译机执行编译任务,不再出现冗余依赖的情况,且多台编译机共同执行编译任务,提高编译速度的效果。
可选地,为了避免将编译任务集中分发到部分编译机,造成部分编译机编译压力过大,而部分编译机编译压力较小或处于空闲状态,在步骤403中,调度服务器将编译任务分发给具有相同的编译环境的n台编译机时,具体包括:根据负载均衡原则将编译任务分发给n台编译机。
请参考图5A,其示出了本发明另一实施例提供的编译方法的方法流程图。本实施例以该编译方法应用于图1所示的web服务器120来举例说明。该方法包括:
步骤501,通过web页面接收开发终端上传的源程序和编译参数;
步骤502,将源程序和编译参数发送至调度服务器,调度服务器用于根据源程序和编译参数生成编译任务,并将编译任务分发给具有相同的编译环境的n台编译机,n为正整数;n台编译机用于根据编译任务对源程序进行编译,得到编译结果,并将源程序、编译参数和编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
综上所述,本实施例提供的编译方法,通过调度服务器根据开发终端上传的源程序和编译参数生成编译任务,并分发至具有相同编译环境的n台编译机, 由n台编译机执行编译任务;解决了编译环境的差异所导致的编译过程出现冗余依赖的问题;达到了由具有相同编译环境的n台编译机执行编译任务,不再出现冗余依赖的情况,且多台编译机共同执行编译任务,提高编译速度的效果。
可选地,如图5B所示,步骤501可以包括步骤501a和步骤501b。
步骤501a,向开发终端提供web页面;
步骤501b,接收开发终端通过web页面上传的源程序和编译参数,编译参数包括:编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息中的至少一项。
可选地,如图5C所示,该方法还可以包括如下步骤:
步骤503,接收符合预定条件的开发终端发送的编译记录查询请求,预定条件包括:开发终端拥有与编译记录对应的查询权限。
步骤504,将编译记录查询请求发送至数据库服务器;数据库服务器用于根据编译记录查询请求查找出至少一条编译记录信息,将编译记录信息作为查询结果,并通过web服务器反馈给符合预定条件的开发终端。
步骤505,接收数据库服务器发送的查询结果并反馈给符合预定条件的开发终端。
步骤506,接收符合预定条件的开发终端发送的差异查询请求,预定条件包括:开发终端拥有与编译记录对应的查询权限。
步骤507,将差异查询请求发送至数据库服务器;数据库服务器用于根据差异查询请求查找出至少两份源代码;将至少两份源代码的比对结果作为查询结果,并通过web服务器反馈给符合预定条件的开发终端。
步骤508,接收数据库服务器发送的查询结果并反馈给符合预定条件的开发终端。
请参考图6A,其示出了本发明另一实施例提供的编译方法的方法流程图。本实施例以该编译方法应用于图1所示的实施环境来举例说明。该方法包括:
步骤601,web服务器向开发终端提供web页面。
为了提高编译效率,开发人员可以预先构建一个web页面,该web页面上包含有多个编译参数填写项,供开发人员根据实际编译需求进行勾选或填写。当开发人员需要对编写的程序进行编译时,统一向web服务器发送web页面访 问请求,web服务器即向开发终端提供web页面,并通过该web页面接收开发终端上传的源代码和编译参数。
比如,如图3A所示,开发终端访问预定的web页面31,该web页面31中包含编译类型选择控件32,编译结果类型选择控件33,源代码路径34以及源代码版本号35。
需要说明的是,该web页面中包含的编译参数填写项,由开发人员根据预先制定的标准进行设置,本实施例仅以该web页面用于接收编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息为例进行说明,并不对本公开构成限定。
步骤602,web服务器接收开发终端通过web页面上传的源程序和编译参数,编译参数包括:编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息中的至少一项。
开发人员根据实际的编译需求,在web页面上勾选或填写相应的编译参数,并上传源程序。当开发人员点击提交时,web服务器即接收通过该web页面上传的源程序和编译参数。
比如,如图3A所示,开发人员在web页面31中填写完编译参数,并点击提交按钮36后,web服务器即接收web页面上传的编译信息。
步骤603,web服务器将源程序和编译参数发送至调度服务器。
web服务器接收到开发终端上传的源程序和编译参数后,即将源程序和编译参数发送至调度服务器。
步骤604,调度服务器接收web服务器发送的源程序和编译参数。
步骤605,调度服务器根据源程序和编译参数生成编译任务。
调度服务器接收到源代码和编译参数后,即生成相应的编译任务。比如,调度服务器可以根据接收到的源代码路径生成相应的编译任务,即一条源代码路径对应一个编译任务,本公开并不对调度服务器生成编译任务的方式进行限定。
比如,如图3A所示,调度服务器接收到的编译参数中包含“SVN路径1”和“SVN路径2”,调度服务器即生成“SVN路径1”对应的编译任务1以及“SVN路径2”对应的编译任务2。
步骤606,调度服务器将编译任务分发给n台编译机。
调度服务器根据开发人员上传的源代码和编译参数生成编译任务后,即将编译任务分发至编译平台中的多台编译机,由编译机根据分发的编译任务各自执行编译处理。
编译平台中的编译机均与调度服务器保持TCP(Transmission Control Protocol,传输控制协议)长连接,并通过该TCP长连接接收调度服务器分发的编译任务。编译平台中的编译机具有相同的编译环境,即编译机中的库文件相同;且计算资源(处理器、内存、磁盘等等)也相同,即各台编译的编译能力相同。
由于这些编译机的编译能力和编译环境都相同,将编译任务分配给不同的编译机不会产生库文件的冗余依赖,且将原本需要一台开发终端执行的编译任务分配各多个编译机共同处理,能够有效提高编译速度。
需要说明的是,由于可能同时存在多个开发终端通过web页面向调度服务器上传源程序和编译参数,对应的,调度服务器可能同时生成多个编译任务,所以编译平台中的部分编译机可能处于编译状态,而另一部分编译机可能处于空闲状态。当调度服务器将新生成的编译任务分发到处于编译状态的编译机时,会导致部分编译机处理压力过大,而部分编译机却仍旧处于空闲状态,为了便避免这种情况,调度服务器在将编译任务分发给n台编译机时,将根据负载均衡原则将编译任务分发给n台编译机。
作为一种可能的实现方式,调度服务器可以每隔预定时间间隔或在生成新的编译任务时,通过与编译机之间的TCP长连接获取各个编译机的负载情况,并根据负载均衡原则,优先将编译任务分发给负载较小的编译机,从而避免部分编译机处理压力较大的问题。
步骤607,编译机接收调度服务器下发的编译任务。
步骤608,编译机根据编译任务对源程序进行编译,得到编译结果。
编译机接收到编译任务后,即对该编译任务中包含的源程序进行编译,并得到相应的编译结果。
步骤609,编译机向数据库服务器发送编译记录信息,编译记录信息包括源程序、编译参数和编译结果中的全部内容或者部分内容。
为了使开发人员能够对历史编译记录进行追溯,编译机执行编译任务后,会将编译结果、源程序和编译参数作为编译记录信息发送至数据库服务器,由 数据库服务器进行存储,方便开发人员的后续查询。
步骤610,数据库服务器存储该编译记录信息。
需要说明的是,为了使开发人员能够及时获知编译结果,调度服务器还会获取上传该源程序和编译参数的开发终端的IP(Internet Protocol,互联网协议)地址,并将该IP地址与编译任务一同分发到编译机。编译机执行完编译任务后,将编译结果和IP地址一同发送给数据库服务器,由数据库服务器根据IP地址向开发终端发送编译结果。
步骤611,web服务器接收符合预定条件的开发终端发送的编译记录查询请求,预定条件包括:开发终端拥有与编译记录对应的查询权限。
拥有与编译记录对应的查询权限的开发终端还可以向通过web页面向web服务器发送编译记录查询请求,从而实现对历史编译记录的回溯。相应的,web服务器接收符合预定条件的开发终端发送的编译记录查询请求。
步骤612,web服务器将编译记录查询请求发送至数据库服务器。
步骤613,数据库服务器接收编译记录查询请求;根据编译记录查询请求查找出至少一条编译记录信息。
数据库服务器根据接收到的编译记录查询请求查询相应的编译记录信息,其中,该编译记录查询请求可以是针对所有历史编译记录也可以是针对特定历史编译记录,本发明并不对此进行限定。
步骤614,数据库服务器将编译记录信息作为查询结果,并通过web服务器反馈给符合预定条件的开发终端。
比如,如图3B所示,开发终端对接收到的查询结果进行显示,并在开发人员点击查看详情按钮37时显示图6B所示的编译详情。
步骤615,web服务器接收符合预定条件的开发终端发送的差异查询请求,预定条件包括:开发终端拥有与编译记录对应的查询权限。
数据库服务器还可以提供额外的信息查询功能,比如,数据库服务器可以接收开发终端通过web服务器转发的差异查询请求,该差异查询请求中可以携带有源代码对应的包名。
步骤616,web服务器将差异查询请求发送至数据库服务器。
步骤617,数据库服务器接收差异查询请求;根据差异查询请求查找出至少两份源代码。
数据库服务器根据该包名查找到至少两份源代码,每一份源代码都在前一份源代码的基础上进行了修改。数据库服务器根据查找到的至少两份源代码进行对比,并将对比结果作为查询结果进行反馈,有助于开发人员更快的确定编译出错位置。
需要说明的,数据库服务器还可以提供代码静态检查等额外功能,本实施例仅以数据库服务器提供差异查询功能为例进行说明,并不对本公开构成限定。
步骤618,数据库服务器将至少两份源代码的比对结果作为查询结果,并通过web服务器反馈给符合预定条件的开发终端。
比如,如图3B所示,开发终端通过web服务器向数据库服务器发送携带有包名“DEMO_002”的差异查询请求,数据库服务器根据该差异查询请求获取编译编号为14、17和18对应的三份源代码,并对三份源代码进行对比,并将对比结果作为查询结果。
综上所述,本实施例提供的编译方法,通过调度服务器根据开发终端上传的源程序和编译参数生成编译任务,并分发至具有相同编译环境的n台编译机,由n台编译机执行编译任务;解决了编译环境的差异所导致的编译过程出现冗余依赖的问题;达到了由具有相同编译环境的n台编译机执行编译任务,不再出现冗余依赖的情况,且多台编译机共同执行编译任务,提高编译速度的效果。
本实施例中,通过预先构建的web页面接收开发终端上传的源代码和编译参数,当开发人员需要进行程序编译时,只需要访问该web页面,并勾选相应的编译参数即可完成编译前的设置,大大提高了编译效率。
本实施例中,调度服务器根据各个编译机的负载均衡情况,将编译任务分发给n台编译机,避免了编译任务集中分发到部分编译机,造成部分编译机编译压力过大的问题,进一步提高了编译效率。
本实施例中,开发终端还可以通过web服务器向数据库服务器发送差异查询请求,由数据库服务器根据该差异查询请求返回相应的查询结果,方便开发人员通过编译平台查询到更多的编译信息,丰富该编译平台的功能。
请参考图7,其示出了本发明一个实施例提供的编译装置的结构方框图。该编译装置可以通过软件、硬件或者两者的结合实现成为调度服务器的全部或者一部分。该编译装置,包括:
第一接收模块710,用于接收开发终端通过web页面上传的源程序和编译参数,所述web页面由web服务器提供;
生成模块720,用于根据所述源程序和所述编译参数生成编译任务;
分发模块730,用于将所述编译任务分发给具有相同的编译环境的n台编译机,n为正整数;所述n台编译机用于根据所述编译任务对所述源程序进行编译,得到编译结果,并将所述源程序、所述编译参数和所述编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
可选地,分发模块730还用于根据负载均衡原则将所述编译任务分发给所述n台编译机。
综上所述,本实施例提供的编译装置,通过调度服务器根据开发终端上传的源程序和编译参数生成编译任务,并分发至具有相同编译环境的n台编译机,由n台编译机执行编译任务;解决了编译环境的差异所导致的编译过程出现冗余依赖的问题;达到了由具有相同编译环境的n台编译机执行编译任务,不再出现冗余依赖的情况,且多台编译机共同执行编译任务,提高编译速度的效果。
请参考图8,其示出了本发明另一实施例提供的编译装置的结构方框图。该编译装置可以通过软件、硬件或者两者的结合实现成为web服务器的全部或者一部分。该编译装置,包括:
上传模块810,用于通过web页面接收开发终端上传的源程序和编译参数;
第一发送模块820,用于将所述源程序和所述编译参数发送至调度服务器,所述调度服务器用于根据所述源程序和所述编译参数生成编译任务,并将所述编译任务分发给具有相同的编译环境的n台编译机,n为正整数;所述n台编译机用于根据所述编译任务对所述源程序进行编译,得到编译结果,并将所述源程序、所述编译参数和所述编译结果中的全部内容或者部分内容作为编译记录信息存储在数据库服务器中。
可选地,上传模块810,包括:
提供单元811,用于向所述开发终端提供所述web页面;
接收单元812,用于接收所述开发终端通过所述web页面上传的所述源程序和所述编译参数,所述编译参数包括:编译类型、编译结果类型、源代码路径、源代码版本号和开发者信息中的至少一项。
可选地,该装置,还包括:
第二接收模块830,用于接收符合预定条件的开发终端发送的编译记录查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;
第二发送模块840,用于将所述编译记录查询请求发送至所述数据库服务器;所述数据库服务器用于根据所述编译记录查询请求查找出至少一条所述编译记录信息,将所述编译记录信息作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端;
第一反馈模块850,用于接收所述数据库服务器发送的所述查询结果并反馈给所述符合预定条件的开发终端。
可选地,该装置,还包括:
第三接收模块860,用于接收符合预定条件的开发终端发送的差异查询请求,所述预定条件包括:所述开发终端拥有与所述编译记录对应的查询权限;
第三发送模块870,用于将所述差异查询请求发送至所述数据库服务器;所述数据库服务器用于根据所述差异查询请求查找出至少两份源代码;将所述至少两份源代码的比对结果作为查询结果,并通过所述web服务器反馈给所述符合预定条件的开发终端;
第二反馈模块880,用于接收所述数据库服务器发送的所述查询结果并反馈给所述符合预定条件的开发终端。
综上所述,本实施例提供的编译装置,通过调度服务器根据开发终端上传的源程序和编译参数生成编译任务,并分发至具有相同编译环境的n台编译机,由n台编译机执行编译任务;解决了编译环境的差异所导致的编译过程出现冗余依赖的问题;达到了由具有相同编译环境的n台编译机执行编译任务,不再出现冗余依赖的情况,且多台编译机共同执行编译任务,提高编译速度的效果。
本实施例中,通过预先构建的web页面接收开发终端上传的源代码和编译参数,当开发人员需要进行程序编译时,只需要访问该web页面,并勾选相应的编译参数即可完成编译前的设置,大大提高了编译效率。
本实施例中,调度服务器根据各个编译机的负载均衡情况,将编译任务分发给n台编译机,避免了编译任务集中分发到部分编译机,造成部分编译机编译压力过大的问题,进一步提高了编译效率。
本实施例中,开发终端还可以通过web服务器向数据库服务器发送差异查 询请求,由数据库服务器根据该差异查询请求返回相应的查询结果,方便开发人员通过编译平台查询到更多的编译信息,丰富该编译平台的功能。
需要说明的是:上述实施例提供的编译装置在进行编译时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将调度服务器或web服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的编译方法与编译装置实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

编译平台、编译方法及装置.pdf_第1页
第1页 / 共24页
编译平台、编译方法及装置.pdf_第2页
第2页 / 共24页
编译平台、编译方法及装置.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《编译平台、编译方法及装置.pdf》由会员分享,可在线阅读,更多相关《编译平台、编译方法及装置.pdf(24页珍藏版)》请在专利查询网上搜索。

本发明公开了一种编译平台、编译方法及装置,属于软件开发领域。该编译平台包括:web服务器、调度服务器、n台编译机和数据库服务器,n台编译机具有相同的编译环境,n为正整数;web服务器,用于通过web页面接收开发终端上传的源程序和编译参数;将源程序和所述编译参数发送至调度服务器;调度服务器,用于接收web服务器发送的源程序和编译参数;根据源程序和编译参数生成编译任务;将编译任务分发给n台编译机;编译。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1