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

服务运行方法及装置

文献发布时间:2023-06-19 10:46:31


服务运行方法及装置

技术领域

本申请涉及计算机技术领域,尤其涉及一种服务运行方法、装置、电子设备及计算机可读存储介质。

背景技术

为了能够不断满足不同用户多样化的服务需求,提升服务质量,常常需要对服务进行更新,以提供新的服务版本或者新的服务功能。

相关技术中通常采用以下方式进行服务的更新:租用或者购买一个服务器,在服务器中部署服务,当需要对服务进行更新时,开发环境(例如打包服务器)将服务的更新包上传至服务器,以使服务器基于接收到的更新包对服务进行更新。

然而,相关技术提供的方案由于需要购买或者租用服务器,导致机器成本较高;同时,服务器提供的服务受距离远近和网络状况的影响较大,也容易出现较高的延迟,影响用户体验。

发明内容

本申请实施例提供一种服务运行方法、装置、电子设备及计算机可读存储介质,能够以资源集约化的方式运行服务和更新服务。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种服务运行方法,包括:

第一终端设备从存储服务器获取服务的更新包;

其中,所述第一终端设备和第二终端设备接入相同的局域网,且所述服务是所述第二终端设备运行的应用程序的后台服务;

将所述更新包同步至所述第一终端设备运行的虚拟化环境中,更新在所述虚拟化环境中运行的所述服务。

本申请实施例提供一种服务运行装置,应用于第一终端设备,包括:

获取模块,用于从存储服务器获取服务的更新包;

其中,所述第一终端设备和第二终端设备接入相同的局域网,且所述服务是所述第二终端设备运行的应用程序的后台服务;

同步模块,用于将所述更新包同步至所述第一终端设备运行的虚拟化环境中;

更新模块,用于更新在所述虚拟化环境中运行的所述服务。

上述方案中,所述获取模块,还用于当监听到更新事件时,触发执行预先配置的脚本程序,以使所述脚本程序从所述存储服务器中自动下载所述更新包。

上述方案中,所述同步模块,还用于将所述更新包存储到共享目录中,以使文件共享服务将所述共享目录实现为能够被所述虚拟化环境感知并读取的目录,并使所述虚拟化环境从所述共享目录中读取所述更新包。

上述方案中,所述更新模块,还用于触发执行所述虚拟化环境中的脚本程序,以使所述脚本程序自动对所述更新包进行解包处理,并运行通过所述解包处理得到的更新程序,以对所述虚拟化环境中运行的所述服务进行更新。

上述方案中,所述获取模块,还用于接收所述虚拟化环境回传的更新结果;所述装置还包括发送模块,用于将所述更新结果上传至所述存储服务器,以使所述存储服务器将所述更新结果返回给打包服务器。

上述方案中,所述打包服务器将所述服务的更新数据进行编译处理以生成更新程序,将所述更新程序进行打包以生成所述更新包,并将所述更新包同步到所述存储服务器。

上述方案中,所述打包服务器配置有网络钩子,且所述网络钩子指向所述存储服务器;当所述打包服务器生成所述服务的更新包时,触发所述网络钩子执行脚本程序,以使所述脚本程序将所述更新包自动上传至所述存储服务器。

上述方案中,所述装置还包括建立模块,用于在所述第一终端设备中启动所述虚拟化环境,并通过虚拟网桥建立所述第一终端设备的网卡与所述虚拟化环境的虚拟网卡之间的第一通信连接;其中,所述第一通信连接和第二通信连接用于实现所述虚拟化环境中运行的所述服务与所述第二终端设备运行的所述应用程序之间的通信,所述第二通信连接是所述第一终端设备与所述第二终端设备之间的连接。

上述方案中,所述虚拟化环境的类型包括虚拟机和容器至少之一。

本申请实施例提供一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的服务运行方法。

本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的服务运行方法。

本申请实施例具有以下有益效果:

通过将第二终端设备中运行的应用程序的后台服务部署在与第二终端设备处于同一个局域网中的第一终端设备运行的虚拟化环境中,并更新在虚拟化环境中运行的服务,从而将应用的运行与外网的服务器进行解耦,实现服务的灵活部署,提高了服务的部署和更新的效率,将服务运行在局域网内也保证了安全性。

附图说明

图1是相关技术提供的游戏服务运行系统的架构示意图;

图2是本申请实施例提供的服务运行系统100的架构示意图;

图3是本申请实施例提供的第一终端设备400的结构示意图;

图4是本申请实施例提供的服务运行方法的流程示意图;

