提供对自部署的虚拟应用中的虚拟机的串行端口的访问的方法、装置和系统与流程

文档序号:14649805发布日期:2018-06-08 21:33阅读:274来源:国知局
提供对自部署的虚拟应用中的虚拟机的串行端口的访问的方法、装置和系统与流程

本发明的实施例总体上涉及云计算领域,并且更具体地涉及通过自动化串行端口集中技术提供对自供应云应用的虚拟机串行端口接口的远程访问的领域。



背景技术:

云计算是相对较新的计算领域,其能够方便、按需访问可快速供应和释放的可配置计算资源(例如网络、服务器设备、存储设备、软件应用和服务等)的共享池,通常只需最少的管理工作或与服务提供商的交互。因此,云计算通常具有按需自助服务、资源共享、快速弹性和测量服务的特点。

被广泛使用的一种典型的云计算模型被称为基础设施即服务(IaaS),其中客户端/客户不具有管理或控制底层基础设施的能力,而是向其提供了按需请求和利用处理、存储、网络和/或其他基础计算资源的能力。例如,客户端可以使特定类型的软件(其可以包括操作系统和应用)由所提供的基础设施进行部署和执行。

云计算通常与虚拟化资源结合使用。资源的虚拟化通常指的是将逻辑资源从物理资源中抽象出来的配置。云计算中使用的一种常见虚拟化技术涉及提供特定计算机系统仿真的虚拟机(或“VM”)。VM提供计算设备的软件实现,因此可以基于真实计算机或假设计算机的计算机架构和功能进行操作。

在许多云产品中,用户或客户可以向管理系统请求对虚拟机或一组机器(或容器的部署等)进行实例化,以执行某些预期的任务或应用。例如,用户可能希望实例化(或“旋转”)云中的虚拟服务器以创建在线店面,提供网络服务,利用大量处理或存储资源处理数据等。

一些云服务提供商提供大部分预配置的虚拟化应用,其可以由云用户快速轻松地部署。例如,云提供商可以提供虚拟应用“模板”,在部署时该“模板”对基本上已预先配置的一个或多个VM进行实例化以执行特定任务。例如,虚拟应用模板可以定义VM以实现多层应用,诸如实现web服务器的虚拟机,以及实现用于web应用的后端数据库的虚拟机,以及实现安全服务器的虚拟机等。

然而,当用户在云端部署虚拟化计算资源(例如,虚拟机,例如在虚拟应用中的VM集合)时,这些资源通常需要进一步的配置、管理和/或测试。例如,资源通常以默认配置进行部署,需要在资源可以提供期望的服务之前修改某些设置(例如,密码、内存限制等)。

虽然现有的云管理软件可以提供一些简单的配置和管理功能,但只有潜在的配置/管理/测试功能的一小部分暴露给客户端,而且这些暴露的功能通常通过需要人工用户的网络或应用用户接口进行暴露。因此,不存在利用所部署的潜在的种类和数量繁多的VM来执行多种配置更改或执行压缩测试的能力。因此,需要解决这些问题。



技术实现要素:

本公开一般涉及云计算,并且更具体地涉及通过自动化串行端口集中来提供对自供应云应用的虚拟机串行端口接口的远程访问。本文公开了某些技术,其能够手动或自动访问“自助服务”部署的云应用的VM的串行端口。因此,实施例可以提供对一个或多个部署的VM的串行端口的即时、专用访问,以例如创建完全隔离的测试台。

在一些实施例中,具有一个或多个VM的自助服务云虚拟应用(或vApp)还被配置为在vApp内包括虚拟串行端口集中器(VSPC)模块(例如,虚拟机)。VSPC模块可以被包括在vApp模板中,并因此与一个或多个VM一起部署。可以部署外部配置代理(例如守护进程)以使一个或多个VM的串行端口连接到vApp内的VSPC,这可以向外部客户端提供至串行端口的外部访问。

根据一些实施例,公开了一种自动提供对云应用的一个或多个VM的一个或多个串行端口接口的远程访问的系统。该系统包括由一个或多个服务器计算机设备执行的协调代理。协调代理确定与云应用的一个或多个VM一起部署的VSPC模块的互联网协议(IP)地址,并且使得一个或多个VM中的每个虚拟机的串行端口接口与VSPC模块通信地耦合。协调代理还获取与一个或多个VM相关联的VSPC模块的一个或多个端口号。所述一个或多个端口号中的每一个都可以用来通过VSPC模块对相应虚拟机的串行端口接口进行远程访问。协调代理还使得VSPC模块的一个或多个端口号和IP地址被提供给客户端,以向客户端提供对一个或多个串行端口接口的远程访问。除了协调代理以外,系统还包括由一个或多个服务器计算设备执行的VSPC模块。基于从一个或多个VM接收的数据,VSPC模块分配具有一个或多个端口号的本地端口。VSPC模块还在数据结构中将一个或多个端口号与相应的一个或多个VM的标识符相关联。VSPC模块还在由一个或多个端口号标识的端口处接收由试图与一个或多个VM的串行端口接口进行通信的一个或多个客户端设备生成的分组,并且将所接收的每个分组发送到与接收到分组的端口相关联的虚拟机。

在一些实施例中,系统还包括云管理模块,该云管理模块从客户端计算设备接收部署云应用的请求,并且响应于该请求使得一个或多个VM和VSPC模块被部署。

在一些实施例中,云管理模块向协调代理发送云应用处于运行状态的指示,并向协调代理发送VSPC模块的IP地址。

在一些实施例中,用于一个或多个VM和VSPC模块的代码被保存为单个虚拟设备模板。在一些实施例中,VSPC模块专用于云应用并且不服务于任何其他云应用。

在一些实施例中,VSPC模块包括守护进程。

在一些实施例中,由协调代理确定的VSPC模块的IP地址是外部可访问的IP地址,并且VSPC模块还具有内部IP地址。

根据一些实施例,由服务器计算设备执行的协调代理中的用于自动提供对云应用的一个或多个VM的一个或多个串行端口接口的远程访问的方法包括:确定与云应用的一个或多个VM一起部署的并且专用于云应用的VSPC模块的IP地址。该方法还包括使一个或多个VM中的每一个的串行端口接口与VSPC模块通信地耦合。该方法还包括从VSPC模块获取与一个或多个VM相关联的VSPC模块的一个或多个端口号。所述一个或多个端口号中的每一个都可以用来通过VSPC模块对相应虚拟机的串行端口接口进行远程访问。该方法还包括使VSPC模块的一个或多个端口号和IP地址被提供给客户端,从而使客户端能够远程访问所述一个或多个串行端口接口。

在一些实施例中,该方法还包括在确定IP地址之前,检测云应用已经到达指示一个或多个VM已经成功部署的运行状态。在一些实施例中,确定VSPC模块的IP地址包括从云管理模块接收IP地址。

