在服务器上仿真测试分布式应用的制作方法

文档序号:13709289阅读:226来源:国知局
背景计算机和计算系统已经影响了现代生活的近乎每一个方面。计算系统正提供越来越复杂且精致的功能。这样的功能通常主要由底层软件驱动,该底层软件自身正变得越来越复杂。更精致的功能中的某些涉及使用网络相互通信的计算系统。例如,互联网是构成计算网络的世界范围的联盟,其允许计算系统完成世界范围的通信。这种经改善的通信方面的能力已经允许各应用跨多个计算系统广泛分布,每个计算系统在应用功能的整体实现中承担特定任务。各计算系统可具有不同的操作系统,并根据建立的通信协议经由网络通信来协作。此处要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实现所述一些实施例的一个示例性技术领域。简要概述在此描述的至少一些实施例涉及单个物理服务器中的操作,在物理服务器中存在操作待测分布式应用的不同组件的多个虚拟节点。每个虚拟节点仿真预期分布式环境中的实际物理节点。虚拟节点可以是例如虚拟机或仿真的服务,并可在该虚拟节点的上下文内操作它们自己的操作系统。在物理服务器上通过使得各虚拟节点使用它们在部署的分布式环境中通常会使用的协议进行相互通信来仿真分布式环境。配置数据源可被用来设置并且可能升级虚拟节点以便仿真分布式环境。因此,分布式应用可被测试,而无需实际设立分布式环境。提供本

