具有协作对象的修改后的计算机架构制造技术

技术编号:2842479 阅读:237 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种修改的计算机架构,其使得应用程序(50)能够在多个计算机(M1、…Mn)上同时运行。每个计算机处的共享存储器被以修改和/或覆写来更新,以便使所有存储器读请求在本地得到满足。在初始程序加载(75)期间,或相似过程期间,识别导致存储器被重写或操纵的指令(92)。此外,公开了JAVA语言类和对象的初始化(162,163),这样所有计算机的所有存储器位置以相同的方式被初始化。还公开了JAVA语言类和对象的终结化(162,163),这样仅当不再需要所有机器上的最后的类或对象时,才会发生终结化。在初始程序加载期间(75),或相似过程期间,识别导致应用程序(50)获取(或释放)对特定资产(50A、50X-50Y)(同步)的锁定的指令。插入附加的指令(162、163),以导致修改的同步例程,所有计算机利用所述修改的同步例程来更新。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算机,具体而言,涉及一种修改的计算机架构,其使应用程序能够在经由通信网络互连的多个计算机上同时运行。
技术介绍
自从计算机及计算出现以来,所编写的计算机软件是在单个机器上运行的。如图1所示,所示的单个现有技术机器1包括经由总线4连接至存储器3的中央处理单元CPU2。连接至总线4的还有单个机器1的其他功能单元,如屏幕5、键盘6和鼠标7。对该机器1性能的基本限制在于数据由CPU2来处理,而这些处理结果必须通过总线4来传送。总线4经受很多问题,包括由想要获取对总线的访问的单元所形成的所谓总线“队列”、竞争问题等。在某种程度上,这些问题可通过各种策略来缓解,所述策略包括高速缓冲存储器,但是,这样的策略没有例外地会增加机器1的管理开销。自然,多年来,为了改善机器性能,人们进行了各种尝试。一种方法是使用对称的多个处理器。该现有技术方法已用于所谓的“超级”计算机中,如图2中示意性示出的。这里,多个CPU12连接至全局存储器13。而在CPU12和存储器13间的通信中也出现了瓶颈。该过程被称作“单系统映像”。仅有一个应用以及用于该应用的分布在全局存储器上的存储器的一个完整拷贝。该单个应用可完全透明地从任何存储器位置读取或写入任何存储器位置(即共享)。当存在经由网络互连的多个这样的机器时,这是通过利用针对单个机器编写的单个应用并将所需存储器资源分割成多个部分来实现的。然后,这些部分分布在多个计算机上,以形成可由所有CPU12访问的全局存储器13。该过程依赖于对运行的单个应用程序遮蔽或隐藏所述的存储器分割。当一个机器上的一个CPU必须(经由网络)访问物理上位于不同机器中的存储器位置时,性能会劣化。尽管超级计算机已在获取高计算速率方面在技术上取得了成功,但是其在商业上是不成功的,因为其固有的复杂性使得其制造和管理极其昂贵。特别是,单系统映像的概念从未能够应用于“日用”(大量生产的)计算机和网络。特别是,单系统映像的概念仅仅实际应用于经由很快速的(因此很昂贵的)网络互连的很快速的(同样昂贵的)计算机上。通过使用多个机器来增加计算机能力的另一可能性来自现有技术的分布式计算概念,如图3中示意性所示。在该已知设置中,单个应用程序(Ap)由其作者(或熟悉该应用程序的另一程序员)分割成多个离散任务,以便在例如3个机器上运行,在图3中,n为整数3。这里的意图是,机器M1...M3的每个运行整个应用的不同的三分之一,且意图是使施加于各机器的负载大体相等。所述机器经由网络14来通信,所述网络14可以各种形式来提供,如通信链路、互联网、内联网、局域网等。这种网络14的运行速度一般比各机器M1、M2等的每个的总线4的运行速度慢一个量级。分布式计算具有多个缺点。第一,分割应用是一项困难的工作,而且必须人工完成。第二,网络14上的通信数据、部分结果、结果等是一种管理开销。第三,分割的需要使利用更多机器来扩展变得极其困难,因为已分割成例如3部分的应用不能在4个机器上很好地运行。第四,在其中一个机器不能工作时,会实质上降低整个系统的总体性能。另一现有技术设置已知为通过“簇(cluster)”的网络计算,如图4中示意性所示。在该方法中,整个应用被载入每个机器M1、M2、...、Mn上。每个机器都与公共数据库通信,但不与其他机器直接通信。尽管每个机器运行同一应用,但是每个机器进行不同的“工作”并仅使用其自己的存储器。这有点类似于多个窗口每个均向公众出售火车票。该方法确实可行、可升级,而主要具有的缺点是难以管理网络。在计算机语言如JAVA和MICROSOFT.NET中,有程序员应对的两种主要类型的结构。在JAVA语言中,它们称作对象和类。每次创建对象时,均有称作“<init>”的初始化例程运行。同样,每次加载类时,均有称作“<clinit>”的初始化例程运行。其他语言使用不同的术语,但利用相似的概念。然而,一旦不再需要对象或类时,却没有相当的“清理”或删除例程来删除对象或类。相反地,该“清理”以后台的方式不引人注意地发生。另外,在任何计算机环境中都需要获取和释放锁定(lock),以便能够使用这样的资产、资源或结构,而避免应用程序的不同部分试图同时使用同一资源。在JAVA环境中,这称作同步。在JAVA中,这是通过“monitorenter”和“monitor exit”指令或例程来实现的。其他语言使用不同的术语,但利用相似的概念。
技术实现思路
本专利技术公开了一种计算环境,其中一个应用程序同时在多个计算机上运行。在这种环境中,需要保证上述初始化、清理和同步过程在所有机器上以一致而协作的方式来运行。该协作目的即是本专利技术的起源。根据本专利技术的第一方面,公开了一种多计算机系统,该多计算机系统具有在经由通信网络互连的多个计算机上同时运行的至少一个应用程序,其中创建了同样多个基本相同的对象,每个对象在对应的计算机中,且每个具有基本相同的名称,其中所述相同命名的对象每个的初始内容是基本上相同的,其中,当所述多个计算机的每个不再需要引用其对应的对象时,所有所述相同的对象被全体删除,并且其中,所述系统包括可应用于所有所述计算机的锁定装置,其中想要利用其中的被命名的对象的任一计算机从所述锁定装置获取授权锁定,所述授权锁定允许所述利用,并防止所有其他计算机利用它们对应的被命名的对象,直到所述授权锁定被放弃。根据本专利技术的第二方面,公开了一种在多个计算机上同时运行至少一个应用程序的方法,所述计算机借助于通信网络来互连,所述方法包括下列步骤i)创建同样多个基本相同的对象,每个对象在对应的计算机中,且每个具有基本相同的名称,ii)创建所述的相同命名的对象的每个的初始内容,所述初始内容基本上相同,iii)当所有所述多个计算机不再需要引用其对应的对象时,全体删除所有所述的相同对象,以及iv)要求其中想要利用命名对象的所述计算机中的任何一个去获取授权锁定,该授权锁定允许所述利用,并防止所有其他计算机利用它们的对应的被命名的对象,直到所述授权锁定被放弃。根据本专利技术的第三方面,公开了一种计算机程序产品,该计算机程序产品包括一组程序指令,该程序指令存储于存储介质中,并可操作以允许多个计算机执行上述方法。附图说明下面将参考附图来说明本专利技术的实施例,在附图中图1示意性示出了传统计算机的内部架构,图2示意性示出了已知的对称多处理器的内部架构,图3示意性示出了现有技术的分布式计算,图4示意性示出了现有技术的利用簇的网络计算,图5是根据本专利技术第一实施例的多个机器运行同一应用程序的示意性框图,图6示意性示出了设置用于运行JAVA代码并由此构成JAVA虚拟机的现有技术计算机,图7与图6相似,但示出了根据本专利技术优选实施例的对代码的初始加载, 图8与图5相似,但示出了各以图7所示的方式来运行JAVA代码的多个计算机的互连,图9是在将同一应用加载到网络中每个机器上的期间所遵循的过程的流程图,图10的流程图示出了与图9的过程相似的修改的过程,图11示意性示出了利用存储器更新的第一实施例在图8的机器上执行多个线程处理。图12的示意图与图11相似,但示出了另一实施例,图13示出了用于图8的计算机的多线程存储器更新,图14示意性示出了设置用于以JAV本文档来自技高网
...

【技术保护点】
一种多计算机系统,具有同时运行在多个计算机上的至少一个应用程序,其中所述多个计算机通过通信网络来互连,其中创建同样多个基本上相同的对象,每个所述对象在对应的计算机中且各具有基本上相同的名称,其中每个所述的相同命名的对象的初始内容是基本上相同的,其中当所述多个计算机的每个不再需要引用其对应的对象时,所有所述相同的对象被全体删除,并且其中所述系统包括可应用于所有所述计算机的锁定装置,其中想要利用其中所命名的对象的任何计算机从所述锁定装置获取授权锁定,所述锁定装置允许所述利用,并防止所有其他计算机利用其对应的所命名的对象,直到所述授权锁定被放弃。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:约翰马修霍尔特
申请(专利权)人:瓦拉泰克有限公司
类型:发明
国别省市:AU[澳大利亚]

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

1