在一些实施例中,使一个或多个VM中的每个VM的串行端口接口与VSPC模块通信地耦合包括:向云管理模块发送标识IP地址的请求以使得云管理模块配置一个或多个VM中的每一个。

在一些实施例中,使VSPC模块的一个或多个端口号和IP地址被提供给客户端包括:经由邮件服务器发送包括一个或多个端口号和IP地址的电子邮件消息。

在一些实施例中,使VSPC模块的一个或多个端口号和IP地址被提供给客户端包括:从云管理模块接收客户端的电子邮件地址。在一些实施例中,协调代理包括守护进程。

根据一些实施例,由服务器计算设备执行的VSPC模块中的用于自动提供对云应用的一个或多个VM的一个或多个串行端口接口的远程访问的方法包括:在VSPC模块处接收来自一个或多个VM的虚拟机的一个或多个分组,以创建用于待传输的串行端口业务的连接。该方法还包括响应于接收所述一个或多个分组,分配要与虚拟机相关联的本地端口,并且在数据结构中将虚拟机的标识符与所分配的本地端口的标识符相关联。该方法还包括将分配的本地端口的标识符发送给协调代理以提供给客户端。

在一些实施例中,该方法还包括由VSPC模块在本地端口处从客户端的远程计算设备接收一个或多个分组,该一个或多个分组携带要传递到虚拟机的串行端口接口的数据;由所述VSPC模块基于使用所分配的本地端口的标识符来执行所述数据结构中的查找,从而将所述虚拟机识别为所述一个或多个分组的目的地;以及由VSPC模块将所述一个或多个分组发送到虚拟机。

在一些实施例中,VSPC模块包括与一个或多个VM一起部署的另一虚拟机,并且在一些实施例中,执行VSPC模块的服务器计算机设备也执行一个或多个VM。

根据一些实施例,一种非暂时性计算机可读存储介质存储指令,所述指令在由诸如服务器计算设备之类的计算设备的处理器执行时,使所述服务器计算设备执行以上任何方法。根据一些实施例,描述了包括处理器和该非暂时性计算机可读存储介质的装置。

因此,一些实施例可以快速且自动地提供对部署的VM的串行端口的远程和专用访问。此外,如果需要重新启动这样的“专用”(即,每个部署的应用的)串行端口集中器,则不会影响利用共享物理计算资源的其他应用或客户端。此外,与使用公共/共享的串行端口集中器(通常由许多不同的用户使用)相比,性能可以显著提高。另外,在一些实施例中,该系统跨各个站点是非常便携的,因为它不依赖于设置外部/物理串行端口集中器——因此,云应用可以快速部署在任何数量的位置。

附图说明

通过参考用于说明本发明实施例的以下描述和附图可以最好地理解本发明。附图中:

图1是示出根据一些实施例的在云应用内部署的协调代理和虚拟串行端口集中器(VSPC)模块的使用的高级框图。

图2是示出根据一些实施例的关于图1的协调代理、VSPC模块和云管理模块的更多细节的框图。

图3是图示根据一些实施例的自动提供对云应用的一个或多个虚拟机的一个或多个串行端口接口的远程访问的组合序列和流程图。

图4示出根据一些实施例的用于传送可达性信息以实现对云应用的一个或多个虚拟机的一个或多个串行端口接口的自动远程访问的示例性报告消息。

图5是示出根据一些实施例的由协调代理执行的用于自动提供对云应用的一个或多个虚拟机的一个或多个串行端口接口的远程访问的示例性流程的流程图。

图6是示出根据一些实施例的由VSPC模块执行的用于自动提供对云应用的一个或多个虚拟机的一个或多个串行端口接口的远程访问的示例性流程的流程图。

图7是示出可以在一些实施例中使用的示例性数据处理系统的框图。

图8A示出了根据一些实施例的实现VSPC模块的服务器计算设备的示例功能框图。

图8B示出根据一些实施例的实现协调代理的服务器计算设备的示例功能框图。

具体实施方式

以下描述描述了用于通过自动化串行端口集中技术来提供对自供应云应用的虚拟机串行端口接口的远程访问的方法、装置、计算机可读介质和系统。在该描述中,阐述了大量的具体细节,例如逻辑实现、资源划分/共享/复制实现、系统组件的类型和相互关系、以及逻辑划分/集成选择,以提供对本发明的实施例的更全面的理解。然而,本领域技术人员将意识到:本发明可以在没有这些具体细节的情况下实施。在其它示例中,并未详细示出控制结构、门级别电路和全软件指令序列,以不使本发明的各方面模糊。利用所包括的说明书,本领域普通技术人员将能够在不进行过度试验的情况下实现恰当的功能。相应地,这里提供的附图和描述不是限制性的。

说明书中对“一个实施例”、“实施例”、“示例实施例”的引用指示了所描述的实施例可以包括特定特征、结构、或特性,但是每个实施例可以不必包括该特定特征、结构、或特性。此外,这种短语不必参考同一实施例。此外,当结合实施例来描述具体特征、结构或特性时,应认为结合其他实施例(不管是否是显式描述的)来实现这种特征、结构或特性是在本领域技术人员的知识内的。

在本文中(除非特别指出),括号中的文本和具有虚线边界(例如,长划点虚线、短划线虚线、点虚线、以及点)的框可以用于示出向本发明实施例添加附加特征的可选操作。然而,这种标注不应当被视为意味着:在本发明的某些实施例中,他们是仅有的选项或可选操作,和/或具有实线边界的框不是可选的。

在以下描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解:这些术语不意在作为彼此的同义词。“耦合”用于指示两个或更多个元素可以或可以不彼此直接物理或电学接触、彼此协作或交互。“连接”用于指示在彼此耦合的两个或更多个元素之间建立通信。

如本文所使用的,虚拟机(VM)是与物理计算机一样运行操作系统和应用的软件。多个VM可以同时在同一主机系统上运行。

云服务提供商致力于为客户提供强大而完整的解决方案,尽可能实现全自动化,从而不需要或只需很少的手动(即人力)工作。然而,所观察到的目前提供云架构服务的系统(例如,基础设施即服务或IaaS提供商)的一个缺陷在于,它们不能提供对虚拟机的串行端口的自动远程访问。串行端口是VM中重要的虚拟硬件元件,就像以太网适配器、硬驱、中央处理单元、存储器等一样。串行端口的一种常见用途是用于调试和/或配置目的,其中管理员可以使用串行端口连接到设备以获取对高级配置设置的访问。

随着更复杂的云应用不断发展,需要将VM的虚拟端口完全集成到提供商的云系统(以实现自助服务和自动化)变得非常重要。

