发明内容
技术问题
本发明的目的是在云流服务中通过防止由过多数据流量造成的瓶颈来增加同时服务用户的数量。
另外,本发明的目的是当向用户的终端提供云流服务画面时通过压缩并且提供除了任何未经改变的帧以外的经改变的帧来允许有效使用用于数据传输的资源。
本发明的目的在于当提供云流服务时服务更多应用,而不造成瓶颈或影响服务质量。
另外,本发明的目的在于通过根据客户端的服务请求是否集中而对服务方法进行调整来更加有效地提供云流服务。
进一步地,本发明的目的在于提供一种用于测试用于提供云流服务的服务器是否正在正常运行的方法、设备和系统。
此外,本发明的目的在于仅利用单个云流服务器来有效地进行故障测试,以及当通过基于与云流系统的正常操作相对应的结果对测试结果进行比较来检测所述云流服务器的故障时防止由于错误参考结果而导致的测试错误的蔓延。
技术方案
为了实现上述目的,根据本发明的云流服务器包括:获取单元,该获取单元被配置为获取云流服务画面;编码单元,该编码单元被配置为从用于临时存储所获取的云流服务画面的缓冲器加载所获取的云流服务画面,并且对所加载的云流服务画面进行编码;通信单元,该通信单元被配置为向终端装置发送经编码的云流服务画面;以及压缩单元,该压缩单元被配置为确定在所述缓冲器中是否发生瓶颈,并且根据确定结果对所述云流服务画面进行压缩。
在所述云流服务器中,所述压缩单元可以基于所述缓冲器的数据存储率来确定是否发生所述瓶颈。
在所述云流服务器中,如果所述缓冲器的所述数据存储率超过预定参考存储率,则所述压缩单元可以确定在所述缓冲器中发生所述瓶颈。
在所述云流服务器中,所述压缩单元可以从与所述云流服务画面相对应的帧当中选择与之前的帧相同的一个或更多个相同帧,并且将所述一个或更多个相同帧转换成用于指示所述一个或更多个相同帧与所述之前的帧相同的标志。
在所述云流服务器中,所述压缩单元可以将与所述云流服务画面相对应的图像数据的格式编码成用于降低容量的格式。
在所述云流服务器中,所述压缩单元可以基于所述缓冲器的数据增长率来确定是否发生所述瓶颈。
在所述云流服务器中,所述压缩单元可以定期计算所述数据增长率。如果所述数据增长率大于预定参考增长率,则可以确定在所述缓冲器中发生瓶颈。
在所述云流服务器中,如果从所述缓冲器加载的所述云流服务画面处于压缩状态,则所述编码单元可以对所加载的画面进行解压缩并且随后对经解压缩的画面进行编码。
另外,一种云流服务中的数据压缩方法包括以下步骤:获取云流服务画面;根据确定在用于临时存储所获取的云流服务画面的缓冲器中是否发生瓶颈的结果,对所获取的云流服务画面进行压缩;对从所述缓冲器加载的经压缩的云流服务画面进行编码;以及向终端装置发送经编码的云流服务画面。
在所述数据压缩方法中,所述压缩的步骤可以包括以下步骤:基于所述缓冲器的数据存储率来确定是否发生所述瓶颈。
在所述数据压缩方法中,所述压缩的步骤可以包括以下步骤:如果所述缓冲器的所述数据存储率超过预定参考存储率,则确定在所述缓冲器中发生所述瓶颈。
在所述数据压缩方法中,所述压缩的步骤可以包括以下步骤:从与所述云流服务画面相对应的帧当中选择与之前的帧相同的一个或更多个相同帧,并且将所述一个或更多个相同帧转换成用于指示所述一个或更多个相同帧与所述之前的帧相同的标志。
在所述数据压缩方法中,所述压缩的步骤可以包括以下步骤:将与所述云流服务画面相对应的图像数据的格式编码成用于降低容量的格式。
在所述数据压缩方法中,所述压缩的步骤可以包括以下步骤:基于所述缓冲器的数据增长率来确定是否发生所述瓶颈。
在所述数据压缩方法中,所述压缩的步骤可以包括以下步骤:定期计算所述数据增长率。如果所述数据增长率大于预定参考增长率,则所述压缩的步骤可以包括以下步骤:确定在所述缓冲器中发生瓶颈。
在所述数据压缩方法中,如果从所述缓冲器加载的所述云流服务画面处于压缩状态,则所述编码的步骤可以包括以下步骤:对所加载的画面进行解压缩并且随后对经解压缩的画面进行编码。
另外,根据本发明的云流服务系统包括:云流服务器,该云流服务器被配置为:获取云流服务画面;从缓冲器加载所获取的云流服务画面;对所加载的云流服务画面进行编码;将所编码的云流服务画面发送到终端装置;确定在所述缓冲器中是否发生瓶颈;并且根据确定结果对所述云流服务画面进行压缩;以及所述终端装置,所述终端装置被配置为从所述云流服务器接收与所述云流服务相对应的应用执行结果画面。
进一步地,为了实现上述目的,根据本发明的云流服务器包括:接收单元,该接收单元被配置为从用户的终端装置接收服务请求;服务类型识别单元,该服务类型识别单元被配置为识别与所述服务请求相对应的云流服务的类型;服务优先级设置单元,该服务优先级设置单元被配置为基于所述云流服务的所述类型向所述云流服务分配优先级;以及服务提供单元,该服务提供单元被配置为确定能够并行地对所述云流服务同时进行处理的流管线是否达到同时服务处理的极限,并且基于确定的结果根据所述优先级来提供所述云流服务。
在所述云流服务器中,所述服务类型识别单元可以检测在所述云流服务中用于设置音频装置的打开命令,并且识别所述云流服务的所述类型是否是视频。
在所述云流服务器中,如果检测到所述打开命令,则所述服务类型识别单元可以确定所述视频被播放,并且识别出所述云流服务的所述类型是所述视频。
在所述云流服务器中,所述服务类型识别单元可以忽略当在与所述服务请求相对应的应用的执行开始时尚未接收到服务请求时检测到的所述打开命令。另外,如果在接收到所述服务请求之后检测到所述打开命令,则所述服务类型识别单元可以识别出所述云流服务的所述类型是所述视频。
在所述云流服务器中,如果当获取到与所述服务请求相对应的应用时检测到声音打开功能,则所述服务类型识别单元可以识别出所述云流服务的所述类型是所述视频。
在所述云流服务器中,所述服务优先级设置单元可以向具有视频类型的所述云流服务分配比具有除了视频以外的特定类型的所述云流服务更低的优先级。
在所述云流服务器中,如果所述流管线未达到所述同时服务处理极限,则所述服务提供单元可以在一请求所述服务时就向所述终端装置提供所述云流服务,而不考虑优先级。
在所述云流服务器中,如果在所述流管线中同时进行处理的云流服务的数量等于或大于同时处理的预定数量,则所述服务提供单元可以确定所述流管线达到所述同时服务处理极限。
在所述云流服务器中,所述同时处理的预定数量可以小于在所述流管线中同时可进行处理的云流服务的最大数量。
另外,根据本发明的取决于云流服务类型的服务处理方法包括以下步骤:从用户的终端装置接收服务请求;识别与所述服务请求相对应的云流服务的类型;基于所述云流服务的所述类型向所述云流服务分配优先级;确定能够并行地对所述云流服务同时进行处理的流管线是否达到同时服务处理的极限;以及基于确定的结果根据所述优先级来提供所述云流服务。
在所述服务处理方法中,所述服务类型识别的步骤可以检测在所述云流服务中用于设置音频装置的打开命令,并且识别所述云流服务的所述类型是否是视频。
在所述服务处理方法中,如果检测到所述打开命令,则所述服务类型识别的步骤可以确定所述视频被播放,并且识别出所述云流服务的所述类型是所述视频。
在所述服务处理方法中,所述服务类型识别的步骤可以忽略当在与所述服务请求相对应的应用的执行开始时尚未接收到服务请求时检测到的所述打开命令。另外,如果在接收到所述服务请求之后检测到所述打开命令,则所述服务类型识别的步骤可以识别出所述云流服务的所述类型是所述视频。
在所述服务处理方法中,如果当获取到与所述服务请求相对应的应用时检测到声音打开功能,则所述服务类型识别的步骤可以识别出所述云流服务的所述类型是所述视频。
在所述服务处理方法中,所述优先级分配的步骤可以向具有视频类型的所述云流服务分配比具有除了视频以外的特定类型的所述云流服务更低的优先级。
在所述服务处理方法中,如果所述流管线未达到所述同时服务处理极限,则所述服务提供的步骤可以在一请求所述服务时就向所述终端装置提供所述云流服务,而不考虑优先级。
在所述服务处理方法中,如果在所述流管线中同时进行处理的云流服务的数量等于或大于同时处理的预定数量,则所述服务提供的步骤可以确定所述流管线达到所述同时服务处理极限。
在所述服务处理方法中,所述同时处理的预定数量可以小于在所述流管线中同时可进行处理的云流服务的最大数量。
另外,为了实现上述目的,本发明提供了一种存储在介质中的计算机程序,以用于执行上述方法。
另外,根据本发明的云流服务系统包括:云流服务器,该云流服务器被配置为:从用户的终端装置接收服务请求;识别与所述服务请求相对应的云流服务的类型;基于所述云流服务的所述类型向所述云流服务分配优先级;确定流管线是否达到同时服务处理的极限;以及基于确定的结果根据所述优先级来提供所述云流服务;以及所述终端装置,所述终端装置被配置为从所述云流服务器接收与所述云流服务相对应的应用执行结果画面。
进一步地,为了实现上述目的,根据本发明的云流服务器测试装置包括:虚拟客户端模块,该虚拟客户端模块被配置为从云流服务器接收与预定测试脚本键输入相对应的测试结果,并且创建测试结果视频;比较单元,该比较单元被配置为将与所述云流服务器的正常操作相对应的参考图像与通过获取所述测试结果视频而创建的测试结果图像进行比较;以及测试控制单元,该测试控制单元被配置为基于比较的结果来确定在所述云流服务器中是否存在故障。
在所述云流服务器测试装置中,可以通过获取使用所述云流服务器的所述正常操作的与所述预定测试脚本键输入相对应的结果而创建的正常操作结果视频来创建所述参考图像。
在所述云流服务器测试装置中,通过所述预定测试脚本键输入在应用处创建的画面可以是排除了动画效果的画面。
在所述云流服务器测试装置中,所述测试控制单元可以确定当所述参考图像和所述测试结果图像彼此相同时,所述云流服务器没有故障,并且所述测试控制单元可以确定当所述参考图像和所述测试结果图像不相同时,所述云流服务器具有故障。
在所述云流服务器测试装置中,所述测试结果图像可以是在与所述参考图像相同的时间点获取的。
另外,根据本发明的云流服务器测试方法包括以下步骤:创建与云流服务器的正常操作相对应的参考图像;在虚拟客户端模块处,从所述云流服务器接收与预定测试脚本键输入相对应的测试结果并且随后创建测试结果视频;将所述参考图像与通过获取所述测试结果视频而创建的测试结果图像进行比较;以及基于比较的结果来确定在所述云流服务器中是否存在故障。
在所述云流服务器测试方法中,可以通过获取使用所述云流服务器的所述正常操作的与所述预定测试脚本键输入相对应的结果而创建的正常操作结果视频来创建所述参考图像。
在所述云流服务器测试方法中,通过所述预定测试脚本键输入在应用处创建的画面可以是排除了动画效果的画面。
在所述云流服务器测试方法中,所述确定的步骤可以确定当所述参考图像和所述测试结果图像彼此相同时,所述云流服务器没有故障,并且可以确定当所述参考图像和所述测试结果图像不相同时,所述云流服务器具有故障。
在所述云流服务器测试方法中,所述测试结果图像可以是在与所述参考图像相同的时间点获取的。
另外,根据本发明的用于云流服务器的测试系统包括:所述云流服务器,所述云流服务器被配置为发送与预定测试脚本键输入相对应的测试结果;以及测试装置,该测试装置被配置为将与所述云流服务器的正常操作相对应的参考图像与通过获取与所述云流服务器相对应的测试结果视频而创建的测试结果图像进行比较,并且基于比较的结果来确定在所述云流服务器中是否存在故障。
另外,为了实现上述目的,本发明提供了一种存储在计算机可读介质中的计算机程序,以用于执行上述云流服务器测试方法。
有益效果
根据本发明,可以通过防止在云流服务中由过多数据流量造成的瓶颈来增加在云流系统中同时服务用户的数量。
另外,当向用户的终端提供云流服务画面时,本发明能够通过压缩并提供除了未经改变的帧以外的经改变的帧经由更加有效地利用资源来传输数据。
根据本发明,可以在提供云流服务时服务更多应用,而不造成瓶颈或者影响服务质量。
另外,本发明能够通过根据客户端的服务请求是否集中而对服务方法进行调整来更加有效地提供云流服务。
当测试用于提供云流服务的服务器是否正在正常运行时,本发明使用在至少一些功能上与真实客户端终端相同的虚拟客户端模块。本发明具有如下优势:通过经由所述虚拟客户端模块在画面上输出从云流服务器接收的预定测试结果来很容易地检测所述云流服务器中的故障,获取从所述虚拟客户端模块输出的结果图像,将所获取的结果图像与当所述云流服务器正常运行时创建的参考图像进行比较,以及基于比较结果确定所述云流服务器是否正在正常运行。
另外,由于可以检查服务器是否正常运行,所以具有提前防止云流服务器的数据传输中的错误的效果。
另外,通过预先检测用于提供云流服务的服务器的故障,本发明具有稳定地提供所述云流服务并且由此增强服务质量的效果。
进一步地,通过基于与云流服务器的正常操作相对应的参考图像来执行故障测试,本发明具有仅利用单个云流服务器来允许测试并且防止由于错误的参考结果而造成的测试错误的蔓延的效果。
具体实施方式
现在,将参照附图详细描述本发明。在本文中,已知功能和元件可能不进行详细描述,以避免使得本发明的主题模糊。提供本发明的实施方式以用于帮助本领域技术人员完全理解本发明。在附图中,为清楚例示,一些元件可能在形状和尺寸上被夸大。
在下文中,将参照附图来描述本发明的优选实施方式。
图1是例示根据本发明的实施方式的云流服务系统的框图。
参照图1,根据本发明的实施方式的云流服务系统包括云流服务器110、终端装置120-1至120-N以及网络130。
云流服务器110响应于终端装置120-1至120-N中的一个终端装置的请求来执行应用,并且将执行该应用的结果画面提供到终端装置120-1至120-N中的一个终端装置。此时,云流服务器110可以获取云流服务画面,即,应用执行画面。
云流服务器110可以将所获取的执行画面临时存储在缓冲器中,将画面传递给编码器单元,执行编码,并且将经编码的画面发送到终端装置120-1至120-N。
云流服务器110可以确定在缓冲器中是否发生瓶颈。如果瓶颈发生,则云流服务器可以对所获取的画面进行压缩并存储在缓冲器中。可以根据缓冲器中的数据存储率和数据增长量来确定瓶颈的发生。
例如,云流服务器可以将参考存储率设置为缓冲器的总数据存储容量的90%。如果缓冲器的实际数据存储率超过90%,则服务器可以确定在缓冲器中发生瓶颈,且然后可以对所获取的画面进行压缩。
另外,云流服务器可以通过定期检查缓冲器的数据存储量来计算数据增长率。如果数据增长率大于预定参考增长率,则服务器可以确定在缓冲器中发生瓶颈,并且然后可以对所获取的画面进行压缩。
如上所述,通过提前防止可能由终端装置120-1至120-N的同时请求造成的瓶颈,云流服务器110可以平稳地提供云流服务并且还可以提前防止由于瓶颈而造成的系统错误。
终端装置120-1至120-N从云流服务器110接收与云流服务相对应的应用执行结果画面,且然后将其提供给用户。
终端装置120-1至120-N与通信网络连接,并且基于云计算系统能够执行应用。终端装置可以是(但不限于移动通信终端)各种装置,例如信息通信装置、多媒体装置、有线装置、固定装置以及互联网协议(IP)装置。另外,终端装置120-1至120-N中的每一个可以是移动装置,具有各种移动通信规范,例如移动电话、便携式多媒体播放器(PMP)、移动互联网装置(MID)、智能电话、台式计算机、平板PC、笔记本电脑、上网本、个人数字助理(PDA)、智能电话以及信息通信装置。
网络130提供在云流服务器110与终端装置120-1至120-N之间传输数据的路由,包括通常使用的网络和任何未来可开发的网络。例如,网络130可以是用于在有限区域内提供各种信息装置的通信的有线/无线短距离通信网络、用于提供移动实体之间的以及移动实体与该移动实体外部的任何其它实体之间的通信的移动通信网络、用于使用卫星提供地面站之间的通信的卫星通信网络、有线/无线通信网络中的一种或者其任何组合。同时,针对网络130的传输方案的标准不限于现有的传输方案标准,并且可以包括在未来要进行开发的全部传输方案标准。另外,图1中的在云流服务器110与终端装置120-1至120-N之间使用的网络可以与在终端装置120-1至120-N之间的网络不同或相同。
图2是例示图1中所示的云流服务器的示例的框图。
参照图2,图2中所示的云流服务器包括获取单元210、编码单元220、通信单元230、压缩单元240和存储单元250。
获取单元210获取云流服务画面。例如,如果从通过网络访问云流服务器110的一个或更多个终端装置接收到应用执行请求,则云流服务器110可以响应于该请求执行应用,并且然后将与执行该应用的结果相对应的执行结果画面提供到一个或更多个终端装置。
编码单元220从存储所获取的云流服务画面的缓冲器加载云流服务画面,且然后对所加载的画面进行编码。例如,响应于一个或更多个终端装置的应用执行请求而获取的应用执行结果画面可以被存储在获取单元210与编码单元220之间用于处理数据的缓冲器中。因此,编码单元220可以加载存储在缓冲器中的应用执行结果画面并对其进行编码,并且将经编码的应用执行结果画面传输到一个或更多个终端装置。
此时,如果从所述缓冲器加载的所述云流服务画面处于压缩状态,则所述编码单元可以对所加载的画面进行解压缩并且然后对经解压缩的画面进行编码。例如,当从缓冲器加载云流服务画面时,编码单元220可以检查云流服务画面是否处于压缩状态。在压缩状态的情况下,编码单元可以执行解压缩和编码。
通信单元230将经编码的云流服务画面发送到终端装置。另外,通信单元230通过诸如图1中所示的网络的通信网络执行向多个终端装置发送相关信息或者从多个终端装置接收相关信息的功能。特别地,根据本发明的实施方式的通信单元230从终端装置接收针对云流服务的请求,并且然后将与由终端装置请求的云流服务相对应的应用执行结果画面提供给终端装置。
压缩单元240确定缓冲器中是否发生瓶颈,并且根据确定结果对云流服务画面进行压缩。
在这种情况下,可以基于缓冲器的数据存储率来确定瓶颈是否发生。
在这种情况下,如果缓冲器的数据存储率超过预定参考存储率,则压缩单元可以确定瓶颈发生。例如,如果参考存储率被设定为缓冲器的总数据存储容量的90%,并且如果缓冲器的数据存储率超过90%,则可以确定的是在缓冲器中发生瓶颈。
另外,可以基于缓冲器的数据增长率来确定瓶颈是否发生。
在这种情况下,可以定期计算数据增长率。如果所述数据增长率大于预定参考增长率,则可以确定在所述缓冲器中发生瓶颈。例如,可以通过每分钟检查缓冲器中存储的数据量来计算数据增长率。如果数据增长率超过预定增长率,则可以确定在缓冲器中发生瓶颈。
在这种情况下,所述压缩单元可以从与所述云流服务画面相对应的帧当中选择与之前的帧相同的一个或更多个相同的帧,且然后将所述一个或更多个相同的帧转换成用于指示所述一个或更多个相同的帧与所述之前的帧相同的标志。例如,假设在十个帧当中仅第一帧和第七帧与之前的帧相比发生变化,而其余的八个帧都未发生变化。在这种情况下,可以仅传递关于第一帧和第七帧的真实数据。可以与该真实数据一起传递指示第二至第六帧与第一帧相同的标志以及指示第八至第十帧与第七帧相同的标志。
在这种情况下,可以将与云流服务画面相对应的图像数据的格式编码成用于降低容量的格式。由于基于图像的云流服务具有小于基于视频的云流服务的压缩率,因此发送延迟将发生的可能性较大。另外,根据用于对每个帧进行压缩的静态图像编解码器的类型,所传递的数据的量以及云流服务器的负荷可以不同。例如,基于调色板的PNG编码可以使数据大小减小,即使有时会造成图像质量的恶化。因此,这可以有助于防止缓冲器中发生瓶颈。
存储单元250根据本发明的实施方式存储在云流服务过程中创建的各种各样的上述信息。
根据实施方式,存储单元250可以独立于云流服务110而形成,并且支持用于云流服务的功能。在这种情况下,存储单元250可以作为单独的大容量存储器来进行操作并且包括用于进行操作的控制功能。
另外,上述云流服务器110还可以借助于一个或更多个服务器来实现。
同时,云流服务器110具有可以存储信息的存储器。在实施方式中,该存储器是计算机可读介质。存储器在一种实施方式中可以是易失性存储器单元,并且在另一实施方式中可以是非易失性存储器单元。在实施方式中,存储单元是计算机可读介质。在各种不同的实施方式中,存储单元可以包括硬盘装置、光盘装置或任何其它大容量存储装置。
图3是例示图1中所示的终端装置的示例的框图。
参照图3,终端装置包括控制单元310、通信单元320、输入单元330、显示单元340和存储器单元350。
输入单元330接收关于各种各样的数字和文字信息的输入,并且将与对终端装置的各种功能进行设置或控制相关联的输入信号传递给控制单元310。另外,输入单元330可以包括用于响应于用户的触摸或操作而创建输入信号的键盘和触摸板中的至少一种。在这种情况下,输入单元330可以与显示单元340集成以形成单个触摸面板(或触摸屏),从而执行输入功能和显示功能两者。另外,输入单元330可以使用诸如键盘、小键盘、鼠标和操纵杆的典型输入装置,以及待开发的任何种类的输入机构。特别地,根据本发明的输入单元330可以将用于从云流服务器110请求云流服务或者从云流服务器110接收应用执行结果画面的输入信号传递到控制单元310。
显示单元340显示关于操作状态的信息以及终端装置的结果。另外,显示单元340可以显示终端装置的菜单以及由用户输入的用户数据。显示单元340可以由液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、发光二极管(LED)、有机LED(OLED)、有源矩阵OLED(AMOLED)、视网膜显示器、柔性显示器、三维显示器等形成。在显示单元340由触摸屏形成的情况下,显示单元340可以执行输入单元330的全部或部分功能。特别地,根据本发明的显示单元340在屏幕上显示与云流服务相关联的信息。
存储器单元350是用于存储数据的装置,其包括主存储器单元和辅助存储器单元,并且存储终端装置的操作所需的程序。存储器单元350可以主要包括程序区域和数据区域。当响应于用户的请求使任何功能激活时,终端装置在控制单元310的控制下执行相关应用并且提供相应的功能。特别地,根据本发明的存储器单元350存储用于启动终端装置的操作系统、用于从云流服务器110请求云流服务或者从云流服务器110接收应用执行结果的程序等。
通信单元320通过网络执行用于向云流服务器110发送数据或者从云流服务器110接收数据的功能。这里,通信单元320可以包括使传出信号的频率上变频且然后将该信号进行放大的RF发送器、利用低噪声将传入信号进行放大并且使该信号的频率下变频的RF接收器等。通信单元320可以包括无线通信模块(未示出)和有线通信模块(未示出)中的至少一种。无线通信模块被配置为用于根据无线通信方案来发送和接收数据。在使用无线通信的情况下,终端装置可以通过无线网络通信模块、WLAN通信模块和WPAN通信模块中的一个来向云流服务器110发送数据或者从云流服务器110接收数据。另外,有线通信模块被配置为用于以有线方式发送和接收数据。有线通信模块可以通过线缆接入通信网络,且然后向云流服务器110发送数据或者从云流服务器110接收数据。特别地,通过与云流服务器110进行通信,根据本发明的通信单元320发送或接收用于执行应用和接收应用执行结果画面的请求所需的数据。
控制单元310可以是用于对OS(操作系统)和各个元件进行操作的处理器。控制单元310可以控制接入云流服务器110的整个过程。例如,在通过单独的服务应用接入云流服务器110的情况下,控制单元可以控制响应于用户的请求来执行服务应用的整个过程,控制服务请求以与该执行同时地被发送到云流服务器110,并且还控制用于用户认证的终端信息以便一起进行发送。
图4是例示根据本发明的实施方式的数据压缩方法的示图。
参照图4,根据本发明的实施方式的数据压缩方法可以将与云流服务画面相对应的第一至第N帧401至405与之前的帧进行比较,选择相同的帧410,并且将所选择的帧转换成标志。例如,如果图4中的帧401至403是相同的帧410,则可以仅发送关于帧401的真实数据。至于其它帧402和403,可以创建指示这些帧与帧401相同并且用于压缩的标志。另外,由于帧404是不属于相同的帧的变化的帧,因此可以将帧404的真实数据发送到编码器单元。
因此,如果预料到将在缓冲器中发生瓶颈,则可以根据上述方法对所获取的云流服务画面进行压缩。这可以提前防止由于瓶颈而导致的云流服务的错误。
图5是例示根据本发明的实施方式的云流服务中的数据压缩方法的流程图。
参照图5,根据本发明的实施方式的云流服务中的数据压缩方法获取云流服务画面(S510)。例如,如果从通过网络访问云流服务器的一个或更多个终端装置接收到应用执行请求,则云流服务器可以响应于该请求来执行应用,并且然后将与执行该应用的结果相对应的执行结果画面提供到一个或更多个终端装置。
另外,根据本发明的实施方式的云流服务中的数据压缩方法确定在临时存储所获取的云流服务画面的缓冲器中是否发生瓶颈,并且然后根据确定结果对云流服务画面进行压缩(S520)。
在这种情况下,可以基于缓冲器的数据存储率来确定瓶颈是否发生。
在这种情况下,如果缓冲器的数据存储率超过预定参考存储率,则可以确定瓶颈发生。例如,如果参考存储率被设定为缓冲器的总数据存储容量的90%,并且如果缓冲器的数据存储率超过90%,则可以确定的是在缓冲器中发生瓶颈。
另外,可以基于缓冲器的数据增长率来确定瓶颈是否发生。
在这种情况下,可以定期计算数据增长率。如果所述数据增长率大于预定参考增长率,则可以确定在所述缓冲器中发生瓶颈。例如,可以通过每分钟检查缓冲器中存储的数据量来计算数据增长率。如果数据增长率超过预定增长率,则可以确定在缓冲器中发生瓶颈。
在这种情况下,可以从与云流服务画面相对应的帧当中选择与之前的帧相同的一个或更多个相同的帧,并且可以将相同的帧转换成指示相同的帧与之前帧相同的标志。例如,假设在十个帧当中仅第一帧和第七帧与之前的帧相比发生变化,而其余的八个帧都未发生变化。在这种情况下,可以仅传递关于第一帧和第七帧的真实数据。可以与该真实数据一起传递指示第二至第六帧与第一帧相同的标志以及指示第八至第十帧与第七帧相同的标志。
在这种情况下,可以将与云流服务画面相对应的图像数据的格式编码成用于降低容量的格式。由于基于图像的云流服务具有小于基于视频的云流服务的压缩率,因此发送延迟将发生的可能性较大。另外,根据用于对每个帧进行压缩的静态图像编解码器的类型,所传递的数据的量以及云流服务器的负荷可以不同。例如,基于调色板的PNG编码可以使数据大小减小,即使有时会造成图像质量的恶化。因此,这可以有助于防止缓冲器中发生瓶颈。
另外,根据本发明的实施方式的云流服务中的数据压缩方法从缓冲器加载经压缩的云流服务画面并且然后对所加载的画面进行编码(S530)。例如,响应于一个或更多个终端装置的应用执行请求而获取的应用执行结果画面可以被存储在获取单元与编码单元之间的用于处理数据的缓冲器中。因此,编码单元可以加载存储在缓冲器中的应用执行结果画面并对其进行编码,并且将经编码的应用执行结果画面传输到一个或更多个终端装置。
此时,如果从缓冲器加载的云流服务画面处于压缩状态,则可以对所加载的画面进行解压缩并且然后对其进行编码。例如,当从缓冲器加载云流服务画面时,编码单元可以检查云流服务画面是否处于压缩状态。在压缩状态的情况下,编码单元可以执行解压缩和编码。
另外,根据本发明的实施方式的云流服务中的数据压缩方法将经编码的云流服务画面发送到终端装置(S540)。此时,可以通过诸如网络的通信网络向多个终端装置发送相关信息或者从多个终端装置接收相关信息。
图6是例示根据本发明的实施方式的云流服务处理的流程图。
参照图6,根据本发明的实施方式的云流服务处理从一个或更多个终端装置接收与云流服务相对应的请求(S610)。
云流服务器获取与一个或更多个终端装置的请求相对应的云流服务画面(S620)。响应于该请求,云流服务器可以执行应用,并且然后获取与执行该应用的结果相对应的应用执行结果画面。
当云流服务画面从获取单元被传递到编码单元时,云流服务器确定在临时存储云流服务画面的缓冲器中是否发生瓶颈(S625)。
此时,可以根据缓冲器的数据存储率和数据增长量来确定是否发生瓶颈。
例如,如果参考存储率被设定为缓冲器的总数据存储容量的90%,并且如果实际上缓冲器的数据存储率超过90%,则可以估计缓冲器中发生瓶颈并且然后可以对所获取的画面进行压缩。
另外,通过定期检查存储在缓冲器中的数据的量,可以计算数据增长率。如果缓冲器中的数据增长率大于预定参考增长率,则可以估计缓冲器中发生瓶颈并且然后可以对所获取的画面进行压缩。
如果作为步骤S625中的确定的结果,在缓冲器中发生任何瓶颈,则服务器对云流服务画面进行压缩(S630)。
此时,服务器可以从与云流服务画面相对应的帧当中选择与之前的帧相同的一个或更多个相同的帧,并且然后将一个或更多个相同的帧转换成用于指示一个或更多个相同的帧与之前的帧相同的标志。
此时,可以将与云流服务画面相对应的图像数据的格式编码成用于降低容量的格式。
如果作为步骤S625中的确定的结果,在缓冲器中没有发生瓶颈,则编码器加载存储在缓冲器中的云流服务画面,并且然后对所加载的画面进行编码。另外,编码器可以从缓冲器加载由于瓶颈的发生而进行压缩的云流服务画面,并且然后对所加载的画面进行编码。
云流服务器将经编码的云流服务画面发送到终端装置(S650)。
图7是例示根据本发明的实施方式的云流服务系统的框图。
参照图7,根据本发明的实施方式的云流服务系统包括云流服务器710、终端装置720-1至720-N以及网络730。
云流服务器710从用户的终端装置720-1至720-N接收服务请求。由于需要有更大的存储空间和更高的处理能力来运行应用,所以终端装置720-1至720-N可以从云流服务器710请求用于执行应用的服务,以便提供有在云流服务器710处运行的应用的经压缩的画面。
另外,云流服务器710识别与服务请求相对应的云流服务的类型。此时,服务器可以检测用于在所述云流服务中设置音频装置的打开(OPEN)命令,并且然后检查所述云流服务的类型是否是视频。如果检测到打开命令,则服务器可以确定正在播放视频并且云流服务的类型是视频。在这种情况下,服务器可以忽略当在与服务请求相对应的应用的执行开始时没有接收到该服务请求时检测到的打开命令,并且当在接收到服务请求之后检测到打开命令时将云流服务的类型识别为视频。另外,在当获取到与服务请求相对应的应用时检测到声音打开(Sound Open)功能的情况下,服务器可以将云流服务的类型识别为视频。
另外,云流服务器710基于云流服务的类型向云流服务分配优先级。此时,服务器可以向具有视频类型的云流服务分配比具有除了视频以外的特定类型的云流服务更低的优先级。
另外,云流服务器710确定能够并行地对云流服务同时进行处理的流管线是否达到同时服务处理的极限,且然后基于确定的结果根据优先级来提供云流服务。如果流管线未达到同时服务处理极限,则服务器可以在一请求服务时就向终端装置提供云流服务,而不考虑优先级。另外,如果在流管线中同时进行处理的云流服务的数量等于或大于同时处理的预定数量,则服务器可以确定流管线达到同时服务处理极限。这里,同时处理的预定数量可以小于在流管线中同时可进行处理的云流服务的最大数量。
终端装置720-1至720-N从云流服务器710接收与云流服务相对应的应用执行结果画面,且然后将其提供给用户。
终端装置720-1至720-N与通信网络连接,并且基于云计算系统能够执行应用。终端装置可以是(但不限于移动通信终端)各种装置,例如信息通信装置、多媒体装置、有线装置、固定装置以及互联网协议(IP)装置。另外,终端装置720-1至720-N中的每一个可以是移动装置,具有各种移动通信规范,例如移动电话、便携式多媒体播放器(PMP)、移动互联网装置(MID)、智能电话、台式计算机、平板PC、笔记本电脑、上网本、个人数字助理(PDA)、智能电话以及信息通信装置。
网络730提供在云流服务器710与终端装置720-1至720-N之间传输数据的路由,包括通常使用的网络和任何未来可开发的网络。例如,网络730可以是用于在有限区域内提供各种信息装置的通信的有线/无线短距离通信网络、用于提供移动实体之间的以及移动实体与该移动实体外部的任何其它实体之间的通信的移动通信网络、用于使用卫星提供地面站之间的通信的卫星通信网络、有线/无线通信网络中的一种或者其任何组合。同时,针对网络730的传输方案的标准不限于现有的传输方案标准,并且可以包括在未来要进行开发的全部传输方案标准。另外,图7中的在云流服务器710与终端装置720-1至720-N之间使用的网络可以与在终端装置720-1至720-N之间的网络不同或相同。
图8是例示图7中所示的云流服务器的示例的框图。
参照图8,图7中所示的云流服务器710包括接收单元810、服务类型识别单元820、服务优先级设置单元830和服务提供单元840。
接收单元810从用户的终端装置接收服务请求。终端装置可以要求更大的存储空间和更高的处理能力以运行应用。因此,终端装置可以从云流服务器710请求用于执行应用的服务,以便提供有在云流服务器710处运行的应用的经压缩的画面。
服务类型识别单元820识别与服务请求相对应的云流服务的类型。在从云流服务器710请求的服务当中,可以存在应响应于服务请求而立即提供的服务或者不需要立即进行反应的服务。例如,在游戏的情况下,一从用户接收到服务请求就必须提供服务。相反,在YouTube上播放视频的情况下,如果能够调整设置FPS(帧/秒),则可以使服务的处理次序延迟。因此,通过根据服务类型对云流服务的处理次序进行调度,云流服务器可以更平稳地进行操作。
在这种情况下,通过检测用于在云流服务中设置音频装置的打开命令,服务类型识别单元可以识别云流服务的类型是否是视频。视频可以包含音频部分和视频部分,并且需要设置支持音频的装置以便支持视频中的音频。因此,使用诸如打开和关闭(CLOSE)的命令,可以设置支持音频的装置。例如,通过经由打开命令调用和设置用于支持音频/视频播放的媒体控制接口(MCI)装置并且经由关闭命令使MCI装置的设置终止,可以播放与MCI装置的设置相对应的视频文件。因此,通过检测用于设置音频装置的打开命令,可以识别相应云流服务的类型是否是视频。
如果检测到打开命令,则服务类型识别单元可以确定在播放视频,且然后将云流服务的类型识别为视频。例如,如果在特定的云流服务中检测到用于设置音频装置的打开命令,则可以将该特定的云流服务的类型确定为包含音频的视频文件。
在这种情况下,可以忽略当在与服务请求相对应的应用的执行开始时没有接收到服务请求时检测到的打开命令。如果在接收到服务请求之后检测到任何打开命令,则可以将云流服务的类型识别为视频。例如,即使当云流服务的类型是游戏时,也可以在应用的执行开始时检测到用于设置音频装置的打开命令。根据本发明的这种检测方法可以被用于仅针对在从用户接收到服务请求之后检测到的打开命令而将云流服务的类型识别为视频。因此,可以忽略在应用的执行开始时没有从用户接收到服务请求的状态下检测到的任何打开命令。
另外,即使在云流服务的类型是游戏的情况下,也可以在执行应用并且然后从用户接收服务请求之后检测到用于支持音频装置的打开命令。在这种情况下,针对该服务请求,可以将云流服务的类型识别为视频。
在这种情况下,如果当获取到与服务请求相对应的应用时检测到声音打开功能,则可以将云流服务的类型识别为视频。例如,由于通过云流服务提供的应用未被设计为用于云流,所以可以检测出是否在播放视频。在这种情况下,在用户的针对服务请求的点击事件在终端装置处发生之后,可以检测出当云流服务器710获取应用时声音打开功能是否存在。如果检测到声音打开功能,则可以将云流服务的类型识别为视频。
服务优先级设置单元830基于云流服务的类型向云流服务分配优先级。如上所述,在从云流服务器710请求的服务当中,可以存在诸如游戏的应对服务请求立即作出反应的服务,或者诸如视频的即使接收到服务请求也可以使处理延迟直至提供实际服务的服务。因此,根据服务的类型,更高优先级被分配给需要立即进行处理的云流服务,并且更低优先级被分配给不需要立即进行处理的云流服务。通过按照这种方式对流管线进行调度,可以提供更加平稳的云流服务。
在这种情况下,可以向具有视频类型的云流服务分配与具有任何其它类型的云流服务相比更低的优先级。例如,诸如游戏的云流服务可以具有更高优先级,并且因此更迅速地被提供给用户。
服务提供单元840确定能够并行地对云流服务同时进行处理的流管线是否达到同时服务处理的极限,且然后基于确定的结果根据优先级来提供云流服务。
管线是能够最优地使用计算机的中央处理单元的数据处理过程,并且被设计为将单个处理器划分成具有不同功能且对不同数据同时进行处理的多个子处理器。例如,计算机指令通常经过提取、分析、内容提取和执行四个阶段。在没有管线式的方法的情况下,计算机处理器应按照输入次序逐个对指令进行处理。然而,管线方法允许指令的并行处理,从而提高了处理速度。因此,通过将管线应用到云流服务器710并且并行地对云流服务逐个进行处理,能够提高云流服务器710的服务速度。
这种流管线在对服务同时进行处理方面具有极限。如果执行服务处理以越过该极限,则可能会发生使相应处理部分的性能退化或瘫痪的瓶颈。瓶颈可能造成整个系统的效率降低。因此,如果预料到流管线达到同时服务处理的极限,则服务器可以通过减少要进行处理的云流服务的数量来防止瓶颈。此时,可以使用分配给服务的优先级来减少要立即进行处理的云流服务的数量。
如果流管线未达到同时服务处理的极限,则服务器可以在一请求服务时就向终端装置提供云流服务,而不考虑优先级。即使用户请求的云流服务的优先级较低,如果流管线具有用于对服务进行处理的能力,也可以对服务进行处理并且根据优先级立即提供该服务。
如果在流管线中同时进行处理的云流服务的数量等于或大于同时处理的预定数量,则可以确定流管线达到同时服务处理极限。
在这种情况下,同时处理的预定数量可以小于在流管线中同时可进行处理的云流服务的最大数量。例如,如果用于估计流管线的极限的参考值被设置为在流管线中可同时进行处理的云流服务的最大数量,则瓶颈可能与估计同时发生。因此,为了防止瓶颈与估计同时发生,可以将作为用于估计瓶颈的参考值的同时处理的预定数量设置为小于在流管线中可同时进行处理的云流服务的最大数量。同时,可以由云流服务器710的管理员自由地设置同时处理的预定数量。
图9是例示根据本发明的实施方式的取决于云流服务类型的服务处理方法的流程图。
参照图9,在本发明的实施方式中的取决于云流服务类型的服务处理方法从用户的终端装置接收服务请求(S910)。终端装置可以要求更大的存储空间和更高的处理能力以便运行应用。因此,终端装置可以从云流服务器请求用于执行应用的服务,以便提供有在云流服务器处运行的应用的经压缩的画面。
另外,在本发明的实施方式中的取决于云流服务类型的服务处理方法识别与服务请求相对应的云流服务的类型(S920)。在从云流服务器请求的服务当中,可以存在应响应于服务请求立即提供的服务或者不需要立即进行反应的服务。例如,在游戏的情况下,一从用户接收到服务请求就必须提供服务。相反,在YouTube上播放视频的情况下,如果能够调整设置FPS(帧/秒),则可以使服务的处理次序延迟。因此,通过根据服务类型对云流服务的处理次序进行调度,云流服务器可以更平稳地进行操作。
在这种情况下,通过检测用于在云流服务中设置音频装置的打开命令,服务类型识别单元可以识别云流服务的类型是否是视频。视频可以包含音频部分和视频部分,并且需要设置支持音频的装置以便支持视频中的音频。因此,使用诸如打开和关闭的命令,可以设置支持音频的装置。例如,通过经由打开命令调用和设置用于支持音频/视频播放的媒体控制接口(MCI)装置并且经由关闭命令使MCI装置的设置终止,可以播放与MCI装置的设置相对应的视频文件。因此,通过检测用于设置音频装置的打开命令,可以识别相应云流服务的类型是否是视频。
如果检测到打开命令,则服务类型识别单元可以确定在播放视频,且然后将云流服务的类型识别为视频。例如,如果在特定的云流服务中检测到用于设置音频装置的打开命令,则可以将该特定的云流服务的类型确定为包含音频的视频文件。
在这种情况下,可以忽略当在与服务请求相对应的应用的执行开始时没有接收到服务请求时检测到的打开命令。如果在接收到服务请求之后检测到任何打开命令,则可以将云流服务的类型识别为视频。例如,即使当云流服务的类型是游戏时,也可以在应用的执行开始时检测到用于设置音频装置的打开命令。根据本发明的这种检测方法可以被用于仅针对在从用户接收到服务请求之后检测到的打开命令而将云流服务的类型识别为视频。因此,可以忽略在应用的执行开始时没有从用户接收到服务请求的状态下检测到的任何打开命令。
另外,即使在云流服务的类型是游戏的情况下,也可以在执行应用并且然后从用户接收服务请求之后检测到用于支持音频装置的打开命令。在这种情况下,针对该服务请求,可以将云流服务的类型识别为视频。
在这种情况下,如果当获取到与服务请求相对应的应用时检测到声音打开功能,则可以将云流服务的类型识别为视频。例如,由于通过云流服务提供的应用未被设计为用于云流,所以可以检测出是否在播放视频。在这种情况下,在用户的针对服务请求的点击事件在终端装置处发生之后,可以检测出当云流服务器获取应用时声音打开功能是否存在。如果检测到声音打开功能,则可以将云流服务的类型识别为视频。
另外,在本发明的实施方式中的取决于云流服务类型的服务处理方法基于云流服务的类型向云流服务分配优先级(S930)。如上所述,在从云流服务器请求的服务当中,可以存在诸如游戏的应对服务请求立即作出反应的服务,或者诸如视频的即使接收到服务请求也可以使处理延迟直至提供实际服务的服务。因此,根据服务的类型,更高优先级被分配给需要立即进行处理的云流服务,并且更低优先级被分配给不需要立即进行处理的云流服务。通过按照这种方式对流管线进行调度,可以提供更加平稳的云流服务。
在这种情况下,可以向具有视频类型的云流服务分配与具有任何其它类型的云流服务相比更低的优先级。例如,诸如游戏的云流服务可以具有更高优先级,并且因此更迅速地被提供给用户。
另外,在本发明的实施方式中的取决于云流服务类型的服务处理方法确定能够并行地对云流服务同时进行处理的流管线是否达到同时服务处理的极限,且然后基于确定的结果根据优先级来提供云流服务(S940)。
管线是能够最优地使用计算机的中央处理单元的数据处理过程,并且被设计为将单个处理器划分成具有不同功能且对不同数据同时进行处理的多个子处理器。例如,计算机指令通常经过提取、分析、内容提取和执行四个阶段。在没有管线式的方法的情况下,计算机处理器应按照输入次序逐个对指令进行处理。然而,管线方法允许指令的并行处理,从而提高了处理速度。因此,通过将管线应用到云流服务器并且并行地对云流服务逐个进行处理,能够提高云流服务器的服务速度。
这种流管线在对服务同时进行处理方面具有极限。如果执行服务处理以越过该极限,则可能会发生使相应处理部分的性能退化或瘫痪的瓶颈。瓶颈可能造成整个系统的效率降低。因此,如果预料到流管线达到同时服务处理的极限,则服务器可以通过减少要进行处理的云流服务的数量来防止瓶颈。此时,可以使用分配给服务的优先级来减少要立即进行处理的云流服务的数量。
如果流管线未达到同时服务处理的极限,则服务器可以在一请求服务时就向终端装置提供云流服务,而不考虑优先级。即使用户请求的云流服务的优先级较低,如果流管线具有用于对服务进行处理的能力,也可以对服务进行处理并且根据优先级立即提供该服务。
如果在流管线中同时进行处理的云流服务的数量等于或大于同时处理的预定数量,则可以确定流管线达到同时服务处理极限。
在这种情况下,同时处理的预定数量可以小于在流管线中同时可进行处理的云流服务的最大数量。例如,如果用于估计流管线的极限的参考值被设置为在流管线中可同时进行处理的云流服务的最大数量,则瓶颈可能与估计同时发生。因此,为了防止瓶颈与估计同时发生,可以将作为用于估计瓶颈的参考值的同时处理的预定数量设置为小于在流管线中可同时进行处理的云流服务的最大数量。同时,可以由云流服务器的管理员自由地设置同时处理的预定数量。
图10是例示根据本发明的实施方式的取决于云流服务类型的服务处理方法的详细流程图。
参照图10,在根据本发明的实施方式的取决于云流服务类型的服务处理方法中,云流服务器从用户的终端装置接收服务请求(S1010)。
然后,云流服务器识别与用户的服务请求相对应的云流服务的类型(S1020)。
为了识别与用户的服务请求相对应的云流服务是否是视频,云流服务器确定是否检测到用于设置音频装置的打开命令(S1025)。
如果在步骤S1025中确定未检测到打开命令,则服务器确定云流服务的类型不是视频(S1030)。
如果在步骤S1025中确定检测到打开命令,则服务器确定云流服务的类型是视频(S1040)。
然后,云流服务器根据所识别的云流服务的类型来分配优先级(S1050)。
另外,云流服务器确定在流管线中同时进行处理的云流服务的数量是否等于或大于同时处理的预定数量(S1055)。
如果在步骤S1055中确定在流管线中同时进行处理的云流服务的数量等于或大于同时处理的预定数量,则服务器根据向其分配的优先级对云流服务进行处理,且然后将该服务提供给用户(S1060)。
如果在步骤S1055中确定在流管线中同时进行处理的云流服务的数量小于同时处理的预定数量,则服务器一从用户接收到服务请求时就对云流服务进行处理并提供该云流服务(S1070)。
图11是例示根据本发明的实施方式的用于云流服务器的测试系统的框图。
参照图11,本发明所应用的云流系统包括经由通信网络1110彼此连接的多个客户端1100、1101和1102,以及多个云流服务器1130、1140和1150。为了测试该云流系统是否正常运行,该系统还包括测试装置1120,该测试装置1120具有与多个云流服务器1130、1140和1150连接并且执行客户端1100、1101和1102的至少一些功能的虚拟客户端模块。
尽管下面的实施方式例示了三个云流服务器1130、1140和1150以及具有三个虚拟客户端模块的测试装置1120,云流服务器的数量和虚拟客户端模块的数量并不限于此并且可以另选地根据需要和设计而具有各种组合。
上述客户端1100、1101或1102是指能够经由通信网络1110发送和接收各种数据的装置,特别是指用于通过访问云流服务器1130、1140或1150来提供云流服务的用户装置。例如,客户端1100、1101或1102可以是平板PC、膝上型计算机、个人计算机(PC)、智能电话、个人数字助理(PDA)、智能TV、移动通信终端和机顶盒中的一种。
另外,客户端1100、1101或1102是指具有用于经由通信网络1110与云流服务器1130、1140或1150进行通信的浏览器、用于存储程序和协议的存储器、用于执行和控制各种程序的微处理器等的装置。即,能够与云流服务器1130、1140或1150进行通信的任何装置都可以被用作客户端1100、1101或1102,包括诸如笔记本计算机、移动通信装置、PDA等的任何通信计算设备。
客户端1100、1101或1102不但可以例如访问云流服务器1130、1140或1150并且响应于用户输入来请求特定服务或功能,而且可以从云流服务器1130、1140或1150接收并且输出根据所请求的服务或功能的执行的结果画面。
另外,云流服务器1130、1140或1150是用于将特定服务或功能(特别是云流服务)提供给多个客户端1100、1101和1102的元件。例如,为了提供特定服务或功能,例如要求高效图像处理的服务或功能,不论客户端1100、1101或1102的OS类型、CPU性能、存储器容量或其它软件和硬件规格如何,云流服务器1130、1140或1150都可以响应于从客户端1100、1101或1102接收的用户输入来执行服务或功能,并且然后将结果画面发送到客户端1100、1101或1102。为此,云流服务器1130、1140或1150可以具有画面虚拟化功能。特别地,为了测试正常操作与否(即,是否故障),云流服务器1130、1140或1150可以接收预定的测试脚本键输入,并且将基于所接收的输入而创建的测试结果(测试结果画面)发送到测试装置1120的各个虚拟客户端模块。
通信网络1110是指诸如互联网、内联网、移动通信网络、卫星通信网络等的能够通过使用各种有线/无线通信技术经由互联网协议来发送和接收数据的网络。通信网络1110是指诸如局域网(LAN)或广域网(WAN)的封闭式网络;诸如互联网的开放式网络;诸如码分多址(CDMA)、宽带码分多址(WCDMA)、全球移动通信系统(GSM)、长期演进(LTE)或演进分组核心网(EPC)的网络;未来要实现的下一代网络以及计算网络。
测试装置1120是用于测试云流服务器1130、1140或1150是否正常运行的装置。测试装置1120包括具有客户端1100、1101或1102的至少一些功能的至少一个虚拟客户端模块。
在该测试装置1120中,该至少一个虚拟客户端模块从至少一个云流服务器1130、1140或1150接收测试结果。当该至少一个虚拟客户端模块对所接收的测试结果的数据进行处理并将其输出到屏幕时,测试装置获取所输出的结果图像、将所获取的结果图像与和云流服务器1130、1140或1150的正常操作相对应的参考图像进行比较、并且确定该至少一个云流服务器是否具有故障。具体地,测试装置1120将参考图像与结果图像进行比较。当在特定云流服务器1130正常运行时接收到的结果通过诸如解码的数据处理且然后被输出到屏幕时,在特定获取时间点输出参考图像。另外,当从特定云流服务器1130接收到的测试结果通过诸如解码的数据处理且然后被输出到屏幕时,在特定获取时间点输出结果图像。如果两个图像彼此不相同,则确定特定云流服务器1130具有故障并且因此运行异常。如果两个图像彼此相同,则确定云流服务器1130正常运行。在这种情况下,获取时间点可以基于当从至少一个云流服务器1130、1140或1150发送测试结果时的时间点来进行限定,或者可以提前被存储在测试装置1120中。
在这种情况下,参考图像可以对应于至少一个云流服务器1130、1140或1150的正常操作,并且可以从使用与预定的测试脚本键输入相对应的正常操作结果而创建的正常操作结果视频中获取。可以通过获取作为通过至少一个云流服务器1130、1140或1150的之前执行的结果而创建的并且从虚拟客户端模块接收的执行结果视频来创建参考图像。另外,至少一个云流服务器1130、1140或1150可以将获取执行结果视频的结果发送到虚拟客户端模块。另外,可以从除了至少一个云流服务器1130、1140或1150以外的任何服务器或客户端模块接收参考图像。在这种情况下,通过所述预定测试脚本键输入在应用处创建的画面可以是排除动画效果的画面。因此,这可以防止由于动画等造成的测试结果的错误,并且还使得测试可靠。
在本发明中,单个虚拟客户端模块可以从至少一个云流服务器接收测试结果,并且然后输出所接收的测试结果以作为结果图像。将该结果图像与和每个云流服务器相对应的参考图像进行比较,并且比较结果被用于确定特定的云流服务器是否正常运行。即,基于通过实际客户端1100、1101和1102中的一个提供给用户的画面图像,确定特定云流服务器1130的正常操作与否。为此,测试装置1120可以请求至少一个云流服务器1130、1140或1150来发送测试结果,并且然后每个云流服务器1130、1140或1150可以响应于这种请求信号来发送测试结果。另外,可以提前设置用于接收从至少一个云流服务器1130、1140或1150发送的测试结果并对其进行处理的虚拟客户端模块。即,至少一个云流服务器1130、1140或1150以及至少一个虚拟客户端模块可以被映射成一对一或多对一。因此,当请求至少一个云流服务器1130、1140或1150来发送测试结果时,测试装置1120还可以发送关于用于接收该测试结果的虚拟客户端模块的信息。如果虚拟客户端模块被映射到两个或更多个云流服务器,则这些服务器中的每一个可以接收对要用于创建参考图像的正常操作结果的请求。另外,该请求的时间点可以进行调整,以便从两个或更多个云流服务器1130、1140和1150顺序地接收测试结果并对其进行处理。
现在,在上述系统中,将参照图12和图13详细描述根据本发明的实施方式的测试装置1120。
首先,参照图12,测试装置1120可以包括测试控制单元1200、存储单元1210、比较单元1220、输入单元1230、输出单元1240和虚拟客户端模块1250。虽然在该实施方式中示例性地示出了一个虚拟客户端模块1250,但是虚拟客户端模块1250的数量可以根据系统操作而不同。
测试控制单元1200执行用于确定是否存在云流服务器1130、1140和1150的故障所需的整体控制。当请求确定故障时,测试控制单元基于通过比较单元1220获得的比较结果,即,根据通过获取测试结果的输出画面而创建的结果图像是否与和正常操作相对应的参考图像相同,来确定云流服务器的故障与否。在这种情况下,用于确定故障的请求的时间点可以是当测试结果被完整接收到虚拟客户端模块1250时的时间点、当存在通过输入单元1230的对用于确定故障的请求的输入时的时间点或者预定的周期性时间点。用于确定故障是否发生的该请求可以取决于设置。
如果经比较的两个图像彼此相同,则测试控制单元1200确定云流服务器没有故障。如果两个图像不相同,则测试控制单元1200确定云流服务器存在故障。
存储单元1210可以存储用于操作测试装置1120所需的信息。存储单元1210存储关于获取时间点的信息,该获取时间点用于与参考图像同时地获取关于从至少一个云流服务器1130、1140或1150发送的测试结果的测试结果视频。进一步地,存储单元1210可以存储关于从云流服务器发送的测试结果的基本信息。特别地,存储单元1210可以提前存储要用于确定云流服务器的故障与否的特定时间点的参考图像。存储单元1210可以包括诸如硬盘、软盘或磁带的磁性介质;诸如光盘只读存储器(CD-ROM)或数字视频光盘(DVD)的光学介质;诸如光磁软盘、ROM、随机存取存储器(RAM)以及闪速存储器的磁光介质。
比较单元1220可以在测试控制单元1200的控制下请求在虚拟客户端模块1250处接收到的并且随后被输出在屏幕上的测试结果视频的传输。另外,比较单元将通过获取测试结果视频而创建的测试结果图像与参考图像进行比较,并且将比较结果输出到测试控制单元1200。为此,比较单元1220还可以进行创建和存储参考图像的处理。即,比较单元1220可以将通过获取与云流服务器的正常操作相对应的正常操作结果视频而创建的参考图像与通过获取用于云流服务器的测试的测试结果视频而创建的测试结果图像进行比较。
在这种情况下,可以在与参考图像相同的时间点处获取与云流服务器相对应的测试结果图像。
输入单元1230可以根据云流服务器管理员的操作来创建与该管理员的请求或信息相对应的用户输入信号。输入单元可以通过目前被商业化或有望被商业化的各种输入机构来实现,例如包括:诸如键盘、鼠标、操纵杆、触摸屏、触摸板等的常规输入装置以及检测用户的移动且由此创建特定输入信号的手势输入装置。
输出单元1240是一种允许用户感知测试装置1120的操作结果或状态的装置,例如包括:用于将可视化输出提供到屏幕上的显示单元、用于输出可听见的声音的扬声器等。特别地,在本发明中,输出单元1240可以在视觉上输出从虚拟客户端模块1250处理和输出的结果图像,将该结果图像与参考图像进行比较,输出比较结果,并且显示云流服务器的故障与否。
使访问云流服务器1130、1140或1150的客户端1100、1101或1102虚拟化并且被提供云流服务的虚拟客户端模块1250可以实际上执行客户端1100、1101或1102的至少一些功能。例如,虚拟客户端模块1250可以访问特定的云流服务器1130、1140或1150,从特定的云流服务器1130、1140或1150接收测试结果,通过针对所接收的测试结果执行与客户端1100、1101或1102所执行的相同的处理(例如,解码)来创建测试结果视频,并且通过输出单元1240将所创建的测试结果视频输出到屏幕上。另外,响应于来自比较单元1220的对结果图像的请求,虚拟客户端模块1250可以在特定时间点获取在屏幕上输出的结果图像,并且然后将其传递到比较单元1220。该获取时间点可以从比较单元1220接收,或者提前进行设置和存储。例如可以按照获取存储在虚拟客户端模块1250的帧缓冲器中的图像数据的方式来执行结果图像的获取。在另一实施方式中,可以在比较单元1220处执行测试结果视频的获取和测试结果图像的创建。
即,虚拟客户端模块1250向云流服务器提供预定测试脚本键输入,从云流服务器接收与该预定测试脚本键输入相对应的测试结果,并且通过对测试结果进行解码来创建测试结果视频。在这种情况下,测试结果可以是经编码的流视频,并且测试结果视频可以是经解码的流视频。
特别地,虚拟客户端模块1250可以将预定测试脚本键输入发送到云流服务器1130、1140和1150,从云流服务器1130、1140和1150接收与预定测试脚本键输入相对应的测试结果,并且然后创建测试结果视频。在这种情况下,通过所述预定测试脚本键输入在应用处创建的画面可以是排除了动画效果的画面。使用用于创建排除了动画效应的该画面的预定测试脚本键输入,可以防止测试结果的错误。
虚拟客户端模块1250的内部配置如图13中所示。
参照图13,虚拟客户端模块1250可以包括控制单元1300、通信单元1302和存储器单元1304。
虚拟客户端模块1250可以通过使能够接收从云流服务器1130、1140或1150提供的数据的终端装置虚拟化来实现,该终端装置例如为平板PC、膝上型计算机、个人计算机(PC)、智能电话、个人数字助理(PDA)、智能TV、移动通信终端和机顶盒中的一种。因此,根据终端装置的类型,虚拟客户端模块1250可以具有不同的配置。特别地,在本发明中,虚拟客户端模块1250可以被实现为用于执行以下其它功能:接收测试结果、对所接收的测试结果进行解码、创建测试结果视频以及将测试结果视频输出到屏幕。
控制单元1300执行虚拟客户端模块1250的整体控制。特别地,响应于来自云流服务器1130、1140或1150的请求,控制单元1300在特定时间点提取输出在屏幕上的结果图像,并且然后将其传递给比较单元1220。进一步地,控制单元1300可以经由通信单元1302将测试结果发送请求信号发送到特定的云流服务器1130、1140或1150。当发送测试结果发送请求信号时,控制单元1300还可以发送将要接收测试结果的虚拟客户端模块的识别信息。另外,基于多个云流服务器的测试安排,控制单元1300可以顺序地发送针对每个云流服务器的测试结果发送请求信号。
通信单元1302通过通信网络1110从云流服务器1130、1140或1150接收测试结果。通信单元1302可以按照各种通信方式以及按照有线或无线的方式来发送和接收数据。进一步地,通信单元1302可以通过使用一种或更多种通信方案来发送和接收数据。为此,通信单元1302可以包括用于基于不同的通信方案发送和接收数据的多个通信模块。
存储器单元1304存储用于对虚拟客户端模块1250进行操作所需的信息。特别地,存储器单元1304可以存储从云流服务器1130、1140和1150接收的测试结果。进一步地,存储器单元1304可以存储通过对所接收的测试结果执行数据处理而被输出在屏幕上的测试结果视频,并且根据设置提前存储关于结果图像的获取时间点的信息。存储器单元1304可以包括诸如硬盘、软盘或磁带的磁性介质;诸如光盘只读存储器(CD-ROM)或数字视频光盘(DVD)的光学介质;诸如光磁软盘、ROM、随机存取存储器(RAM)以及闪速存储器的磁光介质。
现在,将参照图14和图15详细地描述在上述测试系统中测试云流服务器是否正常运行的过程。
图14是例示根据本发明的实施方式的用于云流服务器的测试系统的测试处理的流程图。
云流服务器1130创建与其正常操作相对应的参考图像(S1402)。即,当云流服务器1130正常运行时,可以通过获取使用与预定测试脚本键输入相对应的正常操作的结果而创建的正常操作结果视频来创建参考图像。获取时间点可以基于当从云流服务器1130发送正常操作结果时的时间点来进行设置,或者提前被存储在测试装置1120中。
云流服务器1130将测试结果发送到测试装置1120的虚拟客户端模块1250(S1412)。另外,单个虚拟客户端模块可以从多个客户端流服务器利用时间差顺序地接收测试结果。
此时,云流服务器1130可以响应于虚拟客户端模块1250的预定测试脚本键输入来发送测试结果。在这种情况下,通过所述预定测试脚本键输入在应用处创建的画面可以是排除了动画效果的画面。
虚拟客户端模块1250通过对从云流服务器1130接收的测试结果进行解码来创建测试结果视频并且将测试结果视频提供到比较单元1220(S1422)。此时,可以响应于来自测试控制单元1200的测试请求来执行测试结果视频的提供。另外,比较单元1220可以请求虚拟客户端模块1250传递从云流服务器1130接收的测试结果。在这种情况下,虚拟客户端模块1250可以通过对所接收的测试结果进行处理(如同实际上通过客户端1100、1101或1102进行处理一样)来创建测试结果视频,并且然后将所创建的视频输出到屏幕。在这种情况下,可以获取在比较单元1220所需的时间点或者在预定的特定时间点输出到屏幕的测试结果视频,并将其发送到比较单元1220。即,可以通过虚拟客户端模块1250或比较单元1220来执行通过获取测试结果视频来创建测试结果图像。
当存在输入时,或者当满足任何执行条件时,测试控制单元1200请求比较单元1220将参考图像与测试结果图像进行比较(S1432)。
接收比较请求的比较单元1220将从所接收的测试结果视频中获取的测试结果图像与参考图像进行比较,并且然后将比较结果传递给测试控制单元1200(S1434、S1436)。
然后,根据比较结果,测试控制单元1200确定在云流服务器中是否存在故障(S1437)。此时,如果所接收的比较结果指示所获取的结果图像与和正常操作相对应的参考图像不相同,则确定云流服务器存在故障。如果两个图像相同,则确定云流服务器没有故障。
图15是例示根据本发明的实施方式的用于在测试装置1120处测试云流服务器1130、1140和1150是否正常运行的方法的流程图。
参照图15,根据本发明的实施方式的云流服务器测试方法创建与云流服务器的正常操作相对应的参考图像(S1510)。
此时,参考图像可以对应于云流服务器的正常操作,并且可以从使用与预定的测试脚本键输入相对应的正常操作结果而创建的正常操作结果视频中获取。
在这种情况下,通过所述预定测试脚本键输入在应用处创建的画面可以是排除了动画效果的画面。
另外,在根据本发明的实施方式的云流服务器测试方法中,虚拟客户端模块通过从云流服务器接收与预定测试脚本键输入相对应的测试结果来创建测试结果视频(S1520)。
另外,根据本发明的实施方式的云流服务器测试方法通过获取测试结果视频来创建测试结果图像,并且然后将测试结果图像与参考图像进行比较(S1530)。
此时,可以在与参考图像相同的时间获取与云流服务器相对应的测试结果图像。
创建测试结果图像的该步骤S1530可以通过如图12中所示的虚拟客户端模块1250或比较单元1220来执行。
另外,作为在步骤S1530处比较的结果,根据本发明的实施方式的云流服务器测试方法确定测试结果图像和参考图像是否彼此相同(S1540)。
如果相同,则根据本发明的实施方式的云流服务器测试方法确定云流服务器没有故障(S1550)。
如果不相同,则根据本发明的实施方式的云流服务器测试方法确定云流服务器存在故障(S1560)。
在图15中所示的各个步骤可以按照所例示的次序或按照相反次序或者同时地被执行。
适用于存储计算机程序指令和数据的计算机可读存储介质(例如,记录介质)包括诸如硬盘、软盘和磁带的磁性介质;诸如光盘只读存储器(CD-ROM)和数字多功能光盘(DVD)的光学介质;诸如光磁软盘的磁光介质;以及诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存、可擦除可编程ROM(EPROM)和电EPROM(EEPROM)的半导体存储器。可以用特定用途的逻辑电路补充处理器和存储器,或者将其与特定用途的逻辑电路集成。程序命令可以包括能够通过使用解释器在计算机中执行的高级语言代码以及通过编译器编译的机器代码。上述硬件装置可以被配置为作为一个或更多个软件模块来操作,以便执行本发明的操作,且反之亦然。
虽然本公开包含很多具体的实施细节,但这些实施细节不应被理解为对本发明的范围或者能够要求保护的发明的范围的限制,而是应被理解为对可以针对特定发明的特定实施方式的特征的描述。本公开中在单独的实施方式的背景下描述的特定特征也能够在单个实施方式中以组合的方式来实现。相反,在单个实施方式的背景下描述的各种特征也能够在多个实施方式中单独地实现或者以任何适当的子组合的方式来实现。此外,虽然在上文中特征可以被描述为在特定组合中且甚至如最初要求保护的那样起作用,但来自要求保护的组合的一个或更多个特征能够在一些情况下从该组合中排除,并且所要求保护的组合可以针对子组合或者子组合的变型。
虽然操作被例示为按照附图中的预定次序来执行,但不应理解为要求按顺序或者按照被例示以获得优选结果的预定次序来执行该操作或者需要执行全部所例示的操作。在一些情况下,多任务和并行处理可能是有利的。另外,不应理解为在全部类型的实施方式中都需要各种系统部件的划分。应明白的是,所描述的程序部件和系统通常被整合成单个软件产品或者被封装到多软件产品中。
尽管已特别示出了本公开并且参照其示例性实施方式对本公开进行了描述,本领域技术人员将理解,在不背离如所附权利要求书中限定的本公开的范围的情况下,本公开可以进行形式和细节上的各种变化。
工业实用性
根据本发明,可以获取云流服务画面,以便从用于临时存储与所获取的云流服务画面相对应的数据的缓冲器加载数据并对其进行编码,确定在缓冲器中是否发生瓶颈,并且根据确定结果对临时存储在缓冲器中的数据进行压缩。进一步地,可以提前防止由于数据流量的增加而可能在云流服务系统中发生的瓶颈,使得能够平稳地向服务用户提供流服务,并且还能够对数据流量进行调整而没有额外成本。
另外,根据本发明,可以从用户的终端装置接收服务请求,以识别与所述服务请求相对应的云流服务的类型,基于所述云流服务的所述类型向所述云流服务分配优先级,确定能够并行地对所述云流服务同时进行处理的流管线是否达到同时服务处理的极限,并且基于确定的结果根据所述优先级来提供所述云流服务。进一步地,服务器能够平稳地向大量客户端提供服务,并且能够提供更多的云流服务,而无需增加服务器的数量,从而节省了成本。
另外,本发明涉及一种用于测试用于提供特定服务的云流服务器是否正在正常运行的系统。特别地,可以检查用于提供云流服务的服务器是否正在正常运行。因此可以提前防止当从云流服务器发送数据时可能发生的发送错误或故障,并且还防止错误在测试结果中蔓延。通过使云流服务稳定化并且提高服务质量,这能够有助于行业的发展。