一种网盘应用程序编程接口的测量方法和系统的制作方法

文档序号:10660670阅读:292来源:国知局
一种网盘应用程序编程接口的测量方法和系统的制作方法
【专利摘要】本发明公开了一种对网盘的应用程序编程接口进行测量分析的系统,旨在测量网盘的应用程序编程接口的性能,并分析其底层的系统架构,供第三方应用进行针对性的优化设计以保证应用性能,并帮助网盘提供商分析性能瓶颈。系统包括三层。系统顶层根据用户给定的测量参数对网盘应用程序编程接口进行测量,并将测量数据输出到文件。系统中层包含多个模块,每个模块对应一个网盘,实现该网盘的应用程序编程接口的应用层协议。系统预定义了网盘模块向顶层提供的接口,因此只需编写实现该接口的模块即可添加任意网盘进行测量。系统底层包含一个HTTP/HTTPS客户端模块和一个往返时延测量模块。其中HTTP/HTTPS客户端模块负责处理网络通信细节。
【专利说明】
_种网盘应用程序编程接口的测量方法和系统
技术领域
[0001 ]本发明属于个人云存储领域,更具体地,涉及一种网盘应用程序编程接口的测量方法和系统。【背景技术】
[0002]网盘是向个人用户提供文件的存储、备份、同步、共享等文件管理功能的在线存储服务。网盘应用程序编程接口是网盘提供商公开给第三方开发者的接口,供官方网盘客户端之外的第三方应用程序使用网盘提供的存储服务。许多商业网盘,如百度云、Dropbox、 OneDrive、G〇〇gle Drive等,均提供了应用程序编程接口。使用这些接口的第三方应用覆盖了多种应用场景,如多媒体文件处理、在线协同编辑等。网盘应用程序编程接口通常是标准 HTTP/HTTPS协议的扩展。网盘提供商通常将其应用程序编程接口实现为特定程序设计语言的软件开发工具包,所支持的语言包括?7丨11〇11、0#、拓似、?即等。[〇〇〇3]网盘应用程序编程接口的性能对使用该接口的第三方应用的性能具有很大的影响。如处理多媒体文件的应用在存取网盘中较大的多媒体文件时,使用接口传输数据的吞吐量决定了应用的响应时间。在线协同编辑应用为了实现实时性,需要网盘的应用程序编程接口具有较快的响应速度。然而,对于不同网盘的应用程序编程接口而言,由于底层系统架构的不同而具有性能上的差异,而且,该接口性能是随调用的时间和地点不同而变化的, 这直接导致该应用程序编程接口的性能好坏无法预测。
【发明内容】

