CN102594914B - 一种基于云平台的远程调试方法 - Google Patents

一种基于云平台的远程调试方法 Download PDF

Info

Publication number
CN102594914B
CN102594914B CN201210070171.2A CN201210070171A CN102594914B CN 102594914 B CN102594914 B CN 102594914B CN 201210070171 A CN201210070171 A CN 201210070171A CN 102594914 B CN102594914 B CN 102594914B
Authority
CN
China
Prior art keywords
proxy server
client
http
request
message
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.)
Active
Application number
CN201210070171.2A
Other languages
English (en)
Other versions
CN102594914A (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.)
Guangzhou Yunbiao Bureau Network Technology Co.,Ltd.
Original Assignee
GUANGZHOU ONECLOUD INFORMATION TECHNOLOGY Inc
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 GUANGZHOU ONECLOUD INFORMATION TECHNOLOGY Inc filed Critical GUANGZHOU ONECLOUD INFORMATION TECHNOLOGY Inc
Priority to CN201210070171.2A priority Critical patent/CN102594914B/zh
Publication of CN102594914A publication Critical patent/CN102594914A/zh
Application granted granted Critical
Publication of CN102594914B publication Critical patent/CN102594914B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于云平台的远程调试方法,主要包括:客户端发起查询远程虚拟机请求,通过认证后获取远程虚拟机名称;代理服务器与远程虚拟机建立连接,给客户端返回会话标识;客户端将JDWP请求报文封装为HTTP请求报文,发送给代理服务器;代理服务器验证会话标识的有效性,有效则将HTTP请求报文转化为JDWP请求报文后发送至远程虚拟机;远程虚拟机进行调试,将JDWP结果报文发送给代理服务器;代理服务器将JDWP结果报文封装为HTTP结果报文,返回给客户端;客户端将HTTP结果报文转化为JDWP结果报文,显示调试结果。采用本方法,只需连接互联网通过认证即可对云平台上的应用进行调试,简单方便,安全性好。

Description