但是,用于提供对虚拟串行端口的访问的当前技术是有问题的。例如,一些当前的商业系统甚至不支持虚拟机串行端口。而其他商业系统可以将虚拟串行端口配置为连接到主机上的物理串行端口,映射到主机上的文件或与运行在同一台主机上的另一个虚拟机或应用直接连接。然而,这些方法对于现代复杂的云应用是有问题的,这些云应用潜在地采用多个行动一致的VM,这些VM可以放置在不同的主机(即服务器计算设备)上,并且可以在地理上分开并因此在不同的站点执行。此外,这些商业系统本质上是集中的,这意味着每个虚拟机都需要配置为指向外部设备,从而创建一个共享组件的环境,这个环境容易出现瓶颈和安全问题,更不用说它是单点故障/维护。此外,这些解决方案速度慢、不可扩展且通常不切实际,因为可能涉及大量的人力投入(例如,用于设置或配置其他设备),并且部署的VM的位置可能不是静态的或已知的,或甚至可能随时间变化(例如,通过迁移技术),因而需要额外的配置工作。

因此,市场上没有任何解决方案可以满足日益增长的对自动、强大、安全和快速访问正在迅速进入云端的现代复杂系统所使用的潜在在技术和地理上不同的VM的需求。此外,还没有解决方案可以完全支持由需要串行端口访问的多个VM组成的云应用(例如,vApp)的自助服务。例如,当前系统在部署的云应用的外部,需要静态配置,不支持实现持续集成的自动化,集中且容易成为大型环境的瓶颈,难以在大型环境中管理/维护,并且必须在每个部署站点处设置以提供功能。此外,还没有解决方案可以轻松支持已部署的VM的快速迁移,同时继续支持串行端口连接。

因此,本文公开了可以提供对“自助服务”云应用的VM的串行端口的自动访问的某些技术。因此,实施例可以提供对一个或多个部署的VM的串行端口的即时、专用访问,以例如创建完全隔离的测试台。

图1是示出根据一些实施例的在云应用内部署的协调代理和虚拟串行端口集中器模块的使用的高级框图。图1示出了系统100,其包括用户102、可以由用户102使用的客户端计算设备104(或者例如根据配置或程序至少半自主地进行操作)以及一个或多个服务器计算设备106,该服务器计算设备106包括云管理模块108、协调代理112和包括虚拟串行端口集中器(VSPC)模块120的部署的云应用114。

在一些实施例中,VSPC模块120可以与云应用114的VM图像一起提供在云应用模板110(例如,vApp模板,可能是可以使用的多个模板的目录)内,使得当云应用模板110由用户102选择并作为云应用114部署,VSPC模块120可以快速且容易地提供对作为相同的云应用114的一部分部署的VM 116A-116N的专用访问。

在一些实施例中,配置代理112(例如,守护进程等)可以被配置为“监视”或以其他方式识别已部署的云应用114,检测到云应用114的VM 116A-116N已经到达“运行”状态(例如,“在线”并且至少部分可操作),并且使得VM 116A-116N的串行端口被配置为使得它们连接到VSPC模块120。VSPC模块120可以分配本地端口以允许连接到其连接的VM 116A-116N中的每一个,并且可以维护将端口号126(或者更一般地,端口的标识符-其可以是或不是数字)与VM116A-116N的标识符127相关联的映射数据结构122。在一些实施例中,配置代理112可以向用户102、客户端计算设备104和/或云管理模块108提供该映射信息中的一些或全部(以及可能的其他信息,诸如VSPC模块120的外部可达的IP地址)。因此,客户端计算设备104(或另一计算设备)可以利用该映射信息(例如,与VM 116A相关联的端口号)以及VSPC模块120的外部IP地址124经由VSPC模块120来获得对该VM 116A的虚拟串行端口的访问,VSPC模块120可以在客户端和VM 116A之间中继(或转发、路由等)串行端口业务。

有利的是,每个用户因此可以快速获得他们自己的完全隔离的云应用,这些云应用可以经由各个VM的外部IP以及经由部署的VSPC模块120的不同端口进行访问(例如,使用telnet或安全外壳(SSH)),以到达VM的串行端口。此外,用户可以重新启动其专用的VSPC模块120而不影响在云中部署的任何其他用户或应用。此外,由于每个用户获得他们自己的专用VSPC模块120,因此性能相对较好,并且该解决方案可以跨各个站点完全便携,因为它不依赖于在远程站点部署和配置的外部/物理串行端口集中器。此外,云应用可以容易地将全部功能导出到远程云,云应用的VM可以容易地从一个设备迁移到另一个设备,并且VSPC模块120和/或配置代理112的功能可以使用轻量级软件(例如,小型Linux型VM等)来实现。

因此,在利用云应用模板的一些实施例中,用户(以及自动化工具)可以从目录中选择云应用模板以创建云应用,启动它,并以多种方式中的任一方式(诸如经由云应用元数据(例如,由云管理模块108提供)和/或经由电子邮件或短消息服务(SMS))获得串行端口访问信息,从而允许用户开始配置/测试/调试其应用,从而实现人和/或自动化测试(如持续集成)。因此,需要访问云应用串行端口访问的用户不再需要依靠静态测试床,担心性能问题或执行底层设备的维护;相反,这些用户现在可以使用支持具有串行端口连接的VM的真正的云自助服务产品。

回到图1,用户102可以利用客户端计算设备104来与云管理模块108交互。客户端计算设备104可以是具有计算和/或网络功能的各种设备中的任何设备,包括但不限于便携式手持设备(例如,蜂窝电话或平板电脑)、可穿戴设备(例如Google 显示器)、通用个人计算机或笔记本电脑、工作站计算机或其他类型的电子设备,诸如瘦客户端计算设备、可连接网络的游戏系统、个人消息收发设备等。

云管理模块108是为用户提供管理云或数据中心资源的能力的一个或多个模块的组。例如,云管理模块108可以向用户102提供web界面/入口(或者客户端计算设备104的应用程序接口(API))以允许用户选择、创建、编辑已部署或将要部署的云应用114等。关于云管理模块108的进一步细节将在本文中稍后参照图2提供。

因此,在圈“1”处,客户端计算设备104可以使用API或web入口命令150与云管理模块108交互以部署云应用114。例如,云管理模块108可以存储包括VSPC模块120的一个或多个应用模板。用户102可以通过让客户端计算设备104向云管理模块108发送API或web入口命令150来选择一个模板进行部署。

云应用114可以是各种格式的各种类型的应用中的任何一种。作为一个示例,云应用114可以是vApp,其是一个或多个VM的组(可以作为单个对象来管理),其可以通过网络进行通信(可以是隔离的),并且可以利用部署环境中的资源和服务。因此,云应用114可以是由多个相互依赖的VM实现的相当复杂的多层应用。vApp可以被认为是VM的容器,其为这些VM提供资源控制和管理——例如,包含多个VM的便携式自包含单元,其通常构成多层应用(如Web服务器、数据库、和安全服务器)。vApp可以为容器内的VM提供资源控制并定义网络配置。vApp可以非常便于携带,因为所包含的所有内容都可以转移到另一个虚拟基础设施,并且可以开电、断电、挂起、关闭和/或克隆整个vApp。

