掌桥专利:专业的专利平台
掌桥专利
首页

一种虚拟编程环境构建方法

文献发布时间:2023-06-19 11:32:36


一种虚拟编程环境构建方法

技术领域

本发明涉及计算机技术领域,具体涉及一种虚拟编程环境构建方法。

背景技术

在线运行代码就像为每个用户提供对计算机的在线公共访问权限。由于每个用户提供一台计算机的成本以及它所隐含的所有安全问题,因此它很复杂。

目前,存在许多用于在线运行代码的解决方案,但是大多数解决方案所支持的功能非常有限。它们通常允许在单击RUN时创建的临时OS(容器)中运行脚本,并在代码执行结束时将其销毁。一些公司直接将在线服务公开为工具,而其他公司则将其嵌入在线学习平台中。

更高级的服务不仅允许运行代码,而且还允许访问整个会话的临时OS(容器),因此用户可以运行多个服务,甚至更改执行上下文。这种服务通常是围绕开源笔记本技术构建的。

所有提供编程环境的平台都非常适合研究脚本,Web开发或AI,但不适用于机器人技术。这是因为机器人技术不仅需要操作系统访问权限,而且还需要并行运行世界模拟和多个过程,其中一些过程依赖于图形工具。学习机器人技术时,需要一个带有终端、文件夹和窗口的真实桌面。

发明内容

针对现有技术中的缺陷,本发明提供一种虚拟编程环境构建方法,用于用户构建虚拟编程环境,用户可以直接通过该虚拟编程环境学习与编程、机器人或人工智能相关的任何东西,而无需在自己的计算机上安装任何软件。

一种虚拟编程环境构建方法,应用于虚拟编程仿真管理平台,所述虚拟环境仿真管理平台包括客户端和服务器集群,所述服务器集群包括主控节点和至少一个工作节点,所述主控节点与所述客户端网络连接,所述构建方法包括:

接收客户端发送的编程环境请求;

按照设定规则寻找目标工作节点;

根据所述编程环境请求在所述目标工作节点中创建虚拟编程环境;

将创建的虚拟编程环境与客户端进行链接交互。

进一步,所述客户端通过web应用程序发送所述编程环境请求。

进一步,所述按照设定规则寻找目标工作节点,具体包括:

当所述服务器集群中只有一个工作节点时,则选择该工作节点为目标工作节点。

进一步,所述按照设定规则寻找目标工作节点,具体包括:

当所述服务器集群中有多个工作节点时,从多个工作节点中寻找负载最小的工作节点;将负载最小的工作节点作为目标工作节点。

进一步,根据所述编程环境请求在所述目标工作节点中创建虚拟编程环境,具体的包括:

在所述目标工作节点中创建容器;

在所述容器中创建虚拟编程环境。

进一步,所述构建方法还包括:

根据设定的触发条件销毁所述虚拟编程环境。

进一步,所述根据设定的触发条件销毁所述虚拟编程环境,具体包括:

接收客户端发送的终结指令;

根据所述终结指令销毁所述虚拟编程环境。

进一步,所述根据设定的触发条件销毁所述虚拟编程环境还包括:

当所述虚拟编程环境的创建时长达到第一设定时长且未被使用时,销毁所述虚拟编程环境。

进一步,所述根据设定的触发条件销毁所述虚拟编程环境还包括:

当所述虚拟编程环境的创建时长达到第二设定时长时,判断所述虚拟编程环境是否处于被使用状态,所述第二设定时长小于第一设定时长,若否,当所述虚拟编程环境的创建时长达到第一设定时长时,销毁所述虚拟编程环境;

若是,将所述虚拟编程环境的创建时长延长至第三设定时长后销毁,所述第三设定时长大于第一设定时长。

本发明的有益效果体现在:

本发明的虚拟编程环境构建方法应用于虚拟编程仿真管理平台,该虚拟环境仿真管理平台包括客户端和服务器集群,所述服务器集群包括主控节点和至少一个工作节点,所述主控节点与所述客户端网络连接。主控节点接收客户端发送的编程环境请求后,去工作节点中按照设定规则寻找到目标工作节点后,在目标工作节点中根据编程环境请求创建虚拟编程环境,最后将创建的虚拟编程环境与客户端进行链接交互,用户可以通过客户端即可访问该虚拟编程环境并进行仿真交互,而不需要在自己的计算机上安装任何软件。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1为本发明实施例提供的一种虚拟编程环境构建方法的方法流程图;

图2为本发明实施例提供的一种虚拟编程环境构建方法的的程序流程图;

图3为本发明实施例提供的虚拟环境仿真管理平台的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

如图1所示,本发明实施例提供的一种虚拟编程环境构建方法,应用于虚拟编程仿真管理平台。如图3所示,所述虚拟环境仿真管理平台包括客户端和服务器集群,所述服务器集群包括主控节点和至少一个工作节点,所述主控节点与所述客户端网络连接。

所述构建方法具体包括:

S1:接收客户端发送的编程环境请求。

具体的,用户通过客户端向主控节点发送编程环境请求,客户端通过web应用程序即可与主控节点进行链接交互,请求一个虚拟编程环境进行仿真使用。用户通过web应用程序进行仿真交互,不需要在计算机上安装任何软件即可进行,只需使用互联网浏览器访问网络应用即可访问此虚拟编程环境,可以在该虚拟编程环境中学习关于编程机器人技术或AI相关技术的知识。