技术实现要素:
以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。附图简述为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:图1例示出其中可采用本文中所描述的原理的示例计算系统;图2抽象地示出了物理服务器机器,在该物理服务器机器上存在支持其中可测试分布式应用的仿真环境的支持环境;以及图3抽象地示出其中分布式应用被设计成在部署之后操作的分布式环境。详细描述在此描述的至少一些实施例涉及单物理服务器中的操作,在物理服务器中存在运行待测分布式应用的不同组件的多个虚拟节点。每个虚拟节点仿真预期的分布式环境中的实际物理节点。虚拟节点可以是例如虚拟机或仿真的服务,并可在该虚拟节点的上下文内操作它们自己的操作系统。在物理服务器上通过使得各虚拟节点使用它们在部署的分布式环境中通常会使用的协议进行相互通信来模拟分布式环境。配置数据源可被用来设置并且可能升级虚拟节点以便仿真分布式环境。因此,分布式应用可被测试而无需实际设立分布式环境。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作或上述动作的次序。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。计算系统可以分布在网络环境中,并可包括多个组分计算系统。如图1所例示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。在此描述的各实施例可包括或利用专用或通用计算机系统,该专用或通用计算机系统包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。系统存储器可被包括在整体存储器104内。系统存储器还可被称为“主存储器”,并且包括可被至少一个处理单元102在存储器总线上被寻址的存储器位置,在这种情况下地址位置被声明在存储器总线自身上。系统存储器传统上是易失性的,但本文中描述的原理还应用于其中系统存储器部分或者甚至全部是非易失性的情况。本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。存储计算机可执行指令和/或数据结构的计算机存储介质是物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如RAM、ROM、EEPROM、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的程序代码的任何其他硬件存储介质,其可由通用或专用计算机系统访问来实现本发明公开的功能。传输介质可包括可用于携带计算机可执行指令或数据结构形式的程序代码并可由通用或专用计算机系统访问的网络和/或数据链路。“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机系统时,该计算机系统将该连接视为传输介质。上述的组合应当也被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。计算机可执行指令例如包括,当在一个或多个处理器处执行时使通用计算机系统、专用计算机系统、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。本领域的技术人员将理解,本文中描述的原理可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。如此,在分布式系统环境中,计算机系统可包括多个组成部分计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一个组织内,和/或具有跨多个组织拥有的组件。在该说明书和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其他多个优点。图2抽象地示出了物理服务器机器200。物理服务器机器200具有仿真环境210,其中待测分布式应用的操作可在非分布式环境中操作。物理服务器机器200还包括支持环境220,其提供仿真环境210。三个虚拟节点201A、201B和201C被示为包括在物理服务器机器200的仿真环境210内。在本说明书和权利要求书中,“虚拟节点”是物理计算系统内的组件或组件集合,其允许运行一操作系统的机器的仿真。因此,如果多个虚拟节点在单个物理机器上操作,则那些多个虚拟节点可操作相互比较而言相同或不同的系统操作,以及相比于运行虚拟节点的单个物理服务器机器200而言相同或不同的操作系统。虚拟节点的各示例包括虚拟机或仿真器。例如,仿真器可以是能够仿真分布式服务响应于客户请求通常可提供的响应的服务仿真器。每个虚拟节点用与待测分布式应用的对应节点相同的功能操作。例如,图3示出作为其中分布式应用要将在其中操作的预期环境的分布式环境300。不需要为了测试分布式环境的操作而实际地设立分布式环境300。相反,分布式环境300在物理服务器机器内被仿真。因此,分布式应用的测试可被执行而无需构建昂贵的分布式网络和/或将要被测试的分布式应用部署在实际的分布式环境中。分布式应用包括物理节点301A、301B和301C。取决于要有总体分布式应用完成的功能,物理节点301A到301C将具有它们自己的任务。作为示例,分布式应用可以是内容分发网络,其中媒体和非媒体内容按需从最基本的源经由高速缓存基础结构被分发到各种目的地。在那个情况下,一任务可能是发起内容,另一个任务可能是为媒体内容提供经高速缓存的源,另一个任务可能是为非媒体内容提供经高速缓存的源,另一个任务可能统计可能被用于智能地高速缓存的源,并以此类推。物理服务器机器200上的虚拟节点201A与分布式环境300内的物理节点301A将会的那样起作用并且在分布式应用中具有相同的任务。物理服务器机器200上的虚拟节点201B与分布式环境300内的物理节点301B将会的那样起作用并且在分布式应用中具有相同的任务。物理服务器机器200上的虚拟节点201C与分布式环境300内的物理节点301C将会的那样起作用并且在分布式应用中具有相同的任务。当然对于可在分布式环境内操作的节点的数量没有限制。因此,省略号201D和301D抽象地表示在此描述的原理不受到待测分布式应用的节点数量的限制。在分布式应用实际被部署的情况下,虚拟节点运行它们可能在分布式环境300内运行的任何操作系统。此外,在分布式应用实际被部署的情况下,操作任何组件的那些虚拟节点的操作系统可在分布式环境300的操作系统内运行。例如,假设在受测试分布式应用中,物理节点301A要运行(操作组件304A的)操作系统302A,物理节点301B要运行(操作组件304B和304C的)操作系统302B,且物理节点301C要运行(操作组件304D、304E和304F的)操作系统302C。为了在单个物理服务器200的界限内正确地测试这样的分布式应用,虚拟节点201A同样地运行(操作组件304A的)操作系统302A,虚拟节点201B同样地运行(操作组件304B和304C的)操作系统302B,且虚拟节点201C同样地运行(操作组件304D、304E和304F的)操作系统302C。操作系统302A、302B、302C可相互相同或相互不同。参见图3,假设为了使得分布式应用运作,各物理节点301A、301B和301C将使用专用通信信道来进行通信。例如,或许物理节点301A要通过通信信道303A与物理节点301B进行通信、物理节点301A要通过通信信道303B与物理节点301C进行通信、而物理节点301B要通过通信信道303C与物理节点301C进行通信。通信信道303A到303C每个包括物理介质,其传达被传送的实际比特。然而,通信信道还包括软件方面。例如,特定协议栈可被用于通过介质传送比特,使得传输方和接收方可协调对要被传送的数据的正确传输。尽管并不在物理服务器机器200内仿真确切的物理介质,但可仿真通信信道的每一其它软件级别。这是好的,因为分布式软件应用实际上是软件,并且不包括用于通信的物理介质。因此,待测分布式应用的通信信道303A用物理服务器机器200中的虚拟通信信道203A来仿真。类似地,待测分布式应用的通信信道303B和303C各自用物理服务器机器200中的对应的虚拟通信信道203B和203C来仿真。虚拟通信信道203A、203B、和203C可被例如虚拟网络来操作,或可能被具有被合适地配置的虚拟交换机的管理程序来操作。因此,可存在与为分布式环境300设计的物理节点一样多虚拟节点在单个服务器机器200内操作,其中各虚拟节点与为对应的物理节点设计的节点执行相同的任务并运行相同的操作系统。同样,在单个服务器机器200内可存在与为分布式环境300设计的通信信道一样多的虚拟通信信道,其中每个虚拟通信信道仿真对应通信信道的软件部分。物理服务器机器200的支持环境220包括配置数据源211和配置解释模块212。配置数据源211可以但不必是配置文件。例如,配置数据可包括设置信息213A,该设置信息指令配置解释模块212如何设置仿真环境210内的各种虚拟节点和信道。配置数据还可包括升级信息213B,该升级信息指令配置解释模块212如何升级仿真环境210内的各种虚拟节点和信道。以下表示以可扩展标记语言(XML)表达的设置信息的示例,其中添加了行号以供后续引用:‘在此示例中,从行1到行26定义了整个任务。其它XML可被用于设立其它任务。例如,参考图2和3,任务可以是虚拟节点202A至202C中的任一个。行1包括指定虚拟机的名称以及要由该虚拟机运行的操作系统的类型的属性。在行1中也指定了虚拟机的进一步的默认配置信息,诸如默认IP地址、默认用户、和默认凭证。行2指示虚拟机的三个实例要被设立。行3指定主机名的前缀。行4和5一起定义了要被分配到虚拟机各实例的互联网协议(IP)地址的开始范围。行6到11指定用于让设置过程知晓设置是否已经被正确地完成的验证命令参数。行12是其中可放置关于被仿真的中央处理单元(CPU)的信息的位置标记元素。行13是其中可放置关于虚拟机的被仿真的存储器的信息的位置标记元素。行14到25为每个实例定义进一步的配置信息。可为这个任务的要被配置的每个虚拟机实例提供单独的instanceConfig(实例配置)元素,但在此使用一个。随着id属性为空,这被配置解释组件212解释为需要向全部实例应用该相同配置。行15包括可放置关于主机名的信息的位置标记元素。行16包括可放置关于针对实例的互联网协议(IP)地址的信息的位置标记元素。行18到22包括验证命令信息。行23是可放置关于实例的CPU的信息的位置标记元素。行24是可放置关于实例的存储器的信息的位置标记元素。以下表示以可扩展标记语言(XML)表达的升级信息的示例,其中添加了行号以供后续引用:在此情况中,升级操作是根据从行1延伸到16的ActionGroup(动作组)元素来表达的。在此,有两个命令,每个命令涉及从源地址到目的地地址复制文件。因此,描述了用于在单个服务器机器上设立并测试分布式应用的高效和方便的机制。本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1