在一些实施例中,云应用114可以由云管理模块108从应用模板110实例化。在一些实施例中,云应用114模板(例如,vApp模板)是加载有操作系统、应用以及可能的数据的虚拟机映像。云应用模板110确保VM跨整个组织或跨多个用户一致地配置。在一些实施例中,VSPC模块120被包括在云应用模板内作为应用的一种基础设施组件——即,不是直接提供由模板定义的特定云应用114的期望功能的一部分。

因此,在图1的圈“2”处,云管理模块108利用VSPC模块120实例化(152)期望的云应用114。因此,根据云应用114的定义(如由对应的应用模板110表示),云管理模块108将使得一个或多个VM116A-116N和VSPC模块120根据应用模板110“启动”(或执行),应用模板110可以包括发动顺序和各种配置。如图所示,一个或多个VM116A-116N中的每一个都包括串行端口接口118A-118N。然而,在各种实施例中,不是每个VM 116A-116N都需要具有串行端口接口118A-118N,并且在一些实施例中,一个或多个VM 116A-116N可以具有多于一个的串行端口接口118A-118N。

在圈“3”处,协调代理112可以检测到一些或全部云应用114已经进入“运行”状态。例如,在一些实施例中,协调代理112可以检测到云应用114的特定VM 116A何时已经成功“启动”并准备好进行操作,并且在一些实施例中,协调代理112检测到整个云应用114何时已经成功“启动”。

如圈“3”所示,在所描绘的实施例中的协调代理112与云管理模块108通信以对运行的云应用114进行这种检测。例如,协调代理112可以执行“轮询”,诸如向云管理模块108周期性地发送请求(例如,API调用、函数调用等),以请求指示新的云应用114/VM 116是否已经进入运行状态的响应或描述在云管理模块108的管理下所有云应用114/VM 116的执行状态的响应。在其他实施例中,云管理模块108本身可以被配置为将某些通知“推送”到协调代理112。例如,云管理模块108可被配置为每当特定云应用114(或其任何云应用114或其子组件)改变状态或进入“运行”状态时发送通知。作为另一个示例,云管理模块108可以被配置为周期性地发送描述一个或多个云应用114或其子组件的执行状态的通知。

作为响应,协调代理112可以与云管理模块108交互以使得VM 116A-116N的串行端口接口118A-118N与VSPC模块120连接。例如,协调代理112可以与云管理模块108交互以获取云应用114的细节(例如,其VM的列表),识别云应用114内的VSPC模块120,识别VSPC模块120的IP地址124(例如,外部IP地址),并且指示云管理模块108在圈“4”处将VM 116A-116N的串行端口接口118A-118N与VSPC模块120连接。结果,在一些实施例中,VM 116A-116N将尝试打开与VSPC模块120的连接162。

对于每个连接162,VSPC模块120在圈“5”处可以分配本地端口以用于接收来自其他实体的应该发往VM 116A-116N的串行端口接口118A-118N的串行端口相关业务。然后,VSPC模块120可以将分配的端口(例如,端口号126)的标识符与对应的VM 116A的标识符127(例如,主机名、VM 116A的IP地址、关联连接162的套接字标识符等)。在一些实施例中,该关联信息被存储在映射数据结构122内。该映射数据结构122可以被保存(例如,存储在闪存、硬盘等中)在非易失性存储器中。此外,这可以允许在下一次同一云应用114(例如,vApp)在停转之后再次被“加电”时恢复映射,并且可以支持客户端VM 116A串行端口118A从VSPC模块120的先前保留端口单独断开和/或与之重新连接。

此时,在圈“6”处,协调代理112可以从VSPC模块120获取映射信息156。在一些实施例中,VSPC模块120被配置为在建立(或周期性地)建立新关联时向协调代理112报告该信息156,但是在一些实施例中,协调代理112可以替代地从VSPC模块120请求该信息156(例如,通过轮询等)。在一些实施例中,映射信息156包括关联的分配的本地端口号126和VM标识符127。

可选地,在圈“6A”处,协调代理112可以将该映射信息156提供回云管理模块108(例如,以更新与部署的云应用114相关联的元数据),从而使得其他模块或设备能够确定允许经由云管理模块108访问串行端口接口118的端口号126。例如,在圈“7B”处,可能已经与云管理模块108(例如,使用web门户或API)通信的客户端计算设备104可以被提供来自云管理模块108的连接性信息157,其可以包括映射信息156并且可能包括VSPC模块120的IP地址。可选地或另外地,在圈“7A”处,协调代理112可以输出/提供连接性信息158。可以向客户端计算设备104(例如,在电子邮件、SMS、推送通知中)或用户102(例如,经由另一计算设备,经由显示设备等)提供该信息158。本文稍后将参照图4提供包括映射信息156的连接性信息158的一个可能示例。

此时,客户端计算设备104可以通过使用与期望的“目的地”VM 116A相关联的IP地址124和特定端口号126来与VSPC模块120通信(例如,向其发送分组160),从而使用接收的连接性信息157/158连接到期望的VM 116A的虚拟化串行端口接口118A。例如,客户端计算设备104可以通过在IP分组中发送携带协议适当数据的分组160来开始telnet或SSH通信(或其他协议),该IP分组具有VSPC模块120的目的地IP地址124和由VSPC模块120分配的用于到达VM 116A的目的地端口号126。

一旦接收到分组160,VSPC模块120就可以使用映射数据结构122以确定将分组160发送到何处。例如,VSPC模块120可以使用接收的分组的端口号来执行对映射数据结构122的查找以搜索匹配的端口号126,并且识别关联的虚拟机标识符127(例如,主机名、IP地址、套接字标识符等),该标识符127可以用于确定分组160应该被发送到何处。

图2是示出根据一些实施例的关于图1的协调代理112、VSPC模块120和云管理模块108的进一步细节的框图200。

在该图200中,协调代理112被图示为包括执行守护进程208的虚拟机210。例如,在一种实现方式中,VM 210执行轻量级的基于Linux的操作系统,守护进程可以是作为服务执行的程序。在一些实施例中,如果需要,周期性地检查守护进程208的存在(例如,使用定时任务cronjob)并重新启动。在一些实施例中,守护进程208可以使用API(例如,REST API)和/或telnet/SSH接口与其它实体(例如,云管理模块108或VSPC模块120)通信。在一些实施例中,守护进程208可以与外部简单邮件传输协议(SMTP)邮件服务器222通信以便提供串行端口接口118的连接信息158。

在一些实施例中,协调代理112可以与云管理模块108分离,从而允许使用各种第三方提供的云管理模块108。然而,在一些实施例中,协调代理112可以集成在云管理模块108的各个组件中,如虚线所示。

所示实施例的云管理模块108包括至少两个不同但相互关联的模块:虚拟数据中心管理器(VDM)模块202和虚拟资源管理器(VRM)模块204。如上所述,这些中的任一个可以包括协调代理112。