S2:按照设定规则寻找目标工作节点。

主控节点接收到客户端发送的编程环境请求之后,根据每个工作节点的负载状况选择满足负载要求的工作节点作为目标工作节点。具体包括以下情况:

第一种:

当所述服务器集群中只有一个工作节点时,则选择该工作节点为目标工作节点。

第二种:

当所述服务器集群中有多个工作节点时,从多个工作节点中寻找负载最小的工作节点;将负载最小的工作节点作为目标工作节点。选择负载最小的工作节点作为目标工作节点,能够保证创建的虚拟编程环境运行时更加顺畅和稳定。

S3:根据所述编程环境请求在所述目标工作节点中创建虚拟编程环境。

具体的,寻找到目标工作节点后,在目标工作节点上生成用于运行虚拟编程环境的容器。编程环境请求携带有用户令牌,对用户令牌进行检查后在容器中运行一个新的虚拟编程环境。虚拟编程环境由一个容器化的UBUNTU操作系统组成,该操作系统公开了要交互的不同Web服务。

S4:将创建的虚拟编程环境与客户端进行链接交互。

主控节点控制创建的虚拟编程环境与客户端进行链接交互,用户可以通过客户端上的web应用程序与虚拟编程环境进行交互,虚拟编程环境对用户的输入进行仿真运行,并在客户端的显示窗口上加载显示,方便用户进行观看。

进一步,所述构建方法还包括:

S5:根据设定的触发条件销毁所述虚拟编程环境。

虚拟编程环境在创建后长时间持续运行,会产生成本,因此需要设定触发条件,在满足触发条件的情况下将其销毁,以节约成本和资源。

具体的,步骤S5具体包括以下几种情况:

情况一:

接收客户端发送的终结指令;根据所述终结指令销毁所述虚拟编程环境。

用户在使用虚拟编程环境仿真完成以后,通过客户端向主控节点发送终结指令。主控节点接收到该终结指令之后,即可将对应的工作节点中运行的虚拟编程环境销毁,降低工作节点的负载。

情况二:

当所述虚拟编程环境的创建时长达到第一设定时长且未被使用时,销毁所述虚拟编程环境。

每个虚拟编程环境均具有使用时长,如果在该使用时长内用户没有使用,该虚拟编程环境将自动销毁。

情况三:当所述虚拟编程环境的创建时长达到第二设定时长时,判断所述虚拟编程环境是否处于被使用状态,所述第二设定时长小于第一设定时长,若否,当所述虚拟编程环境的创建时长达到第一设定时长时,销毁所述虚拟编程环境;若是,将所述虚拟编程环境的创建时长延长至第三设定时长后销毁,所述第三设定时长大于第一设定时长。

例如,每个虚拟编程环境的第一设定时长为15分钟,如果虚拟编程环境的使用时长达到了第二设定时长时,第二设定时长为12分钟,并且用户仍然在使用该虚拟编程环境,则将请求额外的使用时间,例如请求增加5分钟的使用时间,则该虚拟编程环境的运行时长为20分钟,即第三设定时长为20分钟。当虚拟编程环境运行到第20分钟时,虚拟编程环境就会被破坏。

这种设计避免了虚拟编程环境连续长时间运行的情况,也避免了频繁重新创建新的虚拟编程环境,如果用户离开服务的时间很短,然后回来,他的虚拟编程环境仍然可用。

具体的,如图2所示,本实施例还提供了虚拟编程环境构建方法的程序流程,其具体包括以下步骤:

步骤S200:轮询所述队列中可运行的编程环境请求,并判断编程环境请求的状态是否为“请求”状态,若否,执行步骤S201;若是,执行步骤S203;

步骤S201:判断编程环境请求的状态是否为“已启动”状态,若否,执行步骤S200;若是,执行步骤S202;

步骤S202:http调用容器内部的api.GetStatus文件,设置编程环境请求的状态为“运行”状态;

步骤S203:查找到负载最小的工作节点,若否,执行步骤S204;若是,执行步骤S205;

步骤S204:设置编程环境请求的状态为“失败”状态;

步骤S205:设置编程环境请求的状态为“请求待定”状态,执行步骤S206;

步骤S206:以工作节点名称和用户令牌执行ANSIBLE手册并部署沙盒堆栈,执行步骤S207;

步骤S207:判断部署沙盒堆栈是否成功,若否,执行步骤S204;若是,执行步骤S208;

步骤S208:设置编程环境请求的状态为“已开始”状态,执行步骤S209;

步骤S209:触发docker-proxy-flow新容器事件并使用用户令牌向前门Haproxy模块添加新路由。

综上所述,本发明的虚拟编程环境构建方法应用于虚拟编程仿真管理平台,该虚拟环境仿真管理平台包括客户端和服务器集群,所述服务器集群包括主控节点和至少一个工作节点,所述主控节点与所述客户端网络连接。主控节点接收客户端发送的编程环境请求后,去工作节点中按照设定规则寻找到目标工作节点后,在目标工作节点中根据编程环境请求创建虚拟编程环境,最后将创建的虚拟编程环境与客户端进行链接交互,用户可以通过客户端即可访问该虚拟编程环境并进行仿真交互,而不需要在自己的计算机上安装任何软件。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

相关技术
  • 一种虚拟编程环境构建方法
  • 一种基于虚拟资源池的虚拟网络节点快速构建方法
技术分类

06120112966189