一种基于浏览器的资源调度方法及装置与流程

    专利查询2022-07-08  151



    1.本技术涉及计算机互联网技术领域,尤其涉及一种基于浏览器的资源调度方法及装置。


    背景技术:

    2.低代码平台,为程序开发人员提供基于web浏览器技术的在线编辑器。开发人员基于在线编辑器提供的组件参数提示和语法检查等辅助功能,可快速开发应用程序。
    3.但在编写应用程序过程中,大量引入的组件资源需要从远程服务器下载并导入相关资源到在线编辑器缓存。当导入缓存的组件资源过多时,在线编辑器会出现明显卡顿,甚至不可用状态,极大影响开发效率。


    技术实现要素:

    4.本技术人创造性地提供一种基于浏览器的资源调度方法及装置。
    5.根据本技术实施例第一方面,提供一种基于浏览器的资源调度方法,该方法包括响应于将第一资源库下载至浏览器的请求,执行以下操作:确定本地服务的性能数据,得到第一性能数据,本地服务运行在浏览器中,使用浏览器中的资源响应相应资源库的访问请求;确定远程服务的性能数据,得到第二性能数据,远程服务运行在远程服务器,使用远程服务器的资源响应相应资源库的访问请求;若确定远程服务的性能优于本地服务的性能,则跳过将第一资源库下载至浏览器的步骤,将远程服务设置为用于响应第一资源库访问请求的服务。
    6.根据本技术一实施例,其中,确定本地服务的性能数据,包括:使用本地服务访问样本资源;获取本地服务访问样本资源所用的时长;根据时长,确定本地服务的性能数据。
    7.根据本技术一实施例,其中,获取本地服务访问样本资源所用时长,包括:每隔第一时间使用本地服务访问一次样本资源,以对样本资源进行至少两次访问;记录下每一次访问样本资源所用时长,得到至少两个时长;相应地,根据时长,确定本地服务的性能数据,包括:根据至少两个时长确定一个代表时长;根据代表时长,确定本地服务的性能数据。
    8.根据本技术一实施例,其中,根据至少两个时长确定一个代表时长,包括:对至少两个时长进行平均得到平均值,将平均值确定为代表时长。
    9.根据本技术一实施例,其中,根据至少两个时长确定一个代表时长,包括:根据至少两个时长所对应的分布确定分布的中位数,将中值确定为代表时长。
    10.根据本技术一实施例,其中,根据时长,确定本地服务的性能数据,包括:对时长进行延长处理得到延长后的时长;根据延长后的时长,确定本地服务的性能数据。
    11.根据本技术一实施例,该方法还包括:若确定本地服务的性能优于远程服务的性能,则将第一资源库下载至浏览器,将本地服务设置为用于响应第一资源库访问请求的服务。
    12.根据本技术一实施例,在将第一资源库下载至浏览器之前,该方法还包括:清除浏
    览器中的过期数据。
    13.根据本技术一实施例,在将第一资源库下载至浏览器之前,该方法还包括:检测浏览器的空间是否足够,若否,则跳过将第一资源库下载至浏览器的步骤,将远程服务设置为用于响应第一资源库访问请求的服务。
    14.根据本技术实施例第二方面,提供一种基于浏览器的资源调度装置,装置包括:第一性能数据确定模块,用于确定本地服务的性能数据,得到第一性能数据,本地服务运行在浏览器中,使用浏览器中的资源响应对第一资源库的访问请求;第二性能数据确定模块,用于确定远程服务的性能数据,得到第二性能数据,远程服务运行在远程服务器,使用远程服务器的资源响应对第一资源库的访问请求;资源调度模块,用于若确定远程服务的性能优于本地服务的性能,则跳过将第一资源库下载至浏览器的步骤,将远程服务设置为用于响应第一资源库访问请求的服务。
    15.根据本技术实施例第三方面,提供一种计算机存储介质,存储介质包括一组计算机可执行指令,当指令被执行时用于执行上述任一项的基于浏览器的资源调度。
    16.本技术实施例提供一种基于浏览器的资源调度方法及装置。本技术公开了一种基于浏览器的资源调度方法及装置。该方法在收到将资源库下载至浏览器的请求后,并不会立即将资源库下载至浏览器,而是先分别评估使用本地服务访问资源和使用远程服务访问资源的性能,若使用远程服务访问资源的性能优于使用本地服务访问资源的性能,则使用远程服务响应对该资源库访问请求,而无需再将相应的资源库下载至浏览器端。如此,可根据本地服务和远程服务访问资源的性能差异,灵活在本地服务和远程服务之间进行切换,以选择最优的服务和最佳的资源调度方式,从而确保针对资源访问请求的响应总可以处于较佳的状态。
    17.需要理解的是,本技术的实施并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本技术的其他实施方式还能够实现上面未提到的有益效果。
    附图说明
    18.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,其中:
    19.在附图中,相同或对应的标号表示相同或对应的部分。
    20.图1为本技术实施例一实施例应用基于浏览器的资源调度方法的系统的系统架构示意图;
    21.图2为本技术实施例一实施例实现基于浏览器的资源调度方法的实现流程示意图;
    22.图3为本技术实施例另一实施例实现基于浏览器的资源调度方法的实现流程示意图;
    23.图4为本技术实施例基于浏览器的资源调度装置的组成结构示意图。
    具体实施方式
    24.为使本技术的目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
    25.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
    26.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
    27.图1示出了本技术一实施例应用本技术基于浏览器的资源调度方法的系统架构。
    28.如图1所示,本技术实施例应用于资源速查系统,该资源速查系统可通过浏览器11为用户提供快速的资源查询服务,以从资源仓库服务器13上存储的资源中查询到想要的资源。
    29.其中,资源仓库服务器13中存储有资源仓库131,资源仓库131中包括多个资源库(例如,资源库1、资源库2、
    ……
    、资源库n等)。每个资源库通常为一类资源,或对应某一应用场景。
    30.用户可在浏览器11中输入指定的资源库和关键字(例如,资源库1、资源库2、
    ……
    、资源库n等),或在未指定资源库时通过某种应用场景关联到特定的资源库,以获取相应资源库中与关键字匹配的资源。
    31.浏览器11在获取到资源库和输入的关键字后,会获取相应资源库中与关键字匹配的资源,并返回给用户。
    32.因为需要在非常短的时间内返回查询结果,因此该资源速查系统会将用户指定的资源库(例如,资源库1、资源库2、
    ……
    、资源库m)下载至浏览器11端进行缓存,得到资源仓库111。并设置了本地服务112,由本地服务112响应用户的资源查询请求,即:根据用户输入的关键字,从位于本地的资源仓库111的相应资源库中,查询到与关键字匹配的资源并将该资源返回给用户。
    33.在下载的资源库较少时,本地服务112可以非常快速地返回相应的查询结果。然而,当资源库下载得越来越多时,数据量级会成倍甚至成指数增长,而浏览器端112的处理能力毕竟有限,就会导致本地服务112的查询效率大幅下降,返回查询结果的时间变长,甚至会出现卡顿或崩溃。
    34.为此,该资源速查系统,还额外部署了一个云端服务器12,该云端服务器具有较强的计算能力和充裕的计算资源。云端服务器12上设置有远程服务122,可接收资源查询请求,并将指定的资源库(例如,资源库1、资源库2、
    ……
    、资源库x)下载至本地进行缓存,得到
    资源仓库121,以提供资源速查服务。由于该云端服务器12具有较强的计算能力和充裕的计算资源,即使在下载了大量的资源库之后,也不会导致查询变慢。
    35.然而,使用远程服务毕竟会产生数据传输和网络延迟,因此,在资源库较少的情况下,使用远程服务122进行资源查询的速度会不及使用本地服务112进行资源查询的速度。
    36.为了能充分利用本地服务112和远程服务122各自的优势,在该资源速查系统中的浏览器端,还设置了一个资源调度引擎113,由资源调度引擎113根据本地服务112和远程服务122的实时性能,确定用于响应用户资源查询请求的服务。
    37.例如,当用户第一次查询第一资源库(例如,资源库n)中的资源时,会先查询浏览器11的资源仓库111中是否由该资源库,如果没有就会向资源调度引擎113发送一个将第一资源库下载至浏览器的请求,资源调度引擎113响应于该请求,执行图2所示的流程以实现本技术基于浏览器的资源调度方法。如图2所示,该方法包括:操作s210,确定本地服务的性能数据,得到第一性能数据,本地服务运行在浏览器中,使用浏览器中的资源响应相应资源库的访问请求;操作s220,确定远程服务的性能数据,得到第二性能数据,远程服务运行在远程服务器,使用远程服务器的资源响应相应资源库的访问请求;操作s230,若确定远程服务的性能优于本地服务的性能,则跳过将第一资源库下载至浏览器的步骤,将远程服务设置为用于响应第一资源库访问请求的服务。
    38.在操作s210中,本地服务的性能数据,指用于衡量使用本地服务获取相应服务(例如,资源查询服务)的性能优劣的性能指标及其值。例如,响应时长、查询准确率等。
    39.在操作s220中,远程服务的性能数据,指用于衡量使用本地服务获取相应服务(例如,资源查询服务)的性能优劣的性能指标及其值。
    40.为了便于比较本地服务和远程服务的性能有了,第一性能数据和第二性能数据通常通过相同的方法来获取,并使用相同的性能指标使得第一性能数据和第二性能数据具有可比性。
    41.在操作s230中,通过第一性能数据和第二性能数据确定是远程服务的性能优于本地服务的性能,还是本地服务的性能优于远程服务的性能。
    42.如果确定远程服务的性能优于本地服务的性能,则无需再向浏览器下载相应的资源,而直接使用远程服务响应第一资源库访问请求。如果确定本地服务的性能优于远程服务的性能,则直接使用本地服务响应第一资源库访问请求。
    43.如此,总是可以选择性能最优的服务来提供服务,从而使用户的体验达到最佳。
    44.由于当确定远程服务的性能优于本地服务的性能时,就不会再向浏览器下载新的资源,也不会使本地服务的性能更差,并可通过远程服务的使服务水平一直保持在一个可接受的范围内。这种稳定的服务质量也会进一步提升用户体验。
    45.此外,由于在本技术实施例中,用于执行上述方法的资源调度引擎是设置于各个浏览器内的,且各个浏览器终端均可通过云端服务使服务水平保持在一个可接受的范围内。
    46.一方面,无论浏览器的资源配置如何、无论浏览器的处理能力如何,均可提供相当的服务水平。这就大大降低了对浏览器的要求,更利于推广相应的服务。
    47.另一方面,无论浏览器的资源配置如何、无论浏览器的处理能力如何,都可充分利用各个浏览器的已有资源和处理能力,以最大程度减轻远程服务的压力。例如,对于资源配
    置较低的第一浏览器,在下载5个资源库之后,远程服务的性能就会高于本地服务,则可以在第一浏览器中下载5个库之后,再使用远程服务;而对于资源配置较高的第二浏览器,在下载10个资源库之后,远程服务的性能才会高于本地服务,则在第二浏览器中下载10个库之后,才会使用远程服务。
    48.需要说明的是,图1至图2所示的实施例仅为本技术基于浏览器的资源调度方法的一个基本实施例,实施者还可在此基础之上进行进一步细化和扩展,以应用于各种不用的应用场景中。
    49.图3示出了本技术另一实施例实现方法基于浏览器的资源调度方法的主要流程。该实施例应用于一个低代码平台提供的基于web浏览器技术的在线编辑器中,该在线编辑器可通过对相应组件的类库进行信息检索的方式,提示编程人员快速完成编码过程。
    50.例如,编程人员可在线编辑器中指定下载某个组件资源(例如,类库),之后通过从头至尾逐个键入字母的方式,获取以已键入字母开头的相关类,直至找到需要的类确认回车,即可完成相应地编码。而上述获取以已键入字母开头的相关类,就是通过对相应组件的类库进行信息检索的方式获取的。
    51.其中,组件资源包括:程序包(package)或类(class)等。其中,程序包包括工具包等。
    52.参考图3,上述过程主要通过以下步骤来实现:
    53.步骤s3010,接收用户在编辑器中发起的导入新组件资源的请求,并触发该组件资源信息检索;
    54.编辑器即为web浏览器技术的浏览器。
    55.步骤s3020,将导入新组件资源的请求传递给资源调度引擎;
    56.该资源调度引擎就会通过执行步骤s2040至步骤s2100所示的操作,以确定是否需要下载组件资源至浏览器,以进行本地缓存。
    57.步骤s3030,执行时长采集任务,获取基于样本资源连续采集本地缓存的计算时长t1和获取基于样本资源连续采集远程服务的计算时长t2;
    58.其中,根据本地缓存获取样本资源相当于用于进行信息检索的本地服务。
    59.需要说明的是,步骤s3030并不依赖其他步骤,可以通过另一进程或线程完成,并将相应的时长保存在内存或文件中。
    60.具体地,以本地服务为例,获取基于样本资源连续采集本地缓存的计算时长t1,主要包括:每隔第一时间(例如1秒)使用本地服务访问一次样本资源,以对样本资源进行至少两次访问;记录下每一次访问样本资源所用时长,得到至少两个时长;根据至少两个时长确定一个代表时长t1。
    61.该代表时长t1就可以作为本地服务与远程服务进行比较的性能数据。
    62.其中,样本数据通常是可以确定已下载并缓存至本地的组件中的数据,例如,缺省就会加载的组件中的数据,或是最后下载的组件中的资源等。
    63.根据至少两个时长确定一个代表时长时,可通过对至少两个时长进行平均得到平均值,将平均值确定为代表时长。
    64.根据至少两个时长确定一个代表时长时,也可以根据至少两个时长所对应的分布确定分布的中位数,将中值确定为代表时长。
    65.例如,根据经验发现连续的采集时长数据满足正态分布,则可通过计算正太分布的中位数(也称为中值)作为代表时长。
    66.此外,由于在步骤s3030中计算得到的时长t1是基于已加载资源得到的,下载了新的资源库之后,使用本地缓存的计算时长可能会比t1更长。
    67.因此,在根据时长,确定本地服务的性能数据,还可以对时长(t1)进行延长处理得到延长后的时长,并将延长后的时长作为本地服务的性能数据。如此,可以更为精确地挑选到性能更优地服务,避免在加载前使用本地缓存进行信息检索的性能确实优于远程服务,但加载后反而不如远程服务的情况。
    68.步骤s3040,根据步骤s3030所采集到的时长,评估资源计算时长;
    69.即对t1和t2进行比较。
    70.步骤s3050,判断本地计算时长t1是否超过远程服务计算时长t2,若是,则继续步骤s3060,若否,则继续步骤s070;
    71.步骤s3060,下载组件资源至远程服务器,并基于远程服务来提供组件资源信息检索;
    72.步骤s3070,基于过期策略清除缓存中的过期组件资源;
    73.清除缓存中的过期组件资源主要为了提供更多的缓存空间给新增资源使用,以尽可能充分利用浏览器端的资源,减轻远程服务的压力。
    74.清除缓存中的过期组件资源可基于过期策略,例如,将一定时间周期(3天)内未使用的组件资源确定未过期资源,并没隔1小时进行一次过期资源的检测;在发生了工具包转换事件时,可将转换之前所使用的工具包标记为过期组件资源等。
    75.此外,过期组件资源的清理也可以是通过编辑器事件触发浏览器的自动执行缓存回收任务来实现,例如,在收到编程人员移除某一资源的指令时,自动执行缓存回收任务;或在缓存空间小于空间阈值时,自动执行缓存回收任务等。
    76.需要说明的是,步骤s3070并不依赖于其他步骤,可以通过另一线程或进程进行,以提高执行效率。
    77.步骤s3080,根据步骤s3070的结果评估本地缓存剩余空间;
    78.其中,评估本地缓存剩余空间,主要指获取可用的剩余空间大小,并与新增资源的大小进行比较。
    79.步骤s3090,判断新增资源是否超出本地缓存空间?若是,则继续步骤s3040,若否,则继续步骤s3100;
    80.步骤s3100,下载组件至浏览器本地缓存,并基于浏览器本地缓存来提供资源信息检索;
    81.步骤s3110,收到返回的资源信息并相应用户事件。
    82.其中,返回的资源信息,可以是当前编辑器光标处的某个关键字变量的方法、属性的自动补全提示等,还可以是前编辑器光标所在行的语法校验结果和错误提示等。
    83.需要说明的是,上述下载组件资源后进行缓存、基于过期策略清楚缓存中的过期组件资源以及获取本地缓存空间等操作都可以借助于浏览器所提供的缓存接口来实现。
    84.在本技术实施例中,是通过基于样本资源连续采集本地缓存(本地服务)和远程服务的计算时长,可以更为直接和精准地反映本地服务和远程服务的性能,从而使资源调度
    更为精准,能提供更优的服务。
    85.此外,步骤s3030还会定期或不定期地清除本地缓存中的过期组件资源,从而更为充分地利用浏览器本地的资源,为远程服务减负。
    86.需要说明的是,上述本技术实施例均为示例性说明,并非对本技术基于浏览器的资源调度方法实施方式或应用场景的限定。
    87.进一步地,本技术实施例还提供一种基于浏览器的资源调度装置。如图4所示,该装置40包括:第一性能数据确定模块401,用于确定本地服务的性能数据,得到第一性能数据,本地服务运行在浏览器中,使用浏览器中的资源响应对第一资源库的访问请求;第二性能数据确定模块402,用于确定远程服务的性能数据,得到第二性能数据,远程服务运行在远程服务器,使用远程服务器的资源响应对第一资源库的访问请求;资源调度模块403,用于若确定远程服务的性能优于本地服务的性能,则跳过将第一资源库下载至浏览器的步骤,将远程服务设置为用于响应第一资源库访问请求的服务。
    88.根据本技术一实施例,其中,第一性能数据确定模块401包括:样本资源访问子模块,用于使用本地服务访问样本资源;时长获取子模块,用于获取本地服务访问样本资源所用的时长;性能数据确定子模块,用于根据时长,确定本地服务的性能数据。
    89.根据本技术一实施例,其中,时长获取子模块包括:时长连续采集单元,用于每隔第一时间使用本地服务访问一次样本资源,以对样本资源进行至少两次访问;时长记录单元,用于记录下每一次访问样本资源所用时长,得到至少两个时长;相应地,性能数据确定子模块包括:代表时长确定单元,用于根据至少两个时长确定一个代表时长;性能数据确定单元,用于根据代表时长,确定本地服务的性能数据。
    90.根据本技术一实施例,其中,代表时长确定单元具体用于对至少两个时长进行平均得到平均值,将平均值确定为代表时长。
    91.根据本技术一实施例,其中,代表时长确定单元具体用于根据至少两个时长所对应的分布确定分布的中位数,将中值确定为代表时长。
    92.根据本技术一实施例,其中,性能数据确定子模块包括:时长延长单元,对时长进行延长处理得到延长后的时长;性能数据确定单元,还用于根据延长后的时长,确定本地服务的性能数据。
    93.根据本技术一实施例,资源调度模块403还用于:若确定本地服务的性能优于远程服务的性能,则将第一资源库下载至浏览器,将本地服务设置为用于响应第一资源库访问请求的服务。
    94.根据本技术一实施例,该装置40还包括:过期数据清除模块,用于清除浏览器中的过期数据。
    95.根据本技术一实施例,该装置40还包括:浏览器的空间检测模块,用于检测浏览器的空间是否足够,若否,则跳过将第一资源库下载至浏览器的步骤,将远程服务设置为用于响应第一资源库访问请求的服务。
    96.根据本技术实施例第三方面,提供一种计算机存储介质,存储介质包括一组计算机可执行指令,当指令被执行时用于执行上述任一项的基于浏览器的资源调度。
    97.这里需要指出的是:以上针对基于浏览器的资源调度实施例的描述、和以上针对计算机存储介质实施例的描述,与前述方法实施例的描述是类似的,具有同前述方法实施
    例相似的有益效果,因此不做赘述。对于本技术对基于浏览器的资源调度装置实施例的描述和对计算机存储介质实施例的描述尚未披露的技术细节,请参照本技术前述方法实施例的描述而理解,为节约篇幅,因此不再赘述。
    98.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
    99.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
    100.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
    101.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以利用硬件的形式实现,也可以利用硬件加软件功能单元的形式实现。
    102.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储介质、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
    103.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例方法的全部或部分。而前述的存储介质包括:移动存储介质、rom、磁碟或者光盘等各种可以存储程序代码的介质。
    104.以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
    转载请注明原文地址:https://tc.8miu.com/read-2115.html

    最新回复(0)