Windows远程调试器服务的制作方法

文档序号:6554321阅读:143来源:国知局
专利名称:Windows远程调试器服务的制作方法
技术领域
本发明一般涉及其间设置了防火墙的机器之间的数据交换,尤其涉及采用拦截经由超文本传输协议(HTTP)上的无缝连接来连接机器的可缩放远程调试服务。
背景技术
计算机技术中与日俱增的进步(例如,微处理器速度、存储器容量、数据传输带宽、软件功能等)极大地促进了计算机在各种行业中的应用。通常被配置成服务器阵列的甚至更强大的服务器系统常被提供来服务源自诸如万维网等外部源的服务请求。
消除来自各种计算机软件/应用程序的错误的过程通常被称为调试。例如,在对计算机程序写代码的过程中,错误或缺陷的不经意产生通常是不可避免的—例如,当一行代码或一个指令与代码的其它元素冲突的时候。为减轻这些发生的事件的负面效应,开发了调试系统来帮助识别和消除来自计算机程序的缺陷。另外,存在各种调试工具和方法,它们执行诊断来分析服务器应用程序的各种类型的问题。这一调试可以是相当昂贵且耗时的,取决于诸如服务器类型、防火墙的存在等所涉及的复杂度。
同样,调试通常是通过采用多个不同的方法来执行的,这些方法诸如计算机软件调试、硬件描述语言功能验证、硬件逻辑级分析或硬件行为源级仿真等等。例如,计算机软件调试可以通过采用计算机软件调试器来实现。
一般而言,计算机软件调试器是一种允许软件开发者通过以下步骤来控制运行的计算机软件程序的执行的软件工具设置断点;顺序地对计算机软件程序的执行进行单步调试;通过检查和显示变量和表达式等来查看程序的状态。此外,这些软件工具(例如,调试器)可被开发来用于减少调试周期时间。调试器通常作为自包含的进程来执行,以通过为该目的所设计的操作系统原语来控制研究中的应用程序。同样,软件调试器通常提供了对在计算机上顺序地执行的软件程序的交互式调试。然而,这些调试工具无法容易地缩放到不同的服务器以及计算机配置和体系结构。
同时,企业防火墙的存在可增加位于这些防火墙之后的调试机器的复杂度。通常,防火墙可被认为是保护私密信息的第一道防线,且可以用硬件和软件或两者的组合来实现。这些防火墙通常阻碍开发者为调试目的而对测试者的简易访问。为使适当的调试会话能够在这一环境中正确地运行,通常要求烦琐的规划和谨慎的执行。此外,如果期望不同机器上的若干调试会话,则存在重大的难题。
因此,需要克服与常规系统和设备相关联的上述示例性缺陷。