一种基于云平台的远程调试方法
技术领域
本发明涉及一种远程调试方法,尤其涉及一种基于云平台的远程调试方法。
背景技术
调试与软件程序开发相伴而生,然而,现在的软件开发技术都在侧重如何做出更合理的软件设计,编写更有效率的代码,编写更精准的测试,很少有涉及到如何通过调试发现和解决代码中的错误。调试在程序员的日常工作中,占用了大部分的时间,试图修复服务器端的缺陷往往需要花费大量的时间去获取问题源,而调试可以显著地缩短发现错误的时间,使开发过程变得更加轻松、享受。
随着云计算技术的广泛应用,大量的用户将自己的应用部署在同一个云平台上,这与传统的应用模式已经迥然不同,如何方便用户对各自的应用进行安全地远程调试已经成为当前行业内研究的重要课题,本发明将提供一种基于云平台的远程调试方法,探索如何通过互联网安全地调试云平台上的应用。
发明内容
针对现有技术的不足,本发明的目的旨在于提供一种基于云平台的远程调试方法,其能通过互联网对云平台上的应用进行安全地调试。
为实现上述目的本发明采用如下技术方案:
一种基于云平台的远程调试方法,包括如下步骤:
a.在客户端上建立远程调试应用类型;
b.客户端向云平台上的代理服务器发起查询远程虚拟机请求;
c.代理服务器接收请求后向客户端发出认证对话框;
d.在对话框中输入认证信息,发送至云平台,通过认证后,获取正在使用的远程虚拟机名称;
e.客户端向代理服务器发出建立调试连接请求,代理服务器接收调试连接请求后根据认证信息与云平台上对应的远程虚拟机建立连接,连接建立后代理服务器给客户端返回一个会话标识;
f.客户端将JDWP请求报文封装为HTTP请求报文,并将HTTP请求报文与会话标识发送给代理服务器,请求调试;
g.代理服务器验证会话标识的有效性,如果有效,则将接收到的HTTP请求报文转化为JDWP请求报文后发送至远程虚拟机;
h.远程虚拟机根据接收到的JDWP请求报文进行调试,并将调试结果以JDWP结果报文的方式发送给代理服务器;
i.代理服务器将接收到的JDWP结果报文封装为HTTP结果报文,并将HTTP结果报文返回给客户端;
j.客户端将接收到的HTTP结果报文转化为JDWP结果报文,显示调试结果。
作为一种优选方案,所述步骤d中的认证信息包括用户名、密码及待调试的应用在云平台上的应用标识。
作为一种优选方案,所述步骤g中,如果代理服务器验证会话标识无效,则主动断开与客户端的连接。
作为一种优选方案,所述步骤i中将HTTP结果报文返回给客户端的具体步骤为:客户端向代理服务器发出读请求,主动拉取代理服务器上的HTTP结果报文,代理服务器接收到读请求后启动一个守候线程,当代理服务器接收到远程虚拟机发来的JDWP结果报文时,将其封装为HTTP结果报文后发送给客户端。
作为一种优选方案,所述步骤f中客户端将JDWP请求报文封装为HTTP请求报文时还设置了报文的编号,同一次调试过程中的所有报文均采用同一个编号。
作为一种优选方案,所述编号为自动增长的标量。
作为一种优选方案,所述代理服务器对已经发送给客户端的HTTP结果报文做缓存处理,客户端发出的读请求的请求包中,包含了当前期望获取HTTP结果报文的编号,代理服务器先从已发送的HTTP结果报文缓存中查找该编号的HTTP结果报文,如果命中则从缓存中发送该编号的HTTP结果报文给客户端。
作为一种优选方案,进一步包括步骤k.客户端向代理服务器发出断开调试连接的请求,代理服务器将请求传递给远程虚拟机,远程虚拟机关闭与代理服务器的连接,同时客户端释放连接资源和调试任务。
本发明所阐述的一种基于云平台的远程调试方法,其有益效果在于:
一、采用本方法,用户需通过认证才能对其应用进行调试,保护了用户的应用不被非法访问,大大提高了安全性;
二、本方法利用云平台的分布式计算的优势,使远程调试自动化执行,更加简单方便。用户调试云平台上的应用时,不必对服务器配置做手动配置,在使用调试客户端时,也只需提供用户的认证信息即可;
三、网络配置简单。软件开发环境和调试环境往往是严格区分的,传统的远程调试方法要求调试环境跟开发环境在同一网段,或者通过配置网络映射关系达到链接的目的,而本方法建立远程调试时是通过HTTP实现客户端与代理服务器之间的通信,无需特殊的网络配置,能连接互联网即可。 
附图说明
图1是本发明一种基于云平台的远程调试方法的流程示意图。
具体实施方式
下面结合附图与具体实施例来对本发明作进一步描述。
请参照图1所示,其显示出了本发明一种基于云平台的远程调试方法的主要流程,在步骤a中,在客户端上建立远程调试应用类型。由于Eclipse是最常用的开发工具,故本实施例中的客户端是基于Eclipse OSGI插件机制实现的,即实现具有远程调试功能的Eclipse插件,这样做的优点是不改变Eclipse IDE本身原有的功能,用户不必选择全新的开发工具,只需安装远程调试插件后就可以通过本地Eclipse IDE调试云平台上的应用。本方法由于是客户端与云平台上的代理服务器之间进行数据交互,因而所要求的运行环境不同于Eclipse IDE中原有的类型,需定义一种新的应用类型,调试前需先建立好对应的远程调试类型。
进行到步骤b,客户端向云平台上的代理服务器发起查询远程虚拟机请求。最终的调试工作是由云平台上的远程虚拟机完成的,而用户事先并不知道远程虚拟机位于云平台上的哪一个服务器上,故需通过代理服务器查询对应的远程虚拟机。
进行到步骤c,代理服务器接收请求后向客户端发出认证对话框。云平台上部署了不同用户的大量应用,出于安全性考虑,不同用户间的应用必须是相互透明的,即每一个用户未经授权都无法访问其他用户的应用,因此,代理服务器在接收到查询请求时应该验证该请求是否合法,即验证提出查询请求的用户是否是这个应用的合法用户。
进行到步骤d,在对话框中输入认证信息,发送至云平台,通过认证后,获取正在使用的远程虚拟机名称。认证信息包括用户名、密码和应用在云平台上的应用标识,通过认证后,所获取的远程虚拟机名称将显示在客户端的显示窗口上,当然,如果认证失败,会要求用户重新输入认证信息。
进行到步骤e,客户端向代理服务器发出建立调试连接请求,代理服务器接收调试连接请求后根据认证信息与云平台上对应的远程虚拟机建立连接,连接建立后代理服务器给客户端返回一个会话标识。会话标识的作用是为了进一步加强安全性,客户端接下来与代理服务器的每次请求都会包含这个会话标识,代理服务器自行验证这个会话标识的有效性,如果会话标识在代理服务器端部存在或者超时,即会话标识无效时,代理服务器将主动断开与客户端的调试会话。
进行到步骤f,客户端将JDWP请求报文封装为HTTP请求报文,并将HTTP请求报文与会话标识发送给代理服务器,请求调试。通过Eclipse发出的请求报文是JDWP请求报文,为实现客户端与远程虚拟机之间的读写分离,可建立在HTTP通信方式上,将一次发送JDWP请求过程用一次完整的HTTP交互来完成,这样客户端的JDWP请求报文可以迅速发送至代理服务器,达到更大的读写效率。客户端在将JDWP请求报文封装为HTTP请求报文时还设置了报文的编号,表示当前HTTP请求报文的序号,且同一次调试过程中的所有报文均采用同一个编号,该编号为自动增长的标量。
进行到步骤g,代理服务器验证会话标识的有效性,如果有效,则将接收到的HTTP请求报文转化为JDWP请求报文后发送至远程虚拟机。当然,如果无效,代理服务器将主动断开与客户端的调试会话。
进行到步骤h,远程虚拟机根据接收到的JDWP请求报文进行调试,并将调试结果以JDWP结果报文的方式发送给代理服务器。
进行到步骤i,代理服务器将接收到的JDWP结果报文封装为HTTP结果报文,并将HTTP结果报文返回给客户端。具体而言,由客户端向代理服务器发出读请求,主动拉取代理服务器上的HTTP结果报文,代理服务器接收到读请求后启动一个守候线程,当代理服务器接收到远程虚拟机发来的JDWP结果报文时,将其封装为HTTP结果报文后发送给客户端。当然,此步骤中也可由代理服务器主动将HTTP结果报文发送给客户端。
进行到步骤j,客户端将接收到的HTTP结果报文转化为JDWP结果报文,显示调试结果。
当客户端接收的报文较多、数据量较大时,有时会出现丢包的情况,影响调试的体验,为解决这个问题,所述代理服务器对已经发送给客户端的HTTP结果报文做缓存处理,客户端发出的读请求的请求包中,包含了当前期望获取HTTP结果报文的编号,代理服务器先从已发送的HTTP结果报文缓存中查找该编号的HTTP结果报文,如果命中则从缓存中发送该编号的HTTP结果报文给客户端。
进行到步骤k,客户端向代理服务器发出断开调试连接的请求,代理服务器将请求传递给远程虚拟机,远程虚拟机关闭与代理服务器的连接,同时客户端释放连接资源和调试任务。
需指出的是,在调试过程中,如果出现任何异常,代理服务器都将抛出异常并断开与客户端的连接,此时客户端将主动释放所有启动的调试任务和系统资源。
本发明的设计重点在于:其一,采用本方法,用户需通过认证才能对其应用进行调试,保护了用户的应用不被非法访问,大大提高了安全性;其二,本方法利用云平台的分布式计算的优势,使远程调试自动化执行,更加简单方便。用户调试云平台上的应用时,不必对服务器配置做手动配置,在使用调试客户端时,也只需提供用户的认证信息即可;其三,网络配置简单。软件开发环境和调试环境往往是严格区分的,传统的远程调试方法要求调试环境跟开发环境在同一网段,或者通过配置网络映射关系达到链接的目的,而本方法建立远程调试时是通过HTTP实现客户端与代理服务器之间的通信,无需特殊的网络配置,能连接互联网即可;此外,应用所在的云服务器地址对用户透明,通过认证的用户可远程启动或关闭云平台上的应用,而不必关心应用具体在哪台或哪些云服务器上运行。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (7)

