CN103562868A - 分布式计算框架 - Google Patents

分布式计算框架 Download PDF

Info

Publication number
CN103562868A
CN103562868A CN201280026747.3A CN201280026747A CN103562868A CN 103562868 A CN103562868 A CN 103562868A CN 201280026747 A CN201280026747 A CN 201280026747A CN 103562868 A CN103562868 A CN 103562868A
Authority
CN
China
Prior art keywords
computer system
task
action
performance
computer
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
CN201280026747.3A
Other languages
English (en)
Other versions
CN103562868B (zh
Inventor
N·G·甘地
K·范海宁
J·刘
K·A·拉森
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 CN103562868A publication Critical patent/CN103562868A/zh
Application granted granted Critical
Publication of CN103562868B publication Critical patent/CN103562868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

实施例所针对的是:将处理任务从性能降低的计算机系统分布到至少一个其他计算机系统;在一个计算机系统处处理从性能降低的计算机系统接收的分布式任务;以及建立模拟环境以用于测试分布式计算框架功能。在实施例中,性能降低的计算机系统监视计算任务以为每个任务确定处理资源使用水平。计算任务是在性能降低的计算机系统上运行的软件应用的一部分。性能降低的计算机系统确定:所监视的任务之一正在使用超过所指定阈值水平的处理资源。性能降低的计算机系统将任务发送给另一计算机系统,该另一计算机系统接收、处理并返回该任务的结果到性能降低的计算机系统。性能降低的计算机系统将从该另一计算机系统接收的经处理结果呈现在运行中的软件应用内。

Description

分布式计算框架
背景
计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等等在内的各种各样的功能。软件应用通常被设计成执行特定的任务,诸如用于草拟文档的文字处理器应用或者用于发送、接收和组织电子邮件的电子邮件程序。
这些软件应用越来越多地运行在更小的性能降低的计算设备上,比如移动电话、上网本和平板计算机。这些更小、更加移动的设备常常由于更小的中央处理单元(CPU)、更少的存储器和电池寿命问题而在其处理能力方面受限。结果,CPU密集型软件应用通常不在这些设备上实现,并且被保留用于更大、通常固定的设备。因此,针对性能降低的设备的应用的开发者限制了他们包括在其应用中的特性。
概述
在此所述的实施例所针对的是:将处理任务从性能降低(移动)的计算机系统分布到主计算机系统;处理从性能降低的计算机系统接收的分布式任务;以及建立模拟环境以用于测试分布式计算框架功能。在一个实施例中,性能降低的计算机系统监视计算任务以为每个任务确定处理资源使用水平。计算任务是在性能降低的计算机系统上运行的软件应用的一部分。性能降低的计算机系统确定:所监视的任务之一正在使用超过所指定阈值水平的处理资源。性能降低的计算机系统将任务发送给另一计算机系统,该另一计算机系统接收、处理并返回该任务的结果到性能降低的计算机系统。性能降低的计算机系统将从该另一计算机系统接收的经处理结果呈现在运行中的软件应用内。
在另一实施例中,主计算机系统从性能降低的计算机系统接收要处理的各种软件应用任务。主计算机系统建立虚拟执行环境以用于处理所接收的任务。虚拟执行环境在同该计算机系统的其余部分隔离的隔离边界中操作。主计算机系统在所建立的虚拟执行环境中处理所接收的任务,并且将经处理任务的结果发送给性能降低的计算机系统。
在又一实施例中,计算机系统建立允许测试分布式应用的模拟环境。模拟环境允许开发者在部署应用以前在其自己的计算机系统上测试其应用。计算机系统发起主计算系统和性能降低的计算机系统的模拟,并且在模拟环境中执行下列各项:监视性能降低的计算机系统上的计算任务以为每个任务确定处理资源使用水平;确定所监视的任务至少之一正在使用超过所指定阈值水平的处理资源;将所确定的任务发送给不同的计算机系统,该计算机系统在虚拟执行环境中接收并处理该任务,并且将所述任务的结果返回给性能降低的计算机系统;以及将经处理的结果呈现在正在运行的软件应用内。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的选择的概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
将在以下的描述中阐述另外的特征和优点,并且部分特征和优点可从该描述中显而易见,或者可从本文教导的实践中获知。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图简述
为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,附图中:
图1示出了本发明的实施例可在里面操作的计算机体系结构,所述实施例包括将任务从性能降低的计算机系统分布到至少一个其他计算机系统。
图2示出了用于将任务从性能降低的计算机系统分布到至少一个其他计算机系统的示例性方法的流程图。
图3示出了用于在一个计算机系统处处理从性能降低的计算机系统接收到的分布式任务的示例性方法的流程图。
图4示出了用于建立用于测试分布式计算框架功能的模拟环境的示例性方法的流程图。
图5示出了建立用于测试分布式计算框架功能的模拟环境的计算机体系结构。
详细描述
在此所述的实施例所针对的是:将处理任务从性能降低(移动)的计算机系统分布到主计算机系统;处理从性能降低的计算机系统接收的分布式任务;以及建立模拟环境以用于测试分布式计算框架功能。在一个实施例中,性能降低的计算机系统监视计算任务以为每个任务确定处理资源使用水平。计算任务是在性能降低的计算机系统上运行的软件应用的一部分。性能降低的计算机系统确定:所监视的任务之一正在使用超过所指定阈值水平的处理资源。性能降低的计算机系统将任务发送给另一计算机,该另一计算机接收、处理并返回该任务的结果到性能降低的计算机系统。性能降低的计算机系统将从该另一计算机系统接收的经处理结果呈现在运行中的软件应用内。
在另一实施例中,主计算机系统从性能降低的计算机系统接收要处理的各种软件应用任务。主计算机系统建立虚拟执行环境以用于处理所接收的任务。虚拟执行环境在同该计算机系统的其余部分隔离的隔离边界中操作。主计算机系统在所建立的虚拟执行环境中处理所接收的任务,并且将经处理任务的结果发送给性能降低的计算机系统。
在又一实施例中,计算机系统建立允许测试分布式应用的模拟环境。计算机系统发起主计算系统和性能降低的计算机系统的模拟,并且在模拟环境中执行下列各项:监视性能降低的计算机系统上的计算任务以为每个任务确定处理资源使用水平;确定所监视的任务至少之一正在使用超过所指定阈值水平的处理资源;将所确定的任务发送给一不同的计算机系统,该计算机系统在虚拟执行环境中接收并处理该任务,并且将所述任务的结果返回给性能降低的计算机系统;以及将经处理的结果呈现在正在运行的软件应用内。
以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非是特别声明的或者是因为一个动作依赖于在执行该动作之前完成另一动作而需要的。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如举例而言一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。以数据形式存储有计算机可执行指令的计算机可读介质是计算机存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器(PCM),或其它类型的存储器的固态驱动器(SSD),或者其他光盘存储、磁盘存储或其他磁存储设备,或可用于以计算机可执行指令、数据或数据结构形式存储所期望的程序代码装置且可被通用或专用计算机访问的任何其他介质。
“网络”被定义成允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线、或者硬连线或无线的组合)被传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括如下的网络:所述网络可以用于运送计算机可执行指令形式或数据结构形式的数据或所期望的程序代码装置,并且可以被通用或专用计算机访问。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓冲在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中,然后最终被传输给计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行(或计算机可解释)的指令包括例如致使通用计算机、专用计算机、或专用处理设备执行某个功能或某组功能的指令。计算机可执行指令例如可以是二进制代码、诸如汇编语言之类的中间格式指令或者甚至是源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题内容,但可以理解,所附权利要求书中定义的主题内容不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明还可在分布式系统环境中实践,在该环境中本地和远程计算机系统通过网络(经由硬连线数据链路、无线数据链路、或者经由硬连线和无线数据链路的组合)链接起来,每个计算机系统都执行任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图1示出了可在其中采用本发明的原理的计算机架构100。计算机体系结构100包括两种不同的计算机系统。性能降低的计算机系统110可以是任何类型的上网本、平板计算机、智能电话或其他移动或电池运行的计算机系统,所述计算机系统出于种种原因比典型台式或膝上型计算机系统具有更少的处理能力。这样的性能降低的设备具有受诸如大小、电池寿命、成本或其他考虑因素之类的各种约束限制的处理资源。本领域技术人员将认识到性能降低的计算机系统与正常台式、膝上型或企业计算机系统之间的区别。主计算机系统125是正常或高性能计算机系统(或计算机系统的群集)。主计算机系统125可以是家庭台式或膝上型计算机系统、公司工作站或甚至后端数据服务器。基本上任何具有可用处理资源的计算系统都可以用于主计算机系统125。
图1中所示的两种计算机系统都可包括用于执行特定任务的各种模块。例如,任务监视模块115可以用于监视正在被执行或被调度为要作为软件应用117的一部分被执行的各个任务118。任务转移模块120可以将这些任务从性能降低的计算机系统转移到主计算机系统。所述任务可以在资源使用水平116过高时被转移。例如,如果处理资源阈值水平已经被设置(例如119)并且如果该阈值水平正在被超过,则一个或多个任务可以被转移(例如经转移的任务121)到计算机系统125的任务接收模块130。环境建立模块135可以建立虚拟执行环境145(VEE),所述虚拟执行环境145具有其自己的模块以用于执行功能。
VEE可以利用主计算机系统125上的现有计算资源。VEE提供隔离的环境(例如隔离边界141)以用于处理所接收的任务。此外,VEE包括节流模块160,所述节流模块160允许计算机系统节流其容量并且仅仅在空闲时对分布式工作负载作出贡献。VEE可以在基本上任何计算机系统上建立,并且可以处理来自基本上任何类型的软件应用的任务。在一些情况下,VEE可以是虚拟机。
虚拟执行环境是轻量环境,其提供逻辑上下文并利用主操作系统(OS)创建分开的安全域。从性能降低的计算机系统接收的任务可以在VEE内执行。VEE可以提供同主OS的分隔和完全隔离。因此,在闭合VEE以后,基本上没有痕迹被留在主计算机系统上。与任务相对应的二进制码和父进程、子进程或孤立进程是在VEE的隔离边界141内执行的,因此当主操作系统的本机操作开始时或者当主计算机系统被从分区移除时,易于清理和仅仅停止或移除VEE。
VEE可以与外部web资源进程数据通信并且将执行的结果156提供给设备110。在许多情况下,主计算机系统比移动设备具有更高网络带宽。在这样的情况下,软件应用的网络通信量可以被推送给VEE。例如,如果用户需要在其移动设备上阅读大文档而不是在移动设备上下载整个文档,则文档可以在VEE上下载。VEE然后可以用一次一屏内容服务于移动设备,这可以节省盘空间和电池,并且可以导致更快的总体下载时间。
在性能降低的计算机系统110能够运行虚拟化软件的情况下,环境建立模块135可以建立虚拟机以处理所接收的任务。然后,任何所接收的任务都由虚拟机来处理。通过这种方式,任何可以以隔离的方式被处理,而不影响底层主OS。
任务执行运行时(TER)可以在主计算机系统上运行。TER可以被配置为检测主OS的处理容量。例如,在一些情况下,TER可以确定主计算机系统是否虚拟化能力并且如果是(并且如果用户105选择这样),则分布式任务在虚拟机(VM)内执行。可替代地,TER可以确定:主计算机系统具有可用于处理分布式任务的至少一些空闲或其他处理资源。TER可以使用这些处理资源来建立虚拟执行环境,包括将分布式任务执行和主计算机自己的操作分隔开的隔离边界。TER可以管控任务在主计算机系统上的执行。TER可以检测本机任务和分布式任务的CPU和其他处理资源利用。TER然后可以相应地节流虚拟机或VEE的资源利用以最小化任何副作用。例如,如果主计算机系统开始处理另一本地任务,其可以节流分布式任务的处理。
类似的运行时环境可以可以在性能降低的计算机系统上实现。任务发起运行时环境(TIRE)可以被实现,该任务发起运行时环境使用不同的模块来执行特定任务。TIRE组件可以是专门为移动或其他性能降低的设备设计的。TIRE组件因此可以是轻量的并且可以被集成到移动设备的OS的内核中。其可以执行任务调度并且可以基于其当前容量将任务分配给TER。TIRE可以允许管理员在运行时输入二进制码,同时TIRE解释所述二进制码并且进行任务分布。
在一些情况下,软件开发工具包(SDK)可以被提供,所述软件开发工具包允许开发者开发在性能降低的计算机系统上运行的应用,同时将很多处理转嫁给主计算机系统。SDK可以包括或提供一组方法,所述方法允许任务间通过声明性和常规编程的并行性。使用SDK,动态调度和调整任务调度可以被提供。在一些实施例中,可以提供模拟环境,其中开发者可以在部署为上述计算环境构建的应用以前测试这些应用。下面,将参照图2、3和4的方法200、300和400更详细地解释上述这一和其他概念。
考虑到以上描述的系统和体系结构,参考图2和图3的流程图将更好地理解根据所公开的主题实现的方法。为了说明简明起见,这些方法被示出和描述为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面所述的方法所必需的。
图2示出了用于将处理任务从性能降低的计算机系统分布到至少一个其他计算机系统的方法200的流程图。现在将频繁参考环境100的组件和数据来描述方法200。
方法200包括如下动作:监视性能降低的计算机系统上的一个或多个计算任务以为每个任务确定处理资源使用水平,其中所述计算任务是在性能降低的计算机系统上运行的软件应用的一部分(动作210)。例如,作为任务发起运行时环境(TIRE)的一部分,任务监视模块115可以监视作为软件应用117的一部分的任务118。软件应用可以是任何类型的软件功能、服务、应用程序或软件功能的其他部分。软件应用可以执行许多分立任务。在该环境(100)中,应用的任务中的一个或多个可以被发送给另一计算机系统以用于处理。
任务监视模块可以为性能降低的计算机系统110确定资源使用水平116。资源使用水平可以指示多少处理资源正在被使用以及处于什么水平或百分比。例如,资源使用水平可以指示CPU使用百分比、RAM使用百分比、网络使用百分比、电池使用百分比或者任何其他处理组件的使用。
方法200包括如下动作:确定所监视的任务至少之一正在使用超过所指定阈值水平的处理资源(动作220)。例如,任务监视模块115可以确定:所监视的任务中的一个或多个正在使用处理资源的一个大的部分。如果该部分超过所指定的阈值水平(例如CPU使用在某个时间段内高于80%),则任务转移模块120可以被用于将所确定的任务发送给主计算机系统125(动作230)。主计算机系统可以被配置为接收、处理和返回任务的结果到性能降低的计算机系统(这将在下面在图3中解释)。任务转移模块可以将任务划分成多个不同的部分以用于在虚拟执行环境中处理。部分的大小可以基于各种考虑因素动态地调整,包括移动设备的网络信号的当前强度、要处理的任务的大小或者任务的优先级水平。因此,例如如果移动设备当前具有高信号强度,则可以使用最优分组大小来针对该信号强度发射最大量的数据。
在一些情况下,任务部分以无缝方式被转移、处理并返回。在这样的情况下,任务可以表现为已经在性能降低的计算机系统上处理过。在这些情形下,用户可以不知道应用任务中的一些曾是在不同的计算机系统上被处理的。因此,例如用户可以正在性能降低的计算机系统上玩游戏。游戏的各个任务可以在游戏被玩的同时选择性地被发送给另一计算机系统、被处理并被返回给性能降低的计算机系统。任务的经处理的结果被无缝地合并到游戏中。因此,可以玩由于处理资源限制而通常本不能在性能降低的计算机系统上玩的游戏(或其他应用),因为处理的大部分是在另一计算机系统上进行的。
例如,如果用户正在玩国际象棋,并且国际象棋程序想要分析棋步,“最佳步”计算可以被发送给数据中心、用户的家庭台式机或甚至不相关用户的家庭台式机。此外,在一些情况下,计算可以被分割并且发送给大数目的性能降低的设备。对于一些问题,比如国际象棋“最佳步”示例,计算可以被分割成几千个非常简单的问题,其中单个设备可以将这些问题推送给其他设备的并然后容易地组合这些结果以选择答案。在电池寿命是个问题的情况下,可以通过将对这些经划分任务的接受仅仅限制于该设备从充电器接收电能的时间来减少电池使用。这所具有的效果是,使大数目的已插电的性能降低的设备有效地充当超级计算机,而不影响这些设备的电池寿命。
在一些实施例中,从性能降低的计算机系统转移到主计算机系统的任务的数目是可动态调节的。对所转移任务的数目的调节可以基于主计算机系统125的当前处理条件。因此,如果主机计算机系统当前正在使用计算资源的一个大的部分,则性能降低的计算机系统可以将更少的任务发送给主计算机提供(并且可能可以将任务发送给另一主计算机系统)。如上所述,性能降低的计算机系统可以将从主计算机系统接收的经处理结果呈现在运行中的软件应用内(动作240)。这可以无缝地执行,其中用户105不知道软件应用的部分正在其他地方被处理。
为了进一步利用上述系统,可以提供通用应用开发框架。该通用应用开发框架可以允许开发者开发在性能降低的计算机系统上操作的软件应用,并且将软件应用任务转移到一个或多个其他计算机系统。该通用应用开发框架可以与一个或多个现有应用开发程序集成。因此,通过将现有应用开发程序(即集成开发环境(IDE))与通用应用开发框架一起使用,开发者可以开发在性能降低的计算机系统(例如移动电话或平板计算机)上运行的应用并且将应用处理的大的部分转移到能够更好地应对处理负载的其他计算机系统。在主计算机系统上进行的动作将在下面参照图3来描述。
图3示出了用于在主计算机系统处处理从性能降低的计算机系统接收的分布式任务的方法300的流程图。现在将频繁参考环境100的组件和数据来描述方法300。
方法300包括如下动作:从性能降低的计算机系统接收要处理的一个或多个软件应用任务(动作310)。例如,任务接收模块130可以从性能降低的计算机系统110接收要在主计算机系统125处处理的任务121。许多这样的任务可以由任务接收模块来接收和缓冲。所述任务可以单独地或成组地接收。在一些情况下,任务可以被流式传输给主计算机系统。经处理的结果156同样可以被流式传输回性能降低的计算机系统。所述任务可以被分解成子任务、以及甚至进一步的子任务。对任务的该划分可以用在性能降低的计算机系统具有低信号强度或者连接到低带宽网络的情况下。
方法300还包括如下动作:建立虚拟执行环境以用于处理所接收的任务,其中虚拟执行环境在同主计算机系统的其余部分隔离的隔离边界中操作(动作320)。例如,环境建立模块135可以建立虚拟边界141中的虚拟执行环境(VEE)145。如上所述,隔离边界可以是在里面执行任务的处理的虚拟边界。任务处理模块150单单在隔离边界内处理任务;任务处理模块不具有对存储在该边界以外的数据的访问。通过这种方式,VEE可以在基本上任何计算机系统上安全地建立,因为VEE不具有对存储在主计算机系统上的文件的访问。此外,隔离边界防止VEE中的任务执行影响运行在主计算机系统上的操作系统或其他程序。因此,病毒和其他恶意软件被防止以免对主系统程序造成任何损害。因此,VEE是主系统的其他软件应用不能访问的安全、受隔离的环境。
在一些情况下,VEE可以是虚拟机。一些主系统可以被配置为特别良好地与虚拟机一起工作。在这样的系统中,多个虚拟机可以由模块135建立以处理到来的任务。每个虚拟机都可以被建立以处理与某些应用相关的任务。一旦应用在性能降低的计算机系统上被关闭或者一旦所调度的时间已经到来(例如作为处理调度的一部分),虚拟机(或者正常虚拟执行环境)就被从主计算机系统移除,而不留下其存在的记录。由于VEE是在隔离边界中建立的,因此主系统的其他程序未与VEE交互过,并且清理是移除组成VEE的文件和数据结构这一简单事项。
方法300还包括在所建立的虚拟执行环境中处理所接收的任务的动作(动作330)。例如,任务处理模块150可以在VEE145内处理到来的任务121。该处理可以在一些实例中受限或被节流。例如,节流模块165可以检测主计算机系统正在处理某些类型的任务(例如关键或高重要度任务),或者以其他方式正在使用其处理资源的一个大的部分。作为响应,节流模块160可以推迟从性能降低的计算机系统接收到的任务的处理,直到关键任务已经完成处理,或者直到处理资源处于可接受的水平。VEE还可以向性能降低的计算机系统通知:任务处理已经被临时推迟,并且任务可能需要被发送给另一VEE或另一计算机系统。
在一些实施例中,VEE可以被配置为监视主计算机系统的处理资源并且动态地节流所接收的任务的处理。在一些情况下,该动态节流可以不发生,直到VEE确定主系统正在使用该系统的高于指定阈值水平的处理资源。因此,一旦达到该水平,则被调度要在VEE中执行的任务就被推迟或者移动到另一计算机系统。在任务由于节流而被暂停或以其他方式被推迟的情况下,这些任务可以在VEE已经检测到主计算机系统具有充足的处理资源以后恢复。
VEE的任务处理的结果156可以被发送给性能降低的计算机系统110(动作340)。所述结果可以在处理以后基本上立即被发送。通过这种方式,所述结果可以作为用户的应用的一部分被呈现给用户105。因此,用户可以在他或她的移动或平板设备上打开应用(例如使用输入106),让应用处理(基本上)在他或她的家庭计算机系统上执行,并且在应用117中查看结果就好像性能降低的计算机系统进行了所有处理那样。这些结果可以被流式传输给移动设备110并且无缝地合并到用户正在使用的应用中。
在一些情况下,当VEE正在处理第一应用的一部分时,VEE可以在第一任务被处理的同时接收要在VEE处处理的第二任务。主计算机系统可以确定:所接收的第二任务是与所接收的第一任务相同的软件程序的一部分,并且可以在相同的虚拟执行环境中处理第二任务。在其他情况下,VEE可能正在处理第一应用的一部分,并且然后在第一任务被处理的同时接收要在VEE处处理的第二任务。主计算机系统可以确定:所接收的第二任务是与所接收的第一任务不同的软件程序的一部分,并且可以建立不同的第二VEE以处理所接收的第二任务。因此,多个不同虚拟执行环境可以被建立以处理从不同软件应用接收到的任务。
图4示出了用于建立用于测试分布式计算框架功能的模拟环境的方法400的流程图。现在将频繁地分别参照图1和图4的环境100和400的组件和数据来描述方法400。
方法400包括建立被配置为允许测试分布式应用的模拟环境的动作(动作410)。例如,环境建立模块435可以建立允许测试分布式应用的模拟环境420。开发者415因此可以写入被设计为在性能降低的计算机系统110上操作的应用416并且在计算机系统405上的模拟环境中测试这些应用。上面的应用117是可以将自己任务118中的一些转嫁给其他计算机系统的分布式应用。模拟环境可以是可定制的,以模拟公司或企业环境、家庭环境或其他计算环境。在一些情况下,模拟环境可以允许多个虚拟执行环境被建立并同时运行以处理来自多个不同软件应用的任务。在一些情况下,模拟环境可以在相同的机器(405)上提供应用执行加上VEE(或VM)、TER和/或TIR,使得上述分布式应用可以被开发和测试。在环境的数目和类型已经被选择以后,环境建立模块可以发起模拟(动作420)。
方法400还包括在所建立的模拟环境中执行各个步骤的动作(动作430),包括下列各项中的一个或多个:监视性能降低的计算机系统110上的计算任务118以为每个任务确定处理资源使用水平116,其中所述任务是运行在性能降低(移动)的系统上的软件应用117的一部分;确定所监视的任务至少之一正在使用超过所指定阈值水平119的处理资源;将所确定的任务121发送给主计算机系统125,该主计算机系统125在虚拟执行环境145中接收并处理该任务,并且将所述任务的结果156/421返回给性能降低的计算机系统;以及将从主计算机系统接收的经处理的结果呈现在正在运行的软件应用内。所述任务安全地在隔离环境中被处理,并被返回给用户的应用,而不需要用户知道。模拟环境因此允许开发者在实际部署应用以前模拟和测试应用。
因此,提供了将应用任务从性能降低(移动)的计算机系统分布到主计算机系统的方法、系统和计算机程序产品。此外,提供方法、系统和计算机程序产品,其在主计算机系统处处理从性能降低的计算机系统接收的分布式任务,并且建立模拟环境以用于测试分布式应用功能。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (15)