图5是本申请实施例提供的服务运行方法的流程示意图;

图6是本申请实施例提供的游戏服务运行系统的架构示意图;

图7是本申请实施例提供的游戏后台服务搭建的前期工作的流程示意图;

图8是本申请实施例提供的路由器网段设置的界面示意图;

图9是本申请实施例提供的虚拟机桥接模式设置的界面示意图;

图10是本申请实施例提供的虚拟机桥接模式设置的界面示意图;

图11是本申请实施例提供的虚拟机桥接模式设置的界面示意图;

图12是本申请实施例提供的启动虚拟机的界面示意图;

图13是本申请实施例提供的游戏服务运行方法的流程示意图;

图14是本申请实施例提供的COS的存储界面示意图;

图15是本申请实施例提供的目标笔记本电脑从COS中下载更新包的界面示意图;

图16是本申请实施例提供的目标笔记本电脑将更新包同步至虚拟机的界面示意图;

图17是本申请实施例提供的虚拟机自动发现游戏的更新包的界面示意图;

图18是本申请实施例提供的虚拟机针对游戏后台服务进行更新的界面示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)虚拟机(Virtual Machine),是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内容容量。每个虚拟机都有独立的保存计算机基本启动信息的芯片、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。常见的虚拟机软件有VMware、VirtualBox和Virtual PC等。

2)容器,是一个允许在资源隔离的过程中,运行应用程序和其依赖项的、轻量的、操作系统级别的虚拟化技术,运行应用程序所需的所有必要组件都打包为单个镜像,这个镜像是可以重复使用的。当镜像运行时,它是运行在独立的环境中,并不会和其他的应用共享主机操作系统的内存、中央处理器(CPU,Central Processing Unit)或磁盘。这保证了容器内的进程不会影响到容器外的任何进程。例如,Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。

3)脚本(script),是批处理文件的延伸,是一种纯文本保存的程序。一般来说,计算机脚本程序是指确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。脚本程序相对一般程序开发来说比较接近自然语言,可以不经编译而解释执行,利用快速开发或一些轻量的控制。

4)网络钩子(Web hook),通过自定义回调函数的方式来改变网络(Web)应用的一种行为。通过Web hook可以自定义一些行为通知到指定的统一资源定位符(URL,UniformResource Locator)。当请求数据完成后,Web hook会通过用户设置的URL将对应的请求数据响应给用户。例如,当查询状态有更新,且触发了用户设置的状态更新提醒时,系统会做出一个发布(post)请求发送至用户在Web hook页面自定义的回调URL上。

为了能够不断满足不同用户多样化的服务需求,提升服务质量,常常需要对服务(即用户终端设备中运行的应用程序的后台服务)进行更新,以提供新的服务版本或者新的服务功能。

示例的,以游戏为例,在游戏开发的前期需要进行用户参与(CE,CustomerEngagement)测试,以发现游戏中可能存在的问题、以及收集用户针对游戏的评价和建议。

参见图1,图1是相关技术提供的游戏服务运行系统的架构示意图。如图1所示,相关技术是通过购买或者租用服务器(即图1中示出的外网服务器),并在上面部署游戏服务。当需要对游戏服务进行更新时,开发环境(例如打包服务器)将游戏的更新包上传至外网服务器,以使外网服务器基于接收到的更新包对游戏服务进行更新,从而,游戏用户在CE测试或者比赛现场,使用用户终端设备(例如手机)通过网络连接至外网服务器来体验最新的游戏。

然而,相关技术提供的方案存在以下问题:

1、由于需要额外租用或者购买服务器,并在服务器上部署游戏服务,导致机器成本较高,特别是在海外环境下,购买或者租用服务器的成本更高;

2、外网服务器与用户终端设备之间通常是通过公网或者专线连接的,受距离远近和网络状态的影响较大,容易出现高延迟;

3、用户终端中运行的客户端可以直接连接外网服务器,导致安全性也较差。

针对上述技术问题,本申请实施例提供一种服务运行方法、装置、电子设备和计算机可读存储介质,能够以资源集约化的方式实现服务的更新、以及提升服务的体验效率和安全性。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端设备。下面,将说明本申请实施例提供的电子设备实施为终端设备时的示例性应用。

参见图2,图2是本申请实施例提供的服务运行系统100的架构示意图,为实现能够以资源集约化的方式进行服务的更新。其中,服务运行系统100包括:打包服务器200、存储服务器300、路由器400、第一终端设备500和第二终端设备600,下面分别进行说明。

