平码五不中公式规律
  • / 9
  • 下载费用:30 金币  

编译程序的方法和装置以及系统.pdf

关 键 ?#21097;?/dt>
编译程序 方法 装置 以及 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201410105556.7

申请日:

2014.03.20

公开号:

CN103914329A

公开日:

2014.07.09

当前法律状态:

授权

有效性:

有权

法?#19978;?#24773;: 授权|||实质审查的生效IPC(主分类):G06F 9/45申请日:20140320|||公开
IPC分类号: G06F9/45; H04L29/06 主分类号: G06F9/45
申请人: 北京京东尚科信息技术有限公司
发明人: 陈伟
地址: 100080 北京市海淀区杏石口路65号西杉创意园西区11号楼东段1-4层西段1-4层
优?#28909;ǎ?/td>
专利代理机构: 中原信达知识产权代理有限责任公司 11219 代理人: 刘光明;陆锦华
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201410105556.7

授权公告号:

103914329B||||||

法律状态公告日:

2017.05.10|||2014.08.06|||2014.07.09

法律状态类?#20572;?/td>

授权|||实质审查的生效|||公开

摘要

编译程序的方法和装置以及系统,帮助移动应用程序开发者在仅具有应用程序?#21019;?#30721;和证书的情况下完成程序编译。本发明的编译程序的系统包括第一服务器和第二服务器,其中:所述第一服务器用于通过互联网接收终端设备发送的用于编译程序的数据然后发?#36879;?#25152;述第二服务器,所述数据包括程序?#21019;?#30721;和证书;所述第二服务器用于:在能够访问所述证书的情况下验证该证书,若验证通过则?#36816;?#36848;程序?#21019;?#30721;进行编译,否则经由所述第一服务器向所述终端设备返回第一提示信息;在无法访问所述证书的情况下经由所述第一服务器向所述终端设备返回第二提示信息,并且停止?#36816;?#36848;证书的验证。

权利要求书

权利要求书
1.  一种编译程序的系统,其特征在于,包括第一服务器和第二服务器,其中:
所述第一服务器用于通过互联网接收终端设备发送的用于编译程序的数据然后发?#36879;?#25152;述第二服务器,所述数据包括程序?#21019;?#30721;和证书;
所述第二服务器用于:在能够访问所述证书的情况下验证该证书,若验证通过则?#36816;?#36848;程序?#21019;?#30721;进行编译,否则经由所述第一服务器向所述终端设备返回第一提示信息;在无法访问所述证书的情况下经由所述第一服务器向所述终端设备返回第二提示信息,并且停止?#36816;?#36848;证书的验证。

2.  根据权利要求1所述的系统,其特征在于,所述第一服务器和第二服务器为服务器集群。

3.  一种编译程序的方法,其特征在于,包括:
接收用于编译程序的数据,所述数据包括程序?#21019;?#30721;和证书;
记录证书验证状态为未完成;
启动主线程和验证线程;
所述验证线程包括:
启动证书验证进程;
在所述证书验证进程自动结束的情况下,将所述证书验证状态修改为已完成,然后结束验证线程,在所述证书验证进程被所述主线程终止的情况下直接结束验证线程;
所述主线程包括:
判断所述验证进程是否存在;
在所述验证进程不存在的情况下检测证书验证状态:若证书验证状态为未完成,则启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况 下结束验证线程;若证书验证状态为已完成,则?#36816;?#36848;程序?#21019;?#30721;进行编译;
在所述验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证线程。

4.  一种编译程序的装置,其特征在于,包括:
接收模块,用于接收用于编译程序的数据,所述数据包括程序?#21019;?#30721;和证书;
记录模块,用于记录证书验证状态为未完成;
验证线程模块,用于执行验证线程,所述验证线程包括:
启动证书验证进程;
在所述证书验证进程自动结束的情况下,将所述证书验证状态修改为已完成,然后结束验证线程,在所述证书验证进程被所述主线程终止的情况下直接结束验证线程;
主线程模块,用于执行主线程,所述主线程包括:
判断所述验证进程是否存在;
在所述验证进程不存在的情况下检测证书验证状态:若证书验证状态为未完成,则启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证线程;若证书验证状态为已完成,则?#36816;?#36848;程序?#21019;?#30721;进行编译;
在所述验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证线程。

说明书

