CN101582041A - 基于web的分布式编译方法及其系统 - Google Patents
基于web的分布式编译方法及其系统 Download PDFInfo
- Publication number
- CN101582041A CN101582041A CNA2009100397532A CN200910039753A CN101582041A CN 101582041 A CN101582041 A CN 101582041A CN A2009100397532 A CNA2009100397532 A CN A2009100397532A CN 200910039753 A CN200910039753 A CN 200910039753A CN 101582041 A CN101582041 A CN 101582041A
- Authority
- CN
- China
- Prior art keywords
- server
- compiling
- compiler
- web
- director
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于web的分布式编译的方法,包括在服务端进行分布式编译的步骤。服务端的编译总服务器与各编译服务器采用基于Web Service的分布式架构,服务器端分布不同类型的硬件平台的编译总服务器和编译服务器。本发明还公开了一种基于web的分布式编译系统,该系统基于B/S架构,包括web服务器、UDDI服务器、编译总服务器和编译服务器。本发明使得开发人员无需在客户端安装编译器就能进行开发,而且能够针对不同硬件平台进行编译,可以生成对应于不同硬件平台的可执行程序。本发明相对于以往的单机编译效率有了显著的提高,对于大型工程的编译节省了很多时间。
Description
技术领域
本发明属于分布式编译技术领域,具体涉及一种基于web的分布式编译方法及其系统。
背景技术
在传统的程序开发过程中,开发者需要在机器中安装相应语言的编译器,才能生成相应的可执行程序。如果开发者转移到另外的机器上开发,则需要重新安装对应该硬件平台的编译器,否则无法进行程序的编译。
目前基于web的编译系统,编译速度都不能让人满意,特别是对于文件数量比较多的大工程来说,进行编译仍要花费较长的一段时间,只有解决这个问题才能让基于web的编译系统广泛地被接受和应用。另外,纵览当前的各种在线编译系统,没有一个系统能够提供相应硬件平台的可执行程序,只能输出相关的文本信息。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于web的分布式编译方法,使得用户浏览器端的源代码可以通过服务端进行快速编译,并返回相应硬件平台的编译结果,本发明的另一目的在于提供一种基于web的分布式编译系统。
本发明的目的通过以下技术方案实现:
本发明提供一种基于web的分布式编译方法,包括服务器端和用户端,服务器端包含不同类型的硬件平台的编译总服务器和编译服务器,用于提供应付不同硬件平台的编译需求服务。用户可以通过浏览器选择不同的硬件平台;web服务器根据用户提交的请求选择相应的编译总服务器。
所述方法包括:服务端采用分布式编译,其步骤如下:
a1.编译总服务器根据工程的源文件数和各个相同硬件平台编译服务器的空闲情况来分配编译任务;
a2.编译总服务器通过SOAP调用编译服务器的编译服务;
a3.编译服务器将编译结果返回编译总服务器;
a4.编译总服务器处理编译结果,将最终编译结果返回web服务器;
a5.web服务器将最终编译结果返回到用户浏览器端;
其中,步骤a3的编译结果为编译器编译成功产生的目标文件或者编译失败产生的错误日志。
步骤a4的最终编译结果为所有目标文件成功链接产生的可执行程序,或者是链接失败产生的错误日志,或者是编译服务器返回的错误日志。
其中,编译总服务器与各编译服务器采用基于Web Service的分布式架构:编译服务器采用WSDL(Web Service Description Language)描述其提供编译服务的编译器相关信息;编译服务器在UDDI(Universal Description Discovery and Integration)服务器上注册服务;编译总服务器通过UDDI查找指定类型的编译服务器并与之绑定;编译总服务器根据工程的源文件数和各个编译服务器的空闲情况,向编译服务器分配编译任务;编译总服务器通过SOAP(Simple Object Access Protocol)调用编译服务器的编译服务。
本发明的另一目的通过以下方案实现:
本发明提供一种基于web的分布式编译系统,基于B/S架构,包括web服务器,该服务器用于接收用户提交的工程源代码,根据用户选择的硬件平台将工程源代码传给相应的编译总服务器;用户可以在web服务器提供的网页上输入用户名和密码登录,设置身份认证的目的是为了防止不法分子恶意占用大量编译服务器资源,造成普通用户无法使用编译系统的情况发生;用户登录后可以创建新工程,并在新工程中创建新的源文件,源文件可以通过在网页文本框中输入文件名和源码创建,或者直接导入用户本地的源文件;用户需要从页面上的硬件平台列表选择适合的硬件平台,并点击“提交编译”按钮,从而完成工程的创建。
系统还包括编译总服务器,每个硬件平台对应一台编译总服务器,用于接收web服务器传来的工程源文件;编译总服务器计算源文件总数,并根据各个编译服务器的空闲情况分配源文件编译任务,对空闲情况相同的编译服务器平均分配源文件,比较忙的编译服务器分配较少的源文件或者不分配源文件;编译总服务器通过SOAP调用各个编译服务器的编译器进行相应源文件的编译。
系统还包括编译服务器,每台编译服务器只能连接一台编译总服务器,每个编译总服务器可以连接多台编译服务器;编译服务器通过WSDL描述其提供的编译服务,并在UDDI上注册服务;编译服务器对传来的源文件进行编译,并返回编译结果。
此外,系统还包括UDDI服务发布服务器,用来发布、查找和绑定服务。
在本发明的系统中,用户与web服务器通过HTTP连接,web服务器、编译总服务器、编译服务器和UDDI服务器位于同一个局域网内,web服务器与编译总服务器通过UDP(User Datagram Protocol)传输工程的源程序和编译结果,编译总服务器与编译服务器也通过UDP传输源文件和编译结果,通过SOAP调用相应的编译服务。
本发明具有以下有益效果:
(1)开发人员无需在机器上安装编译器就能进行程序开发,只需在浏览器上输入源程序进行编译,就能得到相应的编译结果;
(2)编译系统采用分布式编译,大大提高了编译速度,对于大型工程的编译效果明显;
(3)编译系统可以根据不同的硬件平台进行编译,适用于不同硬件平台的终端用户。
附图说明
下面将结合实施例和附图对本发明作进一步的详细描述:
图1是本发明基于web的分布式编译系统的结构组成框图;
图2是本发明基于web的分布式编译的工作流程框图。
具体实施方式
图1和图2所示为本发明的实施例。如图1所示,本实施例基于web的分布式编译系统基于B/S架构,包括web服务器,该服务器用于接收用户提交的工程源代码,根据用户选择的硬件平台将工程源代码传给相应的编译总服务器上,并将编译总服务器传回的编译结果返回给终端用户。
系统还包括编译总服务器,每个硬件平台对应一台编译总服务器,如图1所示,由于用户选择硬件平台A,因此硬件平台A编译总服务器接收web服务器传来的工程源文件;硬件平台A编译总服务器根据源文件总数和各个可用的编译服务器的空闲情况分配编译任务;硬件平台A编译总服务器通过SOAP调用分配任务的编译服务器的编译服务;硬件平台A编译总服务器还对从各个编译服务器返回的编译结果进行汇总处理,将最终编译结果传给web服务器。
系统还包括编译服务器,每台编译服务器只能连接一台编译总服务器,每个编译总服务器可以连接多台编译服务器;编译服务器通过WSDL描述其提供的编译服务,并在UDDI上注册服务;编译服务器对传来的源文件进行编译,并返回编译结果。
此外,系统还包括UDDI,用来发布、查找和绑定服务,硬件平台A编译总服务器通过UDDI服务器来查找并绑定与之相同硬件平台的编译服务器。
如图2所示,本实施例基于web的分布式编译的方法如下:
1)用户输入用户名和密码,登录编译系统。
2)用户点击页面中“新建工程”按钮创建新的工程。
3)用户点击页面中“新建文件”按钮创建新文件。
4)用户可以选择在文本框中输入源程序或者导入本地源文件进行文件编辑。
5)在用户编辑完成之后,用户需要选择硬件平台。
6)用户点击“提交编译”按钮提交工程由服务器编译。
7)web服务器根据用户选定的硬件平台选择相同硬件平台的编译总服务器,将工程通过UDP传给编译总服务器。
8)编译总服务器计算源文件总数,并根据各个编译服务器的空闲情况通过UDP分配源文件编译任务,对空闲情况相同的编译服务器平均分配源文件,比较忙的编译服务器分配较少的源文件或者不分配源文件。
9)编译总服务器通过SOAP调用编译服务器的编译器对源文件进行编译,并返回编译结果至编译总服务器。
10)编译总服务器判断返回的各个编译结果是否正确:如果都正确,则进行链接。如果链接产生可执行程序,则将可执行程序传给web服务器;如果链接出现错误,则将错误日志传给web服务器。如果传回编译总服务器的编译结果提示有错误时,则不进行链接,直接将编译结果转发给web服务器。
Claims (6)
1、一种基于web的分布式编译方法,包括服务器端和用户端,服务器端包含不同类型硬件平台的编译总服务器和编译服务器,用于提供应付不同硬件平台编译需求的服务,用户可以通过浏览器选择不同的硬件平台,web服务器根据用户提交的请求选择相应的编译总服务器,其服务端采用分布式编译,其步骤如下:
a1.编译总服务器根据工程的源文件数和各个相同硬件平台的编译服务器的空闲情况来分配编译任务;
a2.编译总服务器通过SOAP调用编译服务器;
a3.编译服务器将编译结果返回编译总服务器;
a4.编译总服务器处理编译结果,将最终编译结果返回web服务器;
a5.web服务器将最终编译结果返回到用户浏览器端。
2、根据权利要求1所述的基于web的分布式编译方法,其特征在于:步骤a3中所述的编译结果为编译服务器编译成功产生的目标文件或者编译失败产生的错误日志。
3、根据权利要求1所述的基于web的分布式编译方法,其特征在于:步骤a4中所述的最终编译结果为所有目标文件成功链接产生的可执行程序,或者是链接失败产生的错误日志,或者是编译服务器返回的错误日志。
4、根据权利要求1或2或3所述的基于web的分布式编译方法,其特征在于:编译总服务器与各编译服务器采用基于Web Service的分布式架构:编译服务器采用WSDL描述其提供编译服务的编译器相关信息;编译服务器在UDDI服务器上注册服务;编译总服务器通过UDDI查找指定类型的编译服务器并与之绑定;编译总服务器通过SOAP调用编译服务器的编译服务。
5、一种基于web的分布式编译系统,其特征在于:基于B/S架构,包括web服务器、编译总服务器、编译服务器,web服务器用于接收用户提交的工程源代码,根据用户选择的硬件平台将工程源代码传给相应的编译总服务器:
所述的编译总服务器,用于接收web服务器传来的工程源代码,每个硬件平台对应一台编译总服务器;编译总服务器根据源文件总数和各个编译服务器的空闲情况分配源文件编译任务,对空闲情况相同的编译服务器平均分配源文件,比较忙的编译服务器分配较少的源文件或者不分配源文件;编译总服务器通过SOAP调用各个编译服务器的编译器进行相应源文件的编译;
所述的编译服务器通过WSDL描述其提供的编译服务,并在UDDI上注册服务;编译服务器对传来的源文件进行编译,并返回编译结果;
所述的UDDI,用来发布、查找和绑定服务。
6、根据权利要求5所述的基于web的分布式编译系统,其特征在于:用户与web服务器通过HTTP连接,web服务器、编译总服务器、编译服务器和UDDI服务器位于同一个局域网内,web服务器与编译总服务器通过UDP传输工程的源程序和编译结果,编译总服务器与编译服务器通过UDP传输源文件和编译结果,编译总服务器通过SOAP调用相应的编译服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100397532A CN101582041A (zh) | 2009-05-25 | 2009-05-25 | 基于web的分布式编译方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100397532A CN101582041A (zh) | 2009-05-25 | 2009-05-25 | 基于web的分布式编译方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101582041A true CN101582041A (zh) | 2009-11-18 |
Family
ID=41364196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100397532A Pending CN101582041A (zh) | 2009-05-25 | 2009-05-25 | 基于web的分布式编译方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101582041A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833449A (zh) * | 2010-04-16 | 2010-09-15 | 中山大学 | 基于云计算的编译处理方法及系统 |
CN103019772A (zh) * | 2012-11-23 | 2013-04-03 | 东方网力科技股份有限公司 | 一种软件开发中的自动化编译方法及系统 |
CN103440136A (zh) * | 2013-09-05 | 2013-12-11 | 迈普通信技术股份有限公司 | 分布式编译的方法及系统 |
CN104965748A (zh) * | 2015-06-03 | 2015-10-07 | 广州华多网络科技有限公司 | 编译平台、编译方法及装置 |
CN105224333A (zh) * | 2015-10-16 | 2016-01-06 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
WO2016095241A1 (zh) * | 2014-12-17 | 2016-06-23 | 深圳Tcl数字技术有限公司 | 选择视频编解码硬件平台的方法及装置 |
CN105760207A (zh) * | 2016-03-14 | 2016-07-13 | 青岛海信移动通信技术股份有限公司 | 一种基于云计算平台的编译方法、装置及系统 |
WO2017000601A1 (zh) * | 2015-06-29 | 2017-01-05 | 中兴通讯股份有限公司 | 软件编译方法及装置 |
CN106648717A (zh) * | 2015-11-03 | 2017-05-10 | 陈智玲 | 一种微控制器网络实时编程开发方法 |
CN107168765A (zh) * | 2017-07-07 | 2017-09-15 | 惠州Tcl移动通信有限公司 | 一种远程编译软件的方法及系统 |
CN107704993A (zh) * | 2017-09-01 | 2018-02-16 | 北京猿圈科技有限责任公司 | 一种基于用户行为的编程能力评估方法 |
CN109271166A (zh) * | 2018-09-20 | 2019-01-25 | 摩尔元数(厦门)科技有限公司 | 一种在Web端实现在线编译的方法和平台 |
CN109388394A (zh) * | 2018-09-03 | 2019-02-26 | 南京南瑞继保电气有限公司 | 一种分布式编程方法、系统及存储介质 |
CN110647330A (zh) * | 2019-09-10 | 2020-01-03 | 北京网聘咨询有限公司 | 针对Web的即时编译方法及工具 |
WO2023051034A1 (zh) * | 2021-09-30 | 2023-04-06 | 中兴通讯股份有限公司 | 终端代码增量编译方法、系统、装置、服务器和存储介质 |
-
2009
- 2009-05-25 CN CNA2009100397532A patent/CN101582041A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833449A (zh) * | 2010-04-16 | 2010-09-15 | 中山大学 | 基于云计算的编译处理方法及系统 |
CN103019772A (zh) * | 2012-11-23 | 2013-04-03 | 东方网力科技股份有限公司 | 一种软件开发中的自动化编译方法及系统 |
CN103440136A (zh) * | 2013-09-05 | 2013-12-11 | 迈普通信技术股份有限公司 | 分布式编译的方法及系统 |
WO2016095241A1 (zh) * | 2014-12-17 | 2016-06-23 | 深圳Tcl数字技术有限公司 | 选择视频编解码硬件平台的方法及装置 |
CN104965748A (zh) * | 2015-06-03 | 2015-10-07 | 广州华多网络科技有限公司 | 编译平台、编译方法及装置 |
CN104965748B (zh) * | 2015-06-03 | 2018-07-10 | 广州华多网络科技有限公司 | 编译平台、编译方法及装置 |
CN106325966B (zh) * | 2015-06-29 | 2019-08-13 | 南京中兴软件有限责任公司 | 软件编译方法及装置 |
WO2017000601A1 (zh) * | 2015-06-29 | 2017-01-05 | 中兴通讯股份有限公司 | 软件编译方法及装置 |
CN106325966A (zh) * | 2015-06-29 | 2017-01-11 | 中兴通讯股份有限公司 | 软件编译方法及装置 |
CN105224333A (zh) * | 2015-10-16 | 2016-01-06 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
CN105224333B (zh) * | 2015-10-16 | 2018-09-07 | 中国工商银行股份有限公司 | 大机目标代码快速生成方法及系统 |
CN106648717A (zh) * | 2015-11-03 | 2017-05-10 | 陈智玲 | 一种微控制器网络实时编程开发方法 |
CN105760207A (zh) * | 2016-03-14 | 2016-07-13 | 青岛海信移动通信技术股份有限公司 | 一种基于云计算平台的编译方法、装置及系统 |
CN107168765A (zh) * | 2017-07-07 | 2017-09-15 | 惠州Tcl移动通信有限公司 | 一种远程编译软件的方法及系统 |
CN107168765B (zh) * | 2017-07-07 | 2021-08-10 | 惠州Tcl移动通信有限公司 | 一种远程编译软件的方法及系统 |
CN107704993A (zh) * | 2017-09-01 | 2018-02-16 | 北京猿圈科技有限责任公司 | 一种基于用户行为的编程能力评估方法 |
CN109388394A (zh) * | 2018-09-03 | 2019-02-26 | 南京南瑞继保电气有限公司 | 一种分布式编程方法、系统及存储介质 |
CN109271166A (zh) * | 2018-09-20 | 2019-01-25 | 摩尔元数(厦门)科技有限公司 | 一种在Web端实现在线编译的方法和平台 |
CN110647330A (zh) * | 2019-09-10 | 2020-01-03 | 北京网聘咨询有限公司 | 针对Web的即时编译方法及工具 |
CN110647330B (zh) * | 2019-09-10 | 2023-04-07 | 北京网聘咨询有限公司 | 针对Web的即时编译方法及工具 |
WO2023051034A1 (zh) * | 2021-09-30 | 2023-04-06 | 中兴通讯股份有限公司 | 终端代码增量编译方法、系统、装置、服务器和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101582041A (zh) | 基于web的分布式编译方法及其系统 | |
CN101833449A (zh) | 基于云计算的编译处理方法及系统 | |
CN102257789B (zh) | 用于改善交互路由性能的系统和方法 | |
Pervez et al. | Multi-tenant, secure, load disseminated SaaS architecture | |
CN102629939B (zh) | 电力企业服务总线实现方法及装置 | |
CN105677452A (zh) | 任务平台任务处理方法和装置 | |
CN103428166A (zh) | 第三方应用的多sns平台统一接入方法及系统 | |
JP2010128877A (ja) | ウェブシステムおよび処理記録収集方法 | |
CN104935619A (zh) | 基于中间件的网络服务方法 | |
CN101778013A (zh) | 网站测试系统及方法 | |
CN102611756A (zh) | 一种发送访问请求的方法及系统 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN104468838A (zh) | 一种P2P网路和发布订阅模式的Web服务选择方法 | |
CN103544060B (zh) | 一种基于webservice的服务调度系统及方法 | |
CN103118137A (zh) | 跨域访问页面装置和跨域访问页面方法 | |
CN108234607B (zh) | 一种基于微服务架构模式下的文件分发方法与系统 | |
CN102917067A (zh) | 基于客户端自适应并发控制提高响应速度的方法和装置 | |
Byromª et al. | APEL: An implementation of Grid accounting using R-GMA | |
CN106648597A (zh) | 一种多用户并发式远程编译引擎架构 | |
David et al. | The ISDN Bandwagon is coming, but who will be there to climb aboard?: Quandaries in the economics of data communication networks | |
JP5961471B2 (ja) | 複数の情報システムおける出力比較方法 | |
CN109104472B (zh) | 区块链网络组网方法、装置、设备及计算机可读存储介质 | |
CN109788083A (zh) | 应用下载方法、装置、存储介质及电子装置 | |
CN110868330A (zh) | 云平台可划分cpu资源的评估方法、装置及评估系统 | |
US20150032789A1 (en) | Dynamic object oriented remote instantiation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091118 |