VRM模块204可以是控制计算环境中的虚拟机的中央管理应用。VRM模块204的一个示例性实现是VMware的vCenter Server(服务器)。在一些实施例中,VRM模块204可以是管理虚拟基础设施主机、虚拟机和虚拟资源(CPU、存储器、存储设备和网络)的应用。VRM模块204可以与一个或多个管理程序206交互以控制/管理各种涉及的云应用114的VM 116A-116N。管理程序可以被认为是允许多个操作系统同时在主机上运行的平台。管理程序206的一个示例性实现是来自VMware的vSphere Hypervisor(ESXi)。

相比之下,VDM模块202处于比VRM模块204更高的抽象级别,并且可以管理多个虚拟基础设施并将虚拟基础设施资源抽象为软件定义的存储、网络、安全和可用性资源。因此,在一些实施例中,VDM模块202可以经由所包括的web入口和/或API来实现VM的自部署。VDM模块202的一个示例性实现是VMware的vCloud Director(指挥方)。

因此,在一些实施例中,用户102(经由客户端计算设备104)不必知道VRM模块204,并且不需要关心主机、集群、资源池等,并且不需要担心哪些VM在哪些主机上,是否有可用于运行VM的集群资源,VM是否安全等。相反,所有这些顾虑都可以由VDM模块202提取出来,因此用户只需要关心他们自己的资源。

所示的VSPC模块120示出了具有两个条目的部分映射数据结构122:第一条目具有与本地端口号126“60001”相关联的VM标识符127“SIM-2RP-SSR1-21”(可能是第一VM 116A的主机名),其中本地端口号126“60001”提供对第一VM 116A的串行端口接口118A的外部访问。所示出的映射数据结构122还具有第二条目,该第二条目具有与用于第二VM 116B的本地端口号126“60000”相关联的VM标识符127“SIM-2RP-SSR1-22”(可能是第二VM 116B的另一主机名)。

在该示例中,所示的VSPC模块120包括可以运行作为服务的程序的虚拟机224,该程序可以在引导VM 224时启动并且可以周期性地(例如,经由cronjob)进行检查。

图3是图示根据一些实施例的自动提供对云应用的一个或多个虚拟机的一个或多个串行端口接口的远程访问的组合序列和流程图300。图3包括由客户端计算设备104、云管理模块108、协调代理112、VSPC模块120和VM 116A-116N(诸如图1中示出的那些)执行的操作以及其间的信令。

在框302处,客户端计算设备104请求部署云应用114。例如,客户端计算设备104可以与由云管理模块108(例如,VDM模块202)提供的web入口进行交互以指示云管理模块108部署云应用114。在一些实施例中,客户端计算设备104可以向云管理模块108发送定义云应用114或其各方面的命令,诸如云应用114的所需资源类型、资源量等。在其他实施例中,框302可包括客户端计算设备104发送API请求或进行功能调用(等)以创建/定义和/或请求部署云应用114。

在一些实施例中,框302包括客户端计算设备104从云管理模块108获取云应用114的目录(例如,一个或多个列表),将目录的描述符呈现给用户,接收从目录中选择云应用114中的一个的用户输入;以及客户端计算设备104向云管理模块108发送部署该选择的云应用114的请求。

在一些实施例中,VSPC模块120被“包括”在云应用114中,云应用114可以或可以不明确地“显示”给客户端计算设备104。例如,客户端计算设备104可以或者可以不明确地意识到被包括在云应用114中的VSPC模块120。在一些实施例中,云管理模块108将VSPC模块120添加到云应用114。

在框304处,响应于框302,云管理模块108部署云应用114。框304可以包括云管理模块108使VSPC模块120和VM 116A-116N执行,这可以包括与管理程序206的通信。

在某一时刻,在框306处,协调代理112检测到处于“运行”状态的云应用。方框306可以发生多次(例如,基于每个虚拟机),其中流程可以针对(VM 116A-116N的)每个“运行”的虚拟机继续通过方框308-322中的一个或多个;然而,在一些实施例中,例如当所有需要的VM 116A-1 16N已经进入“运行”状态时,框306可以针对部署的云应用114仅发生一次。运行状态是虚拟机(或所有虚拟机)基本上针对其期望目的而操作的点,并且可包括虚拟机何时“启动并运行”——例如已成功引导操作系统和/或应用。

框306可以包括协调代理112“轮询”一个或多个云管理模块108以获得新部署的云应用114和/或VM 116A-116N的通知,和/或可以包括云管理模块108被配置为直接向协调代理112或中介(例如,日志文件)报告此类部署(或VM 116A-116N到达“运行”状态),其中协调代理112可以检测到满足“运行”状态的发生。然而,在一些实施例中,协调代理112向云管理模块108查询云应用114的列表以便识别正在运行但尚未配置串行端口的任何云应用114。例如,在一些实施例中,协调代理112试图识别没有存储在云管理模块108处的元数据的任何云应用114,所述元数据描述针对该云应用114的完全配置的VSPC模块120。

在框308处,协调代理112可以识别云应用114的VSPC模块120。例如,协调代理112可以向云管理模块108查询云应用114的元素的列表(例如,所有虚拟机和/或应用的实体的列表),并且识别哪个元素是VSPC模块120。例如,在一些实施例中,可以通过使用已知被VSPC模块使用(或分配给VSPC模块)的公共元素标识符(或其部分,诸如元素标识符中的“vspc”前缀)来标识元素列表中针对VSPC模块120的条目。然而,在一些实施例中,协调代理112可以向云管理模块108发送请求消息,寻找可以由云管理模块108返回的针对VSPC模块的信息。

在框310处,协调代理112可以识别VSPC模块120的IP地址。在一些实施例中,IP地址是“外部”IP地址,这意味着它可以由执行云应用114的云应用114和/或服务器计算设备106的组之外的客户端使用。例如,外部IP地址可被认为是“公共”IP地址或全球可路由的单播IP地址。然而,在一些实施例中,VSPC模块120可以是在专用网络中使用的“内部”或“专用”IP地址。

在框312处,协调代理112可以识别云应用114的VM 116A-116N。在一些实施例中,协调代理112被配置为仅识别云应用114的所有VM 116A-116N中包括串行端口接口118A-118N的那些。在一些实施例中,协调代理112然后识别由这些识别的VM 116A-116N利用的IP地址(例如,外部IP地址或内部IP地址)。这些VM 116A-116N的识别可以与关于框308描述的操作类似地发生,并且因此协调代理112可以以各种方式获取描述云应用114的信息(例如,响应于向云管理模块108提出请求,响应于与分离的实体(例如,日志文件)交互,在没有提出请求的情况下从云管理模块108接收信息等)。