说明书编译程序的方法和装置以及系统
技术领域
本发明涉及计算机技术领域,特别地涉及一种编译程序的方法和装置以及系统。
背景技术
随着移动互联网的发展,有越来越多的开发者竞相开发移动应用程序。开发者在编写完成应用程序的?#21019;?#30721;之后,和证书一起提交到编译系统,该编译系统对证书进行验证,验证通过后对该?#21019;?#30721;进行编译。例如在苹果公司开发的iOS平台上,开发者手动导入.p12证书到钥?#29366;?#25163;动导入.mobileprovision到Xcode中,由编译器Xcode进行编译。
发明内容
本发明的主要目的是提供一种编译程序的方法和装置以及系统,帮助移动应用程序开发者在仅具有应用程序?#21019;?#30721;和证书的情况下完成程序编译。
为实现上述目的,根据本发明的一个方面,提供了一种编译程序的系统。
本发明的编译程序的系统包括第一服务器和第二服务器,其中:所述第一服务器用于通过互联网接收终端设备发送的用于编译程序的数据然后发?#36879;?#25152;述第二服务器,所述数据包括程序?#21019;?#30721;和证书;所述第二服务器用于:在能够访问所述证书的情况下验证该证书,若验证通过则?#36816;?#36848;程序?#21019;?#30721;进行编译,否则经由所述第一服务器向所述终端设备返回第一提示信息;在无法访问所述证书的情况下经由 所述第一服务器向所述终端设备返回第二提示信息,并且停止?#36816;?#36848;证书的验证。
可选地,所述第一服务器和第二服务器为服务器集群。
根据本发明的另一方面,提供了一种编译程序的方法。
本发明的编译程序的方法包括:接收用于编译程序的数据,所述数据包括程序?#21019;?#30721;和证书;记录证书验证状态为未完成;启动主线程和验证线程;所述验证线程包括:启动证书验证进程;在所述证书验证进程自动结束的情况下,将所述证书验证状态修改为已完成,然后结束验证线程,在所述证书验证进程被所述主线程终止的情况下直接结束验证线程;所述主线程包括?#21495;?#26029;所述验证进程是否存在;在所述验证进程不存在的情况下检测证书验证状态:若证书验证状态为未完成,则启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证线程;若证书验证状态为已完成,则?#36816;?#36848;程序?#21019;?#30721;进行编译;在所述验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证线程。
根据本发明的又一方面,提供了一种编译程序的装置。
本发明的编译程序的装置包括:接收模块,用于接收用于编译程序的数据,所述数据包括程序?#21019;?#30721;和证书;记录模块,用于记录证书验证状态为未完成;验证线程模块,用于执行验证线程,所述验证线程包括:启动证书验证进程;在所述证书验证进程自动结束的情况下,将所述证书验证状态修改为已完成,然后结束验证线程,在所述证书验证进程被所述主线程终止的情况下直接结束验证线程;主线程模块,用于执行主线程,所述主线程包括?#21495;?#26029;所述验证进程是否存在;在所述验证进程不存在的情况下检测证书验证状态:若证书验证 状态为未完成,则启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证线程;若证书验证状态为已完成,则?#36816;?#36848;程序?#21019;?#30721;进行编译;在所述验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证线程。
根据本发明的技术方案,由服务器提供编译环境,对用户提供的源程序进行编译,其中在验证证书时,若无证书访问权限则停止验证并且提示用户,以防内存耗尽而死机,实现了大批量的自动编译,并且使用户无需准备编译环境,在仅具有应用程序?#21019;?#30721;和证书的情况下就能完成程序编译,?#26723;?#20102;程序开发的成本。在服务器的处理方式上,采用验证证书的线程和主线程并行,能够准确地控制证书验证和编译的进程,在遇到不能访问的证书时能够提示用户并且停止证书验证,对于能够访问的证书则进行正常的验证。
附图说明
附?#21152;?#20110;更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的编译程序的系统的示意图;
图2是根据本发明实施例的编译程序的方法的示意图;
图3是根据本发明实施例的编译程序的装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种?#38468;?#20197;助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的?#27573;?#21644;精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的编译程序的系统的示意图。如图1所 示,编译程序的系统10主要包括第一服务器11和第二服务器12,二者可基于httpclient等协议进行通信;第一服务器11通过互联网2与多个终端设备31、32、……、3N连接,通过提供web服务,可以接收终端设备发送的?#21019;?#30721;和证书,?#21019;?#30721;和证书由第二服务器12进行处理,其中主要是对证书进行验证,并在验证通过的情况下对?#21019;?#30721;进行编译。第一服务器11和第二服务器12可采用服务器集?#28023;?#20197;处理海量终端设备发送的数据。
为了安全起见,证书一般具有访问权限,使编译系统能够访问证书从而对其进行验证。对于现有的编译系统,如果没有权限访问证书,则会在人机界面?#31995;?#20986;一个提示框以提示操作人员,该提示框需操作人员点击确认,于是结束对证书的验证进程。采用编译程序的系统10进行编译时,第二服务器12会接收到大量的证书需要验证,如果第二服务器12因没有权限访问其中的多个证书,则验证进程无法继续但并未中止,多个这种情况的验证进程容易导致机器内存耗尽而死机。因此在本实施例中,第二服务器12在无法访问证书的情况下停止对证书的验证进程,并且生成提示信息然后发?#36879;?#31532;一服务器11,再由第一服务器11转发给终端设备,以使开发者得知证书权限需要修改。
第二服务器12在运行中可采用图2所示的流程。图2是根据本发明实施例的编译程序的方法的示意图。该方法可由执行编译的计算机例如第二服务器12完成。如图2所示,在步骤S201中,导入用于编译程序的数据,例如在iOS中,使用secue命令将.p12证书导入钥?#29366;?#20351;用cp命令将.mobileprovision导入Xcode。可以计算出证书的哈希值,并与本次编译任务的名称一起作为本次编译任务的标识。
在步骤S202中,设置一个证书验证完成位,以记录证书验证状态,此时令其值为0,表示证书验证尚未完成。接下来启动用两个线程,分别是步骤S211中的启动验证线程和步骤S221中的启动主线程。在步骤S212中,对证书进行验证(在iOS中验证进程为codesign进程), 然后在步骤S213?#20449;?#26029;证书验证进程是否结束,若未结束,则延时之后返回步骤S213继续判断,如结束,判断其结束方式(步骤S214),如果证书验证进程的结束方式是自动结束,表明能够访问证书并且证书验证通过,此时进入步骤S215,修改证书验证完成位的值为1,表示证收验证通过。验证线程在步骤S215之后结束。如果证书验证进程的结束方式为被终止(?#23548;?#19978;是被主线程终止,见下面的描述),则直接结束验证线程,在该情况下证书验证完成位的?#31561;员?#25345;为0。
在主线程中,步骤S222为检测验证进程是否存在。若不存在,则检测证书验证完成位的值(步骤S223),若为1,表示证书验证进程已结束并且结束方式是自动结束,此时进入步骤S224进行编译,编译之后即按常规方式,可以?#22659;?#38053;?#29366;?#21644;Xcode中的证书,并且把编译得到的程序包返回给终端设备。在步骤S223中,若证书验证完成位的值为0,表示验证进程尚未启动,此时进入步骤S225,等待预设的时长,该时长应大于证书能够被访问的情况下正常验证所需的时间,例如30S,在该30S内,返回步骤S222,继续反复检测验证进程是否存在。若验证进程存在,说明其已启动,则继续等待验证结果,如果验证进程在30S内结束,则?#22336;?#22238;步骤S223,并且必然是验证进程自动结束从而进入步骤S224,这?#19988;?#20026;验证进程被终止的步骤在30S之后才执行。如果验证进程在30S内未结束,则等待超时,原因可能是证书的访问权限未修改使其无法被访问,也可能是证书虽能被访问但验证未通过,此?#26412;?#32456;止证书验证进程(步骤S226),然后发出提示信息(步骤S227)以及结束主线程。此?#34987;?#21487;以将导入的证书?#22659;?
图3是根据本发明实施例的编译程序的装置的主要模块的示意图。该装置作为软件模块可以设置在计算机例如第二服务器12或者第二服务器集群的节点中。如图3所示,编译程序的装置30主要包括接收模块31、记录模块32、验证线程模块33、以及主线程模块34。
接收模块31用于接收用于编译程序的数据,该数据包括程序?#21019;?码和证书。记录模块32用于记录证书验证状态为未完成。验证线程模块33用于执行验证线程。主线程模块34用于执行主线程。
验证线程包括:启动证书验证进程;在证书验证进程自动结束的情况下,将证书验证状态修改为已完成,然后结束验证线程,在证书验证进程被主线程终止的情况下直接结束验证线程。
主线程包括?#21495;?#26029;验证进程是否存在;在验证进程不存在的情况下检测证书验证状态:若证书验证状态为未完成,则启动设定时长的等待,并在等待过程中再次判断验证进程是否存在,以及在等待超时的情况下结束验证线程;若证书验证状态为已完成,则对程序?#21019;?#30721;进行编译;在验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断验证进程是否存在,以及在等待超时的情况下结束验证线程。
根据本发明的技术方案,由服务器提供编译环境,对用户提供的源程序进行编译,其中在验证证书时,若无证书访问权限则停止验证并且提示用户,以防内存耗尽而死机,实现了大批量的自动编译,并且使用户无需准备编译环境,在仅具有应用程序?#21019;?#30721;和证书的情况下就能完成程序编译,?#26723;?#20102;程序开发的成本。在服务器的处理方式上,采用验证证书的线程和主线程并行,能够准确地控制证书验证和编译的进程,在遇到不能访问的证书时能够提示用户并且停止证书验证,对于能够访问的证书则进行正常的验证。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以?#24067;?#22266;件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任?#26410;?#20648;介?#30465;?
还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护?#27573;?#30340;限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护?#27573;?#20043;内。

关于本文
本文标题:编译程序的方法和装置以及系统.pdf
链接地址:http://www.pqiex.tw/p-6115818.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 疯狂街机捕鱼赢话费 11选5手机助手官网最新版 最新pt游戏平台 街机千炮捕鱼联网版 上海时时开奖视频直播 财富半岛赚钱吗 十二生肖游戏机下载 北京pk10官网开奖视频 苏州哪个地方送外卖赚钱 pt电子游戏注册子