打包服务器200用于将服务的更新数据进行编译处理以生成更新程序,并将更新程序进行打包处理以生成服务的更新包,接着,打包服务器200将生成的更新包上传至存储服务器300。

存储服务器300用于接收打包服务器200上传的更新包,以及将更新包发送至路由器400,以使路由器400将接收到的更新包发送至目标终端设备,即图1中示出的第一终端设备500。

路由器400用于接收存储服务器300下发的更新包,并根据更新包携带的地址,将更新包发送至第一终端设备500。路由器400还用于建立第一终端设备500与第二终端设备600之间的通信连接。

第一终端设备500与路由器400之间通过网线直连,在第一终端设备500上运行有虚拟化环境510,虚拟化环境510的类型可以是虚拟机或者容器,且虚拟化环境510桥接在第一终端设备500上。第一终端设备500在接收到路由器400转发的更新包后,将更新包同步至虚拟化环境510中,以更新在虚拟化环境510中运行的服务。其中,在虚拟化环境510中运行的服务是第二终端设备600上运行的应用程序610的后台服务。

第二终端设备600是用户所关联的终端设备,第二终端设备600通过无线网络与路由器400进行连接,并与第一终端设备500处于相同的局域网中。在第二终端设备600上运行有应用程序610,应用程序610可以是各种类型的应用程序,包括游戏类应用程序、即时通讯类应用程序、以及视频播放类应用程序等。第二终端设备600可以通过无线网络直连路由器400,并通过路由器400连接第一终端设备500,以对虚拟化环境510中运行的服务进行访问,从而体验最新的服务,如此,通过在本地终端设备(即第一终端设备500)运行的虚拟化环境中部署服务以及进行后续的服务更新,节省了机器成本、同时也提升了服务的体验效率和安全性。

在一些实施例中,虚拟化环境510在对服务的更新包进行解包处理,并运行通过解包处理得到的更新程序,以对虚拟化环境510中运行的服务进行更新之后,还可以将更新结果同步至第一终端设备500,以使第一终端设备500将更新结果发送至路由器400。路由器400在接收到第一终端设备500发送的更新结果后,根据更新结果中携带的地址,将更新结果发送至存储服务器300,如此,打包服务器200可以从存储服务器300中下载更新结果,以使打包服务器200侧的开发人员可以清楚地了解在虚拟化环境510中服务的更新情况。

在一些实施例中,打包服务器200和存储服务器300可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。第一终端设备500和第二终端设备600可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。打包服务器200和存储服务器300、以及存储服务器300和路由器400之间可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。

下面对图2中的第一终端设备500的结构进行说明。参见图3,图3是本申请实施例提供的第一终端设备500的结构示意图,图3所示的第一终端设备500包括:至少一个处理器560、存储器550、至少一个网络接口520和用户接口530。第一终端设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统540。

处理器560可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器560的一个或多个存储设备。

存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。

在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。

网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。

呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口)。

输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本申请实施例提供的服务运行装置可以采用软件方式实现,图3示出了存储在存储器550中的服务运行装置555,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块5551、同步模块5552、更新模块5553、发送模块5554和建立模块5555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。

在另一些实施例中,本申请实施例提供的服务运行装置可以采用硬件方式实现,作为示例,本申请实施例提供的服务运行装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的服务运行方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmabl e Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。

下面将结合附图对本申请实施例提供的服务运行方法进行具体说明。

参见图4,图4是本申请实施例提供的服务运行方法的流程示意图,将结合图4示出的步骤进行说明。

在步骤S101中,第一终端设备从存储服务器获取服务的更新包。

在一些实施例中,第一终端设备可以是用于提供应用程序的后台服务的终端设备,例如,在第一终端设备上运行有虚拟化环境(包括虚拟机和容器),并在虚拟化环境中运行用于提供第二终端设备(即用户终端设备)上运行的应用程序的后台服务,且第一终端设备和第二终端设备接入相同的局域网。其中,在第二终端设备上运行的应用程序可以是各种类型的应用程序,包括游戏类应用程序、社交类应用程序、视频播放类应用程序等,例如当第二终端设备运行的应用程序是某款游戏时,则第一终端设备从存储服务器获取该款游戏对应的更新包,以对虚拟化环境中运行的游戏后台服务进行更新。

下面对构建第一终端设备和第二终端设备之间的局域网的过程进行说明。

