一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

弱网络环境下的BS端的数据存储方法与流程

2023-02-04 14:03:30 来源:中国专利 TAG:

弱网络环境下的bs端的数据存储方法
技术领域
1.本发明涉及一种弱网络环境下的bs端的数据存储方法,属于b/s端开发领域。


背景技术:

2.尽管网络建设和发展已进入快速发展的新时代,但在国内一些偏远地区或者国外,仍存在网络信号差,网络延时、丢包的现象。国内政府及公司的数据中心考虑安全、环境、成本、配套设施、政策和人才资源等因素,一般都建设在大城市,这样就会造成在国内一些偏远地区或者国外网络质量差时,对数据存储和传输带来了挑战,在b/s端使用的过程中,会经常出现页面数据无法加载,页面数据无法同步到后台数据库问题。
3.专利公告号:cn106788888b,发明名称为:弱网络环境下提高安卓移动终端通信成功率的方法及系统,提出一种弱网络环境下提高安卓移动终端通信成功率的方法,将通信数据包进行拆分,然后在服务器重组通信数据包,弱网络环境下提高了安卓移动终端的通信成功率至少20%。该方案未对b/s端数据通信的可行性进行分析,只对数据通信做了设计,未对数据本机存储给出解决方案,未对非结构化数据的传输做验证,而且数据的传输效率比较低,成功率只提升了20%。


技术实现要素:

4.为克服现有技术的缺陷,本发明提供一种弱网络环境下的bs端的数据存储方法,本发明的技术方案是:
5.一种弱网络环境下的bs端的数据存储方法,包括以下步骤:
6.(1)实时监控网络状态,设置网络延时阈值,根据设定网络延时阈值,变更存储模式,符合该阈值条件,切换到弱网模式,不符合则切回正常模式;
7.(2)后台mysql数据库构建申请表和申请人员表,其中申请表中包含id、申请编号、办理日期、办理方式、办理人、办理单位、备注以及申请状态字段,其中id为主键,申请编号作为唯一键;申请人员表中包含id、申请编号、人员编号、姓名、性别、出生日期、国籍、人员照片、备注以及人员状态字段,其中id为主键,人员编号作为唯一键,申请编号为外键跟申请表关联;在b/s端利用web sql本地数据库构建同样的申请表和申请人员表;正常网络环境下,记录一份当前页面数据到b/s端本地;在切换到弱网模式后,页面数据从b/s端本地获取,使得页面数据交互不受弱网环境的影响;
8.(3)设置数据同步网络延时阈值,当当前网络延时值小于数据同步网络延时阈值时,将调用的接口和数据提取出来,按照接口执行顺序,在后台异步执行;
9.(4)设置数据压缩阈值,当前接口数据值大于压缩阈值时,则进行压缩;若压缩后的接口数据值仍大于压缩阈值,则进行切分后分片传输。
10.所述的步骤(4)具体为:
11.s41:当符合数据同步要求时,设定结构化数据和非结构化数据的大小阈值,当超出指定阈值后,先对数据进行压缩,若压缩后的数据大小仍超出阈值,则按阈值大小对数据
进行切分,最后对压缩和分片后的数据进行传输;后台接收数据,先对数据进行合并,然后对数据解压后存储。
12.s42:对于正常数据传输和分片传输设置失败补偿的步骤,设定接口重试阈值,当接口调用失败后,标记并记录重试接口和数据,在当前数据同步线程数据执行完毕后继续执行,或者在下次数据同步时优先执行。
13.在所述的步骤(2)中,同时新录入的表单信息也会存储到b/s端本地,页面同样响应获取页面的信息。
14.在所述的步骤(2)中,不但记录页面当前数据和页面变更数据,而且记录保存、更新、删除请求接口和接口调用顺序,后台异步执行这些接口,从而保证数据同步的准确性和一致性。
15.在所述的步骤s41中,采用哈夫曼编码进行无损数据压缩,利用数据出现的次数构造哈夫曼二叉树,从根节点到每个数据的路径来进行编码并实现压缩。
16.在所述的步骤s41中,分片采用垂直分片法,一个数据块t被分成数片:t1,t2,
……
,tn;每片包含t的任意一部分列;每一列必须至少被一个片包含,并且每个片必须包含候选码的列。
17.本发明的优点是:解决弱网络环境下,b/s端数据存储及传输问题。分别对结构化数据和非结构化数据存储和传输进行了处理,克服了弱网络条件下,数据存储及同步问题,避免页面填写信息丢失,加快页面的响应时间,提高页面数据和图片的加载速度和同步效率。保证数据的可用性和一致性。
附图说明
18.图1为本发明实施例提供的的测试场景示意图。
19.图2为本发明实施例提供的流程示意图;
20.图3为本发明实施例的类图;
21.图4为本发明实施例的数据同步流程图。
具体实施方式
22.下面结合具体实施例来进一步描述本发明,本发明的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本发明的范围构成任何限制。本领域技术人员应该理解的是,在不偏离本发明的精神和范围下可以对本发明技术方案的细节和形式进行修改或替换,但这些修改和替换均落入本发明的保护范围内。
23.参见图1至图4,本发明涉及一种弱网络环境下的bs端的数据存储方法,包括以下步骤:
24.(1)实时监控网络状态,设置网络延时阈值,根据设定网络延时阈值,变更存储模式,符合该阈值条件,切换到弱网模式,不符合则切回正常模式;
25.(2)页面测试业务为申请单及申请单下人员信息录入、查询,针对该业务设计数据映射关系。后台mysql数据库构建申请表和申请人员表,申请表中包含id、申请编号、办理日期、办理方式、办理人、办理单位、备注、申请状态字段,其中id为主键,申请编号作为唯一键;申请人员表中包含id、申请编号、人员编号、姓名、性别、出生日期、国籍、人员照片、备
注、人员状态字段,其中id为主键,人员编号作为唯一键,申请编号为外键跟申请表关联。在b/s端利用web sql本地数据库构建同样的申请表和申请人员表;正常网络环境下,记录一份当前页面数据到b/s端本地;在切换到弱网模式后,页面数据从b/s端本地获取,使得页面数据交互不受弱网环境的影响;(3)设置数据同步网络延时阈值,当当前网络延时值小于数据同步网络延时阈值时,将调用的接口和数据提取出来,按照接口执行顺序,在后台异步执行;
26.(4)设置数据压缩阈值,当前接口数据值大于压缩阈值时,则进行压缩;若压缩后的接口数据值仍大于压缩阈值,则进行切分后分片传输。
27.所述的步骤(4)具体为:
28.s41:当符合数据同步要求时,设定结构化数据和非结构化数据的大小阈值,当超出指定阈值后,先对数据进行压缩,若压缩后的数据大小仍超出阈值,则按阈值大小对数据进行切分,最后对压缩和分片后的数据进行传输;采用哈夫曼编码进行无损数据压缩,利用数据出现的次数构造哈夫曼二叉树,并且出现次数较多的数据在树的上层,出现次数较少的数据在树的下层。于是,就可以从根节点到每个数据的路径来进行编码并实现压缩。分片采用垂直分片法,一个数据块t被分成若干片:t1,t2,
……
,tn,每片包含t的一部分列。每一列必须至少被一个片包含,并且每个片必须包含候选码的列。后台接收数据,先对数据进行合并,然后对数据解压后存储。
29.s42:对于正常数据传输和分片传输设置失败补偿的步骤,设定接口重试阈值,当接口调用失败后,标记并记录重试接口和数据,在当前数据同步线程数据执行完毕后继续执行,或者在下次数据同步时优先执行。
30.在所述的步骤(2)中,同时新录入的表单信息也会存储到b/s端本地,页面同样响应获取页面的信息。
31.在所述的步骤(2)中,不但记录页面当前数据和页面变更数据,而且记录保存、更新、删除请求接口和接口调用顺序,后台异步执行这些接口,从而保证数据同步的准确性和一致性。
32.如图1所示,为本发明的测试场景示意图,包括一台路由器、一台交换机、两个笔记本电脑作为第一b/s端和第二b/s端、一台服务器搭建的局域网构成。网络通过路由器连接到交换机,从交换机拉出3根网线,分别连接服务器、第一b/s端和第二b/s端。服务器上部署前后台程序服务,通过b/s端浏览器可以访问服务程序。第一b/s端电脑安装network emulator toolkit网络模拟工具,设置带宽上行100kb/s、下行100kb/s,网络延时区间在100毫秒到300毫秒之间,丢包率10%,模拟弱网络环境。第二b/s端不做任何限制,代表正常网络环境。
33.本实施例中,在第一b/s端1录入数据和图片,同时在第一b/s端和第二b/s端查看比较录入的信息的准确性和完整性。
34.如图2所示,本发明基于弱网环境下的b/s端数据存储及数据同步的流程:
35.(1)设置弱网网络延时阈值nt,本次测试nt设置为200ms,根据定时任务获取当前网络状态,当前的网络延时》nt时,第一b/s端自动切换到弱网模式。
36.在正常网络环境,会缓存一份基础数据、页面数据及数据的有效期等信息,存储到web sql离线数据库。如果当前时间《数据有效期,页面会从缓存数据库中直接拿到结构化
数据和非结构化数据,若超出有效期,b/s端会自动清除本地数据。
37.(2)切换到弱网模式后,第一b/s端切换为本地存取模式,数据有效期会失效,不会清除本地数据。本实施例设计的类图如图3所示,申请表单下关联申请人员,且为一对多的关系,申请表单和申请人员各自设置唯一键,申请人员关联申请表单的唯一键,申请人员包含人员图片信息。本存储模式下,会自动记录接口、接口顺序和接口数据,存储弱网模式下操作的数据到web sql,并实时的将数据同步到服务器端。
38.例如在第一b/s端可查询正常网络状态下的申请表单及人员信息,在第一b/s端录入一条申请表单和两个人员,录入后便可查看本次录入的信息。在第二b/s端同样可以查看到第一b/s端录入的信息。
39.(3)数据同步的流程如图4所示,获取当前网络延时,如果小于弱网阈值,则执行数据同步操作,将b/s端1存储的弱网环境执行的接口和数据提取出来,依次执行。
40.为提升弱网环境数据同步的效率,同时保证数据同步的成功率,设置多个线程并行执行同步任务,经测试证明并不是线程越多,效率越高,设定线程最大阈值,线程数跟网络延时成反比,若最大线程阈值为tt,则当前线程数=tt*最小网络延时/当前网络延时,结果只取整数部分的值。本次测试将tt设置为20。
41.(4)同时为提高单个线程的传输效率和成功率,设定最大数据量阈值,若当前接口中的数据量大小超过该阈值,则对该数据进行压缩,包括结构化数据和非结构化数据,若压缩后的数据仍大于最大数据量阈值,则按照最大数据量阈值对数据进行切分,每个分片都有压缩标识、切分标识和同步标识,然后对切分后的数据进行同步。
42.若当前同步线程占满,则等待线程释放后,继续同步。
43.服务器端接收所有分片后的数据,然后根据切分标识,对数据进行合并,根据压缩标识对数据进行解压,最终完成服务端数据存储。数据同步后,第一b/s端将数据的同步标识置为已同步。
44.同时针对数据同步线程做了失败补偿机制,设定同步重试阈值st,对失败线程进行重试,重试st次失败后,标记并记录重试接口和数据,设置重试间隔时间it,在网络延时《nt时,间隔时间it后再次尝试。
45.本发明提出一种弱网条件下b/s端数据存储方案,解决弱网条件下b/s端数据无法正常使用问题,保证弱网环境下b/s端的可用性。同时提出一种弱网条件下b/s端本地数据向服务器同步数据方案,提高数据同步的效率。
46.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献