在框314处,协调代理112可以请求所识别的VM 116A-116N的串行端口(来自框312)指向VSPC模块120的所识别的IP地址(来自框310)。在一些实施例中,框314包括协调代理112向云管理模块108发送执行该功能的请求。然而,在其他实施例中,协调代理112可以配置有通过直接配置VM 116A-116N中的每一个来独自执行该任务所需的逻辑(这里未示出)。

作为响应,在框316处,云管理模块108将VM 116A-116N的串行端口接口118配置为“指向”VSPC模块120的IP地址。这导致在框318处,一个或多个VM 116A-116N中的每一个连接到VSPC模块120(例如,打开诸如传输控制协议(TCP)连接、telnet连接、安全连接等的连接)。VSPC模块120稍后可以使用这些连接来将数据从一个或多个客户端(例如,客户端计算设备104)发送到VM 116A-116N的串行端口接口118A-118N,并且类似地接收来自VM 116A-116N的串行端口接口118A-118N的数据以发送到一个或多个客户端。

对于“连接”到VSPC模块120的VM 116A-116N(在框318),在框320,VSPC模块120可以被配置为为每个这样的VM 116A-116N分配本地端口。这可以包括选择随机端口并确定它是否已经(或尚未)被使用,或者这可以包括从预留给VSPC模块120的端口列表中选择用于该特定目的的端口。

然后,在框322,VSPC模块120可以填充映射数据结构(例如,表格、阵列、链表,散列映射等)以将分配的端口的标识符与对应的VM 116A-116N的标识符关联(或“映射”)。在一些实施例中,所分配端口的标识符可以是端口号,并且在一些实施例中,VM 116A-116N的标识符可以是虚拟机主机名或别称、与VM 116A-116N的连接的连接标识符(例如端口、元组、连接句柄等)、VM 116A-116N的IP地址等。在一些实施例中,框322中的该映射数据结构被持久保存到非易失性存储设备,该设备可以有利地维护这些映射,以便当云应用114脱机然后再次联机时,或者当虚拟机可能崩溃并重启等等时,实现VM 116A-116N的无缝串行端口连接。

在框324处,协调代理112然后可以从映射数据结构获取数据。在一些实施例中,协调代理112向VSPC模块120发送请求以获得来自映射结构的数据,例如将端口标识符映射到VM标识符的完整关联条目集合。然而,在其他实施例中,VSPC模块120可以被配置为将该信息提供给协调代理112而无需接收请求。在一些实施例中,协调代理112将该数据持久保存在非易失性存储设备中。

在框326处,协调代理112然后可以将来自映射数据结构的数据提供给云管理模块108,诸如将VSPC模块120的分配的端口映射到VM 116A-116N的相应标识符的部分或完整条目集合。例如,在一些实施例中,可以将该数据与由云管理模块108存储的云应用114元数据一起保存,然后可能在某个时间点提供给其他设备(例如,客户端计算设备104)——参见可选的框327,其中客户端计算设备104获取端口(以及可能的VSPC模块120的IP地址)信息。

然而,在一些实施例中,在框328处,协调代理112使得来自映射数据结构的数据作为“报告消息”被提供给客户端计算设备104和/或用户。在该图中,箭头用小点表示,表示在许多情况下但并非全部情况下,连接可能不是直接连接。例如,在一些实施例中,协调代理112可以将该数据发送到电子邮件服务器,该电子邮件服务器然后可以将电子邮件发送到用户的另一个电子邮件服务器,然后最终被递送到客户端计算设备104的邮件应用。这种电子邮件的例子稍后在本文中结合图4来提供。由协调代理112使用的该目的地地址(例如,电子邮件地址)可以由协调代理112基于对云管理模块108进行的新的或先前的查询(例如在块306-314的一个或多个中的消息传送期间)来确定。

在另一个实施例中,协调代理112可以发送映射数据以经由另一类型的电子消息最终到达客户端计算设备104,所述电子消息包括但不限于SMS消息、即时/个人消息、语音邮件、传真、寻呼机、超文本传输协议(HTTP)POST消息等。

因此,在某一时刻,客户端计算设备104已经获取了VSPC模块120的IP地址以及可以被利用以到达特定VM 116A-116N的一个或多个端口。然后,为了利用特定VM 116A的虚拟化串行端口118A,客户端计算设备104可以在框330处通过使用VSPC模块120的IP地址作为目的地地址以及使用特定端口号作为目的地端口来发送消息,进行连接。

在框332处,VSPC模块120将接收该消息,并且可以利用映射数据结构(以及消息到达的端口的标识符)来确定该消息将被中继到一个或多个VM 116A-116N中的哪个。在一些实施例中,VSPC模块120针对专用于客户端计算设备104的该通信会话打开新连接,但是在其他实施例中可以利用现有连接。

此时,客户端计算设备104与目标VM 116A的虚拟化串行端口形成了“连接”,并且可以执行其期望的任何配置、测试等任务。例如,在一些实施例中,该连接可以用于运行自动化测试,例如用于持续集成。

图4示出根据一些实施例的用于传送可达性信息以实现对云应用114的一个或多个虚拟机116的一个或多个串行端口接口的自动远程访问的示例性报告消息400。该报告消息400包括电子邮件消息,并且仅用典型电子邮件消息的一些字段来说明。例如,示出了“TO(收信人)”字段和“SUBJECT(主题)”字段,而“FROM(发信人)”字段未示出——如本领域技术人员已知的那样,这里省略了许多未示出的潜在字段以避免模糊本发明的实施例的各方面。

在该示例中,报告消息400向云应用114的用户通知云应用(或“vApp”)的名称:vApp123。报告消息400还提供第一VM 410A的数据和第二VM 410B的数据,其指示存在可以进行串行端口访问的云应用114的两个虚拟机。在这个例子中,示出了两个VM标识符402:sim-2rp-ssr1-21和sim-2rp-ssr1-22。对于这些VM标识符402中的每一个,提供VM串行端口地址404。每个VM串行端口地址404包括VSPC模块IP地址406(“10.126.210.30”)和用于到达相关VM串行端口的分配的VSPC模块端口408:第一个是“60001”,第二个是“60000”。在该示例中,报告消息400指示连接的类型——即,用户将创建连接到串行端口的telnet连接。当然,可以使用许多其他连接类型,其可以与串行端口通常支持的连接(例如,明文telnet)或者在VSPC模块120与VM 116A-116N之间使用的连接(例如,可能是明文)可能非常不同(例如,加密的连接类型)。

该报告消息400还指示用于VM之一的外部IP地址(“sim-2rp-ssr1-21”是10.126.210.29),以及VSPC模块120的外部IP地址(“vSPC”是10.126.210.30,具有“ssh”的连接类型)。因此,第二个VM(“sim-2rp-ssr-22”)当前没有配置外部IP地址,但仍可通过其提供的串行端口连接来到达,如本文所述。

