一种数据访问处理方法转让专利

申请号 : CN202211633498.6

文献号 : CN115623079B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 侯欢

申请人 : 中科政汇(北京)科技有限公司

摘要 :

本发明涉及信息处理领域,公开了一种数据访问处理方法,所述方法通过用户和服务器采用前后端机制进行业务分离,前端通过http请求后端API,由服务器中的rest server接收用户的服务访问请求,根据参数创建或查询服务访问任务实例;用户基于页面套接字web socket构造对服务器中异构源数据库的访问请求,对访问请求和会话进行配置,保障了用户对异构数据服务访问的便捷和高效。

权利要求 :

1.一种数据访问处理方法,其特征在于:

用户和服务器采用前后端机制进行业务分离,前端通过页面请求来访问后端API,由后端服务器的rest server接收用户的服务访问请求,根据用户服务访问请求中的参数创建或查询服务访问任务实例;

用户基于页面套接字web socket构造对服务器中异构源数据库的访问请求,设置web socket 在一个单独的长连接上配置全双工、双向通信;当服务器中的异构数据源的数据发生变化时,自动推送重新计算的图表,以用于用户与服务器中异构源数据库之间数据量的实时传输;

Web socket通过TCP套接字建立双向连接通道,创建完成后;通过握手协议实现用户与服务器的实时验证;服务器控制会话有效期及线程共用共享;根据数据源的使用频度来决定会话有效期的长短,频度越高的数据源设置的会话有效期时间越长;用户一次访问后,在超时期间发生的后续访问,共享同一个会话,无需再次登录验证。

2.如权利要求1所述的方法,其特征在于:所述方法还包括:验证成功后,服务器可向客户端推送数据的更新信息,每个客户端的服务访问请求头信息都包含一个up grade字段;

所述up grade字段在服务器侧或客户端侧设置有协议字段映射表,up grade字段设置版本标识字段,用于标识协议ID和协议版本号version。

3.如权利要求2所述的方法,其特征在于:根据所述 up grade字段升级到对应的web socket 协议,用户通过调用send 消息函数来向服务器发送服务访问请求的数据;并通过在线消息on messgae 事件来接收服务器返回的访问数据。

4.如权利要求3所述的方法,其特征在于:服务器实时捕获数据源端发生的变化,通过推送型获取数据源的变化;其中推送型获取数据源的实时变化是数据源主动向服务器推送变化;通过数据源端数据库添加切变函数,当数据发生变化时向服务器推送数据更改信息。

5.如权利要求4所述的方法,其特征在于:根据用户服务访问请求中的参数创建或查询服务访问任务实例包括服务器在Web magic 框架中构建Spider服务实例,用于用户访问网站数据。

6.如权利要求5所述的方法,其特征在于:用户基于页面套接字web socket构造对服务器关联的异构源数据库的访问请求,在设置访问请求中设置预留值以验证访问请求的来源,并对访问请求的信息设置cookie站点检测,防止cookie伪装。

7.如权利要求6所述的方法,其特征在于:对异构源数据库的访问是通过定制化的任务服务实例实现,所述任务服务实例通过web service 方式发布。

说明书 :

一种数据访问处理方法

技术领域

[0001] 本发明涉及信息处理领域,特别是一种数据访问处理方法。

背景技术

[0002] 多场景的异构数据处理中,需要将分布的、异步的,甚至异构的独立信息源中的有用数据集成在-起,使得用户能够以透明的方式访问这些数据源,以供将来信息检索、分折处理。目前高频率和不同协议用户的分析、访问请求会造成业务数据库的访问压力,影响源端的数据库性能。为此,如何均衡规划对多源异构数据的访问处理,实现用户对数据访问的便捷和高效成为研究热点。

发明内容

