虚拟机串口的通信方法及装置.pdf

上传人:a1 文档编号:177795 上传时间:2018-01-31 格式:PDF 页数:18 大小:2.48MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410256595.7

申请日:

2014.06.10

公开号:

CN104092661A

公开日:

2014.10.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更 IPC(主分类):H04L 29/06变更事项:申请人变更前:深圳市深信服电子科技有限公司变更后:深信服科技股份有限公司变更事项:地址变更前:518052 广东省深圳市南山区麒麟路1号科技创业服务中心410-413室变更后:518000 广东省深圳市南山区学苑大道1001号南山智园A1栋一层|||实质审查的生效IPC(主分类):H04L 29/06申请日:20140610|||公开

IPC分类号:

H04L29/06; G06F9/455

主分类号:

H04L29/06

申请人:

深圳市深信服电子科技有限公司

发明人:

谢鸿钊

地址:

518052 广东省深圳市南山区麒麟路1号科技创业服务中心410-413室

优先权:

专利代理机构:

深圳市世纪恒程知识产权代理事务所 44287

代理人:

胡海国

PDF下载: PDF下载
内容摘要

本发明公开一种虚拟机串口的通信方法及装置,通过虚拟机各串口对应的串口代理程序及虚拟机运行的物理主机对应的主机代理程序实现虚拟机的串口通信。本发明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过socket、管道、文件等方式进行通信,本发明实施例无需关心串口客户端虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷,且在物理主机对应的IP地址发生改变时,也丝毫不影响虚拟机之间的通信,提高虚拟机串口通信的便捷性、智能性和易维护性。

权利要求书

1.  一种虚拟机串口的通信方法,其特征在于,包括以下步骤:
第一串口代理程序在启动时,从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;
第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;
所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。

2.
  如权利要求1所述的方法,其特征在于,所述根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,包括:
当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。

3.
  如权利要求1所述的方法,其特征在于,所述根据识别出的所述第二虚拟机运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序,包括:
当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,所述第一串口代理程序将所述串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;
所述第一主机代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;
所述第二主机代理程序根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。

4.
  如权利要求1或2或3所述的方法,其特征在于,所述第一串口代理程序在启动时,从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机,之前还包括:
响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。

5.
  如权利要求4所述的方法,其特征在于,所述启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。

6.
  一种虚拟机串口的通信装置,其特征在于,所述虚拟机串口的通信装置上运行有串口代理程序以及主机代理程序;
所述虚拟机串口的通信装置包括:
识别模块,用于在启动第一串口代理程序时,从对应的配置参数中识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;
发送模块,用于:
基于运行的第一串口代理程序,接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;
基于所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。

7.
  如权利要求6所述的通信装置,其特征在于,所述发送模块还用于:
当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,基于 所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。

8.
  如权利要求6所述的装置,其特征在于,所述发送模块还用于:
当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,基于所述第一串口代理程序将串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;
基于所述第一主机代理程序,接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;
基于所述第二主机代理程序,根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。

9.
  如权利要求6或7或8所述的装置,其特征在于,还包括:
启动模块,用于响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。

10.
  如权利要求9所述的装置,其特征在于,所述启动模块还用于:
启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。

说明书