1.一种基于云平台的远程调试方法,其特征在于,包括如下步骤:
a.在客户端上建立远程调试应用类型;
b.客户端向云平台上的代理服务器发起查询远程虚拟机请求;
c.代理服务器接收请求后向客户端发出认证对话框;
d.在对话框中输入认证信息,发送至云平台,通过认证后,获取正在使用的远程虚拟机名称;
e.客户端向代理服务器发出建立调试连接请求,代理服务器接收调试连接请求后根据认证信息与云平台上对应的远程虚拟机建立连接,连接建立后代理服务器给客户端返回一个会话标识;
f.客户端将JDWP请求报文封装为HTTP请求报文,并将HTTP请求报文与会话标识发送给代理服务器,请求调试;
g.代理服务器验证会话标识的有效性,如果有效,则将接收到的HTTP请求报文转化为JDWP请求报文后发送至远程虚拟机;
h.远程虚拟机根据接收到的JDWP请求报文进行调试,并将调试结果以JDWP结果报文的方式发送给代理服务器;
i.代理服务器将接收到的JDWP结果报文封装为HTTP结果报文,并将HTTP结果报文返回给客户端;
j.客户端将接收到的HTTP结果报文转化为JDWP结果报文,显示调试结果。
2.根据权利要求1所述的一种基于云平台的远程调试方法,其特征在于,所述步骤d中的认证信息包括用户名、密码及待调试的应用在云平台上的应用标识。
3.根据权利要求1所述的一种基于云平台的远程调试方法,其特征在于,所述步骤g中,如果代理服务器验证会话标识无效,则主动断开与客户端的连接。
4.根据权利要求1所述的一种基于云平台的远程调试方法,其特征在于,所述步骤i中将HTTP结果报文返回给客户端的具体步骤为:客户端向代理服务器发出读请求,主动拉取代理服务器上的HTTP结果报文,代理服务器接收到读请求后启动一个守候线程,当代理服务器接收到远程虚拟机发来的JDWP结果报文时,将其封装为HTTP结果报文后发送给客户端。
5.根据权利要求1所述的一种基于云平台的远程调试方法,其特征在于,所述步骤f中客户端将JDWP请求报文封装为HTTP请求报文时还设置了报文的编号,同一次调试过程中的所有报文均采用同一个编号。
6.根据权利要求5所述的一种基于云平台的远程调试方法,其特征在于,所述代理服务器对已经发送给客户端的HTTP结果报文做缓存处理,客户端发出的读请求的请求包中,包含了当前期望获取HTTP结果报文的编号,代理服务器先从已发送的HTTP结果报文缓存中查找该编号的HTTP结果报文,如果命中则从缓存中发送该编号的HTTP结果报文给客户端。
7.根据权利要求1所述的一种基于云平台的远程调试方法,其特征在于,进一步包括步骤k.客户端向代理服务器发出断开调试连接的请求,代理服务器将请求传递给远程虚拟机,远程虚拟机关闭与代理服务器的连接,同时客户端释放连接资源和调试任务。
CN201210070171.2A 2012-03-15 2012-03-15 一种基于云平台的远程调试方法 Active CN102594914B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210070171.2A CN102594914B (zh) 2012-03-15 2012-03-15 一种基于云平台的远程调试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210070171.2A CN102594914B (zh) 2012-03-15 2012-03-15 一种基于云平台的远程调试方法