发明内容
以下提出了本发明的简化概述,以提供对本发明的一个或多个方面的基本理解。本概述不是本发明的广泛综述。它既不旨在标识本发明的关键或决定性元素,也不旨在勾画本发明的范围。相反,其唯一的目的是以简化的形式提出本发明的某些概念,作为随后提出的详细描述的序言。
本发明提供了一种可缩放的远程调试系统,它能够通过采用因特网友好中继服务(IFRS)来调试位于防火墙之后且穿过因特网的机器,IFRS担当一种拦截来提供通过超文本传输协议(HTTP)交换通信话务的安全方法。由此,只要期望突破防火墙来访问交换服务器,本发明就可减轻在这些环境中打开传输控制协议(TCP)端口的要求。由此,位于防火墙一侧的客户机(例如,最终用户、测试者或开发者)可连续地向与IFRS相关联的主服务器轮询命令和答复。通过保持答复,防火墙另一侧的客户机能够接近这一服务器,并捕捉对该命令的答复,由此提供了实时使用安全套接字层(SSL)和安全令牌的HTTP话务上的无缝连接。在一个相关方面,也可由IFRS提供负载阈值,以确定是否启动、暂停、恢复和/或停止轮询IFRS服务的任何机器和/或客户机上的数据传输。这一负载阈值可平衡多个机器上的处理,以进一步减轻对任一机器的负担。同样,可以采用各种人工智能方案以便于调节和/或平衡IFRS和客户机之间的平衡。另外,在开发者机器和测试者机器之间的调试会话期间,另一开发者机器可加入现有的调试会话,并检索高速缓存的调试例示,以观察和/或参与这一调试会话。
可以理解,尽管本发明主要是在调试过程的上下文中描述的,然而本发明的各方面也可在客户机和服务器之间的二进制数据交换期间使用,其中防火墙位于两者之间。例如,本发明也可用于防火墙一段的服务器与防火墙另一段的客户机的二进制数据交换,其中,通常由于防火墙的布置,二进制数据无法被推到客户机。由此,本发明可通过在互联网上放置能够中继话务的拦截(因特网友好中继服务—IFRS),来促进这一通信。由此,位于防火墙之后的客户机A和客户机B能够与位于公共到达位置中的、与IFRS相关联的web服务器交谈,且web服务器能够采用授权和/或跟踪系统来验证客户机与其的连接。
因此,如果客户机A要求将二进制数据发送到客户机B,则客户机B需要向服务器要求信息,且因此可采用一种轮询机制。由此,由于防火墙的限制,客户机A和客户机B通常都应轮询服务器。当客户机B从客户机A接收到答复时(例如,对命令的答复、数据流、二进制交换等),客户机A然后轮询服务器来验证是否有数据等待发送。
在本发明的又一方面,可采用一种数学算法来指定随机行为,以及每一客户机可轮询web服务器的周期间隔和/或次数。这一算法可便于形成web服务器上的例如泊松分布形式的自适应轮询。由此,系统可被缩放,且可调节客户机A和客户机B之间的话务,因此以长时间间隔(例如,5秒以上)来轮询web服务器。另外,服务器能够在其它客户机的行为改变时通知客户机(例如,客户机获知放松并获知多久一次要求信息);维护任何客户机的活动的统计数据库,以及预测事件的模式(例如,客户机之间的二进制交换的流传送)来调节这一服务器上的负载。特别地,当HTTP额外开销在TCP二进制数据上累积时,本发明可减轻客户机和这一web服务器之间的频繁轮询会话。
在一个相关方面,可提供一种智能代理实体,它可累积来自多个客户机的请求,以便于与IFRS通信,并进一步描绘每一客户机所需的TCP连接的类型和数量。由此,可为与IFRS的web服务器的交互执行优化。例如,智能代理可将客户机之间的通信累积成一个主要通信来推给web服务,这与每一客户机都独立联系web服务相反。类似的智能代理可在另一侧使用,其中数据由web服务器提供以容易地创建各种客户机和/或要求调试过程的机器之间的TCP连接。也可以理解,IFRS和智能代理实体也可检测防火墙的缺失(或通过这些防火墙的可用的开放端口),并以基于事件的机制为基础来进一步通信(例如,通过TCP)。
依照本发明的再一方面,机器在防火墙的一侧发生故障,并通过USB连接到其缺陷检查器崩溃的被调试者的测试者可向web服务器轮询IFRS。在这一环境中,智能代理实体可采用来自调试器工具的传输控制协议/网际协议(TCP/IP)话务,且并非将其通过网络转发,而是可以用HTTP的形式来打包这一话务,并传出防火墙之外,到达IFRS的web服务器。IFRS然后可高速缓存该信息,并将这一信息放置在缓冲区中作为IFRS数据库的一部分。这一高速缓存的数据然后可准备用于最终传输到开发者。接着,可注册机器并准备好调试该机器,其中开发者可接收指定该机器参与开发者的调试的通知(例如,电子邮件)。
为实现上述和相关目的,本发明包括下文中完整描述的特征。以下描述和附图详细地陈述了本发明的某些说明性方面。然而,这些方面仅指示了可采用本发明的原理的各种方法中的几种。当结合附图考虑以下本发明的详细描述时,可以清楚本发明的其它方面、优点和新颖特征。