[0003] 为解决上述问题之一,本发明提出一种数据访问处理方法。
[0004] 所述方法包括,用户和服务器采用前后端机制进行业务分离,前端通过页面请求来访问后端API,由后端服务器的rest server接收用户的服务访问请求,根据用户服务访问请求中的参数创建或查询服务访问任务实例;
[0005] 用户基于页面套接字web socket构造对服务器中异构源数据库的访问请求,设置web socket 在一个单独的长连接上配置全双工、双向通信;当服务器中的异构数据源的数据发生变化时,自动推送重新计算的图表,以用于用户与服务器中异构源数据库之间的数据量的实时传输;
[0006] Web socket 通过TCP套接字建立双向连接通道,创建完成后;通过握手协议实现用户与服务器的实时验证;服务器控制会话有效期及线程共用共享;根据数据源的使用频度来决定会话有效期的长短,频度越高的数据源设置的时间应当越长;用户一次访问后,在超时期间发生的后续访问,共享同一个会话,无需再次登录验证。
[0007] 优选的,所述方法还包括:验证成功后,服务器可向客户端推送数据的更新信息,每个客户端的请求头信息都包含一个up grade字段;所述up grade字段在服务器侧或客户端侧设置有协议字段映射表,up grade字段设置版本标识字段,用于标识协议ID和协议版本号version。
[0008] 优选的,根据所述 up grade字段升级到对应的web socket 协议,用户通过调用send 消息函数来向服务器发送请求数据;并通过在线消息on messgae 事件来接收服务器返回的访问数据。
[0009] 优选的,服务器实时捕获数据源端发生的变化,通过拉取型(pull)和推送型(push)获取数据源的变化。
[0010] 优选的,推送型获取数据源的实时变化是数据源主动向服务器推送变化;通过添加触发器或者数据源端数据库添加切变函数,当数据发生变化时向服务器推送数据更改信息。
[0011] 优选的,所述推送型获取数据源的实时变化是基于增量条件的査询,在服务器的数据库表设置增量字段标记。
[0012] 优选的,根据用户服务访问请求中的参数创建或查询服务访问任务实例包括,在Web magic 框架中构建Spider服务实例,用于访问网站数据。
[0013] 优选的,用户基于页面套接字web socket构造对服务器关联的异构源数据库的访问请求,在设置访问请求中设置预留值以验证访问请求的来源,并对访问请求的信息设置cookie站点检测,防止cookie伪装。
[0014] 优选的,对异构源数据库的访问是通过定制化的任务服务实例实现,所述任务服务实例通过web service 方式发布。
[0015] 优选的,还包括服务器上设有一个服务代理,通过服务代理发布该服务实例,在服务代理侧对应的注册中心上将页面服务完成注册工作。
[0016] 优选的,还提供一种计算机存储介质,其上存储有计算机程序,所述处理器用于执行存储器上的计算机程序用于实现上述方法。
[0017] 本方案提供一种数据访问处理方法,所述方法通过用户和服务器采用前后端机制进行业务分离,前端通过http请求后端API,以实现控制,由后端服务器中的rest server接收用户的服务访问请求,根据参数创建或查询服务访问任务实例;用户基于页面套接字web socket构造对服务器中异构源数据库的访问请求,对访问请求和会话进行配置,保障了用户对异构数据服务访问的便捷和高效。

附图说明

[0018] 通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制。
[0019] 图1是本发明方法的流程示意图。

具体实施方式

[0020] 参看下面的说明以及附图,本发明的这些或其他特征和特点、操作方法、结构的相关元素的功能、部分的结合以及制造的经济性可以被更好地理解,其中说明和附图形成了说明书的一部分。然而,可以清楚地理解,附图仅用作说明和描述的目的,并不意在限定本发明的保护范围。可以理解的是,附图并非按比例绘制。本发明中使用了多种结构图用来说明根据本发明的实施例的各种变形。
[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] 需要说明的是,本文中的“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
[0023] 需要说明的是,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能或作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。例如,第一信息和第二信息是用于区别不同的信息,而不是用于描述信息的特定顺序。
[0024] 需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
[0025] 实施例1
[0026] 本发明提出一种数据访问处理方法。如图1所示,所述方法包括,在基于web socket构造对于异构源数据库的访问,当异构数据源的数据发生变化时,自动推送重新计算的图表,用于客户与服务器之间的大量数据量的实时传输。
[0027] 优选的,设置web socket 在一个单独的长连接上配置全双工,双向通信;当数据库实时更新,当数据发生变化时,自动推送重新计算的图表;
[0028] 可选的,系统实时捕获数据源端发生的变化是通过拉取型(pull)和推送型(push)的方式来获取数据源变化。
[0029] 可选的拉取型方法优选于基于日志解析的方法和基于增量条件查询方法;基于日志的解析的方法适用于下述数据库,比如 Oracle 数据库可使用其中的 redo 日志和 Achieve 日志,当使用My SQL 时,使用Binglog 日志。在异构数据库的数据源端开启对应的日志记录功能。
[0030] 可选的,推送型方法指数据源主动向数据集成平台推送变化。优选的是通过添加触发器或者源端数据库或对应的客户端添加切变函数,当数据发生变化向数据集成平台或数据集成平台中的服务器推送数据更改信息。 可选的,基于增量条件的査询方法不需要异构数据源端开启日志记录,但是在服务器端的数据库表设置需要有特殊的字段作为增量字段标记。
[0031] Web socket 通过TCP套接字建立双向连接通道,创建完成后;通过握手协议实现客户端与服务器端的实时验证。
[0032] 用户登录服务器获取相应的服务实例,对数据进行访问,对于会话共享用户的每一次检索、下载都意味着服务器对异构数据资源的一次登录。在用户量大、并发请求多的情况下,对登录会话的利用就显得尤为重要。同时反复的登录容易造成,服务器的负担过重。
[0033] 可选的,本方法在用户与服务器实时验证,建立会话后,通过控制会话有效期及线程共用共享来提高会话利用率;根据数据源的使用频度来决定会话有效期的长短,频度越高的数据源设置的时间应当越长。一次访问后,在超时期间发生的后续访问共享同一个会话,无需再次登录验证,减少了登入登出次数,避免了多重登录,对有并发数限制的数据源,导致被踢掉的现象,从而节省带宽开销又可减轻目标服务器的负担。
[0034] 验证成功后,服务器即可向客户端推送数据的更新信息,每个客户端的请求头信息都包含一个up grade字段;
[0035] 可选的,为兼容不同的异构数据源的协议格式,客户端或服务器端根据up grade字段连接到不同的协议。 Up grade字段可以在服务器侧或客户端侧设置有协议字段映射表,并设置有版本标识字段,通过up grade 标识协议ID和协议版本号version。
[0036] 可选的所述 up grade可以对应地升级到web socket 协议后,可通过调用send 消息函数来向服务器发送数据;并通过on messgae 事件来接收服务器返回的数据。
[0037]  在对异构数据的访问获取中配置网络访问状态参数,设置ready state 表示连接状态,连接时会触发四个事件,在建立连接时会触发open事件;message表示客户端接收服务器发送的数据;如果在通信过程中发生错误,即会触发error 事件;close 事件表示关闭此连接,在数据传送结束后调用,以此提供对客户端对异构数据的访问,进行访问控制提示。
[0038] 客户端对服务器端的异构数据访问中,所述客户端和服务端采用优选的,前后端机制,对服务应用的项目分离,前端通过http请求后端API的方式实现控制。示例性的,由rest server接收用户的服务访问请求,根据参数创建或搜索服务访问任务实例。
[0039] 可选的,所述服务访问实例,具体可在Web magic 框架中的一个爬虫Spider 访问实例,所述spider访问实例中下设置包括,数据下载模块、数据解析模块(page processor )、数据调度模块(scheduler )。
[0040] 数据下载模块,可以下载网页源码,保存网页快照,提取超链接,识别未爬取的超链接并加入未下载超链接池。将当前已经下载网页的网址加入到已经下载超链接池。
[0041] 数据调度模块,可以从已经下载链接池提取最近下载的前K个网址作为采样网址,将这些网址按照网站域名分类,分别计算每个网站的平均网页时新度。
[0042] 根据网站的平均网页时新度,按由大到小的次序对网站排序。根据优先级对已经排序网站分组,平均网页时新都相应的网站会被分在同一组。从未下载超链接池顶部提取一个超链接,判断其所属网站的优先级,然后加入相应优先级的超连接池。循环从未下载超链接池顶部提取一个超链接,直到未下载超链接池取空。按照优先次序,依次将各优先级超链接池利的网址注入到待下载超链接池中。各个网站的优先级会随着网站的平均网页时新度的变化而变化。
[0043] 所述网页时新度的公式为,Df=1/T‑Td。
[0044] Df 为网页时更新度,T为网页被采集的时间,Td 为网页发布的时间。
[0045] 通过前端参数的进行不同的定制,数据调度模块的作用是维护待访问的数据队列,所述待访问的数据队列具体可以是待访问的的URL队列。
[0046] 采用实现push和pull方法,分别用于加入新的Request和拿出下一个Request进行处理。
[0047] Web magic框架中设置的调度器队列调度queue scheduler基于内存阻塞队列进行存储,并基于哈希配置集hash set实现了重复URL的检测。所述阻塞队列的基于线性链表实现,具有先进先出的特点。
[0048] 往调度器scheduler中加入新的Request时,执行push方法。push方法中进行了以下操作:先尝试将待加入的request 请求对应的URL加入哈希表,若返回false,哈希表己经有了这个URL,则不将request加入阻塞队列,若返回true,证明哈希表中没有这个URL,则将request加入阻塞队列。往scheduler中取出下一个request时,调用pull方法。pull方法中调用阻塞队列的pull方法获取下一个元素。
[0049] 所述异构数据的访问通过定制化的任务服务实例设置,并通过web service 方式发布。系统中设有一个服务代理,通过服务代理发布该服务,在服务代理侧对应的注册中心,所述web service 服务完成注册工作。
[0050] 可选的,所述用户在需要进行数据访问服务时,可以通过请求方发送相关的服务请求描述信息。根据请求方法提供的服务描述信息。即当请求方向服务代理方发送搜索服务的请求时,代理方根据请求查询其在 UDDI (universal description discover and integration )注册信息,所述注册信息中,包含有所述服务对应的描述信息,所述描述信息具体可以与该服务实例相关的主题关键词等,诸如所述服务实例是访问URL为特征的异构数据源的服务器。
[0051] 查询能够满足条件的服务,代理方查询完成后,向请求方返回符合其条件的服务描述信息,通过遵循WSDL (web service description language)规范标准。服务请求方,根据返回的服务描述信息,生成对应的SOAP 消息,然后发送给服务提供方,提供方根据获取的SOAP 消息完成相应的服务,在相应的服务器中运行访问请求,并将其结果返回请求方法,以实现整个web service 调用。
[0052] 可选的,对用户实例的访问请求中,设置访问请求中,通过设置请求中的预留值以验证实例服务请求的来源,在该服务请求的预留值中设置时间戳信息。为防止批量抓取和伪装站点内容请求,同时对于访问请求的信息设置cookie站点检测,防止cookie伪装,以保证异构数据源不被非法批量下载。
[0053] 本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid‑State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
[0054] 如在本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
[0055] 应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。