Publications (2)

Publication Number Publication Date
CN102594914A CN102594914A (zh) 2012-07-18
CN102594914B true CN102594914B (zh) 2014-09-17

Family

ID=46483108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210070171.2A Active CN102594914B (zh) 2012-03-15 2012-03-15 一种基于云平台的远程调试方法

Country Status (1)

Country Link
CN (1) CN102594914B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103973741B (zh) * 2013-01-31 2018-02-09 国际商业机器公司 用于在云系统中进行远程调试的方法和装置
CN103457765B (zh) * 2013-08-23 2017-03-01 中安消技术有限公司 一种网络协议调试方法、装置和系统
CN104754015B (zh) * 2013-12-31 2018-11-13 华为技术有限公司 一种建立远程会话的方法、装置和系统
CN105450463B (zh) * 2014-08-26 2019-10-18 阿里巴巴集团控股有限公司 硬件设备的调试方法、装置和系统
CN104580513B (zh) * 2015-01-28 2018-11-02 宁波大掌柜物流服务有限公司 基于云计算的软件应用远程研发方法及装置
CN104580514B (zh) * 2015-01-28 2018-11-02 宁波大掌柜物流服务有限公司 基于云计算的软件应用远程调试方法及装置
CN106254436B (zh) * 2016-07-28 2020-02-11 腾讯科技(深圳)有限公司 一种远程调试的方法、相关设备及系统
CN106254388A (zh) * 2016-09-22 2016-12-21 安徽云图信息技术有限公司 云计算环境下的访问控制技术
CN107979630B (zh) 2016-10-25 2020-04-03 新华三技术有限公司 一种信息获取方法及装置
CN108632646B (zh) * 2017-03-20 2021-12-10 腾讯科技(深圳)有限公司 一种视频直播方法、装置及服务器
CN107908560B (zh) * 2017-11-16 2019-04-16 山东金视野教育科技股份有限公司 一种基于软件开发平台中多目标交叉调试系统
CN109067728B (zh) * 2018-07-25 2021-08-27 苏州科达科技股份有限公司 应用程序接口的访问控制方法、装置、服务器及存储介质
CN112948248A (zh) * 2018-09-17 2021-06-11 华为技术有限公司 云计算服务中的软件调试的方法和装置
CN110191158A (zh) * 2019-05-09 2019-08-30 厦门网宿有限公司 一种云桌面服务实现方法和系统
CN114691486A (zh) * 2020-12-30 2022-07-01 腾讯科技(深圳)有限公司 程序调试方法、装置及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6637024B1 (en) * 2000-05-03 2003-10-21 International Business Machines Corporation Method and product for debugging a target java virtual machine having no debug information therein
CN1825851A (zh) * 2005-02-25 2006-08-30 微软公司 Windows远程调试器服务
CN101364200A (zh) * 2008-09-18 2009-02-11 浙江大学 嵌入式MIDlet调试软件的断点实现方法
CN201491026U (zh) * 2009-07-31 2010-05-26 福建升腾资讯有限公司 基于万维网的调试系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6637024B1 (en) * 2000-05-03 2003-10-21 International Business Machines Corporation Method and product for debugging a target java virtual machine having no debug information therein
CN1825851A (zh) * 2005-02-25 2006-08-30 微软公司 Windows远程调试器服务
CN101364200A (zh) * 2008-09-18 2009-02-11 浙江大学 嵌入式MIDlet调试软件的断点实现方法
CN201491026U (zh) * 2009-07-31 2010-05-26 福建升腾资讯有限公司 基于万维网的调试系统