图5是示出根据一些实施例的由协调代理112执行的用于自动提供对云应用114的一个或多个VM 116A-116N的一个或多个串行端口接口118A-118N的远程访问的示例性流程500的流程图。在一些实施例中,这些操作可以由图1的服务器计算设备106来执行。

将参照其他附图的示例实施例来描述这个或其他流程图中的操作。然而,应当理解:流程图中的操作可以由本发明中除了参照其他附图描述的那些实施例之外的实施例来执行,且本发明的参照这些其他附图讨论的实施例可以执行与参照流程图来讨论的那些实施例不同的操作。

在框505处,流程500包括确定与云应用的一个或多个虚拟机一起部署的VSPC模块的IP地址。VSPC模块特定于云应用;因此,它不会被任何其他云应用“共享”。在一些实施例中,VSPC模块包括执行虚拟串行端口集中器模块的VM,并且该VM与云应用114的一个或多个其他VM一起部署。在一些实施例中,VSPC模块与云应用VM在相同的一个或多个服务器计算设备上执行。

在框510处,流程500包括使得一个或多个虚拟机中的每一个的串行端口接口与VSPC模块通信地耦合。在一些实施例中,这包括将命令发送到云管理模块(该云管理模块部署了云应用并且为云应用提供管理功能)以将VM的串行端口与VSPC模块耦合。在一些实施例中,该命令识别(一个或多个)VM以及串行端口将与之耦合的VSPC模块的所确定的IP地址(例如,来自框505)。在一些实施例中,由此使VM打开与VSPC模块的通信连接。

在框515处,流程500包括从VSPC模块获取与一个或多个虚拟机相关联的VSPC模块的一个或多个端口号。所述一个或多个端口号中的每一个都可以用来通过VSPC模块对相应虚拟机的串形端口接口进行远程访问。在一些实施例中,框515还包括针对VSPC模块的一个或多个端口号中的每一个获取可以使用该端口号访问的对应VM的标识符。

在框520处,流程500包括使VSPC模块的一个或多个端口号和IP地址被提供给客户端/用户,从而使客户端/用户能够远程访问一个或多个串行端口接口。在一些实施例中,框520包括向云管理模块提供至少一个或多个端口号(以及可能的对应VM的标识符)以便作为云应用的元数据保存,其中客户端/用户可以利用云管理模块提供的网络入口或API来访问该一个或多个端口号。在一些实施例中,框520包括传送要传递到客户端/用户的消息。举例来说,这可以包括使用电子邮件消息、SMS消息、API调用等来发送至少一个或多个端口号(以及可能还有VSPC模块的外部IP地址)。借助VSPC模块的端口号和外部IP地址,客户端因此能够私密且有效地利用所部署的云应用的VM的虚拟串行端口接口。

图6是示出根据一些实施例的由VSPC模块120执行的用于自动提供对云应用114的一个或多个VM 116A-116N的一个或多个串行端口接口118A-118N的远程访问的示例性流程600的流程图。在一些实施例中,这些操作可以由图1的服务器计算设备106来执行。

在框605处,流程600包括从一个或多个虚拟机中的虚拟机接收一个或多个分组,以创建用于在VM和其他设备之间传输的串行端口业务的连接。

在框610处,流程600包括响应于在框605处接收到分组,分配本地端口以与发送分组的虚拟机相关联,并且在框615处,在数据结构中将虚拟机的标识符与分配的本地端口的标识符相关联。在一些实施例中,分配的本地端口的标识符包括端口号。在各种实施例中,虚拟机的标识符可以是各种类型的信息,包括主机名、套接字标识符或其他类型的连接标识符、IP地址等中的一个或多个。

在框620处,流程600包括将至少所分配的本地端口的标识符发送给协调代理以提供给客户端。在一些实施例中,框615还包括发送VM 116A-116N的一个或多个标识符,其中的每一个标识符可以与本地端口的标识符中的一个相关联。

在框625,流程600可选地包括在分配的本地端口处从客户端的远程计算设备接收一个或多个分组,该分组携带要传递到虚拟机的串行端口接口的数据。在框630处,流程600可选地包括基于在数据结构中执行查找来将虚拟机识别为所述一个或多个分组的最终目的地。所述查找可以利用所分配的接收分组的本地端口的标识符,并且可以识别与本地端口标识符相关联的VM标识符。在框635处,流程600可选地包括将一个或多个分组发送到所识别的虚拟机。

这里公开的技术和操作可以全部或部分地使用一个或多个电子设备(在此也被称为计算设备)来实现。电子设备使用机器可读介质(也被称为计算机可读介质)来(内部和/或通过网络使用其他电子设备)存储和传输代码(其由软件指令构成,且有时被称为计算机程序代码或计算机程序)和/或数据,机器可读介质是例如机器可读存储介质(例如,磁盘、光盘、只读存储器(ROM)、闪存设备,相变存储器)和机器可读传输介质(也被称为载体)(例如,电、光、无线电、声或其他形式的传播信号——例如载波、红外信号)。从而,电子设备(例如,计算机)包括硬件和软件,例如一个或多个处理器的集合,其耦合到用于存储在该处理器集合上执行的代码和/或用于存储数据的一个或多个及其可读存储介质。例如,电子设备可以包括包含代码在内的非易失性存储器,因为即使在电子设备关闭(当掉电时)时非易失性存储器也可以保持代码/数据,以及在打开电子设备时,通常将要由该电子设备的处理器执行的该部分代码从较慢的非易失性存储器中拷贝到该电子设备的易失性存储器(例如,动态随机存取存储器(DRAM),静态随机存取存储器(SRAM))中。一些电子设备还包括用于与其他电子设备建立网络连接(以使用传播信号来发送和/或接收代码和/或数据)的一个或多个物理网络接口的集合。本发明实施例的一个或多个部分可以使用软件、固件,和/或硬件的不同组合来实现。

图7是示出可以在一些实施例中使用的示例性数据处理系统700的框图。数据处理系统700包括一个或多个微处理器705(或处理电路)和连接的系统组件(例如,多个连接的芯片)。或者,数据处理系统700可以是片上系统。一个或多个这样的数据处理系统700可以被用来实现客户端计算设备104和/或服务器计算设备106的功能。

图示的数据处理系统700包括存储器710,存储器710耦合到一个或多个微处理器705。存储器710可以用于存储数据、元数据和/或由一个或多个微处理器705执行的程序。例如,所描绘的存储器710可以存储协调代理代码730和/或VSPC模块代码735,所述代码在由微处理器705执行时使数据处理系统700(例如,服务器计算设备106)实施VSPC模块120和/或协调代理112,以通过自动化串行端口集中技术提供对自供应云应用的虚拟机串行端口接口的远程访问。存储器710可以包括易失性和非易失性存储器中的一个或多个,诸如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储设备。存储器710可以是内部或分布式存储器。

