CN102523100A - 计算群集上的调试器启动和附连 - Google Patents

计算群集上的调试器启动和附连 Download PDF

Info

Publication number
CN102523100A
CN102523100A CN2011103087272A CN201110308727A CN102523100A CN 102523100 A CN102523100 A CN 102523100A CN 2011103087272 A CN2011103087272 A CN 2011103087272A CN 201110308727 A CN201110308727 A CN 201110308727A CN 102523100 A CN102523100 A CN 102523100A
Authority
CN
China
Prior art keywords
client computer
debugger
trooping
computing node
debugging
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
Application number
CN2011103087272A
Other languages
English (en)
Other versions
CN102523100B (zh
Inventor
P·E·梅比
D·莫斯
G·B·米什凯利
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102523100A publication Critical patent/CN102523100A/zh
Application granted granted Critical
Publication of CN102523100B publication Critical patent/CN102523100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Abstract

本发明涉及计算群集上的调试器启动和附连。启动调试进程。一种方法包括在群集专用网络上的计算节点处,通过头节点的调度器从公共网络上的客户机接收调试作业。头节点连接到群集专用网络和公共网络二者。公共网络处于群集专用网络之外。该方法还包括开始处理调试作业,并且作为结果,通过启动计算节点处的一个或多个调试器远程代理来发起调试。该方法还包括在计算节点处存在已启动的调试器远程代理的情况下开始处理用户作业。向客户机通知所述一个或多个调试器远程代理已经为调试用户作业做好准备。客户机处的调试器客户端连接到所述一个或多个调试器远程代理。

Description

计算群集上的调试器启动和附连
技术领域
本发明涉及调试器,尤其涉及计算群集上的调试器启动和附连。
背景技术
背景和相关技术
计算机和计算系统几乎影响着现代生活的每一方面。计算机一般涉及工作、消遣、保健、交通、娱乐、家务管理等等。
此外,计算系统功能还可以通过计算系统的经由网络连接互连到其他计算系统的能力来增强。网络连接可包括,但不仅限于,经由有线或无线以太网的连接,蜂窝式连接,或者甚至通过串行、并行、USB或其它连接的计算机到计算机的连接。这些连接允许计算系统访问其他计算系统上的服务,并快速且有效地从其他计算系统接收应用程序数据。
互连的计算机可以用于实现群集计算。群集计算包括使用多个计算机来执行可能对于单个计算机执行而言过于巨大的作业。作业改为被细分,并且细分部分被发送给群集中的各个计算机系统。通常,群集是用头节点来实现的,该头节点接受作业并且将该作业或该作业的各部分分配给该群集中的计算节点。计算节点通常在专用网络中实现并且不能被专用网络之外的计算系统公开访问。头节点可以是专用网络和一个或多个公共网络二者的成员,使得头节点可以从可能希望向群集提交作业的外部客户机接受作业
在计算系统中,经常发生系统崩溃或返回非预期结果方面的问题。为了确定系统崩溃或非预期结果的原因,使用各种调试技术。一些技术包括使用调试器。调试器可以是并排运行或者在执行代码下运行的软件应用程序。调试器可以用于在代码中步进(即执行离散数目的指令,并且然后在执行下一离散数目的指令以前等待用户输入)、在代码中设置断点以在执行代码时的某个点停止执行等等。然而,在群集系统中,鉴于开发者想要调试的系统可能处于该开发者可直接访问的系统之外的网络上,可能更加难以启动调试器。也就是说,开发者可能在公共网络上的客户机上使用开发者应用程序,而要调试的应用程序可能作为作业运行在公共网络上的客户机计算机不能直接访问的专用网络上的群集上。因此,想要调试的系统可能不能直接提供调试器。相反,将调试器连接到在计算群集上执行的作业可能要求该群集的节点与客户机处于同一网络上和/或用户对该计算群集具有管理性访问。
此处所要求保护的主题不仅限于解决任何缺点的实施方式或只在诸如上文所描述的那些环境的环境中操作的实施方式。相反,此背景只示出了其中可以实施此处所描述的一些实施方式的一个示例性技术领域。
发明内容
在此所示的一个实施例可以在包括群集计算系统的计算环境中实施。该实施例包括具有启动调试进程的动作的方法。该方法包括:在群集专用网络上的计算节点处,通过头节点的调度器从公共网络接收调试作业。头节点连接到群集专用网络和公共网络二者。公共网络处于群集专用网络之外。该方法还包括:开始处理调试作业;并且作为结果,通过启动计算节点处的一个或多个调试器远程代理来发起调试。该方法还包括:在计算节点处的所启动的调试器远程代理参与的情况下开始处理用户作业。向客户机通知所述一个或多个调试器远程代理已经为调试用户作业做好准备。客户机处的调试器客户端连接到所述一个或多个调试器远程代理。
另一方法在包括群集计算系统的计算环境中实施。该实施例包括具有附连调试进程的动作的方法。该方法包括:在执行用户作业的群集专用网络上的计算节点处,通过连接到群集专用网络和公共网络二者的系统从公共网络上的客户机接收启动调试作业的消息。公共网络处于群集专用网络之外。该方法还包括:开始处理调试作业;并且作为结果,通过启动计算节点处的一个或多个调试器远程代理来发起对用户作业的调试。向客户机通知所述一个或多个调试器远程代理已经为调试用户作业做好准备。客户机处的调试器客户端连接到所述一个或多个调试器远程代理。
提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中阐述,且其一部分根据本描述将是显而易见的,或可通过对此处的原理的实践来获悉。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来获悉。
附图简述
为了描述可获得本主题的上述和其它优点和特征的方式,将通过参考附图中示出的本主题的具体实施方式来呈现以上简要描述的本主题的更具体描述。可以理解,这些附图只描绘了典型实施方式,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施方式,在附图中:
图1示出了使用代理的调试器启动场景。
图2示出了使用代理的调试器附连场景。
图3示出了使用NAT转发的调试器启动场景。
图4示出了使用NAT转发的调试器附连场景。
图5示出了启动调试器的方法;以及
图6示出附连调试器的方法。
具体实施方式
在此公开了包括用于群集的调试功能在内的各个实施例。实施例可以包括用于在调试器控制下启动作业的功能。或者,实施例可以包括用于将调制器附连到现有作业的功能。如所示那样,这些实施例中的一些可以在对计算节点没有直接的客户机访问或者在群集上没有管理特权的情况下实现这一点。
图1是说明性的。图1示出了公共网络104上的客户机102。该客户机可能希望向群集提供作业。该群集可以具有诸如计算节点106之类的计算节点,这些计算节点执行与该工作相关联的作业。图1示出实施例通常将包括头节点110可向其分配作业的多个计算节点106。计算节点可以处于与公共网络104分开的专用网络108上。具体而言,专用网络108被与公共网络104分开,使得公共网络104上的系统不能直接与专用网络108上的系统通信。例如,这些网络可能具有不同的域。
相反,客户机102通过中介提供作业和其他通信,该中介可以使用诸如头节点110和/或路由节点112之类的一个或多个系统来实现。客户机102可以向中介提交作业,该中介然后将该作业转发给一个或多个计算节点106。客户机102所提交的作业可能在被计算节点106执行时导致错误。在此所述的实施例可以包括用于由客户机102在群集上发起调试以调试错误的功能。在一个示例中,这可以通过启动远程代理调试器,然后在调试器远程代理之上运行代码来完成。
在一个说明性示例中,启动调试进程可以通过如下方式来执行:由群集专用网络106之外的公共网络104上的客户机102向诸如头节点110之类的中介发送具有调试任务的用户作业。头节点110可以为一个或多个计算节点106创建执行调试任务的作业。在计算节点106处执行调试器任务通过启动群集专用网络108上的一个或多个计算节点106处的一个或多个调试器远程代理114来发起对之前从客户机102(或其他某个系统)发送的用户任务的远程调试。然后,可以向客户机102通知远程代理114已经为调试做好准备。在一些实施例中,这可以通过使用路由节点112来完成,该路由节点112包括允许公共网络系统104调用专用网络108系统的代理。另外,客户机102可以具有调试器客户端。客户机102处的调试器客户端可以例如通过路由节点112连接到调试器远程代理。
下面示出了一个示例的附加细节。具体而言,在下面继续参考图1所列举的示例中,示出了可以使用包括开发者应用程序116的集成开发环境的实施例。开发者应用程序可以被开发者用于开发应用程序、尤其是针对群集计算的应用程序。在所示的具体示例中,开发者应用程序116可以使用来自华盛顿州雷蒙德市的微软公司的Visual
Figure BSA00000591333200061
来实现。
如在图1处所述,开发者应用程序116创建监听器118。监听器118打开端口D1以促进通信。在一些实施例中,所分配的端口(以及在此所述的其他端口)可以是13225至13719范围的端口,因为这些端口通常未分配。监听器118打开到作为本地管理员运行的路由节点112上的公知代理服务120的链接P。在一些实施例中,该代理可以基于配置数据或项目设置来选择。监听器118通过P向代理服务120发送初始化消息(该消息在此被示为InitProxy(D1,U)),其中U是用户的群集凭证。代理服务120利用用户凭证(U)来分叉代理实例,从而将其传递给D1以及传递InitProxy消息的回复上下文。注意,在一些实施例中,在此所述的所发送和接收的消息可以被加密。
如在2所示,代理122为D1打开到代理的112的D1p并且为新代理请求打开端口P1,并且将回复InitProxyReply(P1,D1p)发送回监听器118。
如在3处所示,监听器118将向头节点110处的调度器124发送新作业消息:NewJob(DebugStart,P1,D1p)。该消息指定新调度器作业。在某个实施例中,用于由监听器进行路由的头节点110和调度器124信息可以包括在配置数据和/或开发项目设置中。
如在4处所示,调度器124在每个计算节点106处创建运行DebugStart(P1,D1p)的作业。
如在5处所示,调试启动126选择地址D2并且在该示例中通过调用msvsmon(D2,E)来启动合适的远程代理114,并且等待事件E。远程代理114启动并且打开D2以用于连接。远程代理114在其准备好在D2上进行接收时设置事件E。
如在6处所示,调试启动126向代理122(P1)发送路由消息RouteTo(D2)。代理122创建被代理端口D2p
如在7处所示,代理用路由回复消息RouteToReply(D2p)来响应调试启动126。
如在8处所示,调试启动126在D1p处向代理122(P1)发送指示调试代理被启动的消息DebugAgentStarted(D2p)。
在9,代理122在D1处将DebugAgentStarted消息转发给监听器118。监听器118调用开发者应用程序116调试器,从而指示其在D2p处连接到远程代理。
如在10处所示,开发者应用程序调试器在D2p处打开与代理122的远程调试会话。
如在11处所示,代理122在D2处打开与远程代理114的会话。代理122在两个方向上路由调试消息。开发者应用程序调试器通过代理122来指示远程代理114启动用户进程128。用户进程128可以是要调试的进程。远程代理114启动并且返回标识出用户进程128的进程标识符。开发者应用程序调试器向监听器118通知该启动完成,并且向监听器118提供进程标识符pid。
如在12处所示,监听器118在D2p处向代理122发送DebugAgentStartedReply(pid)消息。
如在13处所示,代理122将该回复转发给调试启动126。调试启动26打开到用户进程128的句柄并且等待其终止。
在上面所示的示例中,示出了各个组件。下面的讨论示出了这些组件中的一些的附加细节。
在所示的示例中,监听器118是开发者应用程序116组件,该开发者应用程序116组件是在调试启动时创建的并且继续存在,直到调试会话已经终止。监听器118的目的是为想要加入调试会话的远程进程发起开发者应用程序116调试。监听器118是响应于请求发起远程调试会话的服务(在一个示例中为可从华盛顿州雷蒙德市的微软公司获得的Windows通信基础
Figure BSA00000591333200071
服务)。下面示出了请求发起远程调试会话的请求的示例:
PID InitiateRemoteDebugSession(端点RemoteAgentAddress,端点ProxyAddress)。
响应于该消息,监听器118将调用开发者应用程序116调试器远程启动/附连代码并且将向其提供远程代理地址以及任选的代理地址以及用户凭证。开发者应用程序116启动代码将打开到RemoteAgentAddress(远程代理地址)的连接(通过代理122),并且请求进行该启动(或者下面所示的附连)。在成功完成以后,进程标识符(pid)被返回给监听器118。监听器118用该pid回复该消息。可以预期多个消息。在一些实施例中,监听器118将响应其接收的所有消息。
代理服务120是凭本地系统凭证在路由节点112上运行的服务。在一些实施例中,代理服务102可以是Windows通信基础
Figure BSA00000591333200081
服务。代理服务120启动代理122以用于调试会话。代理服务120发布公知的地址并且在该地址处监听代理请求。下面示出了示例性的发布消息:
端点NewProxySession(凭证userCredentials)。
当请求到来时,代理服务120确认用户凭证,分配端点端口,并且凭用户的凭证启动代理122进程。代理服务120等待代理122打开端点并且然后用代理122的端点描述来响应NewProxySession请求。
代理122是凭用户凭证运行的服务,其在一些实施例中可以是Windows通信基础
Figure BSA00000591333200082
服务。代理122负责在公共网络104上的调试器(其例如处于开发者应用程序116处)与其在专用网络108上的远程代理114之间路由消息。在启动时,其打开端点以用于路由请求。下面示出了打开端点以用于路由请求的消息的示例:
Endpoint RouteTo(端点endpoint)。
该请求来自网络A(B)上的进程,然后路由器在B(A)上打开新端点,并且在回复中返回描述。
调试启动126凭用户凭证运行,并且负责在具有要调试的进程(例如用户进程128)的机器上启动远程代理114调试器进程。调试启动126可以由群集管理器直接调用,或者由针对动态计算调度任务的群集子调度器来调用。调试启动126发起到监听器118的通信,并且向监听器通知其已经创建的远程代理114的动态地址。
尽管图1中所示的在先示例已经示出了通过启动调试能力并且然后启动用户进程128来调试用户进程128的示例,但是其他实施例可以将调试功能附连到已经执行的进程。下面和图2示出了调试器附连的示例。
如在图201处所述,开发者应用程序116创建监听器118。监听器118打开D1。监听器118在作为本地管理员运行的路由节点上打开到公知代理服务120(P)的链接(例如根据配置数据和/或开发者项目设置)。监听器118向P发送代理初始化消息InitProxy(D1,U),其中U是用户的群集凭证。代理服务120利用用户凭证(U)来分叉代理122实例,从而将其传递给D1以及传递InitProxy消息的回复上下文。
如在202处所示,代理122为D1打开到代理的122的D1p并且分别为来自专用和公共网络104和106的新代理请求打开端口P1(以及P2),并且将代理初始化回复消息InitProxyReply(P1,P,D1p)发送回监听器118。
如在203处所示,监听器118从调度器124请求作业细节。
如在204处所示,监听器118作为回报接收计算节点106的列表和进程id。
如在205处所示,针对该列表中的每个计算节点106,监听器118向P2发送ForwardMessage(NodeName,A,DebugStart(P1,D1p),U)。
如在206处所示,代理122将DebugStart(调试启动)消息转发给节点“NodeName”上的公知地址处的附连服务130。
如在207处所示,附连服务130选择地址D2并且比如通过凭用户凭证U调用msvsmon(D2,E)来启动用户代理114,并且等待事件E。远程代理114启动并且打开D2以用于连接。远程代理114在其准备好在D2上进行接收时设置事件E。
如在208处所示,附连服务130向代理122(P1)发送RouteTo(D2)消息。代理122创建被代理端口D2p
如在209处所示,代理122用RouteToReply(D2p)来响应附连服务130。
如在210处所示,附连服务130在D1p处向代理发送DebugAgentStarted(D2p)消息。
如在211处所示,代理122在D1处将DebugAgentStarted消息转发给监听器118。监听器118调用开发者应用程序116调试器,从而指示其在D2p处连接到远程代理。
如在212处所示,开发者应用程序116调试器在D2p处打开与代理122的远程调试会话。
如在213处所示,代理122在D2处打开与远程代理114的会话。其在两个方向上路由调试消息。调试器指示远程代理114附连到由进程标识符(pid)所标识出的用户进程。远程代理114附连到该进程。开发者应用程序116调试器向监听器118通知附连完成。
下面示出了一些实施例中的附连服务130的细节。附连服务130凭本地系统凭证运行,并且负责在具有要调试的进程(例如用户进程128)的机器上启动远程调试器进程远程代理114。附连服务130是在支持远程群集附连的任何节点上运行的系统服务。附连服务130监听来自监听器118的DebugStart消息,并且然后凭该消息中所包含的用户凭证创建远程代理114进程。附连服务130向监听器118通知其已经创建的远程代理114的动态地址。
尽管上面所示的实施例使用代理来在公共和专用网络之间通信,但是其他实施例可以使用目录服务和NAT端口转发。例如,图3和4图解说明了示出使用目录服务和NAT端口转发的启动和附连示例的交互图。具体而言,图3示出了启动场景。图4示出了附连场景。
如在前面所讨论的示例中那样,群集包含两种节点、即头节点110和一组节点106。头节点110连接到两个网络、即公共网络和专用网络。计算节点106每个都仅仅连接到专用网络。诸如主机102之类的客户机处于专用网络上。除了在该具体示例中通过在头节点110处的显式NAT端口映射以外,在专用网络与公共网络之间未启用路由。
在群集附连和启动实施方式中包括多个行动者。一个这样的行动者是开发者应用程序116,其可以包括调试器用户界面主机。
另一行动者是目录服务132,其可以是作为为群集作业提供转发端口的目录的服务(比如例如
Figure BSA00000591333200101
服务)而运行的应用程序。目录服务可以在群集的头节点110上运行。NAT端口转发134可以是在群集的头节点110上运行的网络地址转换服务。在头节点110上运行的服务器调度器124调度要在群集的计算节点106上执行的用户作业。
诊断服务136是作为服务(比如
Figure BSA00000591333200102
服务)在每个计算节点106上执行的应用程序。诊断服务136处理如图4的附连示例中所示的附连到进程的调试器请求。诊断服务136在引导时自动启动,并且在公知的端口DS处监听调试请求。诊断服务136创建远程代理114的实例以满足该请求。调试启动126是由调试器注入到用户作业中的任务。调试启动126创建远程代理114的实例以在调试器控制下启动用户进程128。远程代理114是开发者应用程序116调试器的远程助手进程。远程代理114由诊断服务136响应于附连请求在计算节点106上启动。用户进程128可以是要调试的进程。
现在参考图3,示出了在群集上启动调试并且调试用户进程的示例。在301,开发者应用程序116用户通过调度器124请求将其作业排队以供在群集上执行。
在302,调度器124向一组计算节点106分配该作业并且启动在每个节点106上运行的作业。
在303,该作业中的第一任务是调试启动任务126。调试启动任务126在该组计算节点中的每个计算节点106上创建远程代理114进程,该远程代理进程每个都打开端口Dr并且监听调试器链接。
在304,在远程代理114启动以后,调试启动126向目录服务132注册每个计算节点106的Dr端口。
在305,开发者应用程序116向目录服务132轮询为用户的作业注册的所有端口,直到其为每个远程代理114都接收到一个经映射的端口Drp。目录服务132将创建为了满足该请求所需的经由NAT的端口映射。
在306,一旦已经为作业创建了端口,则目录服务132就周期性地轮询调度器124以验证该作业还未终止。
在307,针对每个注册的端口,开发者应用程序116通过Drp连接到该计算节点106上的远程代理114并且创建和调试用户进程128。消息继续在开发者应用程序116与远程代理114之间来回,直到调试会话完成。要么紧跟在完成调试会话以后,要么在一定时间以后,用户进程128结束并且该作业完成。
在308,目录服务132通过调度器124发现作业完成,并且删除所有Drp转发端口。
下面是出了群集附连场景。在401,用户在调度器124处对作业排队。调度器124向其提供JobId(作业Id)。调度器124在稍后某一时刻启动在用户节点106的集合S上执行的用户作业(包括用户进程128)。
在402,用户确定调试其正在执行的作业。他启动调试器应用程序116并且开始群集附连进程。他标识出他的群集头节点110和JobId。开发者应用程序116向调度器124查询计算节点名称的列表以及该作业的用户进程128的进程id。
在403,针对调度器124返回的列表中的每个计算节点106,开发者应用程序116向目录服务132注册其诊断服务的136端口DS。目录服务132进而请求DS的NAT端口映射。目录服务132返回经映射的端口DSp。该进程导致为每个计算节点106创建一个DSp。发送给DSp的消息将通过头节点110被路由到匹配的DS。
在404,针对每个计算节点106,开发者应用程序116向DSp发送附连请求。该消息在端口DS上被转发给计算节点106的诊断服务136。诊断服务136在计算节点106上创建远程代理114的实例。远程代理114打开端口Dr,并且监听来自与开发者应用程序116相关联的客户机102处的调试器的调试器连接请求。在远程代理114启动以后,诊断服务136向目录服务132注册Dr。然后,附连请求完成。
在405,开发者应用程序116向目录服务132轮询为用户的作业注册的所有端口,直到其为每个计算节点106都接收到一个经映射的端口Drp。目录服务132将创建为了满足该请求所需的经由NAT的端口映射。
在406,一旦已经为作业创建了端口,则目录服务132就周期性地轮询调度器124以验证该作业还未终止。
在407,针对每个计算节点106上的每个用户进程128,开发者应用程序116通过Drp连接到该计算节点106上的远程代理114,并且开始用户进程128的调试会话。消息继续在开发者应用程序116(具体是开发者应用程序的调试器模块)与远程代理114之间往返,直到调试会话完成。要么紧跟在完成调试会话以后,要么在一定时间以后,用户进程128结束并且该作业完成。
在408,目录服务132通过调度器124发现作业完成,并且删除所有Drp转发端口。
在409,目录服务132还删除所有与该作业相关联的DSp端口。
下面的讨论现在涉及可执行的多个方法和方法动作。虽然可以以某一顺序讨论或在流程图中按特定顺序发生而示出了方法动作,但是,没有特定顺序是一定需要的,除非特别声明,或者是必需的,因为在一个动作被执行之前该动作取决于另一动作被完成。
现在参考图5,示出了方法500。方法500可以在包括群集计算系统的计算环境中实施。方法500包括启动调试进程的动作。方法500包括在群集专用网络上的计算节点处通过头节点的调度器从公共网络接收调试作业(动作502)。头节点连接到专用网络和公共网络二者。公共网络处于群集专用网络之外。例如如图1所示,计算节点106可以从客户机102接收调试作业,该调试作业是通过头节点110、具体是通过头节点110的调度器124被路由的。
方法500还包括开始处理调试作业,并且作为结果,通过启动计算节点处的一个或多个调试器远程代理来发起调试(动作504)。例如,参考图1,可以启动远程代理114。
方法500还包括在计算节点处存在已启动的调试器远程代理的情况下开始处理用户作业(动作506)。例如,计算节点106可以在存在正在运行的远程代理114的情况下开始处理用户进程128。
方法500还包括向客户机通知所述一个或多个调试器远程代理已经为调试用户作业做好准备。例如,图1示出消息可以发送给代理122,该消息然后被转发给开发者应用程序116的监听器118。
方法500还包括将客户机处的调试器客户端连接到所述一个或多个调试器远程代理。例如,开发者应用程序116中所包括的调试器可以如上述那样连接到一个或多个远程代理114。
现在参考图6,示出了另一方法600。方法600可以在包括群集计算系统的计算环境中实施。方法600包括附连调试进程的动作。方法600包括在执行用户作业的群集专用网络上的计算节点处,通过连接到群集专用网络和公共网络二者的系统从公共网络上的客户机接收调试作业(动作602)。公共网络处于群集专用网络之外。例如,如图2所示,示出了公共网络104和群集专用网络108。客户机102处于公共网络104上,并且计算节点106处于群集专用网络108上。计算节点可以从路由节点112接收启动调试作业的消息。
方法600还包括开始处理调试作业,并且作为结果,通过启动计算节点处的一个或多个调试器远程代理来发起对用户作业的调试(动作604)。具体而言,附连服务130可以启动用户代理114。
方法600还包括向客户机通知所述一个或多个调试器远程代理已经为调试用户作业做好准备(动作606)。
方法600还包括作为结果,将客户机处的调试器客户端连接到所述一个或多个调试器远程代理(动作608)。
此外,方法可以通过包括一个或多个处理器和诸如计算机存储器之类的计算机可读介质的计算机系统来实施。具体而言,计算机存储器可以存储计算机可执行指令,当由一个或多个处理器执行时,这些指令使诸如各实施方式中所列举的动作之类的各种功能被执行。
本发明的实施方式可以包括或使用含有各种计算机硬件的专用或通用计算机,这将在以下更详细地讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这些计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。
物理计算机可读的存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器(诸如CD、DVD、等等)、磁盘存储器或其他磁存储设备,或可以用来存储所需要的以计算机可执行的指令或数据结构的形式存在的程序代码装置并可以被通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链接。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于承载计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链接。上面各项的组合也包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,以计算机可执行的指令或数据结构的形式存在的程序代码装置可以自动地从传输计算机可读介质传输到物理计算机可读存储介质(或者反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。如此,计算机可读的物理存储介质可以包括在也(或者甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链接、无线数据链接,或者通过硬连线和无线数据链接的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本发明可具体化为其它具体形式而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (15)

1.一种在包括群集计算系统的计算环境中用于启动调试进程的方法,该方法包括:
在群集专用网络108上的计算节点106处,通过头节点110的调度器124从公共网络104上的客户机接收调试作业,其中所述头节点110连接到所述群集专用网络108和所述公共网络104二者,并且其中所述公共网络104处于所述群集专用网络108之外;
开始处理该调试作业,并且作为结果,通过启动所述计算节点106处的一个或多个调试器远程代理114来发起调试;
在所述计算节点106处存在已启动的调试器远程代理114的情况下开始处理用户作业;
向所述客户机通知所述一个或多个调试器远程代理114已经为调试所述用户作业做好准备;以及
作为结果,将所述客户机106处的调试器客户端连接到所述一个或多个调试器远程代理114。
2.如权利要求1所述的方法,其特征在于,所述客户机包括监听器,并且其中通过一个或多个中介从所述客户机到所述计算节点的通信来自所述监听器。
3.如权利要求2所述的方法,其特征在于,通信从所述客户机拉取。
4.如权利要求2所述的方法,其特征在于,通信从所述客户机推送。
5.如权利要求1所述的方法,其特征在于,所述客户机与所述计算节点之间的通信通过耦合到所述公共网络和所述群集专用网络二者的系统上的代理。
6.如权利要求1所述的方法,其特征在于,所述客户机与所述计算节点之间的通信通过耦合到所述公共网络和该群集专用网络二者的系统上的NAT服务。
7.如权利要求1所述的方法,其特征在于,还包括通过所述头节点的调度器从所述公共网络上的客户机接收所述用户作业。
8.如权利要求1所述的方法,其特征在于,还包括打开一个或多个代理端口以促进所述客户机与所述计算节点之间的通信,并且其中所述一个或多个代理端口选自13225至13719的范围。
9.如权利要求1所述的方法,其特征在于,所述客户机包括开发者应用程序,所述开发者应用程序被开发者用于开发用于群集计算的应用程序,并且其中来自所述客户机的消息是从所述开发者应用程序接收到的。
10.一种在包括群集计算系统的计算环境中用于附连调试进程的方法,所述方法包括:
在执行用户作业的群集专用网络108上的计算节点106处,通过连接到所述群集专用网络108和公共网络104二者的系统从所述公共网络104上的客户机接收启动调试作业的消息,并且其中所述公共网络104处于所述群集专用网络108之外;
开始处理所述调试作业,并且作为结果,通过启动所述计算节点106处的一个或多个调试器远程代理114来发起对用户作业的调试;
向所述客户机通知所述一个或多个调试器远程代理114已经为调试所述用户作业做好准备;以及
作为结果,将所述客户机106处的调试器客户端连接到所述一个或多个调试器远程代理114。
11.如权利要求10所述的方法,其特征在于,所述客户机包括监听器,并且其中通过一个或多个中介从所述客户机到所述计算节点的通信来自所述监听器。
12.如权利要求11所述的方法,其特征在于,通信从所述客户机拉取。
13.如权利要求11所述的方法,其特征在于,通信从所述客户机推送。
14.如权利要求10所述的方法,其特征在于,所述客户机与所述计算节点之间的通信通过耦合到所述公共网络和所述群集专用网络二者的系统上的代理。
15.如权利要求10所述的方法,其特征在于,所述客户机与所述计算节点之间的通信通过耦合到所述公共网络和所述群集专用网络二者的系统上的NAT服务。
CN201110308727.2A 2010-09-30 2011-09-29 计算群集上的调试器启动和附连的方法 Active CN102523100B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/894,590 2010-09-30
US12/894,590 US8589885B2 (en) 2010-09-30 2010-09-30 Debugger launch and attach on compute clusters

Publications (2)

Publication Number Publication Date
CN102523100A true CN102523100A (zh) 2012-06-27
CN102523100B CN102523100B (zh) 2015-01-28

Family

ID=45890926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110308727.2A Active CN102523100B (zh) 2010-09-30 2011-09-29 计算群集上的调试器启动和附连的方法

Country Status (8)

Country Link
US (1) US8589885B2 (zh)
EP (1) EP2622484B1 (zh)
JP (1) JP5906246B2 (zh)
KR (1) KR101855541B1 (zh)
CN (1) CN102523100B (zh)
CA (1) CA2811002A1 (zh)
HK (1) HK1170609A1 (zh)
WO (1) WO2012050723A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375938A (zh) * 2014-11-20 2015-02-25 工业和信息化部电信研究院 安卓应用程序的动态行为监测方法及系统
WO2021003870A1 (zh) * 2019-10-14 2021-01-14 深圳晶泰科技有限公司 面向分布式高性能计算集群调试系统

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169199B2 (en) 2008-06-10 2019-01-01 Microsoft Technology Licensing, Llc Automatic model-specific debugger extensions
US8402465B2 (en) * 2009-11-24 2013-03-19 Cray Inc. System tool placement in a multiprocessor computer
US8589885B2 (en) * 2010-09-30 2013-11-19 Microsoft Corporation Debugger launch and attach on compute clusters
JP2012079130A (ja) * 2010-10-01 2012-04-19 Fujitsu Ltd デバッグ支援プログラム、デバッグ支援装置、及びデバッグ支援方法
US8904356B2 (en) 2010-10-20 2014-12-02 International Business Machines Corporation Collaborative software debugging in a distributed system with multi-member variable expansion
US8671393B2 (en) 2010-10-21 2014-03-11 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific dynamic breakpoints
US9009673B2 (en) 2010-10-21 2015-04-14 International Business Machines Corporation Collaborative software debugging in a distributed system with collaborative step over operation
US8972945B2 (en) 2010-10-21 2015-03-03 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific access control
US8850397B2 (en) 2010-11-10 2014-09-30 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific display of local variables
US8990775B2 (en) 2010-11-10 2015-03-24 International Business Machines Corporation Collaborative software debugging in a distributed system with dynamically displayed chat sessions
US9411709B2 (en) 2010-11-10 2016-08-09 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific event alerts
US8656360B2 (en) * 2011-04-20 2014-02-18 International Business Machines Corporation Collaborative software debugging in a distributed system with execution resumption on consensus
US8739127B2 (en) 2011-04-20 2014-05-27 International Business Machines Corporation Collaborative software debugging in a distributed system with symbol locking
US8806438B2 (en) 2011-04-20 2014-08-12 International Business Machines Corporation Collaborative software debugging in a distributed system with variable-specific messages
US8756577B2 (en) 2011-06-28 2014-06-17 International Business Machines Corporation Collaborative software debugging in a distributed system with private debug sessions
US9720809B2 (en) 2012-02-17 2017-08-01 Microsoft Technology Licensing, Llc Dynamically enabling debugging over the internet
US8990778B1 (en) * 2012-09-14 2015-03-24 Amazon Technologies, Inc. Shadow test replay service
CN103856361B (zh) * 2012-11-29 2017-10-10 腾讯科技(深圳)有限公司 实现远程调试的方法及系统
US10182128B1 (en) 2013-02-07 2019-01-15 Amazon Technologies, Inc. Optimization of production systems
US9836388B1 (en) 2013-09-26 2017-12-05 Amazon Technologies, Inc. Software testing environment that includes a duplicating proxy service
US10389697B1 (en) 2014-08-27 2019-08-20 Amazon Technologies, Inc. Software container activation and throttling
CN104184823B (zh) * 2014-09-05 2017-11-14 北京京东尚科信息技术有限公司 一种自动化任务调度的方法和系统
US10592295B2 (en) 2017-02-28 2020-03-17 International Business Machines Corporation Injection method of monitoring and controlling task execution in a distributed computer system
US10545740B2 (en) * 2017-10-25 2020-01-28 Saudi Arabian Oil Company Distributed agent to collect input and output data along with source code for scientific kernels of single-process and distributed systems
US10762234B2 (en) * 2018-03-08 2020-09-01 International Business Machines Corporation Data processing in a hybrid cluster environment
US11392482B2 (en) 2019-01-03 2022-07-19 Microsoft Technology Licensing, Llc Data breakpoints on certain kinds of functions
GB201905835D0 (en) * 2019-04-26 2019-06-12 Ibm On-premise and off-premise debugging
US11922195B2 (en) 2021-04-07 2024-03-05 Microsoft Technology Licensing, Llc Embeddable notebook access support

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123271A1 (en) * 2002-09-26 2004-06-24 Jutta Bindewald Remote debugging through firewalls
CN1825851A (zh) * 2005-02-25 2006-08-30 微软公司 Windows远程调试器服务
CN101159587A (zh) * 2007-11-07 2008-04-09 华为技术有限公司 一种远程开局的方法和系统
CN101441579A (zh) * 2008-12-02 2009-05-27 南京大学 一种基于集群计算系统的三维模型库特征提取方法
US7660412B1 (en) * 2005-12-09 2010-02-09 Trend Micro Incorporated Generation of debug information for debugging a network security appliance
US20100057865A1 (en) * 2008-09-04 2010-03-04 International Business Machines Corporation Transferable Debug Session in a Team Environment

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058393A (en) * 1996-02-23 2000-05-02 International Business Machines Corporation Dynamic connection to a remote tool in a distributed processing system environment used for debugging
US5933639A (en) * 1996-05-17 1999-08-03 International Business Machines Corporation System and method for debugging distributed programs
US6357019B1 (en) 1999-01-29 2002-03-12 International Business Machines Corporation Method and apparatus for employing network loadable debugging agents, capable of first failure support on retail versions of software products
US6986124B1 (en) * 1999-07-21 2006-01-10 Sun Microsystems, Inc. Debugger protocol generator
US6598067B1 (en) * 1999-07-26 2003-07-22 American Management Systems, Inc. Application server framework
JP2001051871A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd リモートデバッグ装置
US20030204838A1 (en) * 2002-04-30 2003-10-30 Eric Caspole Debugging platform-independent software applications and related code components
US7185319B2 (en) * 2002-07-09 2007-02-27 Microsoft Corporation Debugging distributed applications
US7124320B1 (en) 2002-08-06 2006-10-17 Novell, Inc. Cluster failover via distributed configuration repository
US7530053B2 (en) * 2003-02-27 2009-05-05 Bea Systems, Inc. Methods utilizing a debugging proxy
US7441036B2 (en) * 2003-04-01 2008-10-21 International Business Machines Corporation Method and system for a debugging utility based on a TCP tunnel
JP4119295B2 (ja) * 2003-04-07 2008-07-16 東京エレクトロン株式会社 保守・診断データ蓄積サーバ、保守・診断データの蓄積・取得システム、保守・診断データの蓄積・提供システム
US7197745B2 (en) * 2003-05-02 2007-03-27 Microsoft Corporation User debugger for use on processes running in a high assurance kernel in an operating system
US7814463B2 (en) * 2003-05-16 2010-10-12 Oracle International Corporation User interface debugger for software applications
US7412625B2 (en) * 2003-05-27 2008-08-12 American Megatrends, Inc. Method and system for remote software debugging
US20050050159A1 (en) * 2003-09-03 2005-03-03 Zeev Suraski Remote debugging of web applications
US8180845B2 (en) * 2003-12-17 2012-05-15 Sap Ag Remote debugging of software
US20050216895A1 (en) * 2004-03-23 2005-09-29 Tran Hieu T Method and apparatus for remote debugging of kernel and application software
US7512934B2 (en) * 2004-08-25 2009-03-31 Microsoft Corporation Parallel debugger
US20060161896A1 (en) * 2005-01-14 2006-07-20 International Business Machines Corporation Performing debug requests that are within the debug domain of a class loader
US20060174225A1 (en) * 2005-02-01 2006-08-03 International Business Machines Corporation Debugging a High Level Language Program Operating Through a Runtime Engine
US7673180B1 (en) * 2005-05-05 2010-03-02 Sun Microsystems, Inc. Method and apparatus for dispatching a remote debugging agent in a distributed computing environment
US7634760B1 (en) * 2005-05-23 2009-12-15 Netapp, Inc. System and method for remote execution of a debugging utility using a remote management module
US20070055957A1 (en) * 2005-09-07 2007-03-08 Richard Birenheide Remote debugging proxy
US7818623B2 (en) 2005-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. Kernel debugging in a cluster computing system
JP4388518B2 (ja) * 2005-11-01 2009-12-24 株式会社ソニー・コンピュータエンタテインメント スレッドデバッグ装置、スレッドデバッグ方法及びプログラム
US7669186B2 (en) * 2005-11-16 2010-02-23 Sun Microsystems, Inc. Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
US20070168997A1 (en) * 2005-12-20 2007-07-19 Duong-Han Tran Debugging of remote application software on a local computer
US20080301685A1 (en) * 2007-05-31 2008-12-04 Novell, Inc. Identity-aware scheduler service
US8370839B2 (en) * 2007-07-20 2013-02-05 International Business Machines Corporation Monitoring message queues in message queuing information systems and initiating batch jobs to perform functions on the message queues
CN101360067B (zh) * 2007-07-30 2012-11-07 国际商业机器公司 基于消息收发系统的组联合调试系统、方法
US20090094684A1 (en) * 2007-10-05 2009-04-09 Microsoft Corporation Relay server authentication service
US8205120B2 (en) * 2007-12-21 2012-06-19 Sap Ag Intelligent test framework
US20090276431A1 (en) * 2008-05-01 2009-11-05 Kabira Technologies, Inc. Java virtual machine having integrated transaction management system
US8108466B2 (en) 2008-05-01 2012-01-31 Microsoft Corporation Automated offloading of user-defined functions to a high performance computing system
US10169199B2 (en) 2008-06-10 2019-01-01 Microsoft Technology Licensing, Llc Automatic model-specific debugger extensions
US8156476B2 (en) * 2008-06-10 2012-04-10 Microsoft Corporation Debugging support for tasks in multithreaded environments
US20090328005A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Debugger call stack caching
US9703678B2 (en) * 2008-12-23 2017-07-11 Microsoft Technology Licensing, Llc Debugging pipeline for debugging code
US8346870B2 (en) * 2009-05-06 2013-01-01 Microsoft Corporation Low-privilege debug channel
US8407723B2 (en) * 2009-10-08 2013-03-26 Tibco Software, Inc. JAVA virtual machine having integrated transaction management system and facility to query managed objects
US8352621B2 (en) * 2009-12-17 2013-01-08 International Business Machines Corporation Method and system to automatically optimize execution of jobs when dispatching them over a network of computers
US8752017B2 (en) * 2010-05-17 2014-06-10 Salesforce.Com, Inc. Method and system for remote debug protocol proxying for production debugging; selective session and user routing for debugging in multi-tenant cloud computing infrastructure
US8856742B2 (en) * 2010-06-11 2014-10-07 International Business Machines Corporation Distributed debugging
US8589885B2 (en) * 2010-09-30 2013-11-19 Microsoft Corporation Debugger launch and attach on compute clusters
US8412984B2 (en) * 2010-11-12 2013-04-02 Microsoft Corporation Debugging in a cluster processing network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123271A1 (en) * 2002-09-26 2004-06-24 Jutta Bindewald Remote debugging through firewalls
CN1825851A (zh) * 2005-02-25 2006-08-30 微软公司 Windows远程调试器服务
US7660412B1 (en) * 2005-12-09 2010-02-09 Trend Micro Incorporated Generation of debug information for debugging a network security appliance
CN101159587A (zh) * 2007-11-07 2008-04-09 华为技术有限公司 一种远程开局的方法和系统
US20100057865A1 (en) * 2008-09-04 2010-03-04 International Business Machines Corporation Transferable Debug Session in a Team Environment
CN101441579A (zh) * 2008-12-02 2009-05-27 南京大学 一种基于集群计算系统的三维模型库特征提取方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375938A (zh) * 2014-11-20 2015-02-25 工业和信息化部电信研究院 安卓应用程序的动态行为监测方法及系统
WO2021003870A1 (zh) * 2019-10-14 2021-01-14 深圳晶泰科技有限公司 面向分布式高性能计算集群调试系统

Also Published As

Publication number Publication date
EP2622484A4 (en) 2017-11-01
CA2811002A1 (en) 2012-04-19
EP2622484B1 (en) 2020-03-18
KR101855541B1 (ko) 2018-05-04
KR20130139897A (ko) 2013-12-23
CN102523100B (zh) 2015-01-28
JP5906246B2 (ja) 2016-04-20
US8589885B2 (en) 2013-11-19
HK1170609A1 (zh) 2013-03-01
JP2013539131A (ja) 2013-10-17
EP2622484A1 (en) 2013-08-07
WO2012050723A1 (en) 2012-04-19
US20120084753A1 (en) 2012-04-05

Similar Documents

Publication Publication Date Title
CN102523100A (zh) 计算群集上的调试器启动和附连
CN1761944B (zh) 用于虚拟机的动态服务注册中心
JP4365161B2 (ja) セッション状態共有方法、通信システムおよび端末装置
JP5624655B2 (ja) 分散型サーバーシステムにおいてバックアップマネージャを転送するメッセージ
US7831600B2 (en) Cluster communication manager
US20100057865A1 (en) Transferable Debug Session in a Team Environment
US20140245262A1 (en) Integrated Software Development and Deployment Architecture and High Availability Client-Server Systems Generated Using the Architecture
US20110153838A1 (en) Session monitoring of virtual desktops in a virtual machine farm
US20110153581A1 (en) Method for Providing Connections for Application Processes to a Database Server
KR20100103594A (ko) 메시징 네트워크에서의 메시지 전달에 관한 방법 및 시스템
CN102833080A (zh) 一种应用软件的进程间通信方法和系统
KR20150082932A (ko) 가상 머신의 구성 관리 지원 장치 및 방법과, 그 구성 관리 지원 장치를 이용한 클라우드 서비스 중개 장치 및 방법
JP2002157218A (ja) 同時に複数のユーザによってデータ・ストリームにアクセスするための装置及び方法
US7096249B2 (en) Method and system for distributing applications
US20090172463A1 (en) Method, system and machine accessible medium of a reconnect mechanism in a distributed system (cluster-wide reconnect mechanism)
Karo et al. The application level placement scheduler
Zato et al. Platform for building large-scale agent-based systems
Lee et al. Itinerary-based mobile agent as a basis for distributed OSGi services
US11570269B2 (en) Broker-mediated connectivity for third parties
KR20150096286A (ko) 유휴 컴퓨터를 활용한 클라우드 대용량 데이터 분석 방법
JP2006031491A (ja) アプリケーション間連携システム
CN100547969C (zh) 用于瞬时消息通信的方法和数据处理系统及资源管理系统
Klous et al. Transparent access to grid resources for user software
Vega et al. A distributed synchronization system for the TJ-II local area network
KR20130096982A (ko) 분산 데이터 상호 운용을 위한 메시지 전송 시스템 및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1170609

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150722

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150722

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1170609

Country of ref document: HK