1.在包括多个计算系统的计算机联网环境中一种在包括至少一个处理器和存储器的性能降低的计算机系统处用于将处理任务从所述性能降低的计算机系统分布到至少一个其他计算机系统的计算机实现的方法,所述方法包括:
监视性能降低的计算机系统上的一个或多个计算任务以为每个任务确定处理资源使用水平的动作,其中所述计算任务是在所述性能降低的计算机系统上正在运行的软件应用的一部分;
确定所监视的任务至少之一正在使用超过所指定阈值水平的处理资源的动作;
将所确定的任务发送给第二、不同的计算机系统的动作,所述第二、不同的计算机系统被配置为接收、处理并返回所述任务的结果到所述性能降低的计算机系统;以及
所述性能降低的计算机系统将从所述第二计算机系统接收的经处理结果呈现在所述正在运行的软件应用内的动作。
2.如权利要求1所述的方法,其特征在于,所确定的任务是将所述任务划分成一个或多个部分以用于由所述第二、不同的计算机系统执行。
3.如权利要求2所述的方法,其特征在于,所述任务部分以无缝方式被转移、处理和返回,使得所述任务表现为是在所述性能降低的计算机系统上被处理的。
4.如权利要求1所述的方法,其特征在于,还包括:提供通用应用开发框架,所述通用应用开发框允许开发者开发在性能降低的计算机系统上操作的软件应用,并且将软件应用任务转移到一个或多个其他计算机系统。
5.一种用于实现用于在主计算机系统处处理从性能降低的计算机系统接收的分布式任务的方法的计算机程序产品,所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述指令在由所述计算系统的一个或多个处理器执行时使得所述计算系统执行所述方法,所述方法包括:
从性能降低的计算机系统接收要处理的一个或多个软件应用任务的动作;
建立虚拟执行环境以用于处理所接收的任务的动作,其中所述虚拟执行环境在同所述主计算机系统的其余部分隔离的隔离边界中操作;
在所建立的虚拟执行环境中处理所接收的任务的动作;以及
将经处理的任务的结果发送给所述性能降低的计算机系统的动作。
6.如权利要求5所述的计算机程序产品,其特征在于,还包括:
监视所述主计算机系统的处理资源的动作;以及
在确定所述主计算机系统正在使用所述主计算机系统的高于所指定的阈值水平的处理资源以后,动态地节流所接收的任务的处理的动作;
7.如权利要求6所述的计算机程序产品,其特征在于,还包括将所接收的任务转移到另一计算机系统以用于在所述另一计算机系统上处理的动作。
8.如权利要求6所述的计算机程序产品,其特征在于,还包括重启由于节流而被暂停的任务的执行的动作。
9.如权利要求5所述的计算机程序产品,其特征在于,所述虚拟执行环境是所述主计算机系统的其他软件应用不能访问的安全、受隔离的环境。
10.如权利要求5所述的计算机程序产品,其特征在于,所述虚拟执行环境被从所述主计算机系统移除,而不留下其存在的记录。
11.如权利要求5所述的计算机程序产品,其特征在于,还包括:
检测所述主计算机系统正在处理指定类型的任务的动作;
推迟所接收的任务的处理的动作;以及
向所述性能降低的计算机系统通知任务处理已经被推迟的动作。
12.如权利要求5所述的计算机程序产品,其特征在于,还包括:
在所接收的初始任务正在被处理的同时接收要在所述虚拟执行环境处执行的第二任务的动作;
确定所接收的第二任务与所接收的初始任务是相同的软件程序的一部分的动作;以及
在相同的虚拟执行环境中处理所接收的第二任务的动作。
13.如权利要求5所述的计算机程序产品,其特征在于,还包括:
在所接收的初始任务正在被处理的同时接收要在所述虚拟执行环境处执行的第二任务的动作;
确定所接收的第二任务与所接收的初始任务是不同的软件程序的一部分的动作;以及
建立第二、不同的虚拟执行环境以处理所接收的第二任务的动作。
14.一种计算机系统,包括以下:
一个或多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在被所述一个或多个处理器执行时致使所述计算系统执行用于建立用于测试分布式计算框架功能的模拟环境的方法,所述方法包括以下各项:
建立被配置为允许测试分布式应用的模拟环境的动作;
发起主计算机系统和性能降低的计算机系统的模拟的动作;
在所建立的模拟环境中执行下列各项的动作:
监视所述性能降低的计算机系统上的一个或多个计算任务以为每个任务确定处理资源使用水平,其中所述计算任务是在所述性能降低的计算机系统上正在运行的软件应用的一部分;
确定所监视的任务至少之一正在使用超过所指定的阈值水平的处理资源的动作;
将所确定的任务发送给第二、不同的计算机系统,所述第二、不同的计算机系统在虚拟执行环境中接收并处理所述任务,并且将所述任务的结果返回给所述性能降低的计算机系统;以及
将从所述主计算机系统接收的经处理的结果呈现在所述正在运行的软件应用内。
15.如权利要求14所述的系统,其特征在于,所述模拟环境允许多个虚拟执行环境被建立并同时运行以处理来自多个不同软件应用的任务。
CN201280026747.3A 2011-05-31 2012-05-18 分布式计算框架 Active CN103562868B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/149,625 2011-05-31
US13/149,625 US8612580B2 (en) 2011-05-31 2011-05-31 Distributed computing framework
PCT/US2012/038666 WO2012166399A1 (en) 2011-05-31 2012-05-18 Distributed computing framework

