CN101140525A - 分布式编译方法 - Google Patents
分布式编译方法 Download PDFInfo
- Publication number
- CN101140525A CN101140525A CNA2007101760295A CN200710176029A CN101140525A CN 101140525 A CN101140525 A CN 101140525A CN A2007101760295 A CNA2007101760295 A CN A2007101760295A CN 200710176029 A CN200710176029 A CN 200710176029A CN 101140525 A CN101140525 A CN 101140525A
- Authority
- CN
- China
- Prior art keywords
- compilation
- compiling
- engineering
- project
- client computer
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种分布式编译方法,涉及分布式编译技术,为解决目前应用版本中工程编译效率不高而提出,为解决上述问题,采用的方案为:A.服务器根据待编译工程数为可编译工程的客户机分配编译工程的任务;B.客户机执行所分配编译工程任务并返回编译结果。本发明简单实用,嵌入式系统仅支持串口情况下仍能实现文件传输。本发明针对编译工程中的大工程量编译现象,结合RPC技术,将单个机器编译工程的形式变为多个机器并行完成各自所分配工程的编译,大大节约了工程编译时间,从而提高了应用版本的生成效率。
Description
技术领域
本发明涉及分布式编译技术,尤其涉及一种分布式编译方法。
背景技术
工程编译中,存在工程大、文件多、编译时间长的问题,如果使用单独一台机器自动编译,即使编译的主机CPU足够强、内存足够多,但由于是串行处理,编译应用版本所有工程的时间也会相当长。这里,所谓的工程即是一个应用程序,由一些文件组成,VC编译中就是编译了无数个应用版本的exe文本。工程中的文件与别的方式组合或进行修改,就能产生一个新的工程,也就可以生成另外一个应用程序。而相应的工程组合在一起即生成相应的应用版本。
由于目前的工程编译采用的是串行方式,因此编译效率较低。
发明内容
有鉴于此,本发明的主要目的在于提供一种分布式编译方法,以实现对大工程量的快速编译,高效率生成应用版本。
为达到上述目的,本发明的技术方案是这样实现的:
一种分布式编译方法,包括:
A、服务器根据待编译工程数为可编译工程的客户机分配编译工程的任务;
B、客户机执行所分配编译工程任务并返回编译结果。
其中,步骤B中编译结果为编译成功后的编译文本或编译失败时的错误日志。
其中,步骤A中为客户机分配编译工程的任务,具体为:向客户机发送相应的编译工程指令。
其中,步骤B之后还包括:
服务器接收到编译错误日志时修改导致错误的脚本文件,并重新向客户机发送针对该编译错误工程的编译指令。
其中,步骤B之后还包括:
服务器根据各客户机返回的所有编译文本生成应用版本。
本发明针对编译工程中的大工程量编译现象,结合远程过程调用协议(RPC,Remote Procedure Call)技术,将单个机器编译工程的形式变为多个机器并行完成各自所分配工程的编译,大大节约了工程编译时间,从而提高了应用版本的生成效率。
附图说明
图1为本发明分布式编译方法的流程图。
具体实施方式
本发明的核心思想是:应用版本是由不同的工程有机组合而成的,而编译工程就成为了编译工作中的重点。目前针对工程的编译工作主要是通过单机实现的,对于浩大的应用版本而言,所包含的工程的数量是相当大的,而如果仅通过单机实现,则该单机需要支持不同的编译器,并不得不一一实现工程的编译,这无疑增加了应用版本的时间成本。针对这一问题,本发明利用网络中的RPC技术来实现多机并行完成这些工程的编译,通过服务器下达各工程的编译指令,各客户机根据接收到的编译指令完成相应工程的编译,并将编译结果通过网络返回至服务器,服务器根据这些返回结果生成应用版本。以下结合附图对本发明进行详细描述。
图1为本发明分布式编译方法的流程图,如图1所示,本发明分布式编译方法包括以下步骤:
步骤101:对网络中各用户主机进行编译器以及编译脚本部署。工程的编译需要相应的编译器以及编译用的脚本,因此需要将相应的编译器应用程序部署到各用户主机上,再在某些或某个用户主机如服务器上存储编译用的脚本。编译器可部署于客户机或服务器上。步骤101是本发明的实现准备步骤。本发明分布式编译方法可用于局域网中。
为进一步提高本发明的编译效果,本发明采用远程过程调用协议RPC中用户数据报协议(UPD,User Datagram Protocol)的非可靠通信方式,同时采用Client/Server构架,服务器端监听客户机与之通信的固定端口,而客户端则通过服务器端指定的通信端口发送UDP消息。而UDP协议是面向非连接的协议,无需建立连接的过程,因此其通信效率非常高。通过这一方式,可使服务器与客户机之间的通信速率大幅提高,本发明分布式编译的整体效率将得到进一步提升。
步骤102:服务器根据待编译工程数为可编译工程的客户机分配编译工程的任务。为了实现工程的并行编译,根据应用版本中的工程数目以及可用的编译机器来确定各编译机器的编译任务。本发明采用平均分配的方式,即根据待编译工程的总数量均匀分配到网络中各个可用的编译机器。具体的分配方式即通过服务器向各编译客户机发送编译指令。编译指令中包括编译工程指令和相应的参数。本发明中,服务器同样可以完成工程的编译工作。
步骤103:客户机执行所分配编译工程任务并返回编译结果。客户机根据接收到的编译指令完成对相应工程的编译工作,如果编译成功,则返回编译文本并发送至服务器端。而如果编译失败,则记录导致失败的错误日志,将该错误日志发送至服务器端。客户机可采用文件传输协议(FTP,File TransferProtocol)将相应信息发送到服务器。
服务器接收到客户机返回的错误日志后,根据错误日志信息确定导致编译失败的脚本,调整该相应的错误脚本后重新向该客户机发送针对该错误编译工程的编译指令,直到该工程编译成功。
步骤104:服务器根据各客户机返回的所有编译文本生成应用版本。服务器遍历客户机返回的所有编译文本,确认全部工程编译完成后自动生成应用版本。
本发明针对编译工程中的大工程量编译现象,结合RPC技术,将单个机器编译工程的形式变为多个机器并行完成各自所分配工程的编译,大大节约了工程编译时间,从而提高了应用版本的生成效率。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (5)
1.一种分布式编译方法,其特征在于,该方法包括:
A、服务器根据待编译工程数为可编译工程的客户机分配编译工程的任务;
B、客户机执行所分配编译工程任务并返回编译结果。
2.根据权利要求1所述的分布式编译方法,其特征在于,步骤B中编译结果为编译成功后的编译文本或编译失败时的错误日志。
3.根据权利要求2所述的分布式编译方法,其特征在于,步骤A中为客户机分配编译工程的任务,具体为:向客户机发送相应的编译工程指令。
4.根据权利要求3所述的分布式编译方法,其特征在于,步骤B之后还包括:
服务器接收到编译错误日志时修改导致错误的脚本文件,并重新向客户机发送针对该编译错误工程的编译指令。
5.根据权利要求2至4中任一项所述的分布式编译方法,其特征在于,步骤B之后还包括:
服务器根据各客户机返回的所有编译文本生成应用版本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101760295A CN101140525B (zh) | 2007-10-17 | 2007-10-17 | 分布式编译方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101760295A CN101140525B (zh) | 2007-10-17 | 2007-10-17 | 分布式编译方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101140525A true CN101140525A (zh) | 2008-03-12 |
CN101140525B CN101140525B (zh) | 2010-12-08 |
Family
ID=39192485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101760295A Expired - Fee Related CN101140525B (zh) | 2007-10-17 | 2007-10-17 | 分布式编译方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101140525B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193812A (zh) * | 2011-06-03 | 2011-09-21 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
CN103019772A (zh) * | 2012-11-23 | 2013-04-03 | 东方网力科技股份有限公司 | 一种软件开发中的自动化编译方法及系统 |
CN103440136A (zh) * | 2013-09-05 | 2013-12-11 | 迈普通信技术股份有限公司 | 分布式编译的方法及系统 |
CN105224333A (zh) * | 2015-10-16 | 2016-01-06 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
CN105867924A (zh) * | 2016-03-29 | 2016-08-17 | 乐视控股(北京)有限公司 | 用于编译环境批量部署的系统和方法 |
WO2017000601A1 (zh) * | 2015-06-29 | 2017-01-05 | 中兴通讯股份有限公司 | 软件编译方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9600823D0 (en) * | 1996-01-16 | 1996-03-20 | British Telecomm | Distributed processing |
EP1057101A2 (en) * | 1998-02-26 | 2000-12-06 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
-
2007
- 2007-10-17 CN CN2007101760295A patent/CN101140525B/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193812A (zh) * | 2011-06-03 | 2011-09-21 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
CN102193812B (zh) * | 2011-06-03 | 2014-03-26 | 深圳市茁壮网络股份有限公司 | 一种代码编译方法、主机及系统 |
CN103019772A (zh) * | 2012-11-23 | 2013-04-03 | 东方网力科技股份有限公司 | 一种软件开发中的自动化编译方法及系统 |
CN103440136A (zh) * | 2013-09-05 | 2013-12-11 | 迈普通信技术股份有限公司 | 分布式编译的方法及系统 |
WO2017000601A1 (zh) * | 2015-06-29 | 2017-01-05 | 中兴通讯股份有限公司 | 软件编译方法及装置 |
CN106325966A (zh) * | 2015-06-29 | 2017-01-11 | 中兴通讯股份有限公司 | 软件编译方法及装置 |
CN106325966B (zh) * | 2015-06-29 | 2019-08-13 | 南京中兴软件有限责任公司 | 软件编译方法及装置 |
CN105224333A (zh) * | 2015-10-16 | 2016-01-06 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
CN105224333B (zh) * | 2015-10-16 | 2018-09-07 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
CN105867924A (zh) * | 2016-03-29 | 2016-08-17 | 乐视控股(北京)有限公司 | 用于编译环境批量部署的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101140525B (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101140525B (zh) | 分布式编译方法 | |
CN102932408B (zh) | 一种服务器集群的管理方法和平台 | |
CN100353714C (zh) | 一种实现Web服务自动化测试的方法 | |
CN104636189B (zh) | 基于Xen的虚拟机部署系统及方法 | |
CN102523225A (zh) | 分布式松耦合构架中的解耦方法及分布式松耦合构架平台 | |
CN105138339A (zh) | 一种基于dds规范的分布式通信中间件开发方法 | |
CN101291245A (zh) | 一种分布式处理方法、系统及其装置 | |
CN104239114A (zh) | 应用程序的编译处理方法及装置 | |
CN102800015A (zh) | 一种金融ic卡远程个人化方法及系统 | |
CN101727316A (zh) | 适于集群系统的并行程序集成开发系统及其应用实现方法 | |
CN104572202A (zh) | 一种云计算下企业级应用软件部署的方法 | |
CN102148654A (zh) | 一种基于网络侧编译的系统及方法 | |
CN111210194A (zh) | 一种基于企业税务体系专用的业务支撑系统及方法 | |
CN103678007A (zh) | 一种软件的批量部署方法及系统 | |
CN103617048B (zh) | 一种虚拟机连接池分组系统及分组连接方法 | |
CN101179444B (zh) | 配置生效方法、配置系统及配置网关 | |
CN1972276A (zh) | 一种协议访问管理方法和系统 | |
KR20150121108A (ko) | 실행가능 코드를 실행하기 위한 방법, 처리 모듈 및 시스템 | |
CN104598250A (zh) | 一种系统管理架构及其实现管理的方法 | |
CN104090792A (zh) | 一种宽带接入网中逻辑文件的动态加载方法 | |
CN201332402Y (zh) | 一种基于嵌入式Linux的家庭下载服务器 | |
CN100416513C (zh) | 一种嵌入式软件的编译调试方法 | |
CN101236491A (zh) | 构造动态组件的方法和系统 | |
CN106844156B (zh) | 智能建筑综合管理平台系统中wcf通信消息拦截方法 | |
CN105354081A (zh) | 同步绑定服务的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101208 Termination date: 20161017 |
|
CF01 | Termination of patent right due to non-payment of annual fee |