示例的,以第一终端设备为笔记本电脑、第二终端设备为用户的手机为例进行说明。首先,将笔记本电脑和路由器通过网线进行直连,接着,进行路由器网段设置,例如在笔记本电脑的浏览器的地址栏中输入“192.168.1.1”,并在弹出的局域网(LAN,Local AreaNetwork)口设置界面中进行网际互连协议(IP,Internet Protocol)地址的设置,随后,用户的手机连接至路由器,如此,便实现了将笔记本电脑和手机接入同一个局域网中,此时,用户的手机可以通过路由器提供的无线网络与笔记本电脑进行连接,进而对笔记本电脑运行的虚拟化环境中运行的后台服务进行访问。

需要说明的是,第一终端设备和第二终端设备之间的关系可以是一对一,或者一对多的,例如,一台第一终端设备可以仅仅为一台第二终端设备运行的应用程序提供后台服务;一台第一终端设备也可以同时为多台第二终端设备分别运行的应用程序提供后台服务,本申请实施例在此不做限定。

在一些实施例中,服务的更新包可以是由打包服务器生成、并上传至存储服务器的。例如,打包服务器首先针对服务的更新数据进行编译处理得到更新程序,接着,对更新程序进行打包处理以生成服务的更新包,随后,打包服务器将生成的更新包同步至存储服务器中。

示例的,以游戏为例,当需要对游戏中画面、特效进行优化或者游戏系统安全策略上存在缺陷需要改进时,打包服务器接收游戏开发人员提交的游戏的更新数据,并针对接收到的游戏的更新数据进行编译处理得到对应的更新程序,接着,打包服务器对更新程序进行打包处理以得到游戏的更新包,随后,打包服务器将生成的游戏的更新包上传至存储服务器(例如分布式存储服务系统)中。

在一些实施例中,还可以在打包服务器中配置网络钩子,且网络钩子指向存储服务器,如此,当打包服务器生成服务的更新包时,触发网络钩子执行脚本程序,以使脚本程序将服务的更新包自动上传至存储服务器。

示例的,开发人员可以通过打包服务器调用网络钩子对应的应用程序接口(API,Application Programming Interface),并在网络钩子提供的图形界面中输入存储服务器所在的统一资源定位符(URL,Uniform Resource Locator),并设置触发网络钩子的条件是当打包服务器生成服务的更新包时,如此,当打包服务器在生成服务的更新包时,会触发网络钩子回调,这个回调将执行一个将打包服务器生成的服务的更新包自动上传至存储服务器的脚本程序,从而避免了开发人员需要手动上传服务的更新包,大大节省了人力成本。

在一些实施例中,第一终端设备可以通过以下方式实现上述的从存储服务器中获取服务的更新包:第一终端设备监听针对存储服务器中更新包的更新事件;当监听到更新事件时,触发执行第一终端设备中预先配置的脚本程序,以使脚本程序从存储服务器中自动下载服务的更新包。

示例的,以游戏为例,第一终端设备可以实时监听针对存储服务器中游戏的更新包的更新事件,例如,当第一终端设备监听到存储服务器中新增了一个游戏的更新包A时,触发执行第一终端设备中预先配置的脚本程序,以使脚本程序从存储服务器中自动下载游戏的更新包A,如此,通过对存储服务器进行实时监听、以及配置脚本程序来自动下载游戏的更新包,能够在第一时间发现游戏的更新包,并进行自动下载,从而节省了人力成本,同时也提高了更新效率。

需要说明的是,第一终端设备从存储服务器中获取的服务的更新包可以是增量更新包,也可以是全量更新包,例如,服务的更新包可以是仅仅对上一版本的服务的部分功能进行升级得到的更新包,也可以是全新发布的更新包,即与上个版本完全不同的更新包。

在步骤S102中,第一终端设备将更新包同步至第一终端设备运行的虚拟化环境中,更新在虚拟化环境中运行的服务。

在一些实施例中,第一终端设备在将更新包同步至第一终端设备运行的虚拟化环境中之前,还可以执行以下操作:在第一终端设备中启动虚拟化环境,并通过虚拟网桥建立第一终端设备的网卡与虚拟化环境的虚拟网卡之间的第一通信连接;其中,第一通信连接和第二通信连接用于实现虚拟化环境中运行的服务与第二终端设备运行的应用程序之间的通信,第二通信连接是第一终端设备与第二终端设备之间的连接。

