CN101169714B - 用于在计算环境中加速应用的执行的***和方法 - Google Patents
用于在计算环境中加速应用的执行的***和方法 Download PDFInfo
- Publication number
- CN101169714B CN101169714B CN 200710166836 CN200710166836A CN101169714B CN 101169714 B CN101169714 B CN 101169714B CN 200710166836 CN200710166836 CN 200710166836 CN 200710166836 A CN200710166836 A CN 200710166836A CN 101169714 B CN101169714 B CN 101169714B
- Authority
- CN
- China
- Prior art keywords
- accelerator
- plug
- unit
- execution
- manager
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
一种用于在计算环境中加速对应用的执行的***和方法。所述方法包括接收对执行计算应用的插件的请求以及分析用于执行所述插件的加速器的网络。所述方法进一步包括标识驻留在远离所述应用的设备上的指定加速器以及利用所述指定加速器执行所述插件。
Description
技术领域
本发明一般涉及混合计算环境,并且更具体地涉及一种通过分布、管理、平衡和执行应用插件来加速计算环境中应用的执行的***和方法。
背景技术
不同种类的计算***通常用于支持多种商业和/或工程应用解决方案。通常,商业会利用在各种客户工作站和服务器上执行的一组应用来提供完整的商业解决方案。当应用(例如,软件程序)的计算能力需求超过了客户工作站的硬件中可用的计算能力时便发生问题。在这样的情形下,应用无效率地(即,很慢地)运行或根本不运行,由此减少或削减了应用所提供的价值。
为克服上述问题所作的努力包括向服务器应用提供具有客户接口(例如,Web浏览器等)的应用。以这种方式,服务器对数据进行管理并且进行计算密集型任务。可选地,***可以在成批调度的作业上操作,该成批调度的作业被从客户工作站提交给服务器,以及跨网格或群集连接的服务器网络而被调度进行处理。在这两种情况下,均是将整个应用调遣(例如,移植)到服务器(或各种服务器节点)、对其进行处理,并且然后将其返回至客户工作站。因为调遣了整个应用,所以计算任务的粒度(granularity)非常粗糙,并且因此是低效率的。
在一些情况下,将整个应用调遣到服务器所涉及的时间可能致使无法接受上述解决方案。例如,将整个应用调遣到用于处理的服务器对于主要被设计成在(通过交互式用户来驱动的)工作站上运行,并且要求高计算密集型任务的应用(例如,基于物理的建模、图像处理、3D几何建模和绘制,等等)完全是不可行的。在这些情况下,可以为客户工作站提供其自身的加速硬件(例如,加速板、图形适配器等),而不是将整个应用发送至服务器。然而,为多个客户工作站配置这样的加速硬件的花费可能是相当高的。此外,软件开发的速度通常超过硬件开发的速度,并且要求甚至更多计算能力的新的应用通常快速地致使昂贵的加速硬件过时或者可能在工作站构成因素中并不存在加速硬件。
另外,一些应用驻留并且执行于服务器上,但却具有得益于或要求通过服务器上不存在的专门化***加速器的加速的组件。在这种情况下,服务器面临着上述关于客户工作站的相同问题:应用要求的计算能力超过本地可用的计算能力。
因此,在本领域存在对克服上文所描述的不足和局限的需要。
发明内容
在本发明的第一方面,一种方法,其包括接收对执行计算应用的插件的请求,以及分析用于执行所述插件的加速器的网络。所述方法进一步包括标识驻留在远离所述应用的设备上的指定加速器,以及利用所述指定加速器执行所述插件。
在本发明的第二方面,提供了一种计算机程序产品,其包括具有计算机可读程序的计算机可读介质。当在计算机上执行所述计算机可读程序时,其使得所述计算机接收对执行应用的插件的请求并且分析用于执行所述插件的加速器的网络。所述计算机可读程序进一步使得所述计算机标识驻留在远离所述应用的设备上的指定加速器并且利用所述指定加速器执行所述插件。
在本发明的第三方面,存在一种包括与插件关联的计算应用的联网***。所述***包括第一管理器,所述第一管理器被安排以将所述插件与用于执行所述插件的至少一个加速器相关联。所述***另外还包括第二管理器,所述第二管理器被安排以确定所述至少一个加速器的位置。所述第一管理器和所述第二管理器置于网络内的不同位置。
在本发明的第四方面,存在一种方法,其包括发送对执行计算应用的插件的请求,接收对用于执行所述插件的加速器的指定,以及通过网络接收来自对所述插件的执行的结果。
附图说明
图1示出了根据本发明的方面的说明性环境;
图2示出了根据本发明的方面的混合计算环境;
图3示出了根据本发明的方面的说明性***;以及
图4示出了依照本发明的方面的方法的流程图。
具体实施方式
本发明针对一种用于在计算环境中加速应用的执行的***和方法。本发明的实现提供了对应用插件的分布、管理和执行。以这种方式,可以在本地工作站上有效利用应用,而没有与跨网络调遣整个应用相关联的时延,并且没有在本地提供加速硬件的费用。
图1示出了用于管理依照本发明的过程的说明性环境10。就此而言,环境10包括可以实现文中所描述的过程的计算机基础设施12。特别地,所示出的计算机基础设施12包括计算设备14,计算设备14包括管理***30,其使得计算设备14可操作以实现文中所描述的过程。所示出的计算设备14包括处理器20、存储器22A、输入/输出(I/O)接口24和总线26。另外,所示出的计算设备14与外部I/O设备/资源28以及存储***22B进行通信。如本领域已知的,通常,处理器20执行存储在存储器22A和/或存储***22B中的计算机程序代码。当执行计算机程序代码时,处理器20可以从存储器22A、存储***22B和/或I/O接口24读取和/或向存储器22A、存储***22B和/或I/O接口24写入数据(例如商业或工程解决方案50)。总线26在计算设备14中的每个组件之间提供通信链路。I/O设备28可以包括使得个体能够与计算设备14交互的任何设备或者使得计算设备14能够使用任何类型的通信链路与一个或多个其它的计算设备进行通信的任何设备。
无论在何种情况下,计算设备14均可以包括能够执行安装在其上的计算机程序代码的任何通用计算制品(例如,个人计算机、服务器、手持设备等)。然而,要理解到,计算设备14仅代表可以实现文中所描述的过程的各种可能的等效计算设备。就此而言,在其它的实施例中,计算设备14所提供的功能性可以由包括通用和/或专用硬件和/或计算机程序代码的任何组合的计算制品来实现。在每个实施例中,均可以使用标准编程和工程技术相应地创建程序代码和硬件。
类似地,计算机基础设施12仅表示用于实现本发明的各种类型的计算机基础设施。例如,在一个实施例中,计算机基础设施12包括通过任何类型的通信链路(例如网络,共享存储器等)进行通信以实现文中所描述的过程的两个或更多的计算设备(例如,服务器群集)。另外,当实现文中所描述的过程时,计算机基础设施12中的一个或多个计算设备可以使用任何类型的通信链路与位于计算机基础设施12外部的一个或多个其它的计算设备进行通信。在任一情况下,通信链路均可以包括各种类型的有线和/或无线链路的任何组合;可以包括一种或多种类型的网络(例如,因特网、广域网、局域网、虚拟专用网等)的任何组合;和/或可以利用各种类型的传输技术和协议的任何组合。
在实施例中,以软件实现本发明,其包括但不限于固件、常驻软件、微码等。此外,本发明可以采取可访问于计算机可用或计算机可读介质的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行***使用的或者与计算机或任何指令执行***结合使用的程序代码。对于该描述来说,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传送由指令执行***、装置或设备使用的或者与指令执行***、装置或设备结合使用的程序的任何装置。介质可以是电子、磁性、光学、电磁、红外或半导体***(或装置或设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可装卸计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前的例子包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理***可以包括通过***总线直接地或间接地耦合于存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间所使用的局部存储器、大容量存储器,以及为了减少在执行期间必须从大容量存储器检索代码的次数而提供对至少一些程序代码的临时存储的高速缓冲存储器。输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过***I/O控制器耦合于***。网络适配器也可以耦合于***,从而使得数据处理***能够适于通过介入专用或公用网络耦合于其它的数据处理***或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡正是几种当前可用类型的网络适配器。
在另一实施例中,本发明提供了一种以订购、广告和/或付费为基础实现本发明的过程步骤的商业方法。也就是说,诸如解决方案集成商(SolutionIntegrator)的服务提供商可以提供向用户配备插件管理和/或执行。在这种情况下,服务提供商可以为一个或多个客户创建、维护、支持等等实现本发明的过程步骤的计算机基础设施。作为回报,服务提供商可以从受制于订购和/或付费协议的客户接收报酬,以及/或者服务提供商可以根据向一个或多个第三方销售广告内容而接收报酬。
图2示出了根据本发明的方面的混合计算***50。该混合计算***可以包括所有通过网络55直接或间接连接的任何数目的任何类型的组件。网络55可以是任何类型的电子通信网络,举例来说,诸如因特网、广域网、局域网、虚拟专用网、无线网络、以太网等。
***50的组件可以由任何类型的资源(例如,客户机、服务器等)、任何类型的硬件平台,以及任何类型的操作***组成。例如,客户计算机60可以连接至网络55。在实施例中,客户计算机60可以包括,但不限于,客户工作站、个人计算机、电话、个人数字助理等。要理解到,按照将要执行的任务的需要,***50可以包括任何适当数目的客户计算机60。
仍然参照图2,***50可以进一步包括刀片型服务器65。在实施例中,刀片型服务器65包括任何类型的一个或多个刀片服务器(例如,单元刀片(cell blade)、图形处理器刀片、XML加速器、数据库搜索加速器等),然而也可以采用组件的其它组合。***50可以进一步包括架式服务器(rack server)70。在实施例中,架式服务器70包括任何类型的一个或多个架式服务器(例如,1U、2U等),然而也可以采用组件的其它组合。要理解到,按照***50的使用意图的需要,***50可以包括任何适当数目的服务器。***50可以进一步包括其它计算设备75,举例来说,诸如游戏控制台、家用器具、嵌入式设备等。
根据本发明的实施例,***50包括至少一个应用(未示出)。该应用包括可以驻留在***50的任何组件(例如工作站、游戏控制台、服务器刀片等)的可执行程序(例如,软件)。例如,该应用可以包括存储在客户工作站的存储器中的图形密集(graphics-intensive)三维建模程序(例如,计算流体动力学(CFD)程序)。
除了应用以外,***50还包括至少一个插件(未示出)。本领域公知的插件是与应用交互的可单独执行的程序(或程序的组件),常常提供从单独的应用不可获得的附加功能性。例如,应用可以是Web浏览器,并且插件可以是提供能够通过因特网播放视频剪辑的Web浏览器的组件。在常规***中,插件随应用一起存储在本地。然而,在本发明***50中,插件可以驻留于***50内的任何地方,并不限于驻留于与应用相同的组件上。此外,多个插件可以位于***50内的各种位置。
更进一步地,***50包括至少一个加速器(未示出)。本领域公知的加速器是这样的组件,即其对特定功能的实现比通常会由中央处理器(CPU)实现得快。加速器常常嵌于硬件中,举例来说,诸如协处理器(例如,浮点单元)或适配卡(例如,视频卡)。加速器可以被设计来执行特定类别的插件,并且反过来,插件可以被设计成在特定类型的加速器上被执行。以这种方式,加速器可以用于加快对插件的执行,而插件又由应用所使用(从而提高应用的速度和/或功能性)。在本发明的实施例中,加速器可以驻留于***50内的任何地方,举例来说,诸如工作站中的卡、服务器刀片上的芯片、有线连接至网络55的独立硬件组件,等等。此外,多个加速器可以置于***50内的各种位置。
在实施例中,***50进一步包括至少一个客户机插件管理器(PIM)和至少一个服务器PIM。客户机PIM和服务器PIM协作以提供具有在适当的加速器上执行的插件的应用,而与***50内的应用、插件和加速器各自的位置无关。也就是说,应用可以位于***50中的第一位置(例如,客户工作站),插件可以位于第二位置(例如,服务器刀片),并且加速器可以位于第三位置(例如,特定的IP地址)。客户机PIM和服务器PIM协作以安排在加速器上执行插件,并且执行的结果被返回给应用。通过调遣插件用于执行,在没有先前与调遣整个应用到远程位置相关联的时延并且没有在本地提供加速硬件的费用的情况下,***50提供了具有增强的计算能力的应用。
图3根据本发明的方面示出了先前所描述的***50的子***100。图3中的箭头表示通过网络55的***组件之间的通信。为了易于说明,关于单客户机、两个服务器,以及两个独立加速器描述和说明了子***,然而要理解到,根据本发明可以采用任何适当数目的任何类型的组件。
在实施例中,子***100包括客户机110,如上所述,客户机110可以包括任何类型的计算机,举例来说,诸如客户工作站、个人计算机、电话、个人数字助理、游戏控制台、家用器具、嵌入式设备等。第一应用112、第一插件114,以及第一加速器116驻留于客户机110上。第一应用112、第一插件114,以及第一加速器116可以是任何适当的类型,并且不必彼此相关(尽管它们可以被设计成彼此协作)。下文较为详细描述的客户机PIM 118也驻留于客户机110上。
子***100进一步包括第一服务器节点120,其可以包括任何适当类型的服务器(刀片式、架式、独立式,等等)。在实施例中,第一服务器节点120就网络位置而言远离客户机110。第二应用122、第二插件124,以及第二加速器126驻留于第一服务器节点120上。第二应用122、第二插件124,以及第二加速器126可以是任何适当的类型,并且不必彼此相关(尽管它们可以被设计成彼此协作)。下文较为详细描述的服务器PIM128也驻留于第一服务器120上。
仍然参照图3,在实施例中,子***100进一步包括第二服务器节点130,如上所述,其可以包括任何适当类型的服务器(刀片式、架式、独立式,等等)。在实施例中,第二服务器节点130就网络位置而言远离第一服务器节点120和客户机110。第三插件134和第三加速器136驻留于第二服务器节点130上。第三插件124和第三加速器126可以是任何适当的类型,并且不必彼此相关(尽管它们可以被设计成彼此协作)。服务器PIM的另一实例(示为128’)也驻留于第二服务器130上。
在实现中,子***100包括第三服务器节点140,其包括第四插件144和第四加速器146。并且子***100可以进一步包括第四服务器节点150,其包括第五加速器156。第三服务器节点140和第四服务器节点150可以包括,例如连接至网络的独立加速器(例如,具有IP地址)。在实施例中,第三服务器节点140和第四服务器节点150彼此远离并且远离第一服务器节点120、第二服务器节点130和客户机110。
在实施例中,客户机PIM的实例(例如118)包括存储在客户机110的存储器中或存储介质上的软件程序。客户机PIM维护子***100的每个插件(例如,114、124、134、144)的位置和类型的记录(例如,寄存器、存储的数据,等等)。客户机PIM记录还可以包括各个插件与用于该插件的适当的加速器(例如,116、126、136、146、156)之间的关联。如本领域已知的,客户机PIM记录可以手动生成,例如通过***配置文件。可选地,如本领域已知的,客户机PIM记录可以自动生成,例如在***启动或在预定的间隔处通过查询用于组件的网络。此外,客户机PIM可操作以与本地应用进行通信,从而从应用接收对执行插件的请求。这样的通信可以通过任何适当的方式来完成。
在实施例中,服务器PIM的实例(例如128、128’)包括存储在服务器(例如120、130)的存储器中或存储介质上的软件程序。服务器PIM还维护包括了子***100的加速器(例如,116、126、136、146、156)的位置1的记录(例如,寄存器、存储的数据、ip地址、主机名等)。如上所述,服务器PIM记录可以手动或自动生成,并且可以被表示成例如共享对象位置或远程位置。此外,如本领域已知的,服务器PIM的实例还含有用于确定实时***负载(例如,每个组件操作时的容量)的模块。这适于这样的情况,即在该情况下,取决于执行时的可用性可以将插件映射到相同***中的多个同样的加速器。
客户机PIM 118和服务器PIM 128、128’通过信号交换安排来彼此有效地进行通信。联网和非联网***组件之间的信号交换在本领域是已知的,并且,在本发明的实现中,其用于标识可用的***资源。例如,客户机PIM118可以向服务器PIM 128发送对在一种类型的加速器上执行特定插件的请求。基于加速器位置的服务器PIM记录以及基于***负载,服务器PIM128确定和返回用于执行插件的加速器的网络位置给客户机PIM。以这种方式,插件可以被调遣至适当的加速器、被执行,并且结果被返回给应用。
使用举例:
仍然参照图3,在使用的第一例子中,第一应用112正在客户机110上执行。第一应用112向客户机PIM 118发送其要求执行第一插件114的消息。对于该例来说,假设客户机PIM 118通过客户机PIM记录确定第一插件114位于客户机110上并且与第三加速器136相关联。客户机PIM118通过网络向服务器PIM 128、128’中的任何实例发送对在第三加速器136上执行第一插件114的请求。服务器PIM 128通过服务器PIM记录和***负载分析确定第三加速器136位于第二服务器节点130并且是可用的。服务器PIM 128将该信息返回给客户机PIM 118。客户机PIM 118通过网络将第一插件114的副本发送至第三加速器136。第三加速器136执行第一插件114并且将结果返回给第一应用112。
要注意,在子***100内可以存在类似的,或者重复的加速器。例如,第五加速器156可以基本上等同于第三加速器136。然后,在上述第一例子中,服务器PIM 128通过***负载分析确定两个加速器中的哪一个更适合解决对执行插件的即时请求。例如,如果第三加速器136正在操作接近100%的容量,而第五加速器156正处于空闲,那么服务器PIM 128可以基于相应的负载(例如***负载)将插件导向第五加速器来执行。
此外,要注意,在子***100内可以存在类似的,或者重复的插件。例如,第三插件134可以基本上等同于第一插件114。然后,在上述第一例子中,客户机PIM 118通过与服务器PIM 128’的信号交换来确定插件的副本已经驻留于与所希望的加速器相同的组件上。这可以发生在,例如,过去将第一插件114发送到了第二服务器节点130,并且在第二服务器节点130上维护了副本(例如,第三插件134)的情况下。(要理解到,存在遍及***装入插件的其它方式)。在这种情况下,客户机PIM不需要发送第一插件114的副本到第二服务器节点130,而是发送对在第三加速器136上执行第三插件134的请求。
此外要注意,应用、插件和加速器可以全都位于相同的***组件上。例如,第一应用112可以请求执行第一插件114,该第一插件114与第一加速器116相关联。在这种情况下,第一插件114可以被加载到第一加速器116、被执行,并且结果被提供给第一应用112。
仍然参照图3,在第二示例性使用中,第一应用112正在客户机110上执行。第一应用112向客户机PIM 118发送其要求执行第二插件124的消息。对于该例来说,假设客户机PIM 118通过客户机PIM记录确定第二插件124位于第一服务器节点120上。客户机PIM 118通过客户机PIM记录还确定第二插件124与第四加速器146相关联。客户机PIM 118向服务器PIM 128、128’中的任何实例发送对在第四加速器146上执行第二插件124的请求。服务器PIM 128’通过服务器PIM记录和***负载分析确定第四加速器146位于第四服务器节点140上并且是可用的。服务器PIM128’将该信息返回给客户机PIM 118。客户机PIM 118向位于具有第二插件124的第一服务器节点120上的服务器PIM 128发送请求,以便向第四加速器发送第二插件124的副本用于执行。服务器PIM 128向第四加速器146发送第二插件124的副本,相应地,第四加速器146执行第二插件124,并且结果被返回给第一应用112。
要注意,如上所述,应用并不限于驻留于客户机上。应用可以驻留于服务器上,例如驻留于第一服务器节点120上的第二应用122。以这种方式,在服务器上执行的应用还可以获益于调遣并在遍及***的各个加速器上远程执行插件的能力。
使用方法:
图4是实现本发明的步骤的流程图。图4同样可以表示本发明的高级框图。图4的步骤可以实现和执行于客户机服务器关系中的服务器,或者其可以在将操作信息传送至用户工作站以创建以上所概述的导览的情况下在该用户工作站上运行。另外,本发明可以采取全硬件实施例、全软件实施例或既含硬件元素又含软件元素的实施例的形式。
图4根据本发明的方面示出了用于执行插件的方法400。在步骤410,接收对执行插件的请求。在实施例中,这包括客户机PIM从应用接收对执行插件的请求。可选地,或者附加地,其包括客户机PIM向服务器PIM发送对执行插件的请求,例如,使用信号交换例程,如上所述。请求可以包括加速器的标识,或者加速器的类型,其中该加速器与插件相关联(例如,来自客户机PIM记录)。
在步骤420,分析用于执行所请求的插件的***。在实施例中,服务器PIM确定加速器在***中的位置并且分析***负载,如上所述。
在步骤425,基于步骤420的分析(例如,基于可用的***资源),服务器PIM标识和指定用于使用的最优加速器。步骤425可以进一步包括将指定加速器的标识和位置传达回客户机PIM。
在步骤430,将插件加载到指定加速器。在实施例中,这包括在客户机PIM与指定加速器之间的信号交换。例如,客户机PIM可以通过网络向加速器发送对执行特定插件的请求以及该插件的副本。可选地,如果该插件已随加速器一起位于本地,那么无需发送副本,并且仅仅将已驻留的插件加载到加速器。加载在本领域是已知的,并且可以例如通过加载模块功能来实现。
在步骤440,使用加速器来执行插件。在实施例中,这包括指定的加速器执行具有由应用或客户机PIM所发送的任何关联数据的插件。
在步骤450,将执行插件的结果返回给应用。在实施例中,这包括当加速器正在执行插件时实时地将结果传输给应用(例如,通过网络)。可选地,其可以包括执行插件来生成一组结果,并且然后将该组结果传输给应用。步骤450可以进一步包括将结果集成到应用中。
如上所述,本发明的实施例提供了一种用于在远离请求插件的应用的加速器上执行插件的***和方法。此外,本发明的实现提供了一种用于分步和管理插件在网络连接的***中的执行的***和方法。以这种方式,本发明增加了计算应用的功能性。
虽然已经根据实施例说明了本发明,但是本领域的技术人员应当认识到,本发明可以在修改的情况下实施,并且属于所附权利要求的精神和范围。
Claims (19)
1.一种在计算环境中加速应用的执行的方法,其包括:
接收对执行计算应用的插件的请求;
分析用于执行所述插件的加速器的网络;
标识驻留在远离所述应用的设备上的指定加速器;以及
利用所述指定加速器执行所述插件。
2.根据权利要求1的方法,其中所述分析包括:确定***负载和可用资源中的至少一个。
3.根据权利要求1的方法,其进一步包括:通过从客户机设备接收所述插件的副本,将所述插件加载到所述指定加速器。
4.根据权利要求1的方法,其进一步包括:通过将所述执行的结果从第一网络位置传输至第二网络位置来将所述结果传达给所述计算应用,其中所述指定加速器驻留于所述第一网络位置,所述计算应用驻留于所述第二网络位置。
5.根据权利要求1的方法,其中在订购、广告或者付费的基础上实现所述接收、分析、标识和执行。
6.根据权利要求1的方法,其进一步包括以下中的至少一个:创建、维护和支持用于实现所述接收、分析、标识和执行的计算机基础设施。
7.根据权利要求1的方法,其中所述接收、分析、标识和执行由服务供应商来实现。
8.一种在计算环境中加速应用的执行的联网***,其包括:
与插件关联的计算应用;
第一管理器,所述第一管理器被安排以将所述插件与用于执行所述插件的至少一个加速器相关联;以及
第二管理器,所述第二管理器被安排以确定所述至少一个加速器的位置,
其中所述第一管理器和所述第二管理器置于网络内的不同位置。
9.根据权利要求8的***,其中:
所述计算应用和所述第一管理器位于客户机设备,以及
所述第二管理器位于远离所述客户机设备的服务器设备。
10.根据权利要求9的***,其中所述至少一个加速器位于所述服务器设备。
11.根据权利要求9的***,其中所述至少一个加速器位于远离所述服务器设备的服务器节点。
12.根据权利要求11的***,其中所述插件位于所述服务器节点。
13.根据权利要求10的***,其中所述插件位于所述客户机设备。
14.根据权利要求10的***,其中所述插件位于所述服务器设备。
15.根据权利要求8的***,其中所述第一管理器通过所述网络将所述插件的副本发送至所述至少一个加速器。
16.根据权利要求8的***,其中所述至少一个加速器:
通过执行所述插件生成结果,以及
通过所述网络将所述结果发送给所述计算应用。
17.根据权利要求8的***,其中:
所述至少一个加速器包括多个加速器,以及
所述第二管理器确定所述多个加速器中指定的一个来执行所述插件。
18.根据权利要求17的***,其中所述第二管理器通过分析***负载和资源可用性中的至少一个来确定所述多个加速器中所指定的一个。
19.一种在计算环境中加速应用的执行的方法,其包括:
发送对执行计算应用的插件的请求;
接收对用于执行所述插件的加速器的指定,其中所述加速器驻留在远离所述应用的设备上,并且通过分析用于执行所述插件的加速器的网络来指定;以及
通过网络接收来自所述加速器对所述插件的执行的结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/553,000 US8838674B2 (en) | 2006-10-26 | 2006-10-26 | Plug-in accelerator |
US11/553,000 | 2006-10-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101169714A CN101169714A (zh) | 2008-04-30 |
CN101169714B true CN101169714B (zh) | 2010-06-02 |
Family
ID=39331693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710166836 Expired - Fee Related CN101169714B (zh) | 2006-10-26 | 2007-10-22 | 用于在计算环境中加速应用的执行的***和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8838674B2 (zh) |
CN (1) | CN101169714B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107743608A (zh) * | 2015-04-08 | 2018-02-27 | 微软技术许可有限责任公司 | 至硬件加速器的动态功率路由 |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8143048B2 (en) * | 2003-07-07 | 2012-03-27 | Danisco A/S | Exo-specific amylase polypeptides, nucleic acids encoding those polypeptides and uses thereof |
US7865705B2 (en) * | 2008-02-01 | 2011-01-04 | International Business Machines Corporation | Branch target address cache including address type tag bit |
US8452947B2 (en) * | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
US8516484B2 (en) * | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8250396B2 (en) | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8171476B2 (en) * | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
US8145849B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8127080B2 (en) * | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8880853B2 (en) * | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
US8612977B2 (en) * | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
US8640141B2 (en) * | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
US8732683B2 (en) * | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8316218B2 (en) * | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8312458B2 (en) * | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8225120B2 (en) * | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
US8886919B2 (en) * | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
US8082315B2 (en) | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
US8230201B2 (en) * | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
US8478965B2 (en) * | 2009-10-30 | 2013-07-02 | International Business Machines Corporation | Cascaded accelerator functions |
US8495193B2 (en) * | 2010-02-23 | 2013-07-23 | Microsoft Corporation | Centralized management tool for remote presentation session server farms |
JP6412708B2 (ja) * | 2014-04-01 | 2018-10-24 | 株式会社ソニー・インタラクティブエンタテインメント | プロセッシングシステムおよびマルチプロセッシングシステム |
US9606836B2 (en) * | 2015-06-09 | 2017-03-28 | Microsoft Technology Licensing, Llc | Independently networkable hardware accelerators for increased workflow optimization |
US9720714B2 (en) * | 2015-08-26 | 2017-08-01 | International Business Machines Corporation | Accelerator functionality management in a coherent computing system |
US10334334B2 (en) * | 2016-07-22 | 2019-06-25 | Intel Corporation | Storage sled and techniques for a data center |
CN108667920B (zh) * | 2018-04-26 | 2020-08-11 | 浪潮集团有限公司 | 一种雾计算环境业务流量加速***及其业务流量加速方法 |
US10901827B2 (en) | 2018-05-14 | 2021-01-26 | International Business Machines Corporation | Failover of a hardware accelerator to software |
US10740160B2 (en) | 2018-06-13 | 2020-08-11 | International Business Machines Corporation | Dynamic accelerator generation and deployment |
US11048558B2 (en) | 2018-07-12 | 2021-06-29 | International Business Machines Corporation | Dynamic accelerator generation and deployment |
US10725839B2 (en) | 2018-07-12 | 2020-07-28 | International Business Machines Corporation | Helping a hardware accelerator using software |
US11321101B2 (en) * | 2019-07-10 | 2022-05-03 | Vmware, Inc. | Deployment and isolation of plugins in a virtualized computing environment |
US11809289B2 (en) * | 2021-10-15 | 2023-11-07 | Dell Products L.P. | High-availability (HA) management networks for high performance computing platforms |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5423042A (en) * | 1992-10-23 | 1995-06-06 | International Business Machines Corporation | Remote procedure execution |
US6446070B1 (en) * | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US5961586A (en) * | 1997-05-14 | 1999-10-05 | Citrix Systems, Inc. | System and method for remotely executing an interpretive language application |
US6954777B1 (en) * | 1999-07-29 | 2005-10-11 | International Business Machines Corporation | Method for extending capabilities of an arbitrary web server |
US6658452B1 (en) * | 1999-12-09 | 2003-12-02 | International Business Machines Corporation | Schemes for selecting and passing an application from an application provider to an application service provider |
US6871345B1 (en) | 2000-04-04 | 2005-03-22 | Motive, Inc. | Self managing software agents with introspection |
US8412791B2 (en) * | 2001-09-28 | 2013-04-02 | International Business Machines Corporation | Apparatus and method for offloading application components to edge servers |
US7849130B2 (en) * | 2003-04-30 | 2010-12-07 | International Business Machines Corporation | Dynamic service-on-demand delivery messaging hub |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
-
2006
- 2006-10-26 US US11/553,000 patent/US8838674B2/en not_active Expired - Fee Related
-
2007
- 2007-10-22 CN CN 200710166836 patent/CN101169714B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107743608A (zh) * | 2015-04-08 | 2018-02-27 | 微软技术许可有限责任公司 | 至硬件加速器的动态功率路由 |
CN107743608B (zh) * | 2015-04-08 | 2020-05-22 | 微软技术许可有限责任公司 | 至硬件加速器的动态功率路由 |
Also Published As
Publication number | Publication date |
---|---|
US8838674B2 (en) | 2014-09-16 |
US20080104223A1 (en) | 2008-05-01 |
CN101169714A (zh) | 2008-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101169714B (zh) | 用于在计算环境中加速应用的执行的***和方法 | |
US8943518B2 (en) | Managing and optimizing workflows among computer applications | |
CN108520454A (zh) | 实时回调订单的方法和*** | |
US20090244059A1 (en) | System and method for automatically generating virtual world environments based upon existing physical environments | |
US20080271032A1 (en) | Data Processing Network | |
US7596543B2 (en) | Systems and methods for processing electronic documents in a computer network | |
CN101395582A (zh) | 在网格环境中部署平台相关应用的方法、***和程序产品 | |
CN112016796B (zh) | 综合风险评分请求处理方法、装置及电子设备 | |
CN112017062B (zh) | 基于客群细分的资源额度分配方法、装置及电子设备 | |
CN113765942A (zh) | 一种云算力分配方法、用户终端、云算力平台和*** | |
CN113487265A (zh) | 一种用于物流信息订阅、查询、推送的方法、装置及设备 | |
CN111010453B (zh) | 服务请求处理方法、***、电子设备及计算机可读介质 | |
CN114912904B (zh) | 项目交付状态确定方法、***、电子设备及存储介质 | |
JP3910492B2 (ja) | アクセスレベル管理装置およびアクセスレベル管理プログラム | |
CN111506340B (zh) | 业务规则信息处理方法、装置及*** | |
CN111523927A (zh) | 资源的发送方法、装置、设备及存储介质 | |
CN113010627A (zh) | 一种城市信息模型服务方法 | |
CN111914002A (zh) | 机房资源信息处理方法、装置和电子设备 | |
CN110351350A (zh) | 基于多服务器对接的客户端请求处理方法、***和电子设备 | |
KR102432066B1 (ko) | 표준화된 bom에 관한 매칭 테이블을 이용하여 고객 호환성을 갖는 웹 서비스를 제공하는 방법 및 서버 | |
CN112035613B (zh) | 基于多轮对话的信息推送方法及装置、存储介质、电子装置 | |
CN113747185B (zh) | 一种信息交互方法、装置、***、设备及存储介质 | |
CN115587392B (zh) | 一种防掉存力方法、装置、设备及介质 | |
CN114189365B (zh) | 基于字段映射的通用多租户业务授权方法和装置 | |
CN117474447A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100602 Termination date: 20201022 |
|
CF01 | Termination of patent right due to non-payment of annual fee |