数据处理系统700还包括输入/输出(I/O)设备和接口725,其可以包括麦克风和/或扬声器,用于例如回放音乐或其他音频,接收要由微处理器705执行的语音指令,播放音频通知等。显示控制器和显示设备720为用户提供视觉用户界面,例如图形用户界面(GUI)元素或窗口。

数据处理系统700还包括一个或多个输入或输出(“I/O”)设备和接口715,提供所述设备和接口715以允许用户向系统700提供输入,从系统700接收输出,以及向系统700传送数据和从系统700接收数据。这些I/O设备和接口715可以包括鼠标、小键盘、键盘、触摸面板或多点触摸输入面板、相机、光学扫描仪、其他已知的I/O设备或这些I/O设备的组合。触摸输入面板可以是用触笔或手指激活的单触摸输入面板,或者是由一个手指或触笔或多个手指激活的多触摸输入面板。触摸输入面板能够区分一个或两个或三个或更多个触摸,并且能够将源自这些有差别触摸的输入提供给处理系统700的其他组件。

数据处理系统700还可以包括可以用于与另一个设备或系统进行通信的一组网络和端口接口。例如,网络和端口接口715可以包括用于扩展坞(dock)的连接器或通用串行总线(USB)接口、FireWire、Thunderbolt、以太网等的连接器,以将系统700与另一设备、外部组件、或网络连接。示例性网络和端口接口715还可以包括无线收发器,诸如电气和电子工程师协会(IEEE)802.11收发器、红外收发器、蓝牙收发器、无线蜂窝电话收发器(例如,2G,3G,4G)或另一无线协议,以将数据处理系统700与另一设备、外部组件或网络进行连接,并接收所存储的指令、数据、令牌等。应该理解的是,可以使用一个或多个总线来互连图7中所示的各种组件。

应该理解,未示出的附加组件也可以是系统700的一部分,并且在某些实施例中,比图7中所示部件更少的部件也可以在数据处理系统700中使用。

图8A和图8B提供了根据一些实施例的服务器计算设备(800,850)和每个服务器计算设备(800,850)中包括的模块的逻辑视图。并非每个模块都必须作为物理独立单元来实施。部分或全部模块可以组合在一个物理单元中。而且,这些模块不需要严格地用硬件来实现。可以想象,这些单元可以通过硬件和软件的组合来实现。例如,服务器计算设备800和服务器计算设备850中的一个或两个可以包括执行存储在非暂时性存储介质中或固件中的程序指令的一个或多个中央处理单元以执行模块的功能。

图8A示出了根据一些实施例的实现VSPC模块120的服务器计算设备800的示例功能框图。服务器计算设备800可以包括确定模块805、耦合模块810、获取模块815和提供模块820。

确定模块805可以适用于确定与云应用114的一个或多个VM 116一起部署的并且特定于云应用114的VSPC模块120的IP地址124。耦合模块810可以适用于使得一个或多个VM 116中的每一个的串行端口接口118与VSPC模块120通信地耦合。获取模块815可以适用于从VSPC模块120获取VSPC模块120的与一个或多个VM 116相关联的一个或多个端口号126,其中一个或多个端口号126中的每一个可以用于通过VSPC模块120远程访问对应VM 116A的串行端口接口118A。提供模块820可以适用于使VSPC模块120的一个或多个端口号和IP地址被提供给客户端,从而使得客户端能够远程访问一个或多个串行端口接口118。

图8B示出根据一些实施例的实现协调代理112的服务器计算设备850的示例功能框图。服务器计算设备850可以包括接收模块855、端口分配模块860、映射模块865和报告模块870。然而,在一些实施例中,服务器计算设备850除了(或者替代地)模块855-870之外还可以包括串行业务接收模块875、查找模块880和/或发送模块885。

接收模块855可以适用于从一个或多个VM 116的VM 116A接收一个或多个分组,以创建用于要传输的串行端口业务的连接。端口分配模块860可以适用于响应于接收所述一个或多个分组而分配要与虚拟机相关联的本地端口。映射模块865可以适用于在数据结构122中将VM 116A的标识符与所分配的本地端口的标识符相关联。报告模块870可以适用于将分配的本地端口的标识符发送给协调代理112以提供给客户端。

在包括串行业务接收模块875的实施例中,其可适用于在本地端口处从客户端的远程(客户端)计算设备104接收携带要传递到VM116A的串行端口接口118A的数据的一个或多个分组160。在包括查找模块880的实施例中,其可以适用于基于使用分配的本地端口的标识符在数据结构122中执行查找,来将VM 116A识别为一个或多个分组160的目的地。在包括发送模块885的实施例中,它可以适用于将一个或多个分组发送到VM 116A。

已经在计算机存储器内的数据位的处理的算法和符号表示方面呈现了在前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于向该领域的其他技术人员有效传递他们的工作内容的方式。算法在这里通常被设想为导致期望结果的自相一致的处理的顺序。所述处理是需要对物理量的物理操纵的处理。通常(尽管并不一定),这些量采用能够被存储、传送、组合、比较和以其它方式操纵的电或磁信号的形式。已证明有时为了方便,主要是由于通常使用的原因,这些信号可以利用比特、值、元素、符号、特征、项、数字等来进行表示。

然而,应当记住,所有这些和类似的术语应与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非如以上讨论中显而易见的另行明确声明,否则应当意识到:在说明书全文中,使用诸如″处理″或″运算(computing)″或″计算(calculating)″或″确定″或″显示″等之类的术语的讨论指代计算机系统或类似电子计算设备的动作和进程,该计算机系统或类似电子计算设备将表示计算机系统的寄存器和存储器中的物理(电子)量的数据操作和变换为类似表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备中的物理量的其他数据。

这里给出的算法和显示并不固有地涉及任何特定的计算机或其他装置。各种通用系统可以与根据本文的教义的程序一起使用,或者可以证明能够方便地构造更专门的装置来执行所需的方法处理。从上面的描述中可以看出各种这些系统所需的结构。另外,没有参考任何特定的编程语言来描述本发明的实施例。应该理解的是,可以使用各种编程语言来实现本文所描述的本发明实施例的教导。

在前面的说明书中,已经参考本发明的具体示例性实施例描述了本发明的实施例。显而易见的是,可以对其进行各种修改而不背离如在以下权利要求中阐述的本发明的更广泛的精神和范围。因此,说明书和附图被认为是说明性的而不是限制性的。

在整个说明书中,已经通过流程图呈现了本发明的实施例。应该理解,这些流程图中描述的处理和处理的顺序仅仅是为了说明的目的,而不是为了限制本发明。尽管附图中示出的流程图显示了由某些实施例执行的操作的特定顺序,但是应当理解,这种顺序是示例性的(例如,备选实施例可以以不同的顺序执行操作,组合某些操作,某些操作相同等)。因此,本领域的普通技术人员将认识到,可以对流程图做出变化而不脱离如所附权利要求中所阐述的本发明的更宽泛的精神和范围。各种修改和等同物在下列权利要求的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1