示例的,以虚拟化环境为虚拟机(例如VMware)为例,第一终端设备在将服务的更新包同步至第一终端设备运行的VMware中之前,首先执行以下操作:将第一终端设备中运行的VMware的网络工作模式设置为桥接模式(Bridg ed),即上述的第一通信连接为VMware的桥接模式。其中,桥接模式就是将物理主机(即第一终端设备)的网卡与虚拟机的虚拟网卡利用虚拟网桥进行通信。在桥接的作用下,类似于将物理主机作为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,也就是说,所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机的IP地址需要与物理主机的IP地址在同一个网段,如果需要联网,则网卡和域名系统(DNS,Domain Name System)需要与物理主机的网卡一致。在配置好VMware的桥接模式后,可以启动VMware来测试桥接模式是否配置成功。

示例的,上述第二通信连接可以是通过路由器实现的,例如第二终端设备可以通过无线网络与路由器进行连接,而第一终端设备与路由器之间通过网线进行直连,如此,便实现了第一终端设备和第二终端设备之间的第二通信连接。

在一些实施例中,第一终端设备可以通过以下方式将更新包同步至第一终端设备运行的虚拟化环境中:在第一终端设备中配置共享目录以及文件共享服务(文件共享服务除了支持虚拟机针对服务的更新包执行读取操作外,还支持针对更新包的写、以及删除等编辑操作),并将从存储服务器中获取到的更新包存储至共享目录中,以使文件共享服务将共享目录实现为能够被虚拟化环境感知并读取的目录,并使虚拟化环境从共享目录中读取更新包。

示例的,以虚拟化环境为虚拟机(例如VMware)为例,当需要将第一终端设备中的更新包(例如第一终端设备的操作系统为Windows系统)同步至第一终端设备运行的VMware(VMware的操作系统为Linux系统)时,可以采用samba文件共享服务。其中,samba是在Linux系统和UNIX系统上实现信息服务块(SMB,Server Messages Block)协议的软件,由服务器和客户端程序构成,用于实现Linux系统和Windows系统之间共享文件资源。例如,VMware可以通过以下方式来读取第一终端设备中的更新包:VMware中安装的客户端程序在访问samba服务器时,发送negprot指令数据包,告知其支持的SMB类型,以使samba服务器根据客户端的情况,选择较优的SMB类型,并做出回应。当SMB类型确认后,客户端程序会发送session setup指令数据包,提交账号和密码,以请求与samba服务器建立连接,如果客户端程序通过身份验证,则samba服务器会对session setup报文作出回应,并为用户分配唯一的用户身份证明(UID,User Identification),在客户端与其通信时使用。随后,当客户端需要访问samba共享资源(即第一终端设备上的更新包)时,发送tree conn ect指令数据包,通知samba服务器需要访问的共享资源的目录(例如在第一终端设备上配置的共享目录)或者名称,如果设置允许,samba服务器还会为每个客户端程序与共享资源连接分配线程控制符(TID,Thread Identification),Vmware中的客户端程序即可访问需要的共享资源(即第一终端设备上的服务的更新包)。此外,在共享使用完毕后,客户端程序还可以向samba服务器发送tree disconnect报文关闭共享,以与samba服务器断开连接。

在一些实施例中,第一终端设备在将更新包同步至虚拟化环境中之后,可以通过以下方式更新在虚拟化环境中运行的服务:触发执行虚拟化环境中的脚本程序,以使脚本程序自动对更新包进行解包处理,并运行通过解包处理得到的更新程序,以对虚拟化环境中运行的服务进行更新。

示例的,以虚拟化环境为虚拟机为例,可以预先在虚拟机中配置用于执行解包处理的脚本程序,从而,当将服务的更新包同步至虚拟机中后,触发执行虚拟机中预先配置的脚本程序,以使脚本程序自动对服务的更新包进行解包处理,随后,虚拟机运行通过解包处理后得到的更新程序,以对虚拟机中运行的服务进行更新。

在一些实施例中,参见图5,图5是本申请实施例提供的服务运行方法的流程示意图,基于图4,在步骤S102之后,还可以执行步骤S103和步骤S104,将结合图5示出的步骤进行说明。

在步骤S103中,第一终端设备接收虚拟化环境回传的更新结果。

在一些实施例中,为了方便打包服务器侧的开发人员了解服务的更新情况,第一终端设备还可以接收虚拟化环境返回的更新结果。

示例的,以虚拟化环境为虚拟机为例,虚拟机在对服务的更新包进行解包处理,并运行通过解包处理后得到的更新程序,对虚拟机中运行的服务进行更新之后,可以通过上述samba文件共享服务的方式,将更新结果回传给第一终端设备,具体回传过程可以参考上述描述,本申请实施例在此不再赘述。

在步骤S104中,第一终端设备将更新结果上传至存储服务器,以使存储服务器将更新结果返回至打包服务器。