Also Published As

Publication number Publication date
CN102594914A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102594914B (zh) 一种基于云平台的远程调试方法
CN108650149B (zh) 服务器的测试方法、装置、设备及计算机可读存储介质
CN102830992B (zh) 插件加载方法及系统
CN103840994B (zh) 一种用户端通过vpn访问内网的系统及方法
CN103152400B (zh) 通过移动终端进行登录的方法、系统和云端服务器
CN105119722A (zh) 一种身份验证方法、设备及系统
TWI735429B (zh) 用戶端登錄伺服器端的鑑別方法、裝置、系統及電子設備
CN107623698B (zh) 远程调试网络设备方法和装置
CN104113551A (zh) 一种平台授权方法、平台服务端及应用客户端和系统
CN104158802A (zh) 一种平台授权方法、平台服务端及应用客户端和系统
CN106209503B (zh) Rpc接口测试方法及系统
CN104536890A (zh) 测试系统、方法和装置
CN105491010A (zh) 验证码交互验证方法及系统
CN105897652A (zh) 一种基于标准协议的异构终端动态接入方法
CN103368809A (zh) 一种互联网反向穿透隧道的实现方法
CN105897757A (zh) 授权认证系统及授权认证方法
CN107835160A (zh) 基于二维码的第三方用户认证方法
CN103428159A (zh) 一种登录程序的方法及服务器
WO2015131524A1 (zh) 远程访问服务器的方法及web服务器
CN106330483A (zh) 信息获取方法、客户端设备和服务端设备
CN111404695A (zh) 令牌请求验证方法和装置
CN105141484A (zh) 基于云服务器的安卓设备远程调试方法
CN109088872B (zh) 带使用期限的云平台的使用方法、装置、电子设备及介质
CN104468103A (zh) 一种信息处理方法、电子设备和服务器
CN109495458A (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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 510260, Guangdong, Haizhuqu District, Xingang West Road, No. 135 in the science and technology building, B, block 705-714, room

Patentee after: GUANGZHOU ONECLOUD INFORMATION TECHNOLOGY CO.,LTD.

Address before: 510600, room 119, No. 402, Guangzhou Avenue, Yuexiu District, Guangdong, Guangzhou

Patentee before: ONECLOUD, Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230602

Address after: Room 715, Building B, Zhongda Science and Technology Park, Building 705, West District, Yuanyuan, No. 135 Xingang West Road, Haizhu District, Guangzhou City, Guangdong Province, 510000 (for office only)

Patentee after: Guangzhou Yunbiao Bureau Network Technology Co.,Ltd.

Address before: Room 705-714, block B, Zhongda science and technology complex building, 135 Xingang West Road, Haizhu District, Guangzhou, Guangdong 510260

Patentee before: GUANGZHOU ONECLOUD INFORMATION TECHNOLOGY CO.,LTD.