虚拟机串口的通信方法及装置
技术领域
本发明涉及虚拟化技术,尤其涉及一种虚拟机串口的通信方法及装置。
背景技术
通过虚拟化技术一台物理主机可以虚拟出多台虚拟机,而虚拟机之间并不能使用数据线连接,但可以让两台虚拟机之间进行串口通信;目前常用的做法是将虚拟机串口重定向到一个通信管道、socket(插口)、真实串口等;但这种重定向的方式只能选择其中一个虚拟机作为服务端,另一个虚拟机为客户端,且服务端虚拟机必须先于客户端虚拟机启动;若客户端先启动,可能启动失败或无法与服务端建立通信;此时必须关闭客户端虚拟机,按先服务端虚拟机后客户端虚拟机的顺序重启虚拟机才能使用。当需要建立跨物理机上的虚拟机间串口通信时,需要指定物理机的IP地址;一旦物理机的IP地址发生变化则上述虚拟机之间将无法建立连接。且上述实现方式对于动态获取IP地址的物理机来说基本不可用。
因此可见,虚拟机之间直接重定向串口的通信方案配置困难,可用性很差;且跨物理主机的虚拟机之间进行串口通信时需要指定主机的IP地址,一旦主机的IP地址更改则无法进行通信,可维护性差。
发明内容
鉴于以上内容,有必要提供一种虚拟机串口的通信方法及装置,使得虚拟机之间的串口通信无需指定服务端虚拟机和客户端虚拟机且不受物理机IP地址的影响。
本发明实施例公开了一种虚拟机串口的通信方法,包括以下步骤:
第一串口代理程序在启动时从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;
第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数 据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;
所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。
优选地,所述根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,包括:
当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。
优选地,所述根据识别出的所述第二虚拟机运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序,包括:
当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,所述第一串口代理程序将串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;
所述第一主机代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;
所述第二主机代理程序根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。
优选地,所述第一串口代理程序在启动时从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机,之前还包括:
响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。
优选地,所述启动物理主机的同时启动对应的所述主机代理程序,启动 所述虚拟机的同时启动对应的所述串口代理程序。
本发明实施例还公开一种虚拟机串口的通信装置,所述虚拟机串口的通信装置上运行有串口代理程序以及主机代理程序;
所述虚拟机串口的通信装置包括:
识别模块,用于在启动第一串口代理程序时,从对应的配置参数中识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;
发送模块,用于:
基于运行的第一串口代理程序,接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;
基于所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。
优选地,所述发送模块还用于:
当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,基于所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。
优选地,所述发送模块还用于:
当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,基于所述第一串口代理程序将串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;
基于所述第一主机代理程序,接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;
基于所述第二主机代理程序,根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。
优选地,所述虚拟机串口的通信装置还包括:
启动模块,用于响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。
优选地,所述启动模块还用于:
启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。
本发明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过socket、管道、文件等方式进行通信,本发明实施例无需关心串口客户端虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷。
附图说明
图1是本发明虚拟机串口的通信方法第一实施例流程示意图;
图2是本发明虚拟机串口的通信方法第一实施例对应的虚拟机运行环境结构示例图;
图3是本发明虚拟机串口的通信方法第二实施例流程示意图;
图4是本发明虚拟机串口的通信方法第二实施例对应的串口间通信时序图;
图5是本发明虚拟机串口的通信方法第三实施例流程示意图;
图6是本发明虚拟串口的通信装置第一实施例功能模块示意图;
图7是本发明虚拟串口的通信装置第二实施例功能模块示意图。
本发明实施例目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明虚拟机串口的通信方法及装置中,所述虚拟机可以理解为通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算 机系统,且一台高性能的物理主机上可以虚拟出多台虚拟机。所述虚拟机操作系统可以理解为所述虚拟机运行的系统,比如Guest系统等。所述串口即串行接口的简称,也成为串行通信接口,是采用串行通信方式的扩展接口比如常用的COM(Component Object Mode,组件对象模型)接口;串口可以应用于两台通信设备或者两台计算机之间的互联及数据传输,串口也可以通过直接电缆连接的方式实现双机互联。本发明下述实施例对以上内容均不再赘述。
本发明提供了一种虚拟机串口的通信方法第一实施例;本实施例中,基于串口进行通信的两台虚拟机运行在同一物理主机上;如图1所示,本发明虚拟机串口的通信方法包括以下步骤:
步骤S01、第一串口代理程序在启动时,从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;
本实施例中,将第一虚拟机操作系统、第一虚拟机、第一串口、第一串口代理程序分别对应简称为:虚拟机A操作系统、虚拟机A、串口A、串口A代理程序;同样地,将第二虚拟机操作系统、第二虚拟机、第二串口、第二串口代理程序分别对应简称为:虚拟机B操作系统、虚拟机B、串口B、串口B代理程序。
虚拟机A通过虚拟机A操作系统向串口A写入串口数据,并将写入的串口数据通过串口A发送至串口A代理程序;串口A代理程序在启动时,从对应的配置参数中可以识别出与该串口A进行通讯连接的虚拟机;比如,串口A识别出该虚拟机为虚拟机B,以及该虚拟机B所运行的物理主机、该虚拟机B所对应的串口B来接收对应的串口数据等信息。本实施例中所述的配置参数可以理解为:所述第一串口代理程序的启动参数,或者运行第一串口代理程序的第一虚拟机的配置参数。
步骤S02、第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;
串口A代理程序接收虚拟机A操作系统通过该串口A发送的串口数据后, 串口A代理程序根据识别出的所述第二虚拟机比如虚拟机B所运行的物理主机,将上述串口数据发送至虚拟机B所运行的物理主机对应的主机代理程序;本发明实施例以虚拟机A和虚拟机B运行在同一物理主机上为例进行描述;串口A代理程序根据识别出的虚拟机B所运行的物理主机与该虚拟机A运行的物理主机为同一物理主机上时,串口A代理程序将对应的串口数据发送至该物理主机的主机代理程序上。该主机代理程序将接收的所述串口数据转发至该虚拟机B对应的串口B代理程序。
本实施例中,串口A对应的串口A代理程序将对应的串口数据发送至串口A对应的物理主机的主机代理程序时,也可以一起将串口A代理程序在启动时所识别出的与该串口A通信连接的虚拟机B等对应的标识信息一同发送至串口A代理程序对应的主机代理程序上,便于所述主机代理程序根据上述标识信息转发对应的所述串口数据;比如,当串口A与串口B位于同一物理主机时,所述主机代理程序根据串口A代理程序发送的所述串口数据及对应的标识信息,将所述串口数据转发至对应的所述串口B代理程序。
步骤S03、所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。
串口B代理程序接收主机代理程序发送的上述串口数据,并将该串口数据通过串口B发送至虚拟机B;或者,串口B代理程序直接将接收的该串口数据转发至串口B,由虚拟机B操作系统从该串口B中读取对应的串口数据。上述串口代理程序与主机代理程序之间的网络通信对于虚拟机来说是完全透明的。
本发明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过socket、管道、文件等方式进行通信,本发明实施例无需关心串口客户端虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷。
下面以一具体的运行环境再次描述图1所示的虚拟机串口的通信过程。图2是本发明虚拟机串口的通信方法第一实施例对应的虚拟机运行环境结构示例图;如图2所示,虚拟机A操作系统通过串口A写入串口数据,并通过串口A将写入的串口数据发送至串口A对应的串口A代理程序,串口A代理程序将上 述串口数据发送至虚拟机A运行的物理主机对应的主机代理程序,主机代理程序接收到串口数据后,根据串口数据携带的标识信息将所述串口数据发送至虚拟机B对应的串口B代理程序上,由串口B代理程序将上述串口数据通过串口B发送至虚拟机B;或者,虚拟机B操作系统通过串口B读取串口B代理程序上的串口数据;具有配置简单、操作便捷的有益效果,而无需执行客户端虚拟机及服务端虚拟机的繁琐配置。
本发明还提供了一种虚拟机串口的通信方法第二实施例;本实施例中,基于串口进行通信的两台虚拟机运行在不同的物理主机上;基于图1、图2所示实施例的描述,本发明虚拟机串口的通信方法中,可以将图1所述实施例中的步骤S02替换为本实施例中的步骤S21、S22和S23。
如图3所示,本发明虚拟机串口的通信方法中,图1所述的“步骤S02、第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序”可以替换为:
步骤S21、第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,所述第一串口代理程序将所述串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;
第一串口代理程序如串口A代理程序接收到虚拟机A操作系统通过串口A发送的串口数据时,串口A代理程序识别出第二虚拟机如虚拟机B与第一虚拟机如虚拟机A运行在不同的物理主机上时,串口A代理程序根据启动时识别出的与串口A通信连接的虚拟机B,以及识别出虚拟机B所运行的第二物理主机如物理主机B后,串口A代理程序将所述串口数据发送至该虚拟机A运行的第一物理主机如物理主机A对应的第一主机代理程序如主机A代理程序。
步骤S22、所述第一主机代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;
步骤S23、所述第二主机代理程序根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。
主机A代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述虚拟机B的标识信息转发至虚拟机B运行的物理主机B对应的主机B代理程序;本实施例中,主机A代理程序接收到对应的串口数据后,将包含串口A代理程序识别出的虚拟机B及所述虚拟机B所运行的物理主机B作为标识信息,同所述串口数据一起发送至所述物理主机B对应的主机B代理程序,便于所述主机B代理程序根据所述标识信息,识别出将所述串口数据发送至哪个串口代理程序,比如本实施例中,所述主机B代理程序根据所述标识信息,识别出将对应的所述串口数据发送至所述标识信息对应的串口B代理程序。
主机B代理程序接收到所述串口数据后,根据所述标识信息,识别出将所述串口数据发送至串口B代理程序时,所述主机B代理程序将接收到的所述串口数据转发至虚拟机B对应的串口B代理程序中,从而后续由串口B代理程序通过串口B将上述串口数据发送至虚拟机B。且上述串口代理程序与主机代理程序之间的网络通信、以及不同的主机代理程序之间的网络通信对于虚拟机来说都是完全透明的。
如图4所示,虚拟机A通过串口A发送串口数据至串口A代理程序,串口A代理程序将所述串口数据发送至虚拟机A运行的物理主机A对应的主机A代理程序上;主机A代理程序获取所述串口A代理程序在启动时从对应的配置参数中识别出的与所述串口A进行通信连接的虚拟机B以及所述虚拟机B所运行的物理主机B,将包含所述虚拟机B及所述物理主机B的标识信息与接收的所述串口数据转发至虚拟机B所运行的物理主机B对应的主机B代理程序,主机B代理程序接收到所述标识信息及串口数据后,根据所述标识信息,将接收到的所述串口数据转发至串口B代理程序,串口B代理程序将该串口数据转发至串口B。
本发明实施例对于串口通信的两台虚拟机没有运行在同一物理主机上的情况,仍可通过代理程序达到两台虚拟机通过串口进行通信的目的;且即使物理主机的IP地址发生变化,也丝毫不会影响该物理主机上运行的虚拟机与其他物理主机上运行的虚拟机之间的通信。
本发明还提供了虚拟机串口的通信方法第三实施;本实施例与图1或图3所述实施例的区别是,根据用户触发的操作指令,启动对应的代理程序;本发明实施例以与图1所述实施例的区别为例进行描述,与图3所述实施例的区别与之类似,在此不再赘述。
如图5所示,本发明虚拟机串口的通信方法图1所述的步骤S01之前还包括:
步骤S10、响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。
响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及该物理主机上运行的虚拟机各串口所分别对应的串口代理程序。
本发明实施例中,系统启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。
进一步地,在启动上述主机代理程序以及串口代理程序之前,基于用户触发的操作事件为虚拟机串口建立串口代理程序,将虚拟机串口作为服务端,串口代理程序作为客户端,在虚拟机启动时,启动串口代理程序,将串口代理程序作为后台进程连接虚拟机串口;此时,虚拟机串口的数据通过串口代理程序进行转发。另外,基于用户触发的操作事件为每台物理主机建立主机代理程序,主机代理程序负责物理主机间的数据通信,并将串口代理程序发送的串口数据转发到另一台物理主机对应的主机代理程序,另一台物理主机上的主机代理程序将收到的串口数据转发给指定的串口代理程序。
本发明实施例只需对应于物理主机创建主机代理程序、对应于虚拟机创建对应的串口代理程序,在启动物理主机及虚拟机时直接加载对应的上述代理程序,使得虚拟机的串口通信方式更加便捷和智能。
本发明还提供了一种虚拟串口的通信装置第一实施例;所述虚拟串口的通信装置上运行有串口代理程序及主机代理程序。
如图6所示,本发明虚拟串口的通信装置包括:识别模块01和发送模块02;本实施例以基于串口进行通信的两虚拟机运行在同一物理主机为例进行描述。
识别模块01,用于在启动第一串口代理程序时,从对应的配置参数中识 别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;
本实施例中,将第一虚拟机操作系统、第一虚拟机、第一串口、第一串口代理程序分别对应简称为:虚拟机A操作系统、虚拟机A、串口A、串口A代理程序;同样地,将第二虚拟机操作系统、第二虚拟机、第二串口、第二串口代理程序分别对应简称为:虚拟机B操作系统、虚拟机B、串口B、串口A代理程序。
请一并参照图2,虚拟机A通过虚拟机A操作系统向串口A写入串口数据,并将写入的串口数据通过串口A发送至运行串口A代理程序的识别模块01;串口A代理程序在启动时,所述识别模块01利用所述串口A代理程序从对应的配置参数中可以识别出于该串口A通讯连接的虚拟机;比如,所述识别模块01利用串口A代理程序识别出该虚拟机为虚拟机B,以及该虚拟机B所运行的物理主机、该虚拟机B所对应的串口B来接收对应的串口数据等信息。本实施例中所述的配置参数可以理解为:所述第一串口代理程序的启动参数,或者运行第一串口代理程序的第一虚拟机的配置参数。
发送模块02,用于:
基于运行的第一串口代理程序,接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;
基于所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。
发送模块02接收虚拟机A操作系统通过该串口A发送的串口数据后,根据识别模块01识别出的所述第二虚拟机比如虚拟机B所运行的物理主机,将上述串口数据发送至虚拟机B所运行的物理主机对应的主机代理程序;识别模块01基于运行的串口A代理程序根据识别出的虚拟机B所运行的物理主机与该虚拟机A运行的物理主机为同一物理主机上时,发送模块02基于运行的串口A代理程序将对应的串口数据发送至该物理主机的主机代理程序上。发送模块02基于运行的该主机代理程序将接收的所述串口数据转发至该虚拟机B对应的串 口B代理程序。
本实施例中,发送模块02基于串口A对应的串口A代理程序将对应的串口数据发送至串口A对应的物理主机的主机代理程序时,也可以一起将串口A代理程序在启动时所识别出的与该串口A通信连接的虚拟机B等对应的标识信息一同发送至串口A代理程序对应的主机代理程序上,便于所述主机代理程序根据上述标识信息转发对应的所述串口数据;比如,当串口A与串口B位于同一物理主机时,所述发送模块02利用主机代理程序根据串口A代理程序发送的所述串口数据及对应的标识信息,将所述串口数据转发至对应的所述串口B代理程序。
发送模块02中所运行的串口B代理程序接收运行的主机代理程序发送的上述串口数据,并将该串口数据通过串口B发送至虚拟机B;或者,串口B代理程序直接将接收的该串口数据转发至串口B,由虚拟机B操作系统从该串口B中读取对应的串口数据。上述串口代理程序与主机代理程序之间的网络通信对于虚拟机来说是完全透明的。
本发明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过socket、管道、文件等方式进行通信,本发明实施例无需关心串口客户端虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷。
请再次参照图6,本实施例描述在基于串口通信的两虚拟机运行在不同物理主机上时,所述虚拟串口的通信装置中发送模块02的工作过程。
本实施例中,所述发送模块02用于:
当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,基于所述第一串口代理程序将串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;
基于所述第一主机代理程序,接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;
基于所述第二主机代理程序,根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。
请一并参照图4,识别模块01基于运行的第一串口代理程序如串口A代理程序接收到虚拟机A操作系统通过串口A发送的串口数据时,基于串口A代理程序识别出第二虚拟机如虚拟机B与第一虚拟机如虚拟机A运行在不同的物理主机上时,发送模块02基于运行的串口A代理程序根据启动时识别出的与串口A通信连接的虚拟机B,以及识别出虚拟机B所运行的第二物理主机如物理主机B后,发送模块02基于运行的串口A代理程序将所述串口数据发送至该虚拟机A运行的第一物理主机如物理主机A对应的第一主机代理程序如主机A代理程序。
发送模块02基于运行的主机A代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述虚拟机B的标识信息转发至虚拟机B运行的物理主机B对应的主机B代理程序;本实施例中,基于主机A代理程序,所述发送模块02接收到对应的串口数据后,将包含串口A代理程序识别出的虚拟机B及所述虚拟机B所运行的物理主机B作为标识信息,同所述串口数据一起发送至所述物理主机B对应的主机B代理程序,便于所述主机B代理程序根据所述标识信息,识别出将所述串口数据发送至哪个串口代理程序,比如本实施例中,基于所述主机B代理程序,所述发送模块02根据所述标识信息,识别出将对应的所述串口数据发送至所述标识信息对应的串口B代理程序。
发送模块02基于运行的主机B代理程序接收到所述串口数据后,根据所述标识信息,识别出将所述串口数据发送至串口B代理程序时,基于所述主机B代理程序将接收到的所述串口数据转发至虚拟机B对应的串口B代理程序中,从而后续由串口B代理程序通过串口B将上述串口数据发送至虚拟机B。且上述串口代理程序与主机代理程序之间的网络通信、以及不同的主机代理程序之间的网络通信对于虚拟机来说都是完全透明的。
本发明实施例对于串口通信的两台虚拟机没有运行在同一物理主机上的情况,仍可通过代理程序达到两台虚拟机通过串口进行通信的目的;且即使物理主机的IP地址发生变化,也丝毫不会影响该物理主机上运行的虚拟机与其他物理主机上运行的虚拟机之间的通信。
本发明还提供一种虚拟串口的通信装置第二实施例;如图7所示,本发明虚拟串口的通信装置还包括:
启动模块03,用于响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。
启动模块03响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及该物理主机上运行的虚拟机各串口所分别对应的串口代理程序。
本发明实施例中,启动模块03启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。
进一步地,在启动上述主机代理程序以及串口代理程序之前,启动模块03基于用户触发的操作事件为虚拟机串口建立串口代理程序,将虚拟机串口作为服务端,串口代理程序作为客户端,在虚拟机启动时,启动模块03启动串口代理程序,将串口代理程序作为后台进程连接虚拟机串口;此时,虚拟机串口的数据由发送模块02通过串口代理程序进行转发。另外,启动模块03基于用户触发的操作事件为每台物理主机建立主机代理程序,主机代理程序负责物理主机间的数据通信,发送模块02基于运行的所述主机代理程序将串口代理程序发送的串口数据转发到另一台物理主机对应的主机代理程序,发送模块02基于运行的另一台物理主机上的主机代理程序将收到的串口数据转发给指定的串口代理程序。
本发明实施例只需对应于物理主机创建主机代理程序、对应于虚拟机创建对应的串口代理程序,在启动物理主机及虚拟机时直接加载对应的上述代理程序,使得虚拟机的串口通信方式更加便捷和智能。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