在一些实施例中,第一终端设备在从虚拟化环境中获取到更新结果后,可以将更新结果发送至路由器,以使路由器基于更新结果中携带的地址,将更新结果上传至存储服务器进行保存。从而,打包服务器可以从存储服务器中下载更新结果,以供开发人员基于更新结果执行后续的操作。例如,当开发人员基于更新结果发现第一终端设备中的虚拟化环境未开启时,可以通知第一终端设备侧的用户开启虚拟化环境。

在另一些实施例中,打包服务器还可以实时监听存储服务器中更新结果的更新事件,当监听到更新事件时,触发打包服务器中预先配置的脚本程序,以使脚本程序自动从存储服务器中下载更新结果,如此,开发人员可以在第一时间获取到更新结果,且无需进行手动下载,大大节省了人力成本、以及提高了反馈效率。

本申请实施例提供的服务运行方法通过将第二终端设备(即用户终端设备)中运行的应用程序的后台服务部署在与第二终端设备处于同一个局域网中的第一终端设备运行的虚拟化环境中,如此,当后续需要对服务进行更新时,只需将从存储服务器中获取的更新包同步至第一终端设备运行的虚拟化环境中,以更新在虚拟化环境中运行的服务,从而节省了机器成本,同时,局域网的方式也提高了服务的体验效率和安全性。

下面,以游戏为例,说明本申请实施例在一个实际的应用场景中的示例性应用。

本申请实施例提供了一种服务运行方法,能够实现游戏后台服务的自动更新,包括构建、部署、以及发布等流程的自动化实现,只要一个终端设备(例如一台笔记本电脑),就能提供全球各地的CE测试或者比赛环境,从而节省了机器成本,以及提高了服务的部署效率。下面对本申请实施例提供的服务运行方法进行具体说明。

示例的,参见图6,图6是本申请实施例提供的游戏服务运行系统的架构示意图,如图6所示,开发环境(例如打包服务器)在生成游戏的更新包后,将游戏的更新包上传至云端进行存储,例如,打包服务器可以将游戏的更新包上传至对象存储(COS,Cloud ObjectStorage,其中,COS是一种无目录层次结构、无数据格式限制,可容纳海量数据且支持超文本传输协议(HTTP,Hyp er Text Transfer Protocol)、以及超文本传输安全协议(HTTPS,Hyper Text T ransfer Protocol over Secure Socket Layer)访问的分布式存储服务,即是一种存储海量数据的分布式存储服务,用户可以在任意位置存储和检索任意大小的数据。COS提供了多种对象的存储类型,用户可以根据不同的业务需求进行搭配使用,并且,后续随着业务量的变化,用户也可以随时、灵活地调整存储需求)。打包服务器在将游戏的更新包上传至COS后,目标终端设备(例如图6中示出的笔记本电脑)就可以通过路由器自动下载COS上存储的游戏的更新包,随后,笔记本电脑可以将获取到的游戏的更新包同步至笔记本电脑上运行的虚拟机软件(例如VMware,VMware是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统、以及进行开发、测试、部署新的应用程序等。VMware可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,对于开发人员和系统管理人员来说,VMware在虚拟网路、实时快照、拖拽共享文件夹等方面的特点使其成为必不可少的工具)下的Linux环境,以自动更新在VMware中部署的游戏后台服务。如此,游戏用户在CE测试或者比赛现场,使用用户终端设备(例如手机)通过本地WiFi直连路由器,并通过路由器连接至笔记本电脑上运行的VMware中部署的游戏后台服务,从而实现以局域网的方式体验游戏,节省了机器成本、以及提高了服务部署的效率和安全性。

在一些实施例中,在笔记本电脑上运行的VMware中搭建游戏后台服务之前,还首先需要进行一些前期配置工作。

示例的,参见图7,图7是本申请实施例提供的游戏后台服务搭建的前期工作的流程示意图,如图7所示,游戏后台服务搭建的前期准备工作主要包括:配置路由器、配置虚拟机桥接、以及启动虚拟机等,下面分别进行说明。

示例的,参见图8,图8是本申请实施例提供的路由器网段设置的界面示意图。如图8所示,用户首先通过点击路由器网段设置界面中呈现的“LAN口设置”控件801,以进入LAN口设置界面,随后,在LAN口设置界面呈现的“IP地址”栏802中输入相应的IP地址,从而完成路由器网段的设置。如此,游戏用户的手机可以基于该IP地址接入路由器组建的局域网中。