Publications (2)

Publication Number Publication Date
CN103562868A true CN103562868A (zh) 2014-02-05
CN103562868B CN103562868B (zh) 2017-12-12

Family

ID=47259751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280026747.3A Active CN103562868B (zh) 2011-05-31 2012-05-18 分布式计算框架

Country Status (5)

Country Link
US (1) US8612580B2 (zh)
EP (1) EP2715539B1 (zh)
CN (1) CN103562868B (zh)
TW (1) TWI559153B (zh)
WO (1) WO2012166399A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107014844A (zh) * 2015-09-25 2017-08-04 奥林巴斯科技美国公司 动态管理多个数据处理单元的xrf/xrd系统

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254965A1 (en) * 2011-04-04 2012-10-04 Lansing Arthur Parker Method and system for secured distributed computing using devices
US9280386B1 (en) * 2011-07-14 2016-03-08 Google Inc. Identifying task instance outliers based on metric data in a large scale parallel processing system
US8893274B2 (en) * 2011-08-03 2014-11-18 Trend Micro, Inc. Cross-VM network filtering
US8732627B2 (en) * 2012-06-18 2014-05-20 International Business Machines Corporation Method and apparatus for hierarchical wafer quality predictive modeling
US9684630B1 (en) * 2012-12-05 2017-06-20 Amazon Technologies, Inc. Provisioning of cryptographic modules
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
US8621062B1 (en) * 2013-03-15 2013-12-31 Opscode, Inc. Push signaling to run jobs on available servers
TWM464730U (zh) * 2013-03-29 2013-11-01 Gemtek Technology Co Ltd 個人化參數自動同步系統與相關裝置
US10423514B1 (en) 2013-10-28 2019-09-24 Symantec Corporation Automated classification of mobile app battery consumption using simulation
US20150121374A1 (en) * 2013-10-30 2015-04-30 Alistair Black Application Processing Systems and Methods
US9703611B1 (en) 2014-03-21 2017-07-11 Amazon Technologies, Inc. Isolating resources for utilization by tenants executing in multi-tenant software containers
CN105095970B (zh) * 2014-04-25 2018-09-21 阿里巴巴集团控股有限公司 第三方应用的执行方法及系统
US10733165B1 (en) * 2015-07-06 2020-08-04 Workiva Inc. Distributed processing using a node hierarchy
US10429935B2 (en) * 2016-02-08 2019-10-01 Comcast Cable Communications, Llc Tremor correction for gesture recognition
US20170286140A1 (en) * 2016-03-31 2017-10-05 Ca, Inc. Java-based offload service in a mainframe environment
US10594798B2 (en) * 2016-06-16 2020-03-17 Veniam, Inc. Systems and methods for managing containers in a network of moving things
US10467045B1 (en) 2016-07-07 2019-11-05 Binaris Inc On-demand isolated execution of specific tasks
US10467120B2 (en) * 2016-11-11 2019-11-05 Silexica GmbH Software optimization for multicore systems
WO2018100683A1 (ja) * 2016-11-30 2018-06-07 株式会社オプティム コンピュータシステム、エッジデバイス制御方法及びプログラム
US10621001B1 (en) 2017-07-06 2020-04-14 Binaris Inc Systems and methods for efficiently expediting execution of tasks in isolated environments
US10417043B1 (en) 2017-07-06 2019-09-17 Binaris Inc Systems and methods for executing tasks adaptively
US10915351B2 (en) * 2018-08-30 2021-02-09 International Business Machines Corporation Cellular hypervisor
US11108640B2 (en) * 2018-12-20 2021-08-31 Advantest Corporation Controlling devices in a decentralized storage environment
WO2020258098A1 (en) * 2019-06-26 2020-12-30 Orange Deploying computing tasks on client computing apparatus
US10848388B1 (en) * 2019-07-12 2020-11-24 Deloitte Development Llc Distributed computing framework

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224741A1 (en) * 2005-03-16 2006-10-05 Jackson David B Automatic workload transfer to an on-demand center
US20100153955A1 (en) * 2008-12-12 2010-06-17 Peter Sirota Saving program execution state
CN102077543A (zh) * 2008-07-29 2011-05-25 朗讯科技公司 计算机网络中用于用户设备间的资源共享的方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US6065039A (en) 1996-11-14 2000-05-16 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Dynamic synchronous collaboration framework for mobile agents
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
WO2005109829A1 (en) 2004-05-06 2005-11-17 Koninklijke Philips Electronics N.V. Method device and program for seamlessly transferring the execution of a software application from a first to a second device
US8479193B2 (en) * 2004-12-17 2013-07-02 Intel Corporation Method, apparatus and system for enhancing the usability of virtual machines
US7548977B2 (en) 2005-02-11 2009-06-16 International Business Machines Corporation Client / server application task allocation based upon client resources
US7617500B2 (en) * 2005-05-20 2009-11-10 International Business Machines Corporation Generic framework for integrating components with different interfaces in an enterprise application integration environment
US8332479B2 (en) * 2005-08-26 2012-12-11 Hewlett-Packard Development Company, L.P. Enterprise application server system and method
US8015563B2 (en) * 2006-04-14 2011-09-06 Microsoft Corporation Managing virtual machines with system-wide policies
US8091084B1 (en) * 2006-04-28 2012-01-03 Parallels Holdings, Ltd. Portable virtual machine
JP4308241B2 (ja) * 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8583090B2 (en) 2006-12-29 2013-11-12 Nokia Corporation Transferring task completion to another device
US8175863B1 (en) * 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US7515899B1 (en) 2008-04-23 2009-04-07 International Business Machines Corporation Distributed grid computing method utilizing processing cycles of mobile phones

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224741A1 (en) * 2005-03-16 2006-10-05 Jackson David B Automatic workload transfer to an on-demand center
CN102077543A (zh) * 2008-07-29 2011-05-25 朗讯科技公司 计算机网络中用于用户设备间的资源共享的方法和装置
US20100153955A1 (en) * 2008-12-12 2010-06-17 Peter Sirota Saving program execution state

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107014844A (zh) * 2015-09-25 2017-08-04 奥林巴斯科技美国公司 动态管理多个数据处理单元的xrf/xrd系统
CN107014844B (zh) * 2015-09-25 2020-04-21 奥林巴斯科技美国公司 动态管理多个数据处理单元的xrf/xrd系统

