网络上的动态分布式计算的方法和设备技术

技术编号:2885042 阅读:176 留言:0更新日期:2012-04-11 18:40
在一客户-服务器环境中,想要具有许多能处理广泛的应用程序的服务器,这些应用程序诸如计算密集应用程序或诸如描绘等图形操作。在异构客户-服务器环境中,常规的系统把可执行程序静态地存储在服务器上以便今后执行。这要求应用程序从具有不同目标模块的客户机装入服务器,需要大量存储量和许多编程员的时间。本发明专利技术通过在一异构客户-服务器网络中产生一同构执行环境解块了这些问题。相应地,本系统把代码动态地下载到计算机服务器上,在计算机服务器上执行该代码并把结果返还调用客户方法。此技术不需要下载多个代码拷贝也不需要进行编译,因为可在所有不同的系统上执行服务器代码。依据本技术设计的系统也是有效的。一般,在客户上就地编译服务器代码,并把该服务器代码作为字节码下载到服务器然后执行。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及分布式计算系统,尤其涉及在网络上进行动态分布式计算的方法和设备。
技术介绍
在分布式计算网络中,用户可利用耦合到网络的大量计算机的处理能力。可通过分割网络上不同计算机中的处理,可快速地并行处理具有许多不同的独立计算的任务。此外,通过定位网络上最适用于处理数据的计算机,可更快地计算专门任务。例如,在客户系统上完成需大量浮点计算的任务,可在耦合到网络的服务器系统上更快地执行,后者具有适用于这些特定计算的专用浮点硬件。不幸的是,不容易在典型的异构计算环境中实现用于分布式计算的常规技术。通常,网络上的每个计算机是异构的,它包含不同的处理器和操作系统组合,而且需要执行不同的目标模块。在客户一侧,不同的目标模块需要用户对每个不同的平台编译不同版本的任务,并把此模块装载到相应平台上,从而增加对每个客户的存储要求,还需要多次进出和编译相同的任务。此外,常规的技术需要在执行代码前很早就要在计算机上分配代码。在常规系统中,进行分布式计算所需的大量准备妨碍了许多计算采用该技术。基于脚本编排(scripting)语言的分布式计算系统是对某些常规分布式计算系统的改进。不幸的是,基于脚本编排的系统消除了对重新编译代码的需要,但它仍旧不是非常有效。基于脚本编排的分布式系统可在多个平台上执行相同的指令,因为该语言是由位于每个系统上的解释器来解释的。结果,大多数脚本编排语言较慢,因为它们必须把高级脚本编排指令实时地翻译成低级当地(native)指令。此外,脚本编排语言难于优化,且可能会浪费存储空间,因为通常不对它们进行压缩。基于在常规系统中所发现的以上限制,想要改进分布式计算系统。
技术实现思路
在有关客户计算机的本专利技术的一个方面,提供了用于动态分布式计算的方法和设备。最初,客户从网络中选择一服务器来处理该任务。此选择可基于服务器的可用性或服务器的专门处理能力。接着,客户承接程序(stub)把参数和数据引入(marshal)到一任务请求中。客户把此任务请求发送到服务器,服务器启用通用计算方法。服务器自动地确定在服务器上是否可获得有关任务的类型并在必要时从网络下载这些任务类型。使用任务类型中的信息来提取存储在特定任务请求中的参数和数据。使用通用计算方法在选中的服务器上执行该任务请求。在服务器处理了该任务请求后,客户接收从选中服务器返回的结果或经计算的任务。在有关服务器计算机的本专利技术的另一个方面,提供了动态分布式计算的方法和设备。最初,服务器将自动地确定服务器上可获得哪些任务类型,并将在必要时从网络下载任务类型。这些任务类型有助于服务器从一任务请求中引出(unmarshal)参数和数据并产生一本地任务。接着,服务器启用能处理所有类型的计算任务或子类型的计算任务的通用计算方法。使用通用计算方法在选中的服务器上执行此任务请求。如果随后的任务要使用结果,则服务器把来自经计算的任务的结果存入本地高速缓冲存储器中。一旦完成该任务,服务器就把结果或经计算的任务返还客户。附图概述包含在本说明书中并构成其一部分的附图示出本专利技术的一个实施例,这些附图与描述一起用来说明本专利技术的优点和原理。在图中附图说明图1示出适用于符合本专利技术的方法和系统的网络;图2是适用于符合本专利技术的方法和系统的计算机系统的方框图;图3是适用于使用符合本专利技术的方法和系统的客户-服务器网络环境的方框图;图4是客户依据符合本专利技术的方法和系统所进行的步骤的流程图;以及图5是服务器依据符合本专利技术的方法和系统所进行的步骤的流程图。介绍现在将详细地参考附图所示的本专利技术实现。可能时,在附图和以下描述中使用相同的标号来指示相同或相似的部分。符合本专利技术的系统解决了已有技术的缺点并提供了在服务器计算机的网络上使用的动态分布式计算系统。这种动态分布式计算系统尤其有用于异构计算机网络,该网络具有包含不同处理器、不同操作系统及其组合的计算机。这种系统使得客户应用程序可选择一处于实时运行的服务器计算机来执行特定任务。在符合本专利技术的方法和系统中,该任务是一具有特定类型或类定义的对象。一般,服务器可能推迟知道实际类定义,直到在服务器上接收到有关此对象任务的参数和数据。结果,如果在服务器上不能获得此特定类型,则服务器下载此特定类型。例如,如果未知类的对象实例传递到该服务器,该服务器下载该未知类。然后,服务器使用该类来处理对象。这种推迟把类定义分配给对象增强了在服务器计算机的网络上处理复杂任务的灵活性。此外,本设计通过利用现有的远程过程调用子系统(诸如加里福尼亚州Mountain View的Sun Microsystems Inc.所开发的远程方法启用(RMI)子系统)中的特征以最小的额外开销来促进灵活性。对于有关远程方法启用(RMI)的进一步信息,见由Ann M.Wolrath、James Waldo和Roger Riggs于1996年4月23日提交的名为“有助于装载“承接程序”信息以使得在一地址空间内操作的程序可启用另一地址空间内的远程方法或过程的处理的系统和方法”的08/636,706号未决美国专利申请,该申请已转让给本专利技术的受让人并在这里引用作为参考。此外,在FTP//ftp.javasoft.com/docs/jdk1.2/rmi-spec-jdk 1.2ps的JavaSoft WebPage(网页)上更详细地描述了RMI,也在这里引用作为参考。与常规的系统不同的是,符合本专利技术的动态分布式系统中的任务可被写一次,且该任务可在网络中的任何服务器计算机上执行。此能力在异构网络中尤其有优势,因为不必在执行该任务前使该任务进出每一个平台。而是,把依据本专利技术设计的通用计算任务装载在每个系统上。此通用计算任务能执行客户在运行时所指定的广泛类型的任务。例如,可开发一种所谓的“Compute(计算)”类型以及一种以面向对象的语言(诸如Java)来接受此“计算”类型的通用计算任务。在许多文章中描述了Java,包括1996年由James Gosling、Bill Joy和Guy Steele、Addison-Wesley写的名为“Java语言说明书”的文章,这里通过引用作为参考。客户产生具有“计算”类型的子类型的任务,并把相应于此任务的对象传递给服务器上的通用计算任务。远程过程调用机构把此对象下载到服务器和执行此任务的通用计算任务。在Java中,客户所发送的任务实际上是包括一系列字节码的对象。只要服务器实现了Java Virtual Machine(虚拟机)(JVM),就可立即执行这些字节码。JVM可直接以硬件来实现,或者它可有效地以在当地操作系统顶部运行的软件层来模拟。把Java语言设计成在具有Java虚拟机(JVM)说明书所指定的特性的计算系统上运行。在Addison Wesley的名为Java虚拟机说明书的文章中更详细地描述了JVM说明书,这里引用作为参考。此统一的JVM环境使得即使计算机系统为异构且具有不同处理器、不同操作系统及其组合时也可同构地执行任务。依据本专利技术的设计,把强大的远程过程调用子系统与服务器上的通用计算任务相组合产生了强大的动态分布式计算环境。使用字节码的计算机服务器可处理任务的速度比使用基于脚本编排语言的常规文本或基于语言的其它字符的系统快得多。每个字节码是紧凑的(8位)且具有数字格式本文档来自技高网
...

【技术保护点】
一种在一计算机系统上执行的方法,该计算机系统具有主存储器件、次级存储器件、显示器件和输入/输出机构,该方法使得客户给服务器计算机集合中的一个服务器计算机动态地分配以与每一个服务器计算机兼容的编程语言所开发的任务,其特征在于所述方法包括以下步骤: 根据服务器集合中的整个处理负荷分布和每个服务器计算机的专门计算能力,从多个异构服务器中选择一个服务器来处理一任务; 把参数和数据引入到一任务请求中,这一步骤进一步包括以下子步骤, 确定在选中的服务器上是否存在与被请求的任务有关的代码和数据类型,以及 当选中的服务器上不存在该代码和数据类型时,把代码和有关的数据类型下载到选中的服务器上; 启用有关选中服务器的通用计算方法,这一步骤执行任务且进一步包括以下子步骤, 把任务作为参数提供给通用计算方法,以及 向服务器指示应把来自于经计算的任务的结果存入选中服务器上的结果高速缓冲存储器中以便使随后的任务使用;以及 接收从选中服务器返还的经计算的任务以在客户上进行进一步处理。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:KCRC阿诺德JH瓦尔多AM沃尔蕾斯PC琼斯
申请(专利权)人:太阳微系统公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1