下面对虚拟机软件(例如VMware)桥接模式的设置过程进行说明。

示例的,参见图9,图9是本申请实施例提供的虚拟机桥接模式设置的界面示意图,如图9所示,用户首先点击在VMware主界面中呈现的“PMGame Tcaplus”控件901,以弹出具体的内容栏,接着,用户在弹出的内容栏中点击“设置”控件902,以进行笔记本电脑与VMware之间的连接设置。

示例的,参见图10,图10是本申请实施例提供的虚拟机桥接模式设置的界面示意图。如图10所示,当用户在点击图9示出的“设置”控件902后,将跳转至图10示出的具体设置页面。随后,用户可以点击在图10中示出的“网络适配器”控件1001,并在“网络状态”栏1002中选中桥接模式。

示例的,参见图11,图11是本申请实施例提供的虚拟机桥接模式设置的界面示意图。如图11所示,当用户在图10中示出的“网络状态”栏1002中选中桥接模式后,还可以继续点击图11中示出的“高级”控件1101,以进行虚拟机的媒体存取控制位址(MAC,MediaAccess Control Address)的设置。例如,当用户在点击图11示出的“高级”控件1101后,将弹出网络适配器高级设置界面,用户可以在网络适配器高级设置界面呈现的“MAC地址”栏1102中输入相应的MAC地址,如此,便完成了VMware整个桥接模式的设置过程。随后,用户就可以在笔记本电脑中启动VMware,VMware的启动界面如图12所示,在启动界面1201中可以包括VMware的基本参数、用户的上次登录时间等。

下面以对笔记本电脑中运行的虚拟机中部署的游戏后台服务进行更新为例,对本申请实施例提供的服务运行方法进行具体说明。

示例的,参见图13,图13是本申请实施例提供的游戏服务运行方法的流程示意图,将结合图13示出的步骤进行说明。

在步骤S201中,打包服务器自动上传更新包至COS。

在一些实施例中,可以预先将打包服务器接入COS,并在打包服务器中配置用于上传游戏的更新包的脚本程序,如此,当打包服务器针对游戏的更新数据进行编译处理得到对应的更新程序,并针对更新程序进行打包处理得到游戏的更新包后,触发打包服务器中预先配置的脚本程序,以将游戏的更新包自动上传至COS。

示例的,参见图14,图14是本申请实施例提供的COS的存储界面示意图,如图14所示,在COS的存储界面中呈现有打包服务器上传的游戏的更新包“P MGameGame1113.rar”1401,表明打包服务器已经成功将游戏的更新包上传至COS。

在步骤S202中,目标笔记本电脑自动下载更新包。

在一些实施例中,可以在目标笔记本电脑中配置用于发送下载请求的脚本程序,以使脚本程序定时或不定时地向COS发送下载请求,以从COS中自动下载游戏的更新包。

示例的,参见图15,图15是本申请实施例提供的目标笔记本电脑从COS中下载更新包的界面示意图,如图15所示,目标笔记本电脑中的脚本程序可以每隔预设时长向COS发送下载请求,以从COS中自动下载游戏的更新包1501。

在步骤S203中,更新包自动同步到虚拟机。

在一些实施例中,可以通过samba共享目录的方式,将目标笔记本电脑中的游戏的更新包同步至虚拟机中。例如,可以将游戏的更新包在目标笔记本电脑中的存储目录设置为samba共享目录,从而,虚拟机可以基于samba共享目录来感知并读取游戏的更新包。

示例的,参见图16,图16是本申请实施例提供的目标笔记本电脑将更新包同步至虚拟机的界面示意图,如图16所示,可以将游戏的更新包在目标笔记本电脑中的存储目录“>此电脑>user00(\\192.168.52.132)(Z)”1601设置为s amba共享目录,如此,虚拟机可以感知在目标笔记本电脑中存储的游戏的更新包,并进行读取等操作。

在步骤S204中,虚拟机自动解包且更新游戏后台服务。

在一些实施例中,可以在虚拟机中预先配置脚本程序,以使虚拟机通过脚本程序,自动发现游戏的更新包并进行解包处理,随后,基于解包得到的更新程序对游戏后台服务进行更新。

示例的,参见图17,图17是本申请实施例提供的虚拟机自动发现游戏的更新包的界面示意图,如图17所示,虚拟机通过预先配置的脚本程序,来自动发现游戏的更新包,在页面1701中还包括游戏的更新包的发现时间等信息。