Also Published As

Publication number Publication date
TWI559153B (zh) 2016-11-21
US20120311570A1 (en) 2012-12-06
EP2715539A4 (en) 2015-04-08
WO2012166399A1 (en) 2012-12-06
TW201303613A (zh) 2013-01-16
CN103562868B (zh) 2017-12-12
EP2715539B1 (en) 2019-08-07
US8612580B2 (en) 2013-12-17
EP2715539A1 (en) 2014-04-09

Similar Documents

Publication Publication Date Title
CN103562868A (zh) 分布式计算框架
US11537809B2 (en) Dynamic container grouping
US10789091B2 (en) Agile VM load balancing through micro-checkpointing and multi-architecture emulation
CN102326132B (zh) 最大化虚拟机平台的降低功率状态的电源管理
Zheng et al. Comma: Coordinating the migration of multi-tier applications
US9201706B2 (en) Minimizing workload migrations during cloud maintenance operations
Schulz et al. Parallel SAT solving on peer-to-peer desktop grids
WO2012167378A1 (en) System and method of optimization of in-memory data grid placement
CN102917010A (zh) 多计算机系统中的自动抢占
US20190188022A1 (en) Virtual Redundancy for Active-Standby Cloud Applications
KR102083289B1 (ko) 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
US9317340B2 (en) Intelligent virtual machine (VM) re-location
US20120144389A1 (en) Optimizing virtual image deployment for hardware architecture and resources
Xiong et al. Challenges for building a cloud native scalable and trustable multi-tenant AIoT platform
CN105893134A (zh) 一种信息处理方法及电子设备
US9436505B2 (en) Power management for host with devices assigned to virtual machines
Nguyen et al. Algorithmic approach to deadlock detection for resource allocation in heterogeneous platforms
Yazdani et al. Enhancing edge computing with unikernels in 6G networks
Hermenier et al. Dynamic consolidation of highly available web applications
CN114915460A (zh) 一种面向容器云的异构动态扩缩容装置及方法
CN103049306A (zh) 基于接口的api上的静态成员和参数化构造函数的模拟
CN102591708B (zh) 用于提供按需处理和背景处理的体系结构
Alahmad et al. Optimized availability-aware component scheduler for applications in container-based cloud
Malhotra A critical survey of virtual machine migration techniques in cloud computing
González et al. Multimethod optimization in the cloud: A case‐study in systems biology modelling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150805

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

Effective date of registration: 20150805

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant