一种基于BS和CS架构的Web通讯录实现方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利
(10)授权公告号 (45)授权公告日 (21)申请号 201910903896.7(22)申请日 2019.09.24
(65)同一申请的已公布的文献号
申请公布号 CN  110727849 A (43)申请公布日 2020.01.24
(73)专利权人 中国电子科技集团公司第二十八
研究所
地址 210000 江苏省南京市栖霞区灵山南
路1号(72)发明人 丁杰 王海青 施磊 马威 
李绪福 宋存洋 李嘉明 朱叶盛 陆一 周梦璐 杨岩 孙彬 鸦文 (74)专利代理机构 江苏圣典律师事务所 32237
代理人 胡建华 于瀚文(51)Int.Cl.
G06F  16/953(2019.01)
隐框窗G06F  16/957(2019.01)G06F  9/445(2018.01)H04L  67/02(2022.01)
(56)对比文件
CN  102446221 A ,2012.05.09CN  110022394 A ,2019.07.16CN  108848242 A ,2018.11.20CN  102647398 A ,2012.08.22US  2017249393 A1,2017.08.31WO  0231685 A1,2002.04.18US  2018268
006 A1,2018.09.20CN  106131115 A ,2016.11.16林俊存 等.基于互联网的手机通讯录的研究与实现.《电子世界》.2016,(第23期),
审查员 刘高鸣
(54)发明名称
一种基于BS和CS架构的Web通讯录实现方法(57)摘要
本发明公开了一种基于BS和CS架构的Web通讯录实现方法,该方法首先利用C/S架构搭建通讯录插件和通讯录服务,实现与数据库的数据同步及变更通知;利用浏览器插件技术将通讯录插件进行二次封装,使其能被浏览器正常加载和调用;然后开发Web通讯录JavaScript展现模块,对通讯录数据进行界面绘制、刷新和用户事件处理,最后集成到Web应用中进行通讯录展现。本发明不仅能够支持巨大数量的Web客户端,同时实现通讯录页面自动局部刷新功能,还提供页面刷新节流保护,去Web服务化,通讯录数据本地化处理,提高了Web通讯录的稳定性、可靠性和可扩展
性。
权利要求书2页  说明书9页  附图5页
CN 110727849 B 2022.03.04
风机消音器
C N  110727849
B
1.一种基于BS和CS架构的Web通讯录实现方法,其特征在于,所述Web通讯录包括通讯录服务、通讯录插件、浏览器插件和JavaScript展现模块,具体实现方法包括如下步骤:步骤1、创建通讯录服务,定义通讯录服务要提供的功能及数据结构;
步骤2、实现通讯录服务定义的功能;
步骤3、创建通讯录插件,定义通讯录插件要实现的功能及数据结构;
步骤4、实现通讯录插件功能;
步骤5、创建浏览器插件,定义浏览器插件要实现的功能;
步骤6、实现浏览器插件功能;
三维激光扫描技术步骤7、创建JavaScript展现模块,定义JavaScript展现模块要实现的功能;
步骤8、实现JavaScript展现模块定义的功能;
步骤1具体包括如下步骤:
步骤1‑1:定义通讯录服务提供的功能包括:接收从通讯录插件发过来的查询请求,并返回查询结果;接收从通讯录插件发过来的订阅请求,通讯录数据变更时通知通讯录插件,向通讯录插件发送通知消息;
步骤1‑2:定义通讯录服务的数据结构和数据参数:规定通讯录服务返回的查询结果为JSON数组,数
组元素包括如下属性:属性名称、属性值;
步骤2具体包括如下内容:
实现步骤1中定义的功能,生成可执行文件,通讯录数据存放在MySQL数据库中,使用UDP协议与通讯录插件进行数据传输;
步骤3具体包括如下步骤:
步骤3‑1:定义通讯录插件要实现的功能包括:向通讯录服务查询数据,将返回的数据存储在内存中,构建源内存树;向通讯录服务发送订阅请求;处理通讯录服务发送的通知消息,更新内存中的数据;接收浏览器插件的订阅请求,通讯录数据变更时,如果浏览器插件用到的数据变化,则通知浏览器插件;支持通信录过滤功能,浏览器插件能够对树节点自定义,根据节点属性将无关的节点过滤掉;
步骤3‑2:定义通讯录插件数据结构和内存数据:收到通讯录服务的JSON串后在内存中构建树结构,该结构中的每个节点保存父节点、兄弟节点和子节点的地址,形成一棵树结构,称为源内存树;定义通讯录插件的数据参数:通讯录插件返回给浏览器插件的数据是一个指针结构,该结构对应树结构。
2.根据权利要求1所述的方法,其特征在于,步骤4具体包括如下内容:
实现通讯录插件功能,通过FLOC语言实现节点过滤,根据规定的过滤策略完成树节点的自定义功能,生成动态库文件,使用UDP协议与通讯录服务进行数据传输。
3.根据权利要求2所述的方法,其特征在于,步骤4中,所述根据规定的过滤策略完成树节点的自定义功能,包括如下步骤:
步骤a1,遍历源内存树,从根节点开始依次复制新节点,评估成功时保留,评估失败时删除;
步骤a2,节点依次入栈,nodeIter表示指向源内存树中节点的一个标记,能够动态移动,用来作为生成子树时的一个参照点,入栈的节点都是标记过的节点,nodeIter一直往子节点移动,直到最底层子节点;
步骤a3,节点开始出栈,从子节点往父节点方向开始评估,只要子节点评估成功,则默认父节点也成功;出栈节点评估完成后,将nodeIter往其兄弟节点移动,兄弟节点如果存在子节点,则将子节点入栈,直到最后一个子节点,同步骤a1;
步骤a4,如果节点评估失败,则由其评估成功的兄弟节点替换;如果没有兄弟节点,则此节点评估结束。
4.根据权利要求3所述的方法,其特征在于,步骤5具体包括如下步骤:
步骤5‑1:定义浏览器插件要实现的功能包括:将通讯录插件实现的功能封装成浏览器插件的格式;
步骤5‑2:将生成的浏览器插件添加到浏览器的固定目录下,浏览器启动时识别并加载浏览器插件。
5.根据权利要求4所述的方法,其特征在于,步骤6具体包括如下内容:
生成浏览器插件,放入浏览器加载目录。
6.根据权利要求5所述的方法,其特征在于,步骤7具体包括如下步骤:
步骤7‑1:定义JavaScript展现模块要实现的功能包括:添加zTree控件实现通讯录树展现,调用步骤5创建的浏览器插件初始化树结构;当树结点发生变化浏览器插件收到回调时,刷新树显示。
7.根据权利要求6所述的方法,其特征在于,步骤8具体包括如下内容:
步骤8‑1,Web应用实例化JavaScript展现模块定义的通讯录类,并获取通讯录展现功能;
步骤8‑2,JavaScript展现模块通过通讯录初始化方法加载浏览器插件,并向浏览器插件传递过滤条件和消息回调,实现插件与JavaScript展现模块之间的消息交互;
电热暖水袋步骤8‑3,浏览器插件加载通讯录插件,并向通讯录插件注册回调函数,实现插件与插件之间的消息交
互,并将过滤条件传递给插件;
步骤8‑4,通讯录插件从通讯录服务获取全量数据并储存,同时订阅通讯录服务,以此实现对数据变化的实时感知;
步骤8‑5,通讯录服务向通讯录插件返回全量通讯录数据;
步骤8‑6,通讯录插件依据过滤条件对全量数据进行过滤匹配生成过滤节点数据返回浏览器插件;
步骤8‑7,浏览器插件对过滤数据进行处理生成树型结构数据推送给JavaScript展现模块;
羊毛粉步骤8‑8,JavaScript展现模块解析数据,并生成通讯录树页面。
一种基于BS和CS架构的Web通讯录实现方法
技术领域
[0001]本发明涉及一种基于BS和CS架构的Web通讯录实现方法。
背景技术
[0002]随着Internet(Portmanteau of Interconnected Network,互联网)和Web技术的发展,以往的C/S(Client/Server,又称客户/服务器模式)架构无法满足当前的全球开放、互连和信息共享的新要求,利用不断成熟的Web技术不仅可以提高开发效率,还可以节约开发和维护成本,越来越多的项目使用B/S(Brower/Server,浏览器/服务器模式)架构实现快速搭建平台和产品,从而快速占领市场。
[0003]随着Web技术的推进,通讯录模块由原来的C/S架构向B/S架构转变,在传统B/S架构中,通讯录数据的同步、过滤和查询功能将集中在Web服务处理,当用户量不断增大时,服务响应速度会变慢,将成为软件系统的瓶颈,加上客户端过于依赖服务,一旦服务发生“崩溃”等问题,后果不堪设想。传统客户端在通讯录数据变化时还需要不断地动态刷新页面,才能实时更新数据,这不仅增加服务器的压力,而且影响用户使用体验。
发明内容
[0004]本发明的目的在于提供一种基于BS和CS架构的Web通讯录实现方法。
[0005]实现本发明目的的技术解决方案为:一种利用浏览器插件技术将B/S和C/S架构进行融合后的Web通讯录的实现方法,所述Web通讯录包括通讯录服务、通讯录插件、浏览器插件和JavaScript(一种高级、解释型编程语言)展现模块,具体实现方法包括如下步骤:[0006]步骤1、创建通讯录服务,定义通讯录服务要提供的功能及数据结构;
[0007]步骤2、实现通讯录服务定义的功能;
热轧酸洗
[0008]步骤3、创建通讯录插件,定义通讯录插件要实现的功能及数据结构;
[0009]步骤4、实现通讯录插件功能;
[0010]步骤5、创建浏览器插件,定义浏览器插件要实现的功能;
[0011]步骤6、实现浏览器插件功能;
[0012]步骤7、创建JavaScript展现模块,定义JavaScript展现模块要实现的功能;[0013]步骤8、实现JavaScript展现模块定义的功能;
[0014]步骤1具体包括如下步骤:
[0015]步骤1‑1:定义通讯录服务提供的功能包括:接收从通讯录插件发过来的查询请求,并返回查询结果;接收从通讯录插件发过来的订阅请求,通讯录数据变更时通知通讯录插件,向通讯录插件发送通知消息;
[0016]步骤1‑2:定义通讯录服务的数据结构和数据参数:规定通讯录服务返回的查询结果为JSON(Ja
vaScript Object Notation,JavaScript对象表示法,是一种独立与语言的文本格式)数组,数组元素包括如下属性:属性名称、属性值。
[0017]步骤2具体包括如下内容:
[0018]实现步骤1中定义的功能,生成可执行文件,通讯录数据存放在MySQL(一个开放源码的关系数据库管理系统)数据库中,使用UDP(User Datagram Protocol,一个简单的面向数据报的通信协议)协议与通讯录插件进行数据传输。
[0019]步骤3具体包括如下步骤:
[0020]步骤3‑1:定义通讯录插件要实现的功能包括:接收浏览器插件的订阅请求,通讯录数据变更时,如果浏览器插件用到的数据变化,则通知浏览器插件;向通讯录服务查询数据,将返回的数据存储在内存中,构建源内存树;向通讯录服务发送订阅请求;处理通讯录服务发送的通知消息,更新内存中的数据;支持通信录过滤功能,浏览器插件能够通过使用FLOC(Filter Language Of Contact,通信录过滤语言)语言对树节点自定义,根据节点属性将无关的节点过滤掉。。
[0021]步骤3‑2:定义通讯录插件数据结构和内存数据:收到通讯录服务的JSON串后在内存中构建树结构,该结构中的每个节点保存父节点、兄弟节点和子节点的地址,形成一棵树结构,称为源内存树;
定义通讯录插件的数据参数:通讯录插件返回给浏览器插件的数据是一个指针结构,该结构对应树结构;通讯录插件的控制流参数定义包括:命令常量和命令参数。
[0022]步骤4具体包括如下内容:
[0023]实现通讯录插件功能,通过FLOC语言实现节点过滤,根据规定的过滤策略完成树节点的自定义功能,生成动态库文件,使用UDP协议与通讯录服务进行数据传输。
[0024]步骤4中,所述根据规定的过滤策略完成树节点的自定义功能,包括如下步骤:[0025]步骤a1,遍历源内存树,从根节点开始依次复制新节点,评估成功时保留,评估失败时删除;
[0026]步骤a2,节点依次入栈,nodeIter表示指向源内存树中节点的一个标记,能够动态移动,用来作为生成子树时的一个参照点,入栈的节点都是标记过的节点,nodeIter一直往子节点移动,直到最底层子节点;
[0027]步骤a3,节点开始出栈,从子节点往父节点方向开始评估,只要子节点评估成功,则默认父节点也成功;出栈节点评估完成后,将nodeIter往其兄弟节点移动,兄弟节点如果存在子节点,则将子节点入栈,直到最后一个子节点,同步骤a1;
[0028]步骤a4,如果节点评估失败,则由其评估成功的兄弟节点替换;如果没有兄弟节点,则此节点
评估结束。
[0029]步骤5具体包括如下步骤:
[0030]步骤5‑1:定义浏览器插件要实现的功能包括:将通讯录插件实现的功能封装成浏览器插件的格式;
[0031]步骤5‑2:将生成的浏览器插件添加到浏览器的固定目录下,浏览器启动时识别并加载浏览器插件。
[0032]步骤6具体包括如下内容:
[0033]使用NPAPI(Netscape Plugin Application Programming Interface,网景插件应用程序编程接口,是浏览器所使用的类似ActiveX的插件接口)插件技术生成动态库,将动态库放到Firefox(是一个自由及开放源代码的网页浏览器)的profile目录下的plugins 文件夹中,浏览器启动后加载目录下的NPAPI插件。

本文发布于:2024-09-22 03:56:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/118791.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:通讯录   插件   节点   浏览器   数据   实现   服务
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议