执行应用的系统和方法

文档序号:7972064阅读:186来源:国知局
专利名称:执行应用的系统和方法
技术领域
本发明涉及一种用于执行应用的系统、方法和计算机程序产品。特别地,本发明涉及一种用于通过选择在本地环境还是网络环境中执行应用来执行专为网格计算系统所设计的应用的系统、方法和计算机程序产品。
背景技术
网格计算技术允许多台互连的计算机一起从事无法在单个机器上进行的大型网格应用,例如计算问题。为了对这种海量计算处理进行可行性管理,可以将计算问题分割成若干个更小和更易于管理的作业或任务。由于很多个人和商业计算机都具有强制性或偶然性的空闲处理器时间,因此,这类共享网格应用处理在某种程度上是可行的。此外,网格计算系统可以允许跨越系统内部的多个节点的共享存储。由此,举例来说,数据可以采用备份形式而被远程存储于系统上,并允许大量数据被单个节点以虚拟方式来存储。网格计算的这种不断变化的前景带动了众多网格框架的发展,这些框架被设计成支持在网格上运行的应用。然而,为使应用适合于网格框架,开发人员需要经历一个理解网格系统体系结构的复杂结构以及正在使用的底层框架的过程。这样,需要简化专为网格系统所设计的这种应用的开发和部署。

发明内容
在本发明的第一个方面中,提供了一种用于执行应用的系统。该系统包括被配置成在本地环境中执行应用的本地基础设施、被配置成在网格环境中执行应用的网格基础设施、以及本地-网格虚包(facade),其中所述本地-网格虚包具有用于选择本地环境或网格环境以及在选定环境中执行应用的参数切换器。优选地,本地基础设施包括本地节点,该节点被配置成执行与应用相关联的一个或多个任务,并且优选地,网格基础设施包括经由网络通信信道相连接的多个网格节点,所述多个网格节点中的每一个节点都被配置成执行与应用相关联的一个或多个任务。优选地,本地-网格虚包是在每一个本地基础设施和网格基础设施内实现的。在本地基础设施内实现的本地-网格虚包还包括本地-网格控制器模块,该模块被配置成对将在本地节点上执行的一个或多个任务进行调度。此外,本地-网格控制器模块包括参数切换器和结果收集器模块,其中结果收集器模块被配置成收集与本地节点上执行的一个或多个任务相关联的结果。在网格基础设施内实现的本地-网格虚包还包括本地-网格控制器模块和结果收集器模块,其中本地-网格控制器模块被配置成对多个网格节点中一个或多个节点上的一个或多个任务进行调度,结果收集器模块则被配置成收集与来自本地节点的一个或多个任务相关联的结果。优选地,本地环境包括具有在其上实现的本地-网格虚包的本地基础设施,由此可以将本地环境配置成在本地环境中测试和部署应用。同样地,本地基础设施被配置成从应用客户机中接收与应用执行相关联的输入。此外,优选地,网格环境包括具有在其上实现本地-网格虚包的网格基础设施,由此可以将网格环境配置成在网格环境中部署应用。优选地,该网格基础设施还被配置成从应用客户机中接收与应用执行相关联的输入。更为优选地,本地环境包括结果摘要模块,该模块被配置成对与接收自本地节点的一个或多个任务相关联的结果进行合并,而网格环境优选地包括网格结果摘要模块,该模块被配置成对与接收自多个网格节点中的一个或多个节点的一个或多个任务相关联的结果进行合并。
在本发明的另一个方面中,提供了一种通过使用本地-网格虚包或代码来执行应用的方法。该方法包括提供具有参数切换器的本地-网格虚包,所述参数切换器用于选择本地环境或网格环境来执行应用;选择本地环境或网格环境来执行应用;接收与将执行的应用相关联的一个或多个任务;以及在选定的本地环境或网格环境中执行一个或多个任务。该方法还包括以下步骤将与在选定的本地环境或网格环境中执行的一个或多个任务相对应的结果转发到应用客户机。优选地,该接收步骤还包括以下步骤就应该将应用分割成多少个任务用以在选定的本地环境或网格环境中执行而与应用客户机进行通信;以及对从应用客户机接收的一个或多个任务进行调度,以在选定的本地环境或网格环境中执行。同样地,优选地,该转发步骤还包括以下步骤收集与在选定的本地环境或网格环境中执行的一个或多个任务相对应的结果;以及将收集到的结果摘要提供给应用客户机。另外,优选地,如果在参数切换器中选择了本地环境,则对一个或多个任务进行调度,以便在本地基础设施的本地节点上执行,并且优选地,如果在参数切换器中选择了网格环境,则对一个或多个任务进行调度,以便在网格基础设施的多个网格节点中的一个或多个节点上执行。
在本发明的再一个方面中,提供了一种用于执行应用的计算机程序产品。该计算机程序产品包括计算机可读媒体、用于在本地环境中执行应用的第一程序指令、用于在网格环境中执行应用的第二程序指令、以及提供用于选择本地环境或网格环境用以执行应用的参数切换器的第三程序指令。该计算机程序产品还包括用于收集与本地环境或网格环境中的应用执行相对应的结果的第四程序指令。优选地,所述第一、第二、第三和第四程序指令都存储在媒体上。此外,如果参数切换器被选择在本地环境中执行应用,那么所述第三程序指令还包括用于对与本地基础设施中的应用相关联的一个或多个任务进行调度的指令,并且优选地,如果参数切换器被选择在网格环境中执行应用,那么所述第三程序指令还包括用于对与网格基础设施中的应用相关联的一个或多个任务进行调度的指令。优选地,本地基础设施包括被配置成执行与应用相关联的一个或多个任务的本地节点,并且优选地,网格基础设施包括经由网络通信信道相连接的多个网格节点,所述多个网格节点中的每一个节点都被配置成执行与应用相关联的一个或多个任务。更为优选地,本地基础设施被配置成从应用客户机中接收与应用相关联的输入,并且优选地,网格基础设施被配置成从应用客户机中接收与应用相关联的输入。优选地,所述第四程序指令包括用于对来自本地节点或是多个网格节点中的一个或多个节点的、与应用执行相关联的结果进行合并的指令。


