CN103685309B - 面向地图可视化瓦片服务接入的异步请求队列的建立方法 - Google Patents
面向地图可视化瓦片服务接入的异步请求队列的建立方法 Download PDFInfo
- Publication number
- CN103685309B CN103685309B CN201310729316.XA CN201310729316A CN103685309B CN 103685309 B CN103685309 B CN 103685309B CN 201310729316 A CN201310729316 A CN 201310729316A CN 103685309 B CN103685309 B CN 103685309B
- Authority
- CN
- China
- Prior art keywords
- request
- tile
- queue
- priority
- asynchronous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种面向地图可视化瓦片服务接入的异步请求队列模型,属于计算机网络技术和队列控制技术领域。该模型主要应用排队论的原理与方法,解决网络化地图可视化瓦片服务的接入问题,实现客户端有层次、实时、流畅的地图瓦片访问。首先设置一个固定容量的请求队列,当有新的请求到来时,根据队列状态、优先级情况确定该请求是否放入队列或者舍弃;另一方面,建立与并发请求相等数目的线程,执行瓦片获取过程,并以回调的方式返回结果。该模型涉及高频度可视化请求下的优先级控制、并发请求量控制、网络异步请求、请求队列管理等技术,是一个具备优先级控制的高频度、高时效的网络异步请求队列模型,适用于地图可视化瓦片网络服务接入。
Description
技术领域
本发明涉及计算机网络技术和队列控制技术,具体地说,涉及高频度可视化请求下的优先级控制、并发请求量控制、网络异步请求、请求队列管理等技术。本发明是一个具备优先级控制的高频度、高时效的网络异步请求队列模型,适用于地图可视化瓦片网络服务接入。
背景技术
地图可视化瓦片客户端请求具有请求频度高、时效性高、优先级条件严格的要求。随着用户不断转换视图的操作,瓦片请求在后台频繁地发生;当前视图中心的瓦片始终是最优先的请求;同时视图***和相邻层级的瓦片以不同的优先权重进行请求。其中包括基于HTTP网络协议的异步并发访问机制、优先权请求队列模型等相关技术。
超文本传输协议(Hypertext transfer protocol,HTTP)是分布式,协作式,超媒体***应用之间的通信协议,是万维网交换信息的基础,具有简单快捷、灵活、无连接、无状态等特点。HTTP的请求类型常用的主要有GET和POST两种,均为同步访问方式,请求时为阻塞状态;异步的实现方法较为复杂,编程难度高,但请求开销小,适用于频繁访问的应用环境。主要参考文献包括http://www.w3.org/Protocols/;http://progrium.com/blog/2012/12/06/async-http-responses-with-response-redirection/等。
排队论是运筹学和应用概率学的重要分支,在现实生活中,排队论的应用实例随处可见,并正在发挥其重要作用。它主要由三部分组成:输入过程,排队规则和服务***。输入过程描述服务***的顾客按照怎样的规则到达;排队规则描述服务是否允许排队,顾客是否允许排队;服务***主要描述服务台的数量和组织方式,以及顾客所需时间的分布方式。在排队***中,顾客和服务机构最关心的是队列长度,顾客在***中的等待、逗留时间及其分布,服务台的忙期等问题,这些指标也是排队***最重要的特征。主要参考文献包括Qingchun Jiang,Sharma Chakravarthy.Queueing analysis of relational operatorsfor continuous data streams,Technical Report CSE,2003(02).;YingxianLiang.Application of mathematical logic in queue theory,Journal of ShenyangInstitute ofAeronautcal Engineering,2003等。
面向地图可视化瓦片服务接入的异步请求队列的建立方法结合了异步网络请求技术和优先级控制的排队论方法,其中具体涉及了地图瓦片优先级控制、并发请求量控制、请求队列管理等技术问题,目前可见文献/专利中比较***的解决方案还未出现。
发明内容
本发明的目的是针对网络化地图可视化瓦片服务的接入问题,建立一种支持高频度访问,同时具备优先级控制和网络访问量控制,具有高时效性的异步网络访问请求队列模型,实现客户端有层次、实时、流畅的地图瓦片访问。
本发明的基本思路为:设置一个固定容量的请求队列,队列中的每一项可容纳一个瓦片请求的信息;当有新的请求到来时,根据队列状态、优先级情况确定该请求是否放入队列或者舍弃;另一方面,建立与并发请求量对应数目的线程,从队列中取出优先级最高的请求执行瓦片获取过程,并以回调的方式返回结果。该过程实例化了一个具备输入过程、排队规则和服务***的异步请求队列模型。
本发明的技术方案提供了一种具有优先级和流量控制的异步请求队列的建立方法,具体包含以下的实施步骤:
1)由用户定义一个连接数初值,表示同时向服务端发出请求的个数;
2)定义固定长度(连接数×2)的瓦片请求队列,队列中的每一项保存了瓦片请求的信息,包括瓦片编号、优先级、时间戳、请求状态和返回数据指针五项;
3)定义用于异步返回瓦片的回调函数,回调信息包括与瓦片请求队列相对应的瓦片编号、时间戳和瓦片数据;
4)根据用户浏览地图的视点实时生成和更新瓦片待请求列表,按照视图定义优先级,基本的优先级规则从高到低依次为:视点中心、视点边缘、相邻下层、相邻上层;
5)开启排队请求线程循环地读取瓦片待请求列表中的每一项,调用队列请求函数进行瓦片请求,直至队列为空时停止线程;
6)瓦片请求发生时,首先判断瓦片请求队列是否已满,若未满则将请求加入队列;否则若当前请求的优先级高于队列中最低优先级的项,则替换之;当以上两个条件均不满足时,将当前请求抛弃;
7)开启多个网络请求线程,线程数量与用户定义的连接数一致,每个线程执行如下操作:从瓦片请求队列中取出优先级最高的请求,并将其解析组成URL服务访问地址,向可视化服务请求瓦片,瓦片返回后,将相应的请求从瓦片请求队列和瓦片待请求列表中移除,并通过回调函数返回结果。
上述步骤的特征在于:
步骤2)和步骤3)定义了瓦片请求队列和回调函数的内容,确定了异步访问的形式;同时定义了瓦片请求队列的长度,确定了瓦片流量控制的形式;
步骤4)和步骤5)为外部输入过程,依据用户视点生成带优先级的瓦片请求,由后台线程以快速的时间间隔循环地向队列模型发出瓦片访问请求;
步骤4)和步骤5)中叙述的瓦片待请求列表和瓦片请求队列形成了一个双队列模式,前者维护请求发起方的队列缓存,由用户程序生成,内容符合步骤2)中的定义;后者维护处理请求的队列缓存,是优先级和流量控制的结构基础;
步骤6)实现了队列模型中优先级的核心机制,在外部线程不断发出请求的过程中,确保进入队列的是优先级最高的请求;
步骤7)通过多线程实现了瓦片请求的流量控制、优先级控制和异步特性,具体来讲,线程数与用户定义的连接数一致,控制了流量;按照优先级顺序处理请求,实现了优先级控制;通过回调函数返回结果,实现了异步化。
本发明与现有技术相比具有如下特点:(1)支持高频度的实时瓦片访问接入,外部用户程序可连续、批量发送请求,获得实时响应效果;(2)将优先级控制和流量控制相结合,确保快速、及时、准确地响应瓦片请求的同时,有效减轻可视化瓦片服务的负载。
附图说明
图1本发明总体流程
图2基于二维视图的优先级生成示意图
图3基于三维视图的优先级生成示意图
图4瓦片请求队列的多线程访问
图5二维显示效果图
具体实施方式
本发明要求用户输入初始的连接数,该连接数由网络状况等指标确定,默认值为6,以下实施步骤以该值为例进行说明。
图1示意了本发明的总体流程,在整体上由三个部分组成:(1)输入过程:外部程序根据视图显示状态生成带优先级的瓦片请求,并向队列模型模块持续发送请求;(2)排队规则:基于优先级和流量控制原则,队列模型将并发地响应优先级最高的前6个请求;(3)服务***:队列模型访问瓦片服务返回瓦片结果,将相应的请求从队列中移除,并通过回调函数交由外部程序处理。
本发明定义的一个瓦片请求的结构包括以下几个部分:
瓦片编号:由用户自定义,用于在异步调用机制中唯一标识一个瓦片,本发明采用[X,Y,D]表示,将全球范围划分为平面网格(瓦片),X、Y、D分别表示横向编号、纵向编号和深度编号,这是一种常见的瓦片划分方法,本发明不限于此种划分方法,在此不赘述;
优先级变量:用一个整形变量代表瓦片请求的优先级,在队列模型内部处理时,按照变量值越大优先级越高的原则排序,优先处理变量值大的请求,具体数值的确定由用户自定义,后续将以二维和三维视图为例进一步说明;
时间戳:表示瓦片请求进入队列模型时的时间,精确到毫秒,用于判断瓦片请求是否超时,若超时则认为目标服务器没有该瓦片数据,将请求从队列中移除;
请求状态:瓦片请求包括待请求、正在请求、请求完成三种状态,分别代表请求进入队列模型、正在接入瓦片服务、瓦片服务返回结果,这里需要说明的是,当请求状态为正在请求时,该瓦片请求将被锁定,不会被其他请求所替代,直至结果返回或服务超时等异常情况出现。
外部用户程序按照上述的结构定义,根据不同的视图特点生成瓦片请求。图2示意了一种二维视图的瓦片请求优先级生成规则,粗体实线框代表二维视图的窗体边界,虚线框代表了视图缓存的边界,方格为瓦片,瓦片内的数字代表了优先级,优先级按照从视点中心到周围螺旋式递减。图3示意了一种三维视图的瓦片请求优先级生成规则,按照视角所涉及的瓦片由近及远,相应地生成优先级由高到低的瓦片请求。
图4示意了队列模型的多线程工作机制,其中外部排队请求线程的执行路径用蓝色箭头线表示,队列模型瓦片请求线程的执行路径用红色箭头线表示;“请求接口”以上为外部用户程序,“请求接口”以下为队列模型程序。
以下例举一种外部程序的处理方案。每当视图发生变化,产生新的瓦片需求时,外部用户程序生成瓦片请求,形成一个瓦片待请求列表,接着开启排队请求线程,持续、循环地向队列模型发送瓦片请求,线程工作流程(图4“请求接口”以上蓝线部分)的伪代码如下:
同时,外部程序实现回调函数,由队列模型程序调用,函数原型如下:
CallbackTile(瓦片编号,瓦片数据)
回调函数首先将瓦片数据拷贝并交由上层程序处理,然后将对应的瓦片请求从瓦片待请求列表中移除,为避免多线程访问冲突,移除时需锁定列表。
队列模型的主体部分由请求接口(图4“请求接口”以下蓝线部分)和瓦片请求线程(图4“请求接口”以下红线部分)两部分组成,前者用伪代码表示如下:
请求接口实现了队列模型中请求到来时的排队规则,瓦片请求线程则实现了服务***的工作过程,如上述伪代码所述,线程在请求到来时启动,最大线程数为6,其执行过程用伪代码表示如下:
上述步骤实现了一个最大并发量为6个瓦片请求的队列模型,利用队列规则避免了重复发送请求并使高优先级瓦片得到实时响应。瓦片请求队列设定为连接数的2倍,即12个,一方面确保了瓦片请求的实时性,充当了时间优先级规则的角色,另一方面避免了队列过长,耗费资源。
利用本发明实现的二维视图显示效果见图5,该视图的尺寸为宽1091像素、高636像素,每个瓦片的尺寸为宽256像素、高256像素。图中所需的瓦片数为20个,请求的优先级顺序是从视图中心向周围呈螺旋状递减,实际显示顺序见图中红色***数字。在单个瓦片平均响应时间为0.5秒时视图全部显示用时小于3秒。本发明适用于优先级控制下的高频度细粒度网络访问,可实现网络化地图可视化瓦片服务的有层次、实时、流畅访问。
Claims (3)
1.面向地图可视化瓦片服务接入的异步请求队列的建立方法,其特征在于包括以下实施步骤:
步骤1,由用户定义一个连接数初值,表示同时向服务端发出请求的个数;
步骤2,定义长度为连接数2倍的瓦片请求队列,队列中的每一项保存了瓦片请求的信息,包括瓦片编号、优先级、时间戳、请求状态和返回的数据指针五项;所述请求状态为:瓦片请求包括待请求、正在请求、请求完成三种状态,分别代表请求进入队列模型、正在接入瓦片服务、瓦片服务返回结果,当请求状态为正在请求时,该瓦片请求将被锁定,不会被其他请求所替代,直至结果返回或服务超时情况出现;
步骤3,定义用于异步返回瓦片的回调函数,回调信息包括与瓦片请求队列相对应的瓦片编号、时间戳和瓦片数据;
步骤4,根据用户浏览地图的视点实时生成和更新瓦片待请求列表,按照视图定义优先级,基本的优先级规则从高到低依次为:视点中心、视点边缘、相邻下层、相邻上层;
步骤5,开启排队请求线程循环地读取瓦片待请求列表中的每一项,调用队列请求函数进行瓦片请求,直至队列为空时停止线程;
步骤6,瓦片请求发生时,条件一:瓦片请求队列是否已满,若未满,则将请求加入队列;条件二:若已满,则判断当前瓦片请求队列的优先级是否高于队列中最低优先级的项,若高于,则当前瓦片请求队列替换队列中最低优先级的项;当条件一与条件二均不满足时,则将当前瓦片请求抛弃;
步骤7,开启数量与用户定义的连接数一致的网络请求线程,每个线程执行如下操作:从瓦片请求队列中取出优先级最高的请求,并将其解析组成URL服务访问地址,向可视化服务请求瓦片,将可视化服务瓦片数据拷贝后,当前已经被获取瓦片数据的瓦片请求从瓦片请求队列和瓦片待请求列表中移除,并通过回调函数返回结果。
2.根据权利要求1所述的面向地图可视化瓦片服务接入的异步请求队列的建立方法,其特征在于用同步的HTTP网络访问协议实现了异步的瓦片访问形式,支持外部用户程序可连续、批量地发送请求即高频度的实时瓦片访问接入,并形成瓦片带请求列表后,开启排队请求线程,持续、循环地向队列模型发送瓦片请求,获得实时的响应效果。
3.根据权利要求1所述的面向地图可视化瓦片服务接入的异步请求队列的建立方法,其特征在于所述步骤2和所述步骤3定义了瓦片请求队列和回调函数的内容,确定了异步访问的形式;同时定义了瓦片请求队列的长度,确定了瓦片流量控制的形式;
所述步骤4和所述步骤5为外部输入过程,依据用户视点生成带优先级的瓦片请求,由线程以快速的时间间隔循环地向队列模型发出瓦片访问请求;所述的瓦片待请求列表和瓦片请求队列形成了一个双队列模式,所述的瓦片待请求列表维护请求发起方的队列缓存,由用户程序生成,内容符合所述步骤2中的定义;瓦片请求队列维护处理请求的队列缓存,是优先级和流量控制的结构基础;
所述步骤6实现了队列模型中优先级的核心机制,在外部线程不断发出请求的过程中,确保进入队列的是优先级最高的请求;
所述步骤7通过多线程实现了瓦片请求的流量控制、优先级控制和异步特性,线程数与用户定义的连接数一致,控制了流量;按照优先级顺序处理请求,实现了优先级控制;通过回调函数返回结果,实现异步请求,将优先级控制和流量控制相结合,确保快速、及时、准确地响应瓦片请求的同时,有效减轻可视化瓦片服务的负载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310729316.XA CN103685309B (zh) | 2013-12-26 | 2013-12-26 | 面向地图可视化瓦片服务接入的异步请求队列的建立方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310729316.XA CN103685309B (zh) | 2013-12-26 | 2013-12-26 | 面向地图可视化瓦片服务接入的异步请求队列的建立方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103685309A CN103685309A (zh) | 2014-03-26 |
CN103685309B true CN103685309B (zh) | 2019-09-13 |
Family
ID=50321623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310729316.XA Expired - Fee Related CN103685309B (zh) | 2013-12-26 | 2013-12-26 | 面向地图可视化瓦片服务接入的异步请求队列的建立方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103685309B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156482A (zh) * | 2014-08-26 | 2014-11-19 | 天津市普迅电力信息技术有限公司 | 一种地图瓦片数据的发布方法 |
CN104731899A (zh) * | 2015-03-19 | 2015-06-24 | 浪潮通用软件有限公司 | 一种基于异步处理的数据高并发处理方法 |
US9665924B2 (en) * | 2015-04-01 | 2017-05-30 | Microsoft Technology Licensing, Llc | Prioritized requesting of mapping layers |
CN104917833A (zh) * | 2015-06-08 | 2015-09-16 | 北京集奥聚合网络技术有限公司 | 一种基于nio请求的异步信息处理方法 |
CN105069058B (zh) * | 2015-07-24 | 2018-11-27 | 中国地质大学(武汉) | 用于高频交互环境的网络地图请求快速响应方法 |
CN108255853B (zh) * | 2016-12-29 | 2022-04-22 | 卓望数码技术(深圳)有限公司 | 一种插件式的请求异步处理方法以及*** |
CN107294872B (zh) * | 2017-05-05 | 2019-07-30 | 中广热点云科技有限公司 | 一种提高通信基站服务效率的方法及*** |
CN108021462B (zh) * | 2017-12-08 | 2019-06-04 | 北京百度网讯科技有限公司 | 用于调用云服务的方法和装置 |
CN108334555A (zh) * | 2017-12-31 | 2018-07-27 | 广州都市圈网络科技有限公司 | 矢量调图速度优化方法、***、电子设备及存储介质 |
CN109631874A (zh) * | 2018-12-11 | 2019-04-16 | 四川省交通运输厅交通勘察设计研究院 | 在三维电子航道图上叠加实时数据流的方法 |
CN112902968A (zh) * | 2021-02-01 | 2021-06-04 | 成都紫瑞青云航空宇航技术有限公司 | 一种高效率三维数字导航地球生成方法及*** |
CN115037802B (zh) * | 2022-06-02 | 2024-03-08 | 北京百度网讯科技有限公司 | 一种请求处理方法、装置、电子设备和存储介质 |
CN117171288B (zh) * | 2023-11-02 | 2024-01-12 | 中国地质大学(武汉) | 一种栅格地图解析方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750180A (zh) * | 2012-05-28 | 2012-10-24 | 中国科学院遥感应用研究所 | 一种二维地图瓦片的多线程显示机制 |
CN102968442A (zh) * | 2012-10-22 | 2013-03-13 | 武大吉奥信息技术有限公司 | 网络地图瓦片服务聚合的方法和*** |
CN103279487A (zh) * | 2013-04-25 | 2013-09-04 | 中国科学院遥感与数字地球研究所 | 一种地图瓦片缓存的组织和管理方法 |
-
2013
- 2013-12-26 CN CN201310729316.XA patent/CN103685309B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750180A (zh) * | 2012-05-28 | 2012-10-24 | 中国科学院遥感应用研究所 | 一种二维地图瓦片的多线程显示机制 |
CN102968442A (zh) * | 2012-10-22 | 2013-03-13 | 武大吉奥信息技术有限公司 | 网络地图瓦片服务聚合的方法和*** |
CN103279487A (zh) * | 2013-04-25 | 2013-09-04 | 中国科学院遥感与数字地球研究所 | 一种地图瓦片缓存的组织和管理方法 |
Non-Patent Citations (1)
Title |
---|
一种支持大量并发用户的瓦片缓存方案研究;陈桦,李艳明,朱美正;《计算机工程与科学》;20121231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103685309A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103685309B (zh) | 面向地图可视化瓦片服务接入的异步请求队列的建立方法 | |
CN103605567B (zh) | 面向实时性需求变化的云计算任务调度方法 | |
CN105912401B (zh) | 一种分布式数据批处理***和方法 | |
CN109032801B (zh) | 一种请求调度方法、***及电子设备和存储介质 | |
US7185046B2 (en) | Submitting jobs in a distributed computing environment | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
Liu et al. | Task scheduling with precedence and placement constraints for resource utilization improvement in multi-user MEC environment | |
CN103197968A (zh) | 一种融合同步异步特点的线程池处理方法及*** | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
CN103761146B (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN106020927A (zh) | 一种云计算***中任务调度与资源配置的通用方法 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN103019835A (zh) | 一种多核处理器中断资源优化处理***和方法 | |
CN109600798A (zh) | 一种网络切片中多域资源分配方法及装置 | |
CN106502794B (zh) | 一种基于云端渲染的三维效果图高效渲染方法 | |
CN108845874A (zh) | 资源的动态分配方法及服务器 | |
CN104112049B (zh) | 基于P2P构架的MapReduce任务跨数据中心调度***及方法 | |
CN107295090A (zh) | 一种资源调度的方法和装置 | |
Squillante et al. | Threshold-based priority policies for parallel-server systems with affinity scheduling | |
CN111782627A (zh) | 面向广域高性能计算环境的任务与数据协同调度方法 | |
Li et al. | Endpoint-flexible coflow scheduling across geo-distributed datacenters | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN109117279A (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
Li et al. | Performance analysis of service clouds serving composite service application jobs | |
CN117707759A (zh) | 一种多租户gpu集群弹性配额调度方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190913 Termination date: 20201226 |
|
CF01 | Termination of patent right due to non-payment of annual fee |