虚拟机串口的通信方法及装置.pdf_第1页
第1页 / 共18页
虚拟机串口的通信方法及装置.pdf_第2页
第2页 / 共18页
虚拟机串口的通信方法及装置.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《虚拟机串口的通信方法及装置.pdf》由会员分享,可在线阅读,更多相关《虚拟机串口的通信方法及装置.pdf(18页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104092661A43申请公布日20141008CN104092661A21申请号201410256595722申请日20140610H04L29/06200601G06F9/45520060171申请人深圳市深信服电子科技有限公司地址518052广东省深圳市南山区麒麟路1号科技创业服务中心410413室72发明人谢鸿钊74专利代理机构深圳市世纪恒程知识产权代理事务所44287代理人胡海国54发明名称虚拟机串口的通信方法及装置57摘要本发明公开一种虚拟机串口的通信方法及装置,通过虚拟机各串口对应的串口代理程序及虚拟机运行的物理主机对应的主机代理程序实现虚拟机的串口通信。本发。

2、明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过SOCKET、管道、文件等方式进行通信,本发明实施例无需关心串口客户端虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷,且在物理主机对应的IP地址发生改变时,也丝毫不影响虚拟机之间的通信,提高虚拟机串口通信的便捷性、智能性和易维护性。51INTCL权利要求书2页说明书9页附图6页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书9页附图6页10申请公布号CN104092661ACN104092661A1/2页21一种虚拟机串口的通信方法,其特征在于,包括以下步骤。

3、第一串口代理程序在启动时,从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。2如权利要求1所述的方法,其特征在于,所述根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代。

4、理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,包括当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。3如权利要求1所述的方法,其特征在于,所述根据识别出的所述第二虚拟机运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序,包括当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,所述第一串口代理程序将所述串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程。

5、序;所述第一主机代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;所述第二主机代理程序根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。4如权利要求1或2或3所述的方法,其特征在于,所述第一串口代理程序在启动时,从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机,之前还包括响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。5如权利要求4所述的方法,其特征在于,所述启动。

6、物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。6一种虚拟机串口的通信装置,其特征在于,所述虚拟机串口的通信装置上运行有串口代理程序以及主机代理程序;所述虚拟机串口的通信装置包括识别模块,用于在启动第一串口代理程序时,从对应的配置参数中识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;发送模块,用于权利要求书CN104092661A2/2页3基于运行的第一串口代理程序,接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主。

7、机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;基于所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。7如权利要求6所述的通信装置,其特征在于,所述发送模块还用于当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,基于所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。8如权利要求6所述的装置,其特征在于,所述发送模块还用于当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,基于所述第一串口代理程序将串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机。

8、代理程序;基于所述第一主机代理程序,接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;基于所述第二主机代理程序,根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。9如权利要求6或7或8所述的装置,其特征在于,还包括启动模块,用于响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。10如权利要求9所述的装置,其特征在于,所述启动模块还用于启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口。

9、代理程序。权利要求书CN104092661A1/9页4虚拟机串口的通信方法及装置技术领域0001本发明涉及虚拟化技术,尤其涉及一种虚拟机串口的通信方法及装置。背景技术0002通过虚拟化技术一台物理主机可以虚拟出多台虚拟机,而虚拟机之间并不能使用数据线连接,但可以让两台虚拟机之间进行串口通信;目前常用的做法是将虚拟机串口重定向到一个通信管道、SOCKET插口、真实串口等;但这种重定向的方式只能选择其中一个虚拟机作为服务端,另一个虚拟机为客户端,且服务端虚拟机必须先于客户端虚拟机启动;若客户端先启动,可能启动失败或无法与服务端建立通信;此时必须关闭客户端虚拟机,按先服务端虚拟机后客户端虚拟机的顺序。

10、重启虚拟机才能使用。当需要建立跨物理机上的虚拟机间串口通信时,需要指定物理机的IP地址;一旦物理机的IP地址发生变化则上述虚拟机之间将无法建立连接。且上述实现方式对于动态获取IP地址的物理机来说基本不可用。0003因此可见,虚拟机之间直接重定向串口的通信方案配置困难,可用性很差;且跨物理主机的虚拟机之间进行串口通信时需要指定主机的IP地址,一旦主机的IP地址更改则无法进行通信,可维护性差。发明内容0004鉴于以上内容,有必要提供一种虚拟机串口的通信方法及装置,使得虚拟机之间的串口通信无需指定服务端虚拟机和客户端虚拟机且不受物理机IP地址的影响。0005本发明实施例公开了一种虚拟机串口的通信方法。

11、,包括以下步骤0006第一串口代理程序在启动时从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;0007第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;0008所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。0009优选地,所述根据识别出的所述第二虚拟机所运行的物理主机,。

12、所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,包括0010当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。0011优选地,所述根据识别出的所述第二虚拟机运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序,包括说明书CN104092661A2/9页50012当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,所述第一串口代理程序将串口数据发送至所述第一。

13、虚拟机运行的第一物理主机对应的第一主机代理程序;0013所述第一主机代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;0014所述第二主机代理程序根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。0015优选地,所述第一串口代理程序在启动时从对应的配置参数中,识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机,之前还包括0016响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。0017优。

14、选地,所述启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。0018本发明实施例还公开一种虚拟机串口的通信装置,所述虚拟机串口的通信装置上运行有串口代理程序以及主机代理程序;0019所述虚拟机串口的通信装置包括0020识别模块,用于在启动第一串口代理程序时,从对应的配置参数中识别与所述第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;0021发送模块,用于0022基于运行的第一串口代理程序,接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行。

15、的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;0023基于所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。0024优选地,所述发送模块还用于0025当识别出所述第二虚拟机与第一虚拟机运行在同一物理主机上时,基于所述第一串口代理程序将串口数据发送至同一物理主机对应的所述主机代理程序。0026优选地,所述发送模块还用于0027当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,基于所述第一串口代理程序将串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;。

16、0028基于所述第一主机代理程序,接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;0029基于所述第二主机代理程序,根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。0030优选地,所述虚拟机串口的通信装置还包括说明书CN104092661A3/9页60031启动模块,用于响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。0032优选地,所述启动模块还用于0033启动物理主机的同时启动对应的所述主机代理程序,启动所。

17、述虚拟机的同时启动对应的所述串口代理程序。0034本发明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过SOCKET、管道、文件等方式进行通信,本发明实施例无需关心串口客户端虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷。附图说明0035图1是本发明虚拟机串口的通信方法第一实施例流程示意图;0036图2是本发明虚拟机串口的通信方法第一实施例对应的虚拟机运行环境结构示例图;0037图3是本发明虚拟机串口的通信方法第二实施例流程示意图;0038图4是本发明虚拟机串口的通信方法第二实施例对应的串口间通信时序图;0039图5是本发明虚。

18、拟机串口的通信方法第三实施例流程示意图;0040图6是本发明虚拟串口的通信装置第一实施例功能模块示意图;0041图7是本发明虚拟串口的通信装置第二实施例功能模块示意图。0042本发明实施例目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式0043以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。0044本发明虚拟机串口的通信方法及装置中,所述虚拟机可以理解为通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,且一台高性能的物理主机上可以虚拟出多台虚拟机。所述虚拟机。

19、操作系统可以理解为所述虚拟机运行的系统,比如GUEST系统等。所述串口即串行接口的简称,也成为串行通信接口,是采用串行通信方式的扩展接口比如常用的COMCOMPONENTOBJECTMODE,组件对象模型接口;串口可以应用于两台通信设备或者两台计算机之间的互联及数据传输,串口也可以通过直接电缆连接的方式实现双机互联。本发明下述实施例对以上内容均不再赘述。0045本发明提供了一种虚拟机串口的通信方法第一实施例;本实施例中,基于串口进行通信的两台虚拟机运行在同一物理主机上;如图1所示,本发明虚拟机串口的通信方法包括以下步骤0046步骤S01、第一串口代理程序在启动时,从对应的配置参数中,识别与所述。

20、第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;0047本实施例中,将第一虚拟机操作系统、第一虚拟机、第一串口、第一串口代理程序分别对应简称为虚拟机A操作系统、虚拟机A、串口A、串口A代理程序;同样地,将第二虚说明书CN104092661A4/9页7拟机操作系统、第二虚拟机、第二串口、第二串口代理程序分别对应简称为虚拟机B操作系统、虚拟机B、串口B、串口B代理程序。0048虚拟机A通过虚拟机A操作系统向串口A写入串口数据,并将写入的串口数据通过串口A发送至串口A代理程序;串口A代理程序在启动时,从对应的配置参数中可以识别出与该串口A进行通讯连接的虚拟机;比如,串口A识别出该虚拟。

21、机为虚拟机B,以及该虚拟机B所运行的物理主机、该虚拟机B所对应的串口B来接收对应的串口数据等信息。本实施例中所述的配置参数可以理解为所述第一串口代理程序的启动参数,或者运行第一串口代理程序的第一虚拟机的配置参数。0049步骤S02、第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;0050串口A代理程序接收虚拟机A操作系统通过该串口A发送的串口数据后,串口A代理程序根据识别出。

22、的所述第二虚拟机比如虚拟机B所运行的物理主机,将上述串口数据发送至虚拟机B所运行的物理主机对应的主机代理程序;本发明实施例以虚拟机A和虚拟机B运行在同一物理主机上为例进行描述;串口A代理程序根据识别出的虚拟机B所运行的物理主机与该虚拟机A运行的物理主机为同一物理主机上时,串口A代理程序将对应的串口数据发送至该物理主机的主机代理程序上。该主机代理程序将接收的所述串口数据转发至该虚拟机B对应的串口B代理程序。0051本实施例中,串口A对应的串口A代理程序将对应的串口数据发送至串口A对应的物理主机的主机代理程序时,也可以一起将串口A代理程序在启动时所识别出的与该串口A通信连接的虚拟机B等对应的标识信。

23、息一同发送至串口A代理程序对应的主机代理程序上,便于所述主机代理程序根据上述标识信息转发对应的所述串口数据;比如,当串口A与串口B位于同一物理主机时,所述主机代理程序根据串口A代理程序发送的所述串口数据及对应的标识信息,将所述串口数据转发至对应的所述串口B代理程序。0052步骤S03、所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。0053串口B代理程序接收主机代理程序发送的上述串口数据,并将该串口数据通过串口B发送至虚拟机B;或者,串口B代理程序直接将接收的该串口数据转发至串口B,由虚拟机B操作系统从该串口B中读取对应的串口数据。上。

24、述串口代理程序与主机代理程序之间的网络通信对于虚拟机来说是完全透明的。0054本发明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过SOCKET、管道、文件等方式进行通信,本发明实施例无需关心串口客户端虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷。0055下面以一具体的运行环境再次描述图1所示的虚拟机串口的通信过程。图2是本发明虚拟机串口的通信方法第一实施例对应的虚拟机运行环境结构示例图;如图2所示,虚拟机A操作系统通过串口A写入串口数据,并通过串口A将写入的串口数据发送至串口A对应的串口A代理程序,串口A代理程序将上述串口。

25、数据发送至虚拟机A运行的物理主机说明书CN104092661A5/9页8对应的主机代理程序,主机代理程序接收到串口数据后,根据串口数据携带的标识信息将所述串口数据发送至虚拟机B对应的串口B代理程序上,由串口B代理程序将上述串口数据通过串口B发送至虚拟机B;或者,虚拟机B操作系统通过串口B读取串口B代理程序上的串口数据;具有配置简单、操作便捷的有益效果,而无需执行客户端虚拟机及服务端虚拟机的繁琐配置。0056本发明还提供了一种虚拟机串口的通信方法第二实施例;本实施例中,基于串口进行通信的两台虚拟机运行在不同的物理主机上;基于图1、图2所示实施例的描述,本发明虚拟机串口的通信方法中,可以将图1所述。

26、实施例中的步骤S02替换为本实施例中的步骤S21、S22和S23。0057如图3所示,本发明虚拟机串口的通信方法中,图1所述的“步骤S02、第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序”可以替换为0058步骤S21、第一串口代理程序接收第一虚拟机操作系统通过第一串口发送的串口数据,识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,所述第一串口代理程序将所述串口数据发。

27、送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;0059第一串口代理程序如串口A代理程序接收到虚拟机A操作系统通过串口A发送的串口数据时,串口A代理程序识别出第二虚拟机如虚拟机B与第一虚拟机如虚拟机A运行在不同的物理主机上时,串口A代理程序根据启动时识别出的与串口A通信连接的虚拟机B,以及识别出虚拟机B所运行的第二物理主机如物理主机B后,串口A代理程序将所述串口数据发送至该虚拟机A运行的第一物理主机如物理主机A对应的第一主机代理程序如主机A代理程序。0060步骤S22、所述第一主机代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运。

28、行的第二物理主机对应的第二主机代理程序;0061步骤S23、所述第二主机代理程序根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。0062主机A代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述虚拟机B的标识信息转发至虚拟机B运行的物理主机B对应的主机B代理程序;本实施例中,主机A代理程序接收到对应的串口数据后,将包含串口A代理程序识别出的虚拟机B及所述虚拟机B所运行的物理主机B作为标识信息,同所述串口数据一起发送至所述物理主机B对应的主机B代理程序,便于所述主机B代理程序根据所述标识信息,识别出将所述串口数据发送至哪个串口代理程序,比如本实施例中,所。

29、述主机B代理程序根据所述标识信息,识别出将对应的所述串口数据发送至所述标识信息对应的串口B代理程序。0063主机B代理程序接收到所述串口数据后,根据所述标识信息,识别出将所述串口数据发送至串口B代理程序时,所述主机B代理程序将接收到的所述串口数据转发至虚拟机B对应的串口B代理程序中,从而后续由串口B代理程序通过串口B将上述串口数据发说明书CN104092661A6/9页9送至虚拟机B。且上述串口代理程序与主机代理程序之间的网络通信、以及不同的主机代理程序之间的网络通信对于虚拟机来说都是完全透明的。0064如图4所示,虚拟机A通过串口A发送串口数据至串口A代理程序,串口A代理程序将所述串口数据发。

30、送至虚拟机A运行的物理主机A对应的主机A代理程序上;主机A代理程序获取所述串口A代理程序在启动时从对应的配置参数中识别出的与所述串口A进行通信连接的虚拟机B以及所述虚拟机B所运行的物理主机B,将包含所述虚拟机B及所述物理主机B的标识信息与接收的所述串口数据转发至虚拟机B所运行的物理主机B对应的主机B代理程序,主机B代理程序接收到所述标识信息及串口数据后,根据所述标识信息,将接收到的所述串口数据转发至串口B代理程序,串口B代理程序将该串口数据转发至串口B。0065本发明实施例对于串口通信的两台虚拟机没有运行在同一物理主机上的情况,仍可通过代理程序达到两台虚拟机通过串口进行通信的目的;且即使物理主。

31、机的IP地址发生变化,也丝毫不会影响该物理主机上运行的虚拟机与其他物理主机上运行的虚拟机之间的通信。0066本发明还提供了虚拟机串口的通信方法第三实施;本实施例与图1或图3所述实施例的区别是,根据用户触发的操作指令,启动对应的代理程序;本发明实施例以与图1所述实施例的区别为例进行描述,与图3所述实施例的区别与之类似,在此不再赘述。0067如图5所示,本发明虚拟机串口的通信方法图1所述的步骤S01之前还包括0068步骤S10、响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。0069响应用户触发的操作指令,启动物理主机对应的主机代理。

32、程序,以及该物理主机上运行的虚拟机各串口所分别对应的串口代理程序。0070本发明实施例中,系统启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。0071进一步地,在启动上述主机代理程序以及串口代理程序之前,基于用户触发的操作事件为虚拟机串口建立串口代理程序,将虚拟机串口作为服务端,串口代理程序作为客户端,在虚拟机启动时,启动串口代理程序,将串口代理程序作为后台进程连接虚拟机串口;此时,虚拟机串口的数据通过串口代理程序进行转发。另外,基于用户触发的操作事件为每台物理主机建立主机代理程序,主机代理程序负责物理主机间的数据通信,并将串口代理程序发送的串口数。

33、据转发到另一台物理主机对应的主机代理程序,另一台物理主机上的主机代理程序将收到的串口数据转发给指定的串口代理程序。0072本发明实施例只需对应于物理主机创建主机代理程序、对应于虚拟机创建对应的串口代理程序,在启动物理主机及虚拟机时直接加载对应的上述代理程序,使得虚拟机的串口通信方式更加便捷和智能。0073本发明还提供了一种虚拟串口的通信装置第一实施例;所述虚拟串口的通信装置上运行有串口代理程序及主机代理程序。0074如图6所示,本发明虚拟串口的通信装置包括识别模块01和发送模块02;本实施例以基于串口进行通信的两虚拟机运行在同一物理主机为例进行描述。0075识别模块01,用于在启动第一串口代理。

34、程序时,从对应的配置参数中识别与所述说明书CN104092661A7/9页10第一串口通信连接的第二虚拟机以及所述第二虚拟机所运行的物理主机;0076本实施例中,将第一虚拟机操作系统、第一虚拟机、第一串口、第一串口代理程序分别对应简称为虚拟机A操作系统、虚拟机A、串口A、串口A代理程序;同样地,将第二虚拟机操作系统、第二虚拟机、第二串口、第二串口代理程序分别对应简称为虚拟机B操作系统、虚拟机B、串口B、串口A代理程序。0077请一并参照图2,虚拟机A通过虚拟机A操作系统向串口A写入串口数据,并将写入的串口数据通过串口A发送至运行串口A代理程序的识别模块01;串口A代理程序在启动时,所述识别模块。

35、01利用所述串口A代理程序从对应的配置参数中可以识别出于该串口A通讯连接的虚拟机;比如,所述识别模块01利用串口A代理程序识别出该虚拟机为虚拟机B,以及该虚拟机B所运行的物理主机、该虚拟机B所对应的串口B来接收对应的串口数据等信息。本实施例中所述的配置参数可以理解为所述第一串口代理程序的启动参数,或者运行第一串口代理程序的第一虚拟机的配置参数。0078发送模块02,用于0079基于运行的第一串口代理程序,接收第一虚拟机操作系统通过第一串口发送的串口数据,根据识别出的所述第二虚拟机所运行的物理主机,所述第一串口代理程序将串口数据发送至所述第二虚拟机运行的物理主机的主机代理程序,由所述主机代理程序。

36、将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序;0080基于所述第二串口代理程序将所述串口数据发送至对应的第二串口,供第二虚拟机操作系统从所述第二串口读取所述串口数据。0081发送模块02接收虚拟机A操作系统通过该串口A发送的串口数据后,根据识别模块01识别出的所述第二虚拟机比如虚拟机B所运行的物理主机,将上述串口数据发送至虚拟机B所运行的物理主机对应的主机代理程序;识别模块01基于运行的串口A代理程序根据识别出的虚拟机B所运行的物理主机与该虚拟机A运行的物理主机为同一物理主机上时,发送模块02基于运行的串口A代理程序将对应的串口数据发送至该物理主机的主机代理程序上。发送模块0。

37、2基于运行的该主机代理程序将接收的所述串口数据转发至该虚拟机B对应的串口B代理程序。0082本实施例中,发送模块02基于串口A对应的串口A代理程序将对应的串口数据发送至串口A对应的物理主机的主机代理程序时,也可以一起将串口A代理程序在启动时所识别出的与该串口A通信连接的虚拟机B等对应的标识信息一同发送至串口A代理程序对应的主机代理程序上,便于所述主机代理程序根据上述标识信息转发对应的所述串口数据;比如,当串口A与串口B位于同一物理主机时,所述发送模块02利用主机代理程序根据串口A代理程序发送的所述串口数据及对应的标识信息,将所述串口数据转发至对应的所述串口B代理程序。0083发送模块02中所运。

38、行的串口B代理程序接收运行的主机代理程序发送的上述串口数据,并将该串口数据通过串口B发送至虚拟机B;或者,串口B代理程序直接将接收的该串口数据转发至串口B,由虚拟机B操作系统从该串口B中读取对应的串口数据。上述串口代理程序与主机代理程序之间的网络通信对于虚拟机来说是完全透明的。0084本发明实施例虚拟机之间的串口通信通过代理程序来实现,相较于现有技术中,虚拟机串口间通过SOCKET、管道、文件等方式进行通信,本发明实施例无需关心串口客户端说明书CN104092661A108/9页11虚拟机及服务端虚拟机的问题,只需指定与之相连的串口代理程序即可,配置简单、操作便捷。0085请再次参照图6,本实。

39、施例描述在基于串口通信的两虚拟机运行在不同物理主机上时,所述虚拟串口的通信装置中发送模块02的工作过程。0086本实施例中,所述发送模块02用于0087当识别出所述第二虚拟机与第一虚拟机运行在不同物理主机上时,基于所述第一串口代理程序将串口数据发送至所述第一虚拟机运行的第一物理主机对应的第一主机代理程序;0088基于所述第一主机代理程序,接收所述串口数据,将所述串口数据以及包含用于识别所述第二虚拟机的标识信息转发至所述第二虚拟机运行的第二物理主机对应的第二主机代理程序;0089基于所述第二主机代理程序,根据所述标识信息,将接收的所述串口数据转发至所述第二虚拟机对应的第二串口代理程序。0090请。

40、一并参照图4,识别模块01基于运行的第一串口代理程序如串口A代理程序接收到虚拟机A操作系统通过串口A发送的串口数据时,基于串口A代理程序识别出第二虚拟机如虚拟机B与第一虚拟机如虚拟机A运行在不同的物理主机上时,发送模块02基于运行的串口A代理程序根据启动时识别出的与串口A通信连接的虚拟机B,以及识别出虚拟机B所运行的第二物理主机如物理主机B后,发送模块02基于运行的串口A代理程序将所述串口数据发送至该虚拟机A运行的第一物理主机如物理主机A对应的第一主机代理程序如主机A代理程序。0091发送模块02基于运行的主机A代理程序接收所述串口数据,将所述串口数据以及包含用于识别所述虚拟机B的标识信息转发。

41、至虚拟机B运行的物理主机B对应的主机B代理程序;本实施例中,基于主机A代理程序,所述发送模块02接收到对应的串口数据后,将包含串口A代理程序识别出的虚拟机B及所述虚拟机B所运行的物理主机B作为标识信息,同所述串口数据一起发送至所述物理主机B对应的主机B代理程序,便于所述主机B代理程序根据所述标识信息,识别出将所述串口数据发送至哪个串口代理程序,比如本实施例中,基于所述主机B代理程序,所述发送模块02根据所述标识信息,识别出将对应的所述串口数据发送至所述标识信息对应的串口B代理程序。0092发送模块02基于运行的主机B代理程序接收到所述串口数据后,根据所述标识信息,识别出将所述串口数据发送至串口。

42、B代理程序时,基于所述主机B代理程序将接收到的所述串口数据转发至虚拟机B对应的串口B代理程序中,从而后续由串口B代理程序通过串口B将上述串口数据发送至虚拟机B。且上述串口代理程序与主机代理程序之间的网络通信、以及不同的主机代理程序之间的网络通信对于虚拟机来说都是完全透明的。0093本发明实施例对于串口通信的两台虚拟机没有运行在同一物理主机上的情况,仍可通过代理程序达到两台虚拟机通过串口进行通信的目的;且即使物理主机的IP地址发生变化,也丝毫不会影响该物理主机上运行的虚拟机与其他物理主机上运行的虚拟机之间的通信。0094本发明还提供一种虚拟串口的通信装置第二实施例;如图7所示,本发明虚拟串口的通。

43、信装置还包括说明书CN104092661A119/9页120095启动模块03,用于响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及所述物理主机上所述虚拟机各串口分别对应的串口代理程序。0096启动模块03响应用户触发的操作指令,启动物理主机对应的主机代理程序,以及该物理主机上运行的虚拟机各串口所分别对应的串口代理程序。0097本发明实施例中,启动模块03启动物理主机的同时启动对应的所述主机代理程序,启动所述虚拟机的同时启动对应的所述串口代理程序。0098进一步地,在启动上述主机代理程序以及串口代理程序之前,启动模块03基于用户触发的操作事件为虚拟机串口建立串口代理程序,将虚拟机串。

44、口作为服务端,串口代理程序作为客户端,在虚拟机启动时,启动模块03启动串口代理程序,将串口代理程序作为后台进程连接虚拟机串口;此时,虚拟机串口的数据由发送模块02通过串口代理程序进行转发。另外,启动模块03基于用户触发的操作事件为每台物理主机建立主机代理程序,主机代理程序负责物理主机间的数据通信,发送模块02基于运行的所述主机代理程序将串口代理程序发送的串口数据转发到另一台物理主机对应的主机代理程序,发送模块02基于运行的另一台物理主机上的主机代理程序将收到的串口数据转发给指定的串口代理程序。0099本发明实施例只需对应于物理主机创建主机代理程序、对应于虚拟机创建对应的串口代理程序,在启动物理。

45、主机及虚拟机时直接加载对应的上述代理程序,使得虚拟机的串口通信方式更加便捷和智能。0100需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。0101上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。0102通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法。

46、可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质如ROM/RAM、磁碟、光盘中,包括若干指令用以使得一台终端设备可以是手机,计算机,服务器,或者网络设备等执行本发明各个实施例所述的方法。0103以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。说明书CN104092661A121/6页13图1说明书附图CN104092661A132/6页14图2说明书附图CN104092661A143/6页15图3说明书附图CN104092661A154/6页16图4说明书附图CN104092661A165/6页17图5图6说明书附图CN104092661A176/6页18图7说明书附图CN104092661A18。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1