示例的,参见图18,图18是本申请实施例提供的虚拟机针对游戏后台服务进行更新的界面示意图,如图18所示,当虚拟机针对获取到的游戏的更新包进行解包处理得到对应的更新程序后,可以运行得到的更新程序对游戏后台服务进行更新,以呈现如图18所示的自动更新页面1801。

在步骤S205中,虚拟机回传更新结果到目标笔记本电脑。

在一些实施例中,虚拟机在基于接收到的游戏的更新包对游戏后台服务进行更新后,可以通过上述samba共享目录的方式将更新结果回传至目标笔记本电脑。

在步骤S206中,目标笔记本电脑上传更新结果至COS。

在一些实施例中,目标笔记本电脑在获取到虚拟机返回的更新结果后,可以将更新结果通过路由器上传至COS,以通过COS将更新结果返回给打包服务器。

在步骤S207中,打包服务器自动下载更新结果。

在一些实施例中,可以在打包服务器中配置用于下载更新结果的脚本程序,以使脚本程序定期或者不定期地向COS发送下载请求,以自动从COS中下载更新结果至打包服务器,如此,打包服务器侧的开发人员可以基于接收到的更新结果来清楚地判断对侧(即目标笔记本电脑运行的虚拟机中)游戏后台服务的更新情况,以便进行下一步的处理。

本申请实施例通过在笔记本电脑上运行的虚拟机软件中部署游戏后台服务的方案,在国内或者海外的CE测试和比赛现场中,游戏服务器只要一台笔记本电脑和一个路由器就可以完美实现,节省了项目组的人力成本和机器成本,提高了游戏的体验效率和安全性。

下面继续说明本申请实施例提供的服务运行装置555实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器550的服务运行装置555中的软件模块可以包括:获取模块5551、同步模块5552、更新模块5553、发送模块5554和建立模块5555。

获取模块5551,用于从存储服务器获取服务的更新包;其中,第一终端设备和第二终端设备接入相同的局域网,且服务是第二终端设备运行的应用程序的后台服务;同步模块5552,用于将更新包同步至第一终端设备运行的虚拟化环境中;更新模块5553,用于更新在虚拟化环境中运行的服务。

在一些实施例中,获取模块5551,还用于当监听到更新事件时,触发执行预先配置的脚本程序,以使脚本程序从存储服务器中自动下载更新包。

在一些实施例中,同步模块5552,还用于将更新包存储到共享目录中,以使文件共享服务将共享目录实现为能够被虚拟化环境感知并读取的目录,并使虚拟化环境从共享目录中读取更新包。

在一些实施例中,更新模块5553,还用于触发执行虚拟化环境中的脚本程序,以使脚本程序自动对更新包进行解包处理,并运行通过解包处理得到的更新程序,以对虚拟化环境中运行的服务进行更新。

在一些实施例中,获取模块5551,还用于接收虚拟化环境回传的更新结果;服务运行装置555还包括发送模块5554,用于将更新结果上传至存储服务器,以使存储服务器将更新结果返回给打包服务器。

在一些实施例中,打包服务器将服务的更新数据进行编译处理以生成更新程序,将更新程序进行打包以生成更新包,并将更新包同步到存储服务器。

在一些实施例中,打包服务器配置有网络钩子,且网络钩子指向存储服务器;当打包服务器生成服务的更新包时,触发网络钩子执行脚本程序,以使脚本程序将更新包自动上传至存储服务器。

在一些实施例中,服务运行装置555还包括建立模块5555,用于在第一终端设备中启动虚拟化环境,并通过虚拟网桥建立第一终端设备的网卡与虚拟化环境的虚拟网卡之间的第一通信连接;其中,第一通信连接和第二通信连接用于实现虚拟化环境中运行的服务与第二终端设备运行的应用程序之间的通信,第二通信连接是第一终端设备与第二终端设备之间的连接。

在一些实施例中,虚拟化环境的类型包括虚拟机和容器至少之一。

需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本申请实施例提供的服务运行装置中未尽的技术细节,可以根据图4、或图5任一附图的说明而理解。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的服务运行方法。

本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4、或图5示出的服务运行方法。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

综上所述,本申请实施例通过将第二终端设备(即用户终端设备)中运行的应用程序的后台服务部署在与第二终端设备处于同一个局域网中的第一终端设备运行的虚拟化环境中,如此,当后续需要对服务进行更新时,只需将从存储服务器中获取的更新包同步至第一终端设备运行的虚拟化环境中,以更新在虚拟化环境中运行的服务,从而节省了机器成本,同时,局域网的方式也提高了服务的体验效率和安全性。

以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

技术分类

06120112670067