[0004]针对现有技术的以上缺陷或改进需求,本发明提供了一种网盘应用程序编程接口的测量方法和系统,其目的在于,通过对指定网盘进行主动测量,记录吞吐量、响应时间、故障率等性能指标,并记录服务器域名、IP、往返时延等数据,不但提供网盘应用程序编程接口的性能测量结果,从而能够直观地反映出该接口性能的好坏,而且,还可用于分析其底层的系统架构,帮助网盘提供商发现性能瓶颈。
[0005]为实现上述目的,按照本发明的一个方面,提供了一种网盘应用程序编程接口的测量方法,其特征在于,包括以下步骤:
[0006](1)接收来自用户的网盘应用程序编程接口测量请求;
[0007](2)判断该网盘应用程序编程接口测量请求是文件上传请求、文件下载请求还是文件控制请求,如果是文件上传请求,则进入步骤(3 ),如果是文件下载请求,则进入步骤 (4),如果是文件控制请求,则进入步骤(8);
[0008](3)根据网盘应用程序编程接口测量请求中指定的待上传文件大小在内存中生成对应大小的随机内容文件,将该随机内容文件上传到该请求所指定的网盘中,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成上传该随机内容文件的时间;
[0009](4)判断网盘应用程序编程接口测量请求中指定的待下载文件是新文件还是旧文件,如果是新文件则转入步骤(5),如果是旧文件转入步骤(7);
[0010](5)根据网盘应用程序编程接口测量请求中指定的待下载文件大小在内存中生成对应大小的随机内容文件,并将该随机内容文件上传到该请求所指定的网盘中;
[0011](6)将上传的随机内容文件从网盘下载下来,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成下载该随机内容文件的时间;
[0012](7)将该旧文件从网盘应用程序编程接口测量请求所指定的网盘中下载下来,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成下载该文件的时间;
[0013](8)调用网盘应用程序编程接口测量请求所指定的网盘的所有控制接口,并分别记录调用各个控制接口的当前时刻、网盘应用程序编程接口测量请求、以及完成调用该控制接口的时间。
[0014]优选地,网盘应用程序编程接口测量请求包括待测网盘的名称、以及待测网盘应用程序编程接口的名称。
[0015]优选地,随机内容文件上传到该请求所指定的网盘中这一过程具体为,首先使用 Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行文件上传操作。
[0016]优选地,测量往返时延的方法为模拟TCP握手,其首先向网络连接另一端IP的HTTP 或HTTPS端口发送10个SYN包,然后接收另一端IP返回的ACK包,最后计算每一对握手之间的时延作为往返时延。[〇〇17]优选地,从网盘下载随机内容文件这一过程具体为,首先使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行文件下载操作。
[0018]优选地,从网盘下载旧文件这一过程具体为,首先使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行旧文件下载操作。
[0019]优选地,调用控制接口这一过程具体为,首先判断是否存在上一次调用控制接口使用的网络连接,如果有则首先测量该网络连接的往返时延,然后进行调用控制接口操作, 如果不存在网络连接,则使用So eke t API建立新的网络连接,测量该网络连接的往返时延, 然后进行调用控制接口操作。
[0020]按照本发明的另一方面,提供了一种网盘应用程序编程接口的测量系统,包括: [0021 ]第一模块,用于接收来自用户的网盘应用程序编程接口测量请求;
[0022]第二模块,用于判断该网盘应用程序编程接口测量请求是文件上传请求、文件下载请求还是文件控制请求,如果是文件上传请求,则进入第三模块,如果是文件下载请求, 则进入第四模块,如果是文件控制请求,则进入第八模块;
[0023]第三模块,用于根据网盘应用程序编程接口测量请求中指定的待上传文件大小在内存中生成对应大小的随机内容文件,将该随机内容文件上传到该请求所指定的网盘中, 并记录当前时刻、网盘应用程序编程接口测量请求、以及完成上传该随机内容文件的时间;
[0024]第四模块,用于判断网盘应用程序编程接口测量请求中指定的待下载文件是新文件还是旧文件,如果是新文件则转入第五模块,如果是旧文件转入第七模块;
[0025]第五模块,用于根据网盘应用程序编程接口测量请求中指定的待下载文件大小在内存中生成对应大小的随机内容文件,并将该随机内容文件上传到该请求所指定的网盘中;
[0026]第六模块,用于将上传的随机内容文件从网盘下载下来,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成下载该随机内容文件的时间;
[0027]第七模块,用于将该旧文件从网盘应用程序编程接口测量请求所指定的网盘中下载下来,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成下载该文件的时间;
[0028]第八模块,用于调用网盘应用程序编程接口测量请求所指定的网盘的所有控制接口,并分别记录调用各个控制接口的当前时刻、网盘应用程序编程接口测量请求、以及完成调用该控制接口的时间。
[0029]总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0030] 1、由于本发明能够测量网盘应用程序编程接口的性能,可以供第三方应用进行针对性的优化设计以保证应用性能,而且,提供数据以分析网盘系统的底层架构,帮助网盘提供商分析性能瓶颈。[〇〇31] 2、由于采用了步骤(3),其通过在内存生成随机内容文件进行文件上传的测量,可以有效节省测量时间和磁盘空间,并且能够根据测量需求生成任意大小的文件,同时防止因文件过于简单或文件已存在于网盘系统中而引起网盘内部自动压缩或去重等措施对测量结果产生干扰,从而保证测量的公平性。
[0032] 3、由于采用了步骤(3)、步骤(6)、步骤(7)和步骤(8),自行实现网盘的应用程序编程接口的应用层协议而不使用网盘提供商提供的软件开发工具包,可以避免不同软件开发工具包的具体实现之间的差异对测量结果的干扰,进一步保证测量的公平性。
[0033] 4、由于采用了步骤(3)、步骤(6)和步骤(7),在测量文件上传和下载接口时关闭底层网络连接复用,从而测量TCP慢启动机制对吞吐量的限制。
[0034] 5、由于采用了步骤(3)、步骤(6)、步骤(7)和步骤(8),通过模拟TCP握手的方式测量往返时延,可以规避目前因特网中许多路由器、防火墙、甚至网盘服务器本身均丢弃ICMP 包,导致ping服务无法正常工作的情况,有效的测量往返时延。
[0035] 6、由于采用了步骤(5),测量新文件下载接口时,对新上传的随机内容文件进行下载,防止部分网盘通过内容分发网络等方式对常被下载的文件进行加速而对测量产生干扰。
[0036] 7、由于采用了步骤(8),在测量文件控制接口时开启底层网络连接复用,从而模拟真实应用场景中控制接口通常被组合调用的情况。【附图说明】
[0037]图1是本发明网盘应用程序编程接口的测量方法的流程图。【具体实施方式】[〇〇38]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0039] 如图1所示,本发明网盘应用程序编程接口的测量方法包括以下步骤:
[0040] (1)接收来自用户的网盘应用程序编程接口测量请求,该请求包括待测网盘的名称、待测网盘应用程序编程接口的名称;
[0041] (2)判断该网盘应用程序编程接口测量请求是文件上传请求、文件下载请求还是文件控制请求,如果是文件上传请求,则进入步骤(3 ),如果是文件下载请求,则进入步骤 (4),如果是文件控制请求,则进入步骤(8);
[0042] (3)根据网盘应用程序编程接口测量请求中指定的待上传文件大小在内存中生成对应大小的随机内容文件,将该随机内容文件上传到该请求所指定的网盘中,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成上传该随机内容文件的时间;
[0043]具体而言,该随机内容文件上传到该请求所指定的网盘中这一过程具体为,首先使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行文件上传操作。 [〇〇44] 测量往返时延的方法为模拟TCP握手:首先向网络连接另一端IP的HTTP或HTTPS端口发送10个SYN包,然后接收另一端IP返回的ACK包,最后计算每一对握手之间的时延,即往返时延。之所以不使用因特网标准ping服务是因为ping使用ICMP包测量往返时延,而目前因特网中许多路由器、防火墙、甚至网盘服务器本身均丢弃ICMP包,导致ping服务无法正常工作。使用模拟TCP握手的方式可以避开这些限制从而有效测量往返时延。
[0045]内存直接生成文件而非从磁盘读取文件可以节省测量时间和磁盘空间,且可以根据测量需求生成任意大小的文件。生成随机内容文件可以防止因文件过于简单或文件已存在于网盘系统中而引起网盘内部自动压缩或去重等措施对测量结果产生干扰。
[0046] (4)判断网盘应用程序编程接口测量请求中指定的待下载文件是新文件还是旧文件,如果是新文件则转入步骤(5),如果是旧文件转入步骤(7);
[0047] (5)根据网盘应用程序编程接口测量请求中指定的待下载文件大小在内存中生成对应大小的随机内容文件,并将该随机内容文件上传到该请求所指定的网盘中;
[0048] (6)将上传的随机内容文件从网盘下载下来,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成下载该随机内容文件的时间;
[0049]具体而言,从网盘下载随机内容文件这一过程具体为,首先使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行文件下载操作。
[0050] (7)将该旧文件从网盘应用程序编程接口测量请求所指定的网盘中下载下来,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成下载该文件的时间;[0051 ]具体而言,从网盘下载旧文件这一过程具体为,首先使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行旧文件下载操作。
[0052] (8)调用网盘应用程序编程接口测量请求所指定的网盘的所有控制接口,并分别记录调用各个控制接口的当前时刻、网盘应用程序编程接口测量请求、以及完成调用该控制接口的时间。[〇〇53]具体而言,调用控制接口这一过程具体为,首先判断是否存在上一次调用控制接口使用的网络连接,如果有则首先测量该网络连接的往返时延,然后进行调用控制接口操作,如果不存在网络连接,则使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行调用控制接口操作。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种网盘应用程序编程接口的测量方法,其特征在于,包括以下步骤:(1)接收来自用户的网盘应用程序编程接口测量请求;(2)判断该网盘应用程序编程接口测量请求是文件上传请求、文件下载请求还是文件 控制请求,如果是文件上传请求,则进入步骤(3),如果是文件下载请求,则进入步骤(4),如 果是文件控制请求,则进入步骤(8);(3)根据网盘应用程序编程接口测量请求中指定的待上传文件大小在内存中生成对应 大小的随机内容文件,将该随机内容文件上传到该请求所指定的网盘中,并记录当前时刻、 网盘应用程序编程接口测量请求、以及完成上传该随机内容文件的时间;(4)判断网盘应用程序编程接口测量请求中指定的待下载文件是新文件还是旧文件, 如果是新文件则转入步骤(5),如果是旧文件转入步骤(7);(5)根据网盘应用程序编程接口测量请求中指定的待下载文件大小在内存中生成对应 大小的随机内容文件,并将该随机内容文件上传到该请求所指定的网盘中;(6)将上传的随机内容文件从网盘下载下来,并记录当前时刻、网盘应用程序编程接口 测量请求、以及完成下载该随机内容文件的时间;(7)将该旧文件从网盘应用程序编程接口测量请求所指定的网盘中下载下来,并记录 当前时刻、网盘应用程序编程接口测量请求、以及完成下载该文件的时间;(8)调用网盘应用程序编程接口测量请求所指定的网盘的所有控制接口,并分别记录 调用各个控制接口的当前时刻、网盘应用程序编程接口测量请求、以及完成调用该控制接 口的时间。2.根据权利要求1所述的测量方法,其特征在于,网盘应用程序编程接口测量请求包括 待测网盘的名称、以及待测网盘应用程序编程接口的名称。3.根据权利要求1所述的测量方法,其特征在于,随机内容文件上传到该请求所指定的 网盘中这一过程具体为,首先使用Socket API建立新的网络连接,测量该网络连接的往返 时延,然后进行文件上传操作。4.根据权利要求3所述的测量方法,其特征在于,测量往返时延的方法为模拟TCP握手, 其首先向网络连接另一端IP的HTTP或HTTPS端口发送10个SYN包,然后接收另一端IP返回的 ACK包,最后计算每一对握手之间的时延作为往返时延。5.根据权利要求1所述的测量方法,其特征在于,从网盘下载随机内容文件这一过程具 体为,首先使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行文件 下载操作。6.根据权利要求1所述的测量方法,其特征在于,从网盘下载旧文件这一过程具体为, 首先使用Socket API建立新的网络连接,测量该网络连接的往返时延,然后进行旧文件下 载操作。7.根据权利要求1所述的测量方法,其特征在于,调用控制接口这一过程具体为,首先 判断是否存在上一次调用控制接口使用的网络连接,如果有则首先测量该网络连接的往返 时延,然后进行调用控制接口操作,如果不存在网络连接,则使用Socket API建立新的网络 连接,测量该网络连接的往返时延,然后进行调用控制接口操作。8.—种网盘应用程序编程接口的测量系统,其特征在于,包括:第一模块,用于接收来自用户的网盘应用程序编程接口测量请求;第二模块,用于判断该网盘应用程序编程接口测量请求是文件上传请求、文件下载请 求还是文件控制请求,如果是文件上传请求,则进入第三模块,如果是文件下载请求,则进 入第四模块,如果是文件控制请求,则进入第八模块;第三模块,用于根据网盘应用程序编程接口测量请求中指定的待上传文件大小在内存 中生成对应大小的随机内容文件,将该随机内容文件上传到该请求所指定的网盘中,并记 录当前时刻、网盘应用程序编程接口测量请求、以及完成上传该随机内容文件的时间;第四模块,用于判断网盘应用程序编程接口测量请求中指定的待下载文件是新文件还 是旧文件,如果是新文件则转入第五模块,如果是旧文件转入第七模块;第五模块,用于根据网盘应用程序编程接口测量请求中指定的待下载文件大小在内存 中生成对应大小的随机内容文件,并将该随机内容文件上传到该请求所指定的网盘中;第六模块,用于将上传的随机内容文件从网盘下载下来,并记录当前时刻、网盘应用程 序编程接口测量请求、以及完成下载该随机内容文件的时间;第七模块,用于将该旧文件从网盘应用程序编程接口测量请求所指定的网盘中下载下 来,并记录当前时刻、网盘应用程序编程接口测量请求、以及完成下载该文件的时间;第八模块,用于调用网盘应用程序编程接口测量请求所指定的网盘的所有控制接口, 并分别记录调用各个控制接口的当前时刻、网盘应用程序编程接口测量请求、以及完成调 用该控制接口的时间。
【文档编号】H04L12/26GK106027325SQ201610303246
【公开日】2016年10月12日
【申请日】2016年5月10日
【发明人】刘方明, 金海 , 吴广原, 易小萌
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1