图1依照本发明的一方面,示出了测试者—开发者调试应用程序中的因特网友好中继服务(IFRS)的示意框图。
图2依照本发明的一个特定方面示出了IFRS的示例性体系结构。
图3依照本发明的一方面示出了采用人工智能组件的IFRS的另一示例性框图。
图4依照本发明的方法示出了调试过程的流程图。
图5依照本发明的一方面示出了调试方法的另一方面。
图6依照本发明的一方面示出了调试位于防火墙之后的机器的方法的进一步流程图。
图7依照本发明的一方面示出了在位于防火墙的不同侧处的客户机之间交换数据的系统的框图,其中二进制数据的交换可通过IFRS来促进。
图8示出了其中可实现本发明的各方面的合适的计算环境的简要概括描述。
图9示出了依照本发明的一方面可采用的IFRS的客户机—服务器系统。
具体实施例方式
现在参考附图来描述本发明,在所有附图中,相同的参考标号用于指示相同的元素。在以下描述中,为解释起见,陈述了众多具体细节以提供对本发明的全面理解。然而,显然本发明可以不用这些具体细节来实施。在其它情况下,在框图中示出了公知的结构和设备以便于描述本发明。
如本发明中所使用的,术语“组件”、“处理程序”、“模型”、“系统”等指的是计算机相关的实体,无论是硬件、硬件和软件的组合、软件还是执行中的软件。例如,组件可以是,但不限于,运行在处理器上的进程、处理器、对象、可执行码、执行线程、程序和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可驻留在进程和/或执行线程中,并且组件可位于一个计算机上和/或在两个或多个计算机之间分布。同样,这些组件可从在其上储存了各种数据结构的各种计算机可读介质执行。组件可诸如依照具有一个或多个数据分组(如,通过信号与本地系统、分布式系统、和/或在诸如与其它系统的因特网连接等网络上另一组件交互的一个组件中的数据)的信号通过本地和/或远程进程来通信。
另外,术语“推断”一般指从一组通过事件和/或数据捕捉的观察中推出或推断系统、环境和/或用户的状态的过程。例如,推断可用于标识特定的上下文或行动,或可生成状态的概率分布。推断可以是概率性的—即,基于数据和事件的考虑计算感兴趣的状态的概率分布。推断也可以指用于从一组事件和/或数据组成更高级事件的技术。这类推断导致从一组观察的事件和/或储存的事件数据构造新的事件或行动,无论事件是否在相邻的时间上相关,也无论事件是来自一个还是多个事件和数据源。
本发明提供了一种可缩放的远程调试系统,它可通过采用因特网友好中继服务(IFRS)来调试位于防火墙之后且穿过因特网的机器。可以理解,尽管本发明是在调试过程的上下文中描述的,然而本发明的各方面也可在需要在客户机和服务器之间交换二进制数据时使用,在这一情况下,防火墙位于两者之间。
最初参考图1,依照本发明的一方面示出了IFRS 110。IFRS 110可提供一种实时使用SSL和安全令牌通过HTTP交换通信话务的安全方法。
此外,它可担当一种拦截,该拦截可通过互联网中继话务,并可通知连接到其上的客户机“负载平衡”,并可例如在下文中详细描述的放松轮询会话。IFRS 110可包括因特网信息服务(IIS)web服务器,它可提供万维网出版服务、文件传输协议(FTP)服务、简单邮件传输协议(SMTP)服务以及网络新闻传输协议(NNTP)服务等等。IIS可以通过web浏览器(例如,Internet Explorer)经由HTTP在因特网上访问。web服务器作为IFRS的一部分,可以位于公共的到达位置,其中web服务器可采用授权和/或跟踪系统来验证客户机与其的连接。
如图所示,防火墙120通常提供周边防御,通常用于限制从不安全外部网络对内部网络的访问。这一防火墙120也可用于限制内部网络的各段之间的话务。通常,防火墙120的一个重要方面是其配置文件。该文件可确定允许什么话务以及要阻断什么话务。如果暴露了这一信息,则防火墙可变得易受攻击。
同样,防火墙120可以是分组过滤器或代理中的任一个。作为分组过滤器,防火墙120可基于源地址、目标地址和端口来采用路由器授权或拒绝访问。这可以担当快速且灵活的防火墙120。
防火墙120还可包括担当通过它们传递的话务的中介或中继站的代理。例如,两种类型的代理,即电路级代理和应用程序级代理可用作防火墙120的一部分。电路级代理具有与分组过滤器极大的相似性,因为它们都能基于几乎相同的低级信息来作出决策,且它们都是通用设备。基本上,分组过滤器和电路级代理之间的不同之处在于代理传递的所有话务看上去是在代理中发起和终止的,而通过分组过滤器的话务将保留其发起和终止点。同样,应用程序级代理能够基于由此传递的内容和话务来作出决策,因为它们理解所使用的应用程序。这一应用程序级代理可以是能够基于由它们传递的话务的内容来作出决策,因为它们理解所使用的应用程序协议。因此,防火墙120中采用的应用程序级代理通常可以是非常专门化的,且对不同的应用程序协议需要单独的代理,例如,对FTP需要一种,对HTTP需要另一种等等。
如图1所示,测试者105(或最终用户)通过串行或1394电缆被连接到无法工作且需要调试的被调试者机器,其中,被调试者112、114、116(其中N是整数)中的任一个可形成经受测试的系统。可启动调试会话,其中测试者105和开发者109可以用周期的间隔来轮询IFRS 110。由此,由于防火墙120的限制,测试者105和调试者机器109通常通过轮询方案来查询与IFRS 110相关联的web服务器。
类似地,防火墙的每一端上的两个客户机进行通信的情况下,位于防火墙的一端上的客户机可以连续地向web服务器轮询命令和答复。通过保持答复,防火墙另一端上的客户机可接近该web服务器,并可捕捉对命令的答复,且由此提供了HTTP话务上的无缝连接。另外,IFRS 110可担当在负载和测试者105和/或开发者109轮询web服务器的延时之间进行平衡的管理器。一般而言,IFRS 110可通过一个或多个数据传输协议来提供信息,这些协议包括已知的网络协议和/或专有协议。合适的网络协议的示例包括超文本传输协议(HTTP)以及简单对象访问协议(SOAP)。
如图1所示,智能代理/累积器106可采用来自调试器工具108的传输控制协议/网际协议(TCP/IP)话务,并且不是通过网络转发这一话务,而是以HTTP的形式包装该话务,并传出防火墙120到达IFRS 110。IFRS 110然后可高速缓存该信息,并将该信息放置在缓冲区中作为IFRS数据库107的一部分。这一高速缓存的数据然后可准备用于最终传输到开发者109。开发者109然后可接收特定的机器已准备好调试的通知(例如,电子邮件),且由此注册调试检查。也可存在关于通知开发者109目的的预定商务装置。测试者105也可向IFRS 110通知其自身,使得它可由开发者109观察到。
在接收到该通知之后,开发者109然后可连接到或轮询IFRS 110,以获得第一信息分组来启动对话。这一服务器轮询启动还可包括提供关于以下的至少一个的信息客户机、数据检索条件、超时、存储介质、订户、以及用于所检索的信息的存储位置。对信息的这一轮询还可包括请求如流、文件、数据包和/或数据组等信息。
图2依照本发明的一方面示出了IFRS 200系统的框图。该系统可包括IFRS管理器210,它可与IFRS库214交互,以跟踪授权、安全性和确认,并验证客户机与其的连接。也可由IFRS管理器210提供负载阈值,以确定是否启动、暂停、恢复和/或停止采用和/或轮询IFRS 200的任何机器上的数据传输,例如用于平衡多个机器上的处理,这然后可减轻对任一机器的负担。通常,当启动消息传输会话(例如,连接)时,IFRS管理器210可为该会话生成连接实例。连接实例可用例如指示客户机、机器和消息、和/或连接ID(例如,保持活跃消息)的信息来填充。该信息可用于启动IFRS和客户机(例如,测试者或开发者)之间的消息传输。此外,连接ID可用于跟踪不同机器中的消息传输。
该连接实例另外可被动态地更新以反映传输进展并提供传输历史。例如,指示已被成功或失败发送的任何部分(包括整个消息)的标记可与连接实例相关联。传输历史可包括与传输启动和完成、暂停和恢复、通信活动(例如,客户机之间的健谈性)错误的级别、重新提交、服务机器中的改变等有关的信息。
例如,当调用IFRS 200来建立测试者和开发者之间的连接时,IFRS管理器210可跟踪机器身份(例如,全局唯一标识符,即GUID),来为这一连接生成连接实例。通过作为IFRS库214的一部分的系统参数,连接实例可包括要调试的任一机器的身份。这一信息可用于定位期望的机器并验证已向该期望的机器和适配器提供了访问或它们已被正确地注册。如果调用包括指示要轮询的客户机和/或消息的信息,则该信息可被另外包括在连接实例中。该信息可用于定位和验证客户机和消息。另外,连接ID和所需的调试参数可被包括在内,且用作连接实例的键,且也由IFRS管理器210用于管理传输会话。可以理解,开发者一端或测试者一端的一台以上机器可请求到IFRS 200的连接,作为多台分布式机器的一部分。例如,在开发者机器和测试者机器之间的调试会话期间,另一开发者机器可加入现有的调试会话,并检索高速缓存的调试历史,来观察和/或参与这一调试会话。
由此,对于给定的消息,可选择若干机器中的一台来启动轮询和/或开始消息传输。另外,可将一台以上机器用于传输。例如,一台机器可用于开始消息传输,且连接随后可被浮动到另一机器以继续和/或完成该传输。这些方面可用于确保可靠性、减轻传输和机器错误、并提供用于跨机器处理的有效分布。一般而言,储存在连接实例内的连接ID可用于确定哪一机器可访问该连接实例并从该客户机拉出数据。例如,连接ID可被传达到机器,该机器然后可锁定连接实例,并开始消息传达,其中,仅持有连接ID的机器可锁定并促进消息传输。为使另一台机器能够用于消息传输,连接ID以及因此的锁可被浮动到该另一台机器。
由此,例如,位于防火墙另一端的开发者和/或测试者可轮询IFRS 212,并捕捉对命令的答复,以提供HTTP话务上的无缝连接。此外,来自调试器工具的传输控制协议/网际协议(TCP/IP)话务可以用HTTP的形式打包并传出防火墙到IFRS200的web服务器212。IFRS 200然后可高速缓存该信息,并可将该信息放置在缓冲区(未示出)中作为IFRS数据库的一部分。这一高速缓存的数据然后可准备用于最终传送到开发者。IFRS 200可以用周期的间隔来轮询以确定它是否有任何数据要发送到开发者或测试者。
图3依照本发明的一方面示出了采用人工智能组件的IFRS。如图所示,本发明可采用各种基于人工智能的方案来实现各种方面,诸如调节和/或平衡负载和/或轮询IFRS 300的连接。例如,显式或隐式地了解轮询IFRS 300的客户机何时能够放松的过程可通过自动分类系统和过程来促进。分类可采用基于概率和/或基于统计的分析(例如,分解成分析效用和成本)来预测或推断用户期望自动执行的动作。例如,可采用支持矢量机(SVM)分类器。其它分类方法包括贝叶斯网络、决策树,并且可采用提供不同的独立性模式的概率分类模型。如此处所使用的分类也包括用于开发优先级模型的统计回归。
如可容易地理解的,本发明可采用显式训练的(例如,通过一般训练数据)以及隐式训练的(例如,通过观察用户行为、接收外来信息)的分类器,使得分类器用于依照预定准则来自动确定向问题返回哪一答复。例如,对于公众所理解的SVM,SVM可通过分类器构造器和特征选择模块中的学习或训练阶段来配置。分类器是将输入属性矢量x=(x1,x2,x3,x4,xn)映射到该输入属于一个类的置信度的函数,即f(x)=confidence(class)。此外,可采用各种基于统计的分布(例如,泊松分布)来评估或预计IFRS 300、开发者和测试者之间的负载级别,例如用于指定随机行为以及每一机器能够多久一次轮询web服务器并形成自适应的轮询。
现在参考图4,示出了依照本发明的一方面调试机器的示例性方法,其中,开发者和测试者可被放置在防火墙之后,且IFRS位于公共到达位置。最初,在420,发生故障的被调试者机器要求调试。这一被调试者机器然后在430可通过串行或1394电缆连接到测试者。测试者然后在440登录到IFRS,并从其接收返回权证。在测试者登录到IFRS之后,可在450向开发者发送通知(例如,通过电子邮件)或向IFRS通告。接着,对于开发者执行的动作,该方法前进到图5,对于测试者执行的动作,该方法前进到图6。
如图5所示,在接收到通知之后,开发者然后可在510启动与IFRS的会话。接着,在520,该开发者可获取用于调试被调试者所需的参数。基于该参数,在530,可启动调试者会话用于调试过程。由此,可在540采用轮询机制,其中,可周期性地轮询IFRS来验证是否有数据等待发送到开发者。
同样,图6示出了依照本发明的一方面由测试者执行的一系列动作。在610,确定开发者是否连接到IFRS。如果否,则该方法返回到图4的动作450。或者,如果开发者已连接到IFRS,则在被调试者机器上启动调试器工具。可在630采用轮询机制,其中可周期性地轮询IFRS来验证是否有数据等待传输到测试者。
尽管示例性方法此处被示出并描述为表示各种事件和/或动作的一系列框,然而本发明不受所示的这些框的顺序所限制。例如,依照本发明,除此处所示的顺序之外,某些动作或事件可以按不同的顺序和/或与其它动作或事件同时发生。另外,并非所有示出的框、事件或动作都是实现依照本发明的方法所必需的。此外,可以理解,依照本发明的示例性方法和其它方法可以与此处所示并描述的方法相关联地实现,以及与此处未示出和描述的其它系统和装置相关联地实现。
图7依照本发明的一方面,示出了位于防火墙之后的客户机A和客户机b的框图体系结构700,可通过IFRS 715来促进对这些客户机的二进制数据交换。如果客户机A要求将二进制数据发送到客户机B,客户机B需要向IFRS 715的服务器710要求信息,且因此通常采用轮询机制。由此,由于防火墙的限制,客户机A和B通常都必须轮询web服务器710。
当客户机B从客户机A接收到答复720时(例如,对命令的答复、数据流、二进制交换等),客户机A然后可轮询(740)服务器710来验证是否有数据在等待。在本发明的一个相关方面,可采用数学算法来指定随机行为以及每一客户机A和B可多久一次轮询web服务器710,以形成web服务器710上例如泊松分布形式的自适应轮询。由此,系统700可被缩放,且调节了客户机A和客户机B之间的话务,由此以长时间间隔(例如,5秒以上)轮询web服务器710。另外,服务器710可在其它客户机的行为改变之后通知客户机(例如,客户机获知放松,且获知多久一次要求信息),并且还维护任何客户机的活动的统计数据库,并预测事件的模式(例如,客户机之间的二进制交换的流传送),来调节服务器710上的负载。具体地,当HTTP额外开销累积到TCP二进制数据时,本发明可缓和客户机和web服务器710之间的频繁轮询会话。
现在参考图8,示出了其中可实现本发明的各方面的合适的计算环境的简要概括描述。尽管以上本发明是在运行在一台计算机和/或多台计算机上的计算机程序的计算机可执行指令的通用上下文中描述的,然而本领域的技术人员可以认识到,本发明也可以结合其它程序模块来实现。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员可以理解,本发明可以用其它计算机系统配置来实践,包括单处理器或多处理器计算机系统、小型机、大型计算机,以及个人计算机、手持式计算设备、基于微处理器或可编程消费电子产品等等。如上所述,所示的本发明的各方面也可以在分布式计算环境中实施,其中任务由通过通信网络连接的远程处理设备来执行。然而,本发明的某些(如果不是全部)方面可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。示例性环境包括计算机812,包括处理单元821、系统存储器822以及将包括但不限于系统存储器的系统组件耦合至处理单元821的系统总线823。处理单元821可以是各种可用处理器的任一种。双微处理器和其它多处理器体系结构也可用作处理单元821。
系统总线可以是若干类型的总线结构中的任一种,包括USB、1394、外围总线以及使用各种市场上可购买的总线体系结构的任一种的局部总线。系统存储器可包括只读存储器(ROM)824和随机存取存储器(RAM)825。基本输入/输出系统(BIOS)包含如在启动时协助在计算机820内的元件之间传输信息的基本例程,可储存在ROM 824中。
计算机820还包括硬盘驱动器827、用于对可移动磁盘829进行读写的磁盘驱动器828以及用于对CD-ROM盘831进行读写,或对其它光介质进行读写的光盘驱动器830。硬盘驱动器827、磁盘驱动器828以及光盘驱动器830分别通过硬盘驱动器接口832、磁盘驱动器接口833和光盘驱动器接口838连接至系统总线823。驱动器及其相关的计算机可读介质为计算机820提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失性存储。尽管这里描述的示例环境指的是硬盘、可移动磁盘以及CD,然而本领域的技术人员应当理解,在示例性操作环境中也可以使用计算机可读的其它类型的介质,诸如盒式磁带、闪存卡、数字视频盘、Bernoulli盒式磁盘等等,且任何这样的介质可包含用于执行本发明的方法的计算机可执行指令。
多个程序模块可储存在驱动器和RAM 825中,包括操作系统835、一个或多个应用程序836、其它程序模块837以及程序数据838。所示的计算机中的操作系统835实际上可以是市场上可购买的任何操作系统。
用户可以通过键盘840和诸如鼠标842等定点设备向计算机820输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的串行端口接口846连接到处理单元821,但也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器847或其它类型的显示设备也通过接口,如视频适配器848连接到系统总线823。除监视器之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。
计算机820可以使用到一个或多个远程计算机,如远程计算机847的逻辑连接在网络化环境中操作。远程计算机847可以是工作站、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机820所描述的元件,尽管在图8中仅示出了存储器存储设备850。图8描述的逻辑连接包括局域网(LAN)851和广域网(WAN)852。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机820通过网络接口或适配器853连接至局域网851。当在WAN网络环境中使用时,计算机820一般可包括调制解调器854,和/或连接到WAN上的通信服务器,和/或具有用于通过广域网852,如因特网建立通信的其它装置。调制解调器854可以是内置或外置的,它可以通过串行端口接口846连接到系统总线823。在联网环境中,相对于计算机820或其各部分描述的程序模块可储存在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,可以使用在计算机之间建立通信链路的其它手段。
依照计算机编程领域的技术人员的实践,本发明是参考由诸如计算机820等计算机执行的动作和操作的符号表示来描述的,除非另外指明。这类动作和操作有时候被称为是计算机执行的。可以理解,动作和用符号表示的操作包括处理单元821对表示导致对电信号表示的最终变换或缩减的数据位的电信号的操纵,以及在存储器系统中(包括系统存储器822、硬盘驱动器827、软盘828以及CD-ROM 831)的存储器位置处对数据位的维护来重新配置或改变计算机系统的操作,以及其它信号处理。其中维护这类数据位的存储器位置是具有对应于数据位的特定电、磁或光属性的物理位置。
现在参考图9,示出了可采用依照本发明的一方面的IFRS的客户机—服务器系统900。客户机920可以是硬件和/或软件(例如,线程、进程、计算设备)。系统900也包括一个或多个服务器940。服务器940也可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,这类服务器940可容纳线程,以通过使用本发明执行变换。客户机920和服务器940可以用依照本发明在两个或多个计算机进程之间传输的数据分组的形式进行通信。如图所示,系统900包括可便于客户机920和服务器940之间的通信的通信框架980。客户机920操作上连接至可储存对客户机920本地的信息的一个或多个客户机数据存储910。此外,客户机920可访问和更新位于运行服务器进程的服务器计算机940上的数据库960。在本发明的一方面,通信框架980可以是互联网,其中客户机进程是web浏览器,而服务器进程是web服务器。由此,典型的客户机920可以是通用计算机,诸如具有中央处理单元(CPU)、系统存储器、用于将个人计算机连接到因特网的调制解调器或网卡、以及显示器和诸如键盘、鼠标等其它组件的常规个人计算机。同样,典型的服务器940可以是大学或企业的大型计算机,或专用工作站等等。
尽管本发明是参考某些说明性方面来示出和描述的,但可以理解,在阅读和理解了本说明书和附图之后,本领域的技术人员可以清楚等效替换和修改。尤其对于由上述组件(程序集、设备、电路、系统等)执行的各种功能,用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的组件的期望功能(例如,在功能上是等效的),除非另外指明,即使在结构上不等效于所揭示的在此处本发明的所示示例性方面中执行功能的结构。在这一点上,可以认识到,本发明包括具有用于执行本发明的各种方法的动作和/或事件的计算机可执行指令的系统以及计算机可读介质。此外,在详细描述或权利要求书中使用术语“包括”、“含有”、“拥有”、“具有”及其变体的意义上,这些术语旨在以与术语“包含”的类似方式是包含性的。
权利要求
1.一种便于远程调试操作的系统,包括因特网友好中继服务(IFRS),它实现位于各自的防火墙之后的测试者和开发者之间的超文本传输协议(HTTP)上的无缝连接,以便于其间的可缩放调试过程,所述IFRS位于公共到达区域。
2.如权利要求1所述的系统,其特征在于,所述IFRS包括web服务器和状态服务器,它们通过轮询装置接收命令并向测试者和开发者提供响应。
3.如权利要求2所述的系统,其特征在于,所述IFRS便于通过采用用于轮询IFRS的泊松统计分布来形成所述web服务器上的自适应轮询。
4.如权利要求1所述的系统,其特征在于,所述IFRS包括因特网信息服务(IIS)web服务器。
5.如权利要求1所述的系统,其特征在于,所述IFRS包括跟踪对连接到其上的客户机的授权的IFRS管理器。
6.如权利要求5所述的系统,其特征在于,所述IFRS管理器跟踪连接到所述IFRS的机器的身份。
7.如权利要求1所述的系统,其特征在于,所述IFRS包括调节或平衡负载级别的人工智能组件。
8.如权利要求7所述的系统,其特征在于,所述负载级别的平衡包括启动、暂停、恢复和停止数据交换中的至少一种。
9.如权利要求1所述的系统,其特征在于,所述测试者和开发者的至少一个还包括累积与所述IFRS的通信的智能代理。
10.一种调试机器的方法,包括向因特网友好中继服务(IFRS)注册位于防火墙之后的测试者和开发者;由所述测试者和开发者轮询所述IFRS;以及通过超文本传输协议(HTTP)无缝地连接所述测试者和开发者。
11.如权利要求10所述的方法,其特征在于,还包括由所述测试者从所述IFRS接收返回权证。
12.如权利要求10所述的方法,其特征在于,还包括在向所述IFRS注册所述测试者之后,通过电子邮件通知所述开发者。
13.如权利要求10所述的方法,其特征在于,还包括由所述开发者获取调试参数。
14.如权利要求10所述的方法,其特征在于,还包括在要调试的机器上启动调试器工具。
15.如权利要求10所述的方法,其特征在于,还包括采用人工智能方案来调节IFRS上的负载。
16.如权利要求15所述的方法,其特征在于,还包括采用分类器,所述分类器是以下的至少之一隐式训练的和显式训练的。
17.如权利要求15所述的方法,其特征在于,所述调节负载动作包括启动、暂停、恢复和停止数据交换的至少一种。
18.如权利要求10所述的方法,其特征在于,还包括跟踪对连接到所述IFRS的客户机的授权。
19.如权利要求10所述的方法,其特征在于,还包括通过数学算法自适应所述IFRS上的轮询。
20.一种便于远程调试操作的系统,包括用于通过超文本传输协议(HTTP)将最终用户与开发者无缝连接的拦截装置,所述最终用户和所述开发者位于各自的防火墙之后;以及用于调节所述拦截装置上的负载的装置。
全文摘要
用于可通过采用因特网友好中继服务(IFRS)来调试位于防火墙之后且穿过因特网的机器的可缩放远程调试系统的系统和方法。IFRS可以位于公共到达位置,且提供实时使用SSL和安全令牌在HTTP上交换通信话务的安全方法。IFRS的web服务器还可采用授权和/或跟踪系统,为调试目的来验证客户机与其的连接。
文档编号G06F11/36GK1825851SQ200610004350
公开日2006年8月30日 申请日期2006年1月25日 优先权日2005年2月25日
发明者M·D·尼塔, S·M·约翰逊, S·T·赫尔博德特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1