在这里引入并构成本说明书的一部分的附图例示了本发明的实施例,这些附图连同说明书一起用来对本发明的原理进行了说明图1表示依照本发明实施例来执行应用的系统,其中该系统包括具有本地-网格虚包的本地基础设施以及具有本地-网格虚包的网格基础设施。
图2A是例示依照本发明实施例通过使用本地-网格虚包在本地环境中执行应用的系统的示意性框图。
图2B是例示依照本发明实施例通过使用本地-网格虚包在本地环境中执行应用的可替换系统的示意性框图。
图3A是例示依照本发明实施例通过使用本地-网格虚包在网格环境中执行应用的系统的示意性框图。
图3B是例示依照本发明实施例通过使用本地-网格虚包在网格环境中执行应用的可替换系统的示意性框图。
图4是描述依照本发明实施例通过使用本地-网格虚包在本地环境或网格环境中执行应用的方法的流程图。
图5是例示依照本发明实施例通过使用本地-网格虚包在本地环境中执行应用的示例的示意性框图。
图6是例示依照本发明实施例通过使用本地-网格虚包在本地环境中执行的应用与在网格计算系统中部署的相同应用相对比的示例的示意性框图。
具体实施例方式
对本领域技术人员来说,很明显,在不脱离本发明的实质和范围的情况下,可以对本发明进行各种修改和变更。因此,如果对本发明的这些修改和变更落入权利要求及其等价物的范围以内,那么本发明会覆盖这些修改和变更。现在将详细参考本发明的优选实施例。
在一实施例中,本发明提供了一种通过使用本地-网格虚包来执行应用的系统。特别地,本发明提供了一种用于执行专为网格计算框架或系统开发或设计的应用的系统。该系统包括被配置成在本地环境中执行应用的本地基础设施、被配置成在网格环境中执行应用的网格基础设施、以及本地-网格虚包,其中该本地-网格虚包具有用于选择本地环境或网格环境以及在选定环境中执行应用的参数切换器。优选地,所述本地-网格虚包在本地基础设施和网格基础设施内实现,由此可以在被选定用于执行应用的本地环境或网格环境中执行应用。优选地,本地基础设施包括被配置成执行与应用相关联的一个或多个任务的本地节点,并且优选地,网格基础设施包括经由网络通信信道相连接的多个网格节点,其中所述多个网格节点的每一个节点都被配置成执行与应用相关联的一个或多个任务。此外,优选地,在本地基础设施内实现的本地-网格虚包包括本地-网格控制器模块和结果收集器模块,所述本地-网格控制器模块被配置成对在本地节点上执行的一个或多个任务进行调度,并且所述结果收集器模块被配置成收集与本地节点上执行的一个或多个任务相关联的结果。更为优选地,本地环境包括具有其上实现的本地-网格虚包的本地基础设施,由此可以将本地环境配置成在本地环境中测试和部署应用。更为优选地,本地基础设施被配置成从应用客户机中接收与应用执行相关联的输入。此外,优选地,本地环境包括结果摘要模块,该模块被配置成对与接收自本地节点的一个或多个任务相关联的结果进行合并。此外优选地,在网格基础设施内实现的本地-网格虚包包括本地-网格控制器模块和结果收集器模块,所述本地-网格控制器模块被配置成对在多个网格节点中的一个或多个节点上的一个或多个任务进行调度,所述结果收集器模块被配置成收集与来自多个网格节点的一个或多个任务相关联的结果。优选地,网格环境包括具有其上实现的本地-网格虚包的网格基础设施,由此可以将网格环境配置成在网格环境中部署应用。更为优选地,网格基础设施还被配置成从应用客户机中接收与应用执行相关联的输入。此外优选地,网格环境包括结果摘要模块,该模块被配置成对与接收自多个网格节点中的一个或多个节点的一个或多个任务相关联的结果进行合并。
这里使用的术语“应用”指的是专为网格计算系统开发或设计的应用,但是其中所述应用尚未在网格计算系统中实现。同样,后续描述将关注的是,在网格计算系统无法使用的时候,通过使用在本地基础设施上实现的本地-网格虚包来测试和/或部署应用,以便模拟网格计算系统,从而可以将应用最终部署在网格计算系统中。术语“应用客户机”指的是希望在本地环境或网格环境中执行应用的客户机器上的程序。此外,术语“本地-网格虚包”指的是在本地基础设施和网格基础设施内实现的代码。本地-网格虚包代码包括参数切换器,该参数切换器的属性可以被设置,由此,专为网格系统设计的应用的开发人员可以选择应该在本地环境还是网格环境中执行应用。此外,术语“本地基础设施”指的是本地节点或一台计算机工作站,而术语“网格基础设施”指的是经由某种网络通信信道相连接的一个或多个网格节点或网格客户机-服务器。另外,术语“本地环境”是指具有在其上实现的本地-网格虚包的本地基础设施,而“网格环境”是指具有在其上实现的本地-网格虚包的网格基础设施。,同样地,术语“任务”、“作业”、“工作单元”或“线程”指的是由应用客户机将应用分割成的一个或多个较小的部分。
更进一步,本地-网格虚包中包括的众多功能单元都被标记成了模块,由此可以更加具体地强调其实现的独立性。例如,模块是可以作为硬件电路实现的,其中该硬件电路包括定制的VLSI电路或门阵列、逻辑芯片之类的现有半导体、晶体管或是其他分立组件。模块也可以以可编程硬件设备的形式实现,其中所述可编程硬件设备诸如场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等等。而且,模块还可以以由多种类型的处理器执行的软件的形式实现。例如,已识别的可执行代码的模块可包括计算机指令的一个或多个物理或逻辑块,并且所述块可以被组织成对象、过程或是函数。然而,已识别模块的可执行指令在物理上不需要在一起,而是可以包括存储在不同位置的不同指令,在将这些指令逻辑上结合在一起的时候,这些指令包括模块,并且实现为该模块所规定的用途。实际上,可执行代码模块既可以是单个指令,也可以是很多指令,甚至还可以分布在若干不同的代码段上、不同的程序以及若干存储器设备中。同样,在这里可以在模块内部识别和例示操作数据,并且这些操作数据可以采用任何适当的形式来实现,并且可以用任何适当类型的数据结构来组织。所述操作数据既可以作为单个数据集来收集,也可以分布在不同位置,所述位置包括不同的存储设备、分立的存储器设备,并且,至少在某种程度上,所述操作数据是可以仅作为系统或网络上的电子信号而存在的。另外,模块还可以作为软件与一个或多个硬件设备的组合来实现。例如,模块可以用存储器设备上存储的软件可执行代码的组合的形式来实现。在另一个示例中,模块可以是对一组操作数据进行操作的处理器的组合。此外,模块还可以用经由传输电路传送的电子信号的组合的形式来实现。
现在参考图1至4,这些附图例示了依照本发明通过使用本地-网格虚包来执行应用的系统的各种实施例以及方面。转到图1,图1中的标号100指的是依照本发明实施例来执行应用的系统,该系统包括具有在其上实现的本地-网格虚包(在图1中并未明确显示)的本地基础设施110以及具有在其上实现的本地-网格虚包(在图1中并未明确显示)的网格基础设施130。如图1所示,系统100的本地基础设施110以及网格基础设施130都在因特网150上工作,其中因特网充当的是用于系统中的各种组件的通信信道。此外,图1显示的网格基础设施130与局域网(LAN)是相似的,该网格基础设施130包括五个客户机-服务器120、122、124、126和128,所有这五个相应的客户机-服务器都是经由通信信道140来连接的。在一实施例中,通信信道140可以是以太网通信信道、无线通信信道或是另一等价的通信信道。虽然显示的所描述的网格基础设施130包括五个客户机-服务器120-128,但是该网格基础设施130可以包括具有更少或更多客户机-服务器的各种网络配置或是可替换的客户机-服务器配置的组合。
转到图2A和2B,标号200A和200B都例示了专为网格系统所设计的应用的执行,在该网格系统中本地-网格虚包的参数切换器被设置在本地环境中执行应用。图2A与图2B之间的唯一区别是各自的本地-网格虚包250A和250B的配置,其中所述本地-网格虚包是在本地节点208内实现的代码。如图2A所示,本地-网格虚包250A包括若干个模块,即本地-网格控制器模块204、结果收集器模块206,此外它还优选地包括结果摘要模块202。本地-网格虚包250A的本地-网格控制器模块204被配置成对将在本地节点208上执行的一个或多个任务进行调度,其中所述本地-网格控制器模块204包括用于选择本地环境或网格环境的参数切换器(在图2A和2B中并未明确显示)。同样,如图2A所示,本地-网格控制器模块204还被配置成与应用客户机230相接口。此外,结果收集器模块206被配置成收集与本地节点208上执行的一个或多个任务相关联的结果,而结果摘要模块202被配置成对与从本地节点208接收以及由结果收集器模块206收集的一个或多个任务相关联的结果进行合并或摘要。在图2B所示的另一实施例200B中,本地-网格虚包250B包含了本地-网格控制器模块204、结果收集模块206,但是本地-网格控制器模块204与结果收集器模块206被组合在一起。与本地-网格虚包250A相似,本地-网格虚包250B同样优选地包括结果摘要模块202。图2B中的剩余部分与图2A是相同的,因此,虽然本说明书的剩余部分参考图2A,但是对图2B的描述也遵循对图2A的描述。参考图2A,如所示,本地基础设施包括三个具有标号208的独立本地节点。虽然将本地基础设施显示为三个独立的本地节点208,但是这三个独立的本地节点代表的是同一个被配置成执行与应用相关联的一个或多个任务的本地工作站或本地节点208。不过,将本地基础设施显示成独立的本地节点是为了例示网格模拟,其中所述网格模拟是作为在本地节点208上实现的本地-网格虚包250A的结果出现的,本地-网格虚包与本地节点共同形成了执行应用的本地环境210。
如果在本地-网格控制器模块204内包括的参数切换器中选择了本地环境,那么本地-网格控制器模块204了解到所述应用将会在本地环境中执行。相应地,当应用客户机230通过调用本地-网格控制器模块204或是与之进行通信来找出要将应用分解或分割成多少个任务、作业或线程的时候,本地-网格控制器模块204追踪或是管理在本地节点上可用的资源,诸如处理能力等,并且该模块能够将关于其可以调度多少个独立任务/作业用以在本地节点208上执行传送回应用客户机230。这样一来,应用客户机230把将要在本地节点208上执行的应用分割成与由本地-网格控制器模块204所传送的任务/作业信息相对应的适当数量的任务/作业/线程。将要执行的应用的一个或多个任务作为一个或多个任务而被发送(如箭头260所示)到本地-网格控制器模块204。特别地,在图2A和2B中,本地-网格控制器模块204对本地节点208上的三个独立任务进行调度(如实线箭头212、214和216所示)。这样,在本地节点上,应用的若干个任务或作业可以同时执行、串行执行、或彼此依赖地执行。优选地,本地节点208的操作系统在其上实现了多线程能力,例如Java编程语言的多线程能力的实现Java.lang.Thread,由此可以在本地节点上本地执行多个任务。此外,一旦本地节点208结束执行单独任务,那么本地节点将所执行任务的结果发送到(如虚线箭头216、224和226所示)结果收集器模块206(如虚线箭头222、224和226所示)。优选地,结果收集器模块206将结果直接传送到(如双边箭头255所示)本地-网格控制器模块204。此外,本地-网格控制器模块204可以将由结果收集器模块206收集的结果发送到(如双边箭头265所示)结果摘要模块202,由此,结果摘要模块202可以合并或摘要接收到的结果,并且以预期的特定格式将这些结果返回给本地-网格控制器模块204。本地-网格控制器模块204将由结果摘要模块202合并的结果或是结果收集器模块206收集的结果转发到(如箭头270所示)应用客户机230。作为选择,在一实施例中(在图2A或2B中并未显示),本地节点208可以将结果发送到本地-网格控制器模块204,该模块可以将结果发送到结果收集器模块206。结果收集器模块206收集结果,并且一旦已收集到所有结果,那么结果收集器模块206就将已经收集的结果发送到本地-网格控制器模块204。此外,本地-网格控制器模块204可以将收集到的结果发送到(如双边箭头265所示)结果摘要模块202,由此可以将收集到的结果合并成以预期格式来汇总这些结果的摘要。然后,结果摘要模块202将这些结果发送回(如双边箭头265所示)本地-网格控制器模块204,该本地-网格控制器模块204将经汇总的结果转发到(如箭头270所示)应用客户机230。相应地,在本地基础设施内实现的本地-网格虚包模拟网格计算系统,但是该虚包在本地环境中执行与应用相关联的各种任务或线程。
现在参考图3A和3B,其中标号300A和300B分别例示专为网格系统设计的应用的执行,在所述网格系统中本地-网格虚包的参数切换器被设置在网格环境中执行应用。图3A与图3B的唯一区别在于各自的本地-网格虚包350A和350B的配置,其中所述本地-网格虚包是在网格节点332、334、336、338、340、342、344、346和348中的每一个内实现的代码。如图3A的标号300A所示,本地-网格虚包350A包括若干个模块,即本地-网格控制器模块304、结果收集器模块306,此外它还优选地包括结果摘要模块302。如图3B中的标号300B所示,本地-网格虚包350B包括本地-网格控制器模块304、结果收集器模块306,但是本地-网格控制器模块304与结果收集器模块306被组合在一起。与本地-网格虚包350A相似,本地-网格虚包350B同样优选地包括结果摘要模块302。图3B的剩余部分与图3A是相同的,因此,虽然在本说明书的剩余部分参考图3A,但是对图3A的描述同样适用于图3B。参考图3A,如所示,网格基础设施包括九个网格节点332、334、336、338、340、342、344、346和348。该网格基础设施包括网格节点332、334、336、338、340、342、344、346和348中的每一个,并且连同在每一个网格节点上实现的本地-网格虚包350A一起形成了用于执行应用的网格环境310。同样,参考图3A,本地-网格虚包350A的本地-网格控制器模块304被配置成对与在网格节点332、334、336、338、340、342、344、346和348中的一个或多个上执行的应用相关联的一个或多个任务进行调度。此外,本地-网格控制器模块304包括用于选择本地环境或是网格环境的参数切换器(在图3A或3B中并未明确显示)。同样地,如图3A所示,本地-网格控制器模块304被配置成与应用客户机330相接口。此外,结果收集器模块306被配置成收集与在网格节点332、334、336、338、340、342、344、346和348中的一个或多个上执行的一个或多个任务相关联的结果,而结果摘要模块302被配置成合并或是汇总与接收自网格节点332、334、336、338、340、342、344、346和348中的一个或多个的一个或多个任务相关联的结果。
特别地,如果在本地-网格控制器模块304所包括的参数切换器中选择了网格环境,那么本地-网格控制器模块304了解到所述应用将要在网格环境中执行。此外,本地-网格控制器模块304了解到在给定时刻可用于作为网格环境的一部分来执行一个或多个作业的网格节点的数量。每一个网格节点都可以为系统分配某些性能、存储或存储器资源用以执行应用,并且优选地,本地-网格控制器模块304追踪或是管理网格节点上可用的资源,由此可以随需对任何任务或是作业进行调度。作为选择,当在网格环境中工作的时候,本地-网格控制器模块304可以使用网格计算系统的任务管理装置来调度任务或作业。相应地,当应用客户机330调用本地-网格控制器模块304或是与之进行通信来找到需要将应用分解或分割成多少个任务或是作业的时候,本地-网格控制器模块304会将必要的信息传送回到应用客户机330,其中该信息关于该模块可以调度多少个独立任务/作业/线程用以在网格节点332、334、336、338、340、342、344、346和348中的一个或多个上执行。这样一来,应用客户机230把将由网格节点332、334、336、338、340、342、344、346和348中的一个或多个执行的应用分割成与由本地-网格控制器模块304所传送的任务/作业信息相对应的适当数量的任务/作业/线程。将要执行的应用的一个或多个任务作为一个或多个任务而被应用客户机330发送到(如箭头360所示)本地-网格控制器模块304。特别地,在图3A和3B中,本地-网格控制器模块304对四个网格节点(即,网格节点332、网格节点334、网格节点336和网格节点338)上的四个独立任务进行调度(如实线箭头312、314、316和318所示)。不过,如图3A和3B所示,并未向网格节点340、342、344、346和348发送与应用相关联的任何任务。尚未向网格节点340、342、344、346和348发送任何任务的原因有可能是因为只有四个任务是与需要执行的应用相关联的,或者也有可能是因为一种或多种原因而无法使用网格节点340、342、344、346和348的情形,诸如处理器性能不足、处理器能力不足、存储容量不足等等。
此外,一旦网格节点332、334、336和338中的每个已结束执行单独任务,那么每一个相应的网格节点会将所执行任务的结果发送到(如虚线箭头322、324、326和328所示)结果收集器模块306。优选地,结果收集器模块306会将接收自网格节点332、334、336和338的结果传送到本地-网格控制器模块304,如图3A中的双边箭头355所示。此外,本地-网格控制器模块204可以将由结果收集器模块306收集的结果发送到(如双边箭头365所示)结果摘要模块302,由此,结果摘要模块302可以用一种预期的特定格式来合并或汇总这些结果,并且将这些结果返回给本地-网格控制器模块304。本地-网格控制器模块304将由结果摘要模块302合并的结果或是结果收集器模块306收集的结果转发到(如箭头370所示)应用客户机330。作为选择,在一实施例中(在图3A或3B中并未显示),网格节点可以将这些结果直接发送到本地-网格控制器模块304,本地-网格控制器模块304可将这些结果发送到结果收集器模块306。结果收集器模块306收集这些结果,并且一旦已收集到所有结果,那么结果收集器模块306就将已收集到的结果发送到本地-网格控制器模块304。此外,本地-网格控制器模块304可以将收集到的结果发送到(如双边箭头365所示)结果摘要模块302,由此可以将收集到的结果合并成以预期方式汇总这些结果的摘要。然后,结果摘要模块302将这些结果发送回到(如双边箭头365所示)本地-网格控制器模块,本地-网格控制器模块将经汇总的结果转发到(如箭头370所示)应用客户机330。相应地,在网格环境中,应用的若干个任务或作业可以在各种网格节点332、334、336、338、340、342、344、346和348中的一个或多个上同时执行、串行执行、或者彼此依赖地执行。
在本发明的另一个方面中,提供了一种通过使用本地-网格虚包来执行应用的方法。该方法包括以下步骤提供具有参数切换器的本地-网格虚包,所述参数切换器用于选择本地环境或网格环境用以执行应用;选择本地环境或网格环境用以执行应用;接收与将执行的应用相关联的一个或多个任务;以及在选定的本地环境或网格环境中执行一个或多个任务。该方法还包括以下步骤将与在选定的本地环境或网格环境中执行的一个或多个任务相对应的结果转发到应用客户机。优选地,该接收步骤还包括以下步骤与应用客户机就关于将应用分割成多少个任务用以在选定的本地环境或网格环境中执行而进行通信,以及对从应用客户机接收的用以在选定的本地环境或网格环境中执行的一个或多个任务进行调度。优选地,该转发步骤还包括以下步骤收集与在选定的本地环境或网格环境中执行的一个或多个任务相对应的结果,以及将收集到的结果摘要提供给应用客户机。更为优选地,如果在本地-网格虚包的参数切换器中选择了本地环境,则对一个或多个任务进行调度,以便在本地基础设施的本地节点上执行,并且优选地,如果在参数切换器中选择了网格环境,则对一个或多个任务进行调度,以便在网格基础设施的多个网格节点中的一个或多个节点上执行所述任务。优选地,本地-网格虚包是在本地基础设施和网格基础设施内实现的,由此可以在专为执行应用所选择的本地环境或网格环境中执行应用。优选地,本地基础设施包括被配置成执行与应用相关联的一个或多个任务的本地节点,并且优选地,网格基础设施包括经由网络通信信道相连接的多个网格节点,其中所述多个网格节点中的每一个节点都被配置成执行与应用相关联的一个或多个任务。
现在参考图4中的标号400,例示了一种通过使用本地-网格虚包来执行应用的方法。当在步骤402中开始的时候,第一步骤404是对本地-网格虚包的本地-网格控制器模块中的参数切换器进行设置,以使本地-网格控制器模块了解到将在本地环境还是网格环境中执行一个或多个任务。优选地,该参数切换器是XML参数切换器,它在应用客户机发送任何与所要执行的应用相关联的任务之前由管理员进行设置。如果在步骤404中将参数切换器设置成本地环境,那么如图4左侧以“L”为结尾的步骤所示,应用以及与应用相关联的任何任务、作业或线程将会在本地环境中执行。然而,如果在步骤404中将参数切换器设置成网格环境,那么如图4右侧以“G”为结尾的步骤所示,应用以及与应用相关联的任何任务、作业或线程都是在网格环境中执行的。如果在步骤406中选择本地环境,那么下一步骤410L包括与应用客户机就关于将应用分割成多少个单独任务或工作单位而进行通信。应用客户机将单独任务或作业发送到本地环境中的本地-网格控制器模块,本地-网格控制器模块在步骤412L中从应用客户机接收这些单独任务。在步骤414L中,本地-网格控制器模块对将在本地环境中的本地节点上执行的单独任务进行调度。在步骤416L中,本地-网格控制器模块将单独的任务或作业发送到本地节点用以执行。在本地节点执行了单独任务之后,在步骤418L中,结果收集器模块收集来自本地节点的结果,并且将这些结果发送到本地-网格控制器模块。本地-网格控制器模块将收集到的结果发送到结果摘要模块,结果摘要模块在步骤420L中合并这些结果,并且将合并结果发送回到本地-网格控制器模块。作为选择,在步骤418L中,本地-网格控制器模块接收结果,并且将这些结果发送到结果收集器模块。结果收集器模块收集这些结果,并且一旦已收集到所有结果,那么结果收集器模块就会在步骤418L中将这些结果发送到本地-网格控制器模块。本地-网格控制器模块将收集到的结果发送到结果摘要模块,结果摘要模块在步骤420L中合并这些结果,并且将合并结果发送回到本地-网格控制器模块。在步骤422L中,本地-网格控制器模块向应用客户机提供结果的摘要(也称为结果摘要),所述应用客户机在步骤424L中结束过程。
另一方面,如果在步骤408中选择的是网格环境,那么下一个步骤410G包括与应用客户机就关于将应用分割成多少个单独任务或工作单位而进行通信。特别地,本地-网格控制器模块确定可用于执行任务的网格节点的数量,并且向应用客户机告知将应用分割成多少个单独任务。应用客户机将适当数量的单独任务或作业发送到网格环境中的本地-网格控制器模块,其中本地-网格控制器模块在步骤412G中从应用客户机接收这些单独任务。在步骤414G中,本地-网格控制器模块对将在网格环境中的一个或多个网格节点上执行的单独任务进行调度。在步骤416G中,本地-网格控制器模块将单独任务或作业发送到一个或多个网格节点用以执行。在由一个或多个网格节点执行了单独任务之后,结果收集器模块在步骤418G中收集来自单独网格模块的结果,并且将这些结果发送到本地-网格控制器模块。所述本地-网格控制器模块将收集到的结果发送到结果摘要模块,结果摘要模块在步骤420G中合并这些结果,并且将合并的结果发送回到本地-网格控制器模块。作为选择,在步骤418G中,本地-网格控制器模块接收这些结果,并且将这些结果发送到结果收集器模块。结果收集器模块收集这些结果,并且一旦已收集到所有的结果,那么结果收集器模块就会在步骤418G中将这些结果发送到本地-网格控制器模块。本地-网格控制器模块将收集到的结果发送到结果摘要模块,结果摘要模块在步骤420G中合并这些结果,并且将合并结果发送回到本地-网格控制器模块。在步骤422G中,本地-网格控制器模块向应用客户机提供结果的摘要(也称为结果摘要),所述应用客户机在步骤424G中结束过程。
在本发明的再一实施例中,提供了一种用于执行应用的计算机程序产品。该计算机程序产品包括计算机可读媒体。此外,该计算机程序产品包括用于在本地环境中执行应用的第一程序指令、用于在网格环境中执行应用的第二程序指令、以及提供用于选择本地环境或网格环境用以执行应用的参数切换器的第三程序指令。优选地,该计算机程序产品还包括用于收集与本地环境或网格环境中的应用执行相对应的结果的第四程序指令。在优选实施例中,所述第一、第二、第三和第四程序指令都存储在媒体上。如果参数切换器被选择或设置在本地环境中执行应用,那么所述第三程序指令还包括用于对与本地基础设施中的应用相关联的一个或多个任务进行调度的指令,并且如果参数切换器被选择在网格环境中执行应用,那么所述第三程序指令还包括用于对与网格基础设施中的应用相关联的一个或多个任务进行调度的指令。优选地,本地基础设施包括被配置成执行与应用相关联的一个或多个任务的本地节点,并且优选地,网格基础设施包括经由网络通信信道相连接的多个网格节点,所述多个网格节点中的每一个节点都被配置成执行与应用相关联的一个或多个任务。优选地,本地基础设施被配置成从应用客户机中接收与应用相关联的输入,并且优选地,网格基础设施被配置成从应用客户机中接收与应用相关联的输入。此外,优选地,所述第四程序指令还包括用于对来自本地节点或多个网格节点中的一个或多个节点的、与应用执行相关联的结果进行合并的指令。
优选地,该计算机程序产品采用可以从计算机可用或计算机可读媒体访问的形式,其提供了可以与或由计算机或是任何指令执行系统结合使用的程序代码或指令。对本说明书的目的而言,计算机可用或是计算机可读的媒体可以是可以包含、存储、传送、传播或传输与或由指令执行系统、装置或设备结合使用的代码或指令的任何装置。优选地,该媒体可以包括电子、磁、光、电磁、红外或半导体系统(或是装置或设备),或者可以包括传播媒体。更为优选地,计算机可读媒体可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘以及光盘。此外,光盘的示例包括紧致光盘——只读存储器(CD-ROM)、紧致光盘——读/写(CD-R/W)以及数字多功能/视频光盘(DVD)。本发明既可以完全采用硬件实施例的形式,也可以完全采用软件实施例的形式,还可以采用同时包含了硬件和软件单元的实施例的形式。在优选实施例中,本发明是以软件形式实现的,其包括但不局限于固件、常驻软件、微代码等等。
现在参考图5和6,显示了在本地环境或网格环境中执行应用的示例。转到图5,标号500例示通过使用本地-网格虚包550在本地环境510中执行的应用的示例。在图5显示的示例中,本地-网格控制器模块504中的参数切换器(在图5中并未显示)被设置在本地环境510中执行应用。举例来说,应用客户机530需要执行下述应用,该应用将数据库1(标号560)中包含的数据与数据库2(标号570)中包含的数据相比较。相应地,应用客户机530调用本地-网格控制器模块504或是与之进行通信,以便找出将该应用分解或分割成多少个任务、作业或线程。本地-网格控制器模块504追踪或管理本地节点508上可用的资源,这样该模块具有与本地节点相关联的信息,例如处理能力等等,并且该模块能够将关于其可以对多少个独立任务/作业/线程进行调度用以在本地节点508上执行传送回应用客户机530。这样一来,应用客户机530把将在本地节点508上执行的、用于比较两个数据库560和570的应用分割成与由本地-网格控制器模块504所传送的任务/作业信息相对应的适当数量的任务/作业/线程。如图5所示,应用程序530向本地-网格控制器模块504发送(如箭头570所示)与将要执行的应用相关联的适当数量的任务或作业或线程(如线程#1(标号542)、线程#2(标号544)以及线程#N(标号546)所指明)。不同线程#1至#N表明本地环境可以根据本地基础设施而在任何位置执行1到N个线程这一事实。优选地,在本地节点508的操作系统上实现了多线程能力,由此,在本地节点上可以本地地执行多个线程542、544和546。相应地,本地-网格控制器模块504调度本地节点508上的相应线程(如实线的双边箭头512、514和516所示)。这样,用于比较两个数据库560和570的应用的若干个线程或作业可在本地节点508上同时执行、串行执行、或者彼此依赖地执行。线程542、544和546中的每一个可以访问分别包含在两个数据库560和570中的数据(如箭头552和554所示),由此,在本地节点上作为多个线程而被执行的应用可以对两个数据库560和570进行比较,并且与所述应用完全是在本地节点上执行的情况相比,所述应用可以在短得多的时间里提供结果。在本地节点508上执行的线程542、544和546的结果被返回到(如双边箭头512、514和516所示)本地-网格控制器模块504或是结果收集器模块506。如果本地-网格控制器模块504接收到结果,那么它可以将结果发送到结果收集器模块506。此外,结果收集器模块506可以将结果发送到(如双边箭头518所示)结果摘要模块502,以便将结果合并成摘要,然后所述摘要被发送回到结果收集器模块506,结果收集器模块506接着将结果发送到本地-网格控制器模块504。本地-网格控制器模块504将应用执行结果发送到(如箭头570所示)应用客户机530。
现在转到图6,图6显示了在本地环境(标号600A)中执行的应用与部署在网格计算系统(标号600B)中的相同应用之间的并排比较。特别地,图6中的标号600A显示了在本地环境610A中对数据库660A包含的数据以及数据库670A包含的数据进行比较的应用的执行,以及在网格计算系统610B中对用于对数据库660B包含的数据以及数据库670B包含的数据进行比较的同一应用的部署。600A中显示的本地环境与图5中描述的本地环境相似,除了在图600A显示的示例中,任务被称为线程。因此,对图5显示的本地环境的描述也适用于600A中显示的本地环境,在这里不再结合600A来对此加以重复。这样,即使开发人员已访问诸如600B的网格计算系统,但是,如果应用客户机630A已经更好地了解了如何分割应用以便在网格计算系统610B中部署应用,那么在诸如600A的本地环境中使用本地-网格虚包650A的应用的执行有助于将应用部署在网格计算系统中。例如,应用客户机630很有可能调用作为网格计算系统一部分的网格控制器模块604B。网格控制器模块604B对系统中的一个或多个网格节点621B、614B以及616B进行管理,并且调度一个或多个网格节点上的一个或多个任务。这样,当在网格计算系统中部署应用的时候,在600A中显示的本地节点#1(如612A、614A和616A所指明)上执行的任务#1(642A)、任务#2(644A)到任务#N(646A)可以作为任务#1(642B)、任务#2(644B)到任务#N(646B)而被部署在600B中显示的相应网格节点上,即网格节点#1(612B)、网格节点#2(614B)以及网格节点#3(616B)上。这种过程进一步由从600A中的相应节点和任务到600B中的相应节点和任务的虚线箭头显示的,反之亦然,其中相应的本地节点612A、614A和616A对应于相应的网格节点612B、614B和616B,并且在本地环境600A中执行的相应任务642A、644A和646A对应于网格计算系统600B中部署的相应任务642B、644B以及646B。同样地,如600B中所示,600A中的本地-网格控制器模块604A变换成了由网格计算系统600B中的网格控制器模块604B执行的相似功能。网格计算系统600B也可以具有结果收集器模块606B以及结果摘要模块602B,这些模块与上文中结合图5所描述的执行相应功能的结果收集器模块606A以及结果摘要模块602A是对应的。然而,在网格计算系统的替换性实施例(在600B中并未显示)中,网格控制器模块可以执行结果收集器模块以及结果摘要模块的功能。因此,如图6所示,首先通过使用本地-网格虚包在本地环境中执行应用可以排除直接在网格计算系统中部署应用的某种风险。
相应地,本地-网格虚包提供了一种网格框架的更简单的版本或模拟,以便增加单个工作站、本地节点或服务器上的资源使用,并且允许开发人员使用这种框架来构建使用本地开发环境的应用,所述本地开发环境适用于任何网格框架或系统。此外,使用本地-网格虚包开发的应用提供了增加本地节点或服务器上的资源使用由此产生好得多的吞吐量的机会。同样地,本地节点的数量越多,吞吐量也会越好。此外,如果应用的开发人员可以通过将任务分割成多个并行的任务/作业/线程或工作单位并且在本地对实现进行测试从而他们可以使用或是实现本地-网格虚包来构建应用,那么,本地-网格虚包简化在为网格系统构建或开发应用的时候处理网格框架的复杂系统体系结构的问题。因此,由于本地-网格虚包已经将作业分割成了子作业/任务/线程,从而应用开发人员很容易了解部署结构并且能在网格系统中部署应用,因此,本地-网格虚包在不需要实际网格框架的情况下在本地开发环境中为应用开发人员提供网格框架模拟。
以上关于本发明具体实施例的描述是出于例示和描述目的而给出的。这些描述既不是穷尽性的,也没有将本发明限制在所公开的明确形式以内,并且显而易见,依照上述讲授,众多的修改和变更都是可行的。在这里选择和描述这些实施例是为了对本发明的原理及其实际应用进行最佳的说明,以使本领域技术人员能够以最佳方式使用具有适用于所预期的特定用途的各种修改的本发明及其各种实施例。本发明的范围由权利要求及其等价物所限定。
权利要求
1.一种用于执行应用的系统,所述系统包括被配置成在本地环境中执行应用的本地基础设施;被配置成在网格环境中执行应用的网格基础设施;以及本地-网格虚包,其具有用于选择所述本地环境或所述网格环境以及在选定环境中执行所述应用的参数切换器。
2.根据权利要求1的系统,其中所述本地-网格虚包在所述本地基础设施和所述网格基础设施的每一个内实现。
3.根据权利要求2的系统,其中所述本地基础设施包括本地节点,该节点被配置成执行与所述应用相关联的一个或多个任务。
4.根据权利要求2的系统,其中所述网格基础设施包括多个经由网络通信信道相连接的网格节点,其中所述多个网格节点中的每一个节点都被配置成执行与所述应用相关联的一个或多个任务。
5.根据权利要求3的系统,其中在所述本地基础设施内实现的所述本地-网格虚包还包括本地-网格控制器模块,该模块被配置成对将在所述本地节点上执行的所述一个或多个任务进行调度,其中所述本地-网格控制器模块包括所述参数切换器;以及结果收集器模块,该模块被配置成收集与在所述本地节点上执行的所述一个或多个任务相关联的结果。
6.根据权利要求4的系统,其中在所述网格基础设施内实现的所述本地-网格虚包还包括本地-网格控制器模块,该模块被配置成对在所述多个网格节点中的一个或多个节点上的所述一个或多个任务进行调度;以及结果收集器模块,该模块被配置成收集与来自所述本地节点的所述一个或多个任务相关联的结果。
7.根据权利要求6的系统,其中所述本地环境包括具有在其上实现的所述本地-网格虚包的所述本地基础设施,由此,所述本地环境被配置成在所述本地环境中测试和部署所述应用;以及其中所述网格环境包括具有在其上实现的所述本地-网格虚包的所述网格基础设施,由此所述网格环境被配置成在所述网格环境中部署所述应用。
8.根据权利要求6的系统,其中所述本地基础设施被配置成从应用客户机接收与所述应用的所述执行相关联的输入;以及其中所述网格基础设施被配置成从所述应用客户机接收与所述应用的所述执行相关联的输入。
9.根据权利要求8的系统,其中所述本地环境包括结果摘要模块,该模块被配置成对与接收自所述本地节点的所述一个或多个任务相关联的结果进行合并;并且其中所述网格环境包括结果摘要模块,该模块被配置成对与接收自所述多个网格节点中的所述一个或多个节点的所述一个或多个任务相关联的结果进行合并。
10.一种执行应用的方法,所述方法包括以下步骤提供具有参数切换器的本地-网格虚包,所述参数切换器用于选择本地环境或网格环境来执行应用;选择所述本地环境或所述网格环境来执行所述应用;接收与所要执行的所述应用相关联的一个或多个任务;以及在选定的所述本地环境或所述网格环境中执行所述一个或多个任务。
11.根据权利要求10的方法,还包括以下步骤将与在选定的所述本地环境或所述网格环境中执行的所述一个或多个任务相对应的结果转发到应用客户机。
12.根据权利要求11的方法,其中所述接收步骤还包括以下步骤与所述应用客户机就关于将所述应用分割成多少个任务用以在选定的所述本地环境或所述网格环境中执行而进行通信;以及对从所述应用客户机接收的所述一个或多个任务进行调度,用以在选定的所述本地环境或所述网格环境中执行。
13.根据权利要求11的方法,其中所述转发步骤还包括以下步骤收集与在选定的所述本地环境或所述网格环境中执行的所述一个或多个任务相对应的所述结果;以及将收集到的所述结果的摘要提供给所述应用客户机。
14.根据权利要求12的方法,其中如果在所述参数切换器中选择了所述本地环境,则对所述一个或多个任务进行调度,以在所述本地基础设施的本地节点上执行;以及其中如果在所述参数切换器中选择了所述网格环境,则对所述一个或多个任务进行调度,以在所述网格基础设施的多个网格节点中的一个或多个节点上执行。
15.一种用于执行应用的方法,包括用于在本地环境中执行应用的第一步骤;用于在网格环境中执行所述应用的第二步骤;以及用于提供参数切换器的第三步骤,所述参数切换器用于选择所述本地环境或所述网格环境用以执行所述应用。
16.根据权利要求15的方法,还包括用于收集与在所述本地环境或所述网格环境中的所述应用的执行相对应的结果的第四步骤。
17.根据权利要求15的方法,其中如果所述参数切换器被选择在所述本地环境中执行所述应用,那么所述第三步骤还包括用于对与在本地基础设施中的所述应用相关联的一个或多个任务进行调度的步骤;以及其中如果所述参数切换器被选择在所述网格环境中执行所述应用,那么所述第三步骤还包括用于对与在网格环境中的所述应用相关联的一个或多个任务进行调度的步骤。
18.根据权利要求17的方法,其中所述本地基础设施包括被配置成执行与所述应用相关联的所述一个或多个任务的本地节点;并且其中所述网格基础设施包括经由网络通信信道相连接的多个网格节点,所述多个网格节点中的每一个节点都被配置成执行与所述应用相关联的所述一个或多个任务。
19.根据权利要求18的方法,其中所述本地基础设施被配置成从应用客户机接收与所述应用相关联的输入;并且其中所述网格基础设施被配置成从所述应用客户机接收与所述应用相关联的输入。
20.根据权利要求19的方法,其中所述第四步骤包括用于对来自所述本地节点或是所述多个网格节点中的一个或多个节点的、与所述应用的执行相关联的结果进行合并的步骤。
全文摘要
提供了一种用于执行应用的系统、方法和程序产品。该系统包括被配置成在本地环境中执行应用的本地基础设施、被配置成在网格环境中执行应用的网格基础设施、以及本地-网格虚包,其具有用于选择本地环境或网格环境以及在选定环境中执行应用的参数切换器。优选地,所述本地-网格虚包包括具有参数切换器的本地-网格控制器模块,并且在本地基础设施以及网格基础设施中的每一个内实现。优选地,本地基础设施包括被配置成执行与应用相关联的一个或多个任务的本地节点,并且优选地,网格基础设施包括经由网络通信信道相连接的多个网格节点,这些节点被配置成执行与所述应用相关联的一个或多个任务。
文档编号H04L12/28GK1953412SQ20061015142
公开日2007年4月25日 申请日期2006年9月7日 优先权日2005年10月18日
发明者J·W·彭尼, M·R·伊纳姆普迪 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1