数据访问方法及装置转让专利

申请号 : CN201010506543.2

文献号 : CN101958838B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴锋海刘胜

申请人 : 联动优势科技有限公司

摘要 :

本发明公开了一种数据访问方法及装置,用以解决现有技术提供的数据访问方案需要各个网络应用系统分别设置DAO而导致耗费网络应用系统较多处理资源的问题。方法包括:数据访问服务器获取至少一个网络应用系统发送的待访问数据的标识;从预先设置在所述服务器中的数据信息与访问策略、存储介质的类型信息的对应关系中,确定与待访问数据的标识对应的访问策略、存储介质的类型信息;以及通过执行确定的访问策略,确定所述待访问数据的存储地址,并根据确定的存储介质的类型信息,从预先设置在所述服务器中的存储介质类型信息与访问接口的对应关系中,确定相应的访问接口;通过确定的访问接口,访问存储在确定的存储地址中的所述待访问数据。

权利要求 :

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

数据访问服务器获取由至少一个网络应用系统发送的待访问数据的标识;

从预先设置在所述服务器中的数据信息与访问策略、存储介质的类型信息的对应关系中,确定与待访问数据的标识对应的访问策略、存储介质的类型信息;以及通过执行确定的访问策略,确定所述待访问数据的存储地址,并根据确定的存储介质的类型信息,从预先设置在所述服务器中的存储介质类型信息与针对不同类型的存储介质的访问接口的对应关系中,确定相应的访问接口;

通过确定的访问接口,访问存储在确定的存储地址中的所述待访问数据。

2.如权利要求1所述的方法,其特征在于,还包括:

数据访问服务器接收所述网络应用系统发送的用于指示对所述待访问数据进行操作的操作类型信息,所述操作类型信息是所述网络应用系统从预先设置的若干操作类型信息中选取的;以及对访问到的数据执行接收的所述操作类型信息所指示的操作。

3.如权利要求1或2所述的方法,其特征在于,数据访问服务器获取由负载均衡服务器转发来的所述网络应用系统发送的待访问数据的标识;

其中,负载均衡服务器在判断出数据访问服务器的负载信息符合预定条件时,将所述待访问数据的标识转发给数据访问服务器。

4.如权利要求1或2所述的方法,其特征在于,数据访问服务器设置有分别支持不同协议的多个接口;以及数据访问服务器获取所述待访问数据的标识具体包括:数据访问服务器通过所述多个接口中的第一接口接收所述网络应用系统发送的封装有待访问数据的标识的协议消息,其中,所述第一接口支持用于封装所述待访问数据的标识的协议;并根据该协议消息的协议类型,选取相应的序列化处理方式对所述协议消息进行序列化处理,得到所述待访问数据的标识。

5.如权利要求1或2所述的方法,其特征在于,还包括:

数据访问服务器获取访问到的数据,对获取到的数据进行压缩,并将压缩后的数据进行加密后发送给所述网络应用系统。

6.如权利要求1或2所述的方法,其特征在于,还包括:

所述数据访问服务器确定接收所述待访问数据的标识的时间信息以及所述网络应用系统的标识;并根据所述时间信息和所述网络应用系统的标识,从预先设置的网络应用系统的标识、时间信息与数据访问带宽的对应关系中,选取相应的数据访问带宽;以及根据确定出的访问策略以及访问数据所需的参数信息,利用选取的访问带宽,访问存储在确定的存储介质的类型信息所指示的存储介质中的所述待访问数据。

7.如权利要求1或2所述的方法,其特征在于,数据访问服务器获取所述待访问数据的标识具体包括:数据访问服务器利用指定数目的线程监听所述网络应用系统发送的数据访问请求消息,其中,所述指定数目小于所述数据访问服务器与所有网络应用系统之间的连接总数目;

以及

从监听到的数据访问请求消息中解析得到所述待访问数据的标识。

8.一种数据访问装置,其特征在于,包括:

标识获取单元,用于获取由至少一个网络应用系统发送的待访问数据的标识;

第一确定单元,用于从预先设置在所述装置中的数据的标识与访问策略、存储介质的类型信息的对应关系中,确定与标识获取单元获取到的待访问数据的标识对应的访问策略、存储介质的类型信息;

存储地址确定单元,用于通过执行第一确定单元确定的访问策略,确定所述待访问数据的存储地址;

访问接口确定单元,用于根据第一确定单元确定的存储介质的类型信息,从预先设置在所述装置中的存储介质类型信息与针对不同类型的存储介质的访问接口的对应关系中,确定相应的访问接口;

访问单元,用于通过访问接口确定单元确定的访问接口,访问存储在存储地址确定单元确定的存储地址中的所述待访问数据。

9.如权利要求8所述的装置,其特征在于,还包括:

信息接收单元,用于接收所述网络应用系统发送的用于指示对所述待访问数据进行操作的操作类型信息,所述操作类型信息是所述网络应用系统从预先设置的若干操作类型信息中选取的;

操作单元,用于对访问单元访问到的数据执行信息接收单元接收的操作类型信息所指示的操作。

10.如权利要求8或9所述的装置,其特征在于,标识获取单元具体用于获取由负载均衡服务器转发来的所述网络应用系统发送的待访问数据的标识;

其中,负载均衡服务器在判断出数据访问服务器的负载信息符合预定条件时,将所述待访问数据的标识转发给数据访问服务器。

11.如权利要求8或9所述的装置,其特征在于,所述装置包含分别支持不同协议的多个接口;以及所述标识获取单元具体包括:消息接收模块,用于通过所述多个接口中的第一接口接收所述网络应用系统发送的封装有待访问数据的标识的协议消息,其中,所述第一接口支持用于封装所述待访问数据的标识的协议;

协议转化模块,用于根据消息接收模块接收的该协议消息的协议类型,选取相应的序列化处理方式对所述协议消息进行序列化处理,得到所述待访问数据的标识。

12.如权利要求8或9所述的装置,其特征在于,还包括:

数据获取单元,用于获取访问单元访问到的数据;

发送单元,用于对数据获取单元获取到的数据进行压缩,并将压缩后的数据进行加密后发送给所述网络应用系统。

13.如权利要求8或9所述的装置,其特征在于,还包括:

第二确定单元,用于确定标识获取单元获取所述待访问数据的标识的时间信息以及所述网络应用系统的标识;

选取单元,用于根据第二确定单元确定的时间信息和网络应用系统的标识,从预先设置的网络应用系统的标识、时间信息与数据访问带宽的对应关系中,选取相应的数据访问带宽;以及所述访问单元具体用于根据第一确定单元确定出的访问策略以及访问数据所需的参数信息,利用选取单元选取的访问带宽,访问存储在确定的存储介质的类型信息所指示的存储介质中的所述待访问数据。

14.如权利要求8或9所述的装置,其特征在于,所述标识获取单元具体包括:监听模块,用于利用指定数目的线程监听所述网络应用系统发送的数据访问请求消息,其中,所述指定数目小于所述数据访问装置与所有网络应用系统之间的连接总数目;

解析模块,用于从监听模块监听到的数据访问请求消息中解析得到所述待访问数据的标识。

说明书 :

数据访问方法及装置

技术领域

[0001] 本发明涉及网络计算领域,尤其涉及一种数据访问方法及装置。

背景技术

[0002] 网络应用系统离不开数据的获取和存储。随着互联网应用的不断演化,网络应用系统的数量越来越大,网络应用系统对数据的存储和访问越来越频繁、访问的数据量也越来越大,访问的数据种类也越来越多。
[0003] 首先,针对单一数据库难以支持网络应用系统频繁访问数据库的问题,在实际应用中,考虑到网络应用系统对数据所执行的读操作的频率远大于写操作的频率,可以通过实施“读写分离”的措施来解决该问题。即针对网络应用系统对数据所执行的不同操作类型,分别对应访问不同的数据库,这样可以有效减轻主数据库的压力。
[0004] 其次,针对单一主机或单一的数据库无法完整保存网络应用系统所需的所有数据的问题,在实际应用中,其解决方案是将海量的数据平行分布到多台主机和多个数据库上进行保存,并且采取分片策略对数据进行分片处理,比如,可以根据整数id值范围对用户表进行分片,可以根据交易时间对交易表进行分片,或者还可以根据多个字段值的hash对某些种类的数据表进行分片等等。对应于不同的分片方式,网络应用系统需要采用不同的访问策略对其进行访问。
[0005] 此外,由于数据存储类型也越来越多,同一网络应用系统所访问的不同类型的数据往往存储在不同的存储介质中,比如,存储介质可能是关系数据库,也可能是文档数据库、内存数据库、Key-Value缓存介质、存储文件格式数据的存储介质、数据服务存储介质等等。当需要对存储在不同存储介质中的数据进行访问时,需要使用不同的应用编程接口(API,Application Programming Interface)和不同的类库。
[0006] 基于上述的数据存储方式,当网络应用系统需要对数据进行访问时,其访问示意图如图1所示,其中,RDB1、2为关系数据库,Cache为用于存储数据的一种存储介质,称为高速缓冲存储器、而File为则为另一种存储介质。而DAO为数据访问对象,其需要包含的信息至少包括网络应用系统对数据执行的操作类型、访问策略、API信息以及待访问数据信息。根据DAO中包含的操作类型、访问策略以及API信息,网络应用系统得以实现通过某API,以某种访问策略和操作类型来实现对按照某种分片方式存储在某存储介质中的、待访问数据信息所指示的数据进行访问。
[0007] 现有技术中提供的上述访问方式存在的缺陷在于:各个网络应用系统需要分别设置其采用的DAO,由于网络应用系统的数量非常大,而相应的网络应用系统的数量也是非常的大,因此,采用各个网络应用系统分别设置DAO的方式来实现对数据的访问需要耗费网络应用系统较多的处理资源。

发明内容

[0008] 本发明实施例提供一种数据访问方法及装置,用以解决现有技术提供的数据访问方案需要各个网络应用系统分别设置DAO而导致耗费网络应用系统较多处理资源的问题。
[0009] 本发明实施例采用以下技术方案:
[0010] 一种数据访问方法,包括:
[0011] 数据访问服务器获取至少一个网络应用系统发送的待访问数据的标识;从预先设置在所述服务器中的数据信息与访问策略、存储介质的类型信息的对应关系中,确定与待访问数据的标识对应的访问策略、存储介质的类型信息;以及通过执行确定的访问策略,确定所述待访问数据的存储地址,并根据确定的存储介质的类型信息,从预先设置在所述服务器中的存储介质类型信息与针对不同类型的存储介质的访问接口的对应关系中,确定相应的访问接口;通过确定的访问接口,访问存储在确定的存储地址中的所述待访问数据。
[0012] 较佳地,所述方法还包括:
[0013] 数据访问服务器接收所述网络应用系统发送的用于指示对所述待访问数据进行操作的操作类型信息,所述操作类型信息是所述网络应用系统从预先设置的若干操作类型信息中选取的;以及对访问到的数据执行接收的所述操作类型信息所指示的操作。
[0014] 较佳地,数据访问服务器获取由负载均衡服务器转发来的所述网络应用系统发送的待访问数据的标识;其中,负载均衡服务器在判断出数据访问服务器的负载信息符合预定条件时,将所述待访问数据的标识转发给数据访问服务器。
[0015] 较佳地,数据访问服务器设置有分别支持不同协议的多个接口;以及数据访问服务器获取所述待访问数据的标识具体包括:数据访问服务器通过所述多个接口中的第一接口接收所述网络应用系统发送的封装有待访问数据的标识的协议消息,其中,所述第一接口支持用于封装所述待访问数据的标识的协议;并根据该协议消息的协议类型,选取相应的序列化处理方式对所述协议消息进行序列化处理,得到所述待访问数据的标识。
[0016] 较佳地,所述方法还包括:数据访问服务器获取访问到的数据,对获取到的数据进行压缩,并将压缩后的数据进行加密后发送给所述网络应用系统。
[0017] 较佳地,所述方法还包括:
[0018] 所述数据访问服务器确定接收所述待访问数据的标识的时间信息以及所述网络应用系统的标识;并根据所述时间信息和所述网络应用系统的标识,从预先设置的网络应用系统的标识、时间信息与数据访问带宽的对应关系中,选取相应的数据访问带宽;以及根据确定出的访问策略以及访问数据所需的参数信息,利用选取的访问带宽,访问存储在确定的存储介质的类型信息所指示的存储介质中的所述待访问数据。
[0019] 较佳地,数据访问服务器获取所述待访问数据的标识具体包括:数据访问服务器利用指定数目的线程监听所述网络应用系统发送的数据访问请求消息,其中,所述指定数目小于所述数据访问服务器与所有网络应用系统之间的连接总数目;以及从监听到的数据访问请求消息中解析得到所述待访问数据的标识。
[0020] 一种数据访问装置,包括:标识获取单元,用于获取至少一个网络应用系统发送的待访问数据的标识;第一确定单元,用于从预先设置在所述装置中的数据的标识与访问策略、存储介质的类型信息的对应关系中,确定与标识获取单元获取到的待访问数据的标识对应的访问策略、存储介质的类型信息;存储地址确定单元,用于通过执行第一确定单元确定的访问策略,确定所述待访问数据的存储地址;访问接口确定单元,用于根据第一确定单元确定的存储介质的类型信息,从预先设置在所述装置中的存储介质类型信息与针对不同类型的存储介质的访问接口的对应关系中,确定相应的访问接口;访问单元,用于通过访问接口确定单元确定的访问接口,访问存储在存储地址确定单元确定的存储地址中的所述待访问数据。
[0021] 本发明实施例的有益效果如下:
[0022] 本发明实施例提供的上述方案中,通过数据访问服务器对访问策略、存储介质的类型信息的管理,网络应用系统只需向数据访问服务器发送待访问数据的标识,由数据访问服务器从预先设置在数据访问服务器中的数据的标识与访问策略、存储介质的类型信息的对应关系中,确定与待访问数据的标识对应的访问策略、存储介质的类型信息,从而实现对待访问数据的访问。由于采用本发明实施例提供的方案,数据访问服务器可以对数据的标识与访问策略、存储介质的类型信息的对应关系进行统一管理,网络应用系统无需再分别配置DAO,而只需要提供待访问数据的标识即可,因此,大大节省了网络应用系统的处理资源。并且,当分片策略发生变化导致访问策略发生变化,或者存储介质发生变化(包括存储介质类型的变化以及某存储介质数量的增减等)而导致API变化时,采用本发明实施例提供的该方案,只需要针对数据访问服务器这一个处理对象来修改上述对应关系,无需多个网络应用系统分别对其采用的DAO进行修改,从而在该情况下,也可以实现对处理资源的节约。

附图说明

[0023] 图1为现有技术中网络应用系统对数据进行访问的示意图;
[0024] 图2为本发明实施例提供的一种数据访问方法的具体流程示意图;
[0025] 图3为本发明实施例提供的数据访问方法在实际中的实施示意图;
[0026] 图4为设置有负载均衡服务器的数据访问系统的具体示意图;
[0027] 图5为本发明实施例提供的数据访问方法在实际中的应用环境示意图;
[0028] 图6为本发明实施例提供的一种数据访问装置的具体结构示意图。

具体实施方式

[0029] 为了解决现有技术提供的数据访问方案需要各个网络应用系统分别设置DAO而导致耗费网络应用系统较多处理资源的问题,发明人基于降低网络应用系统功能的复杂性、以及访问策略等发生变化时对网络应用系统的影响应该最小,以便实现网络应用系统较高可用性的原则,定义了一种灵活而一致的访问方式,无需耗费网络应用系统较多的处理资源,就能够完成对海量数据的访问。
[0030] 具体地,本发明实施例提供了一种数据访问方案,通过在网络应用系统与待访问数据之间新增数据访问服务器来对数据与访问策略、存储介质的类型信息的对应关系进行管理,从而实现对网络应用系统功能的简化,实现节约网络应用系统处理资源的目的。具体地,本发明实施例首先提供一种数据访问方法,该方法的具体实现流程示意图如图2所示,包括以下步骤:
[0031] 步骤21,数据访问服务器获取至少一个网络应用系统发送的待访问数据的标识,在本发明实施例中,可以将包含多个网络应用系统和数据访问服务器的系统称为“数据访问系统”,在该数据访问系统中,多个网络应用系统可以与一个数据访问服务器相连,视实际需求不同,在一个数据访问系统可以设置一个或多个数据访问服务器,当多个网络应用系统均有数据访问需求时,就可以向该数据访问服务器发送待访问数据的标识,不同网络应用系统欲访问的数据可以相同,也可以不同,待访问数据的标识可以但不限于是待访问数据的类型标识,也可以是待访问数据的名称标识等等,较佳地,本发明实施例中,网络应用系统可以通过发送通用资源标识符(URI,Uniform Resource Identifier)的方式,来将待访问数据的标识承载在URI中发送给数据访问服务器;
[0032] 步骤22,从预先设置在数据访问服务器中的数据信息与访问策略、存储介质的类型信息的对应关系中,确定与待访问数据的标识对应的访问策略、存储介质的类型信息,在本发明实施例中,可以根据待访问数据的标识,利用API来调用与该信息对应的访问策略、存储介质的类型信息,还可以将对应于一个待访问数据的标识的访问策略、存储介质的类型信息、在不同类型的存储介质中访问数据分别所需的参数信息包装成一个“Dalet资源”并将其存储在数据访问服务器中,比如,可以存储在数据访问服务器所包含的Dalet处理模块中;
[0033] 步骤23,通过执行确定的访问策略,确定待访问数据的存储地址,并根据确定的存储介质的类型信息,从预先设置在数据访问服务器中的存储介质类型信息与针对不同类型的存储介质的访问接口的对应关系中,确定相应的访问接口,在本步骤23中,访问策略可以是基于哈希算法等的访问策略,通过执行与待访问数据对应的该访问策略,能够确定待访问数据的存储地址,而由于不同存储介质类型信息会对应不同的访问接口,因此,还需要确定需要通过什么样的访问接口来访问该待访问数据;
[0034] 步骤24,通过确定的访问接口,访问存储在确定的存储地址中的待访问数据。
[0035] 本发明实施例提供的上述方法的核心在于新增了一个数据访问服务器,并在该服务器中设置了一套通用的数据信息与Dalet资源的对应关系,从而当网络应用系统需要访问不同的数据时,只需网络应用系统对其需访问的数据的标识进行修改,而无需网络应用系统执行对DAO中的访问策略、存储介质的类型信息等进行配置,从而大大节约了网络应用系统的处理资源。特别地,当访问策略和API发生变化时,只需要对数据访问服务器中的对应关系执行修改即可,由于多个网络应用系统可能会使用同一对应关系,并且一个数据访问服务器可以为多个网络应用系统提供服务,在数据访问系统中,数据访问服务器的数量是远远小于网络应用系统的数量的,因此,对数据访问服务器中的对应关系执行修改所花费的资源相对于对网络应用系统的修改所花费的资源是非常小的。
[0036] 在本发明实施例中,当网络应用系统还需要对访问到的数据进行操作时,网络应用系统可以从预先设置的若干操作类型信息中选取待进行的操作类型信息发送给数据访问服务器,从而数据访问服务器接收到网络应用系统发送的用于指示对待访问数据进行操作的操作类型信息后,后续在访问到数据后,就可以对访问到的数据执行接收的操作类型信息所指示的操作,从而实现对数据的操作。需要说明的是,当需要将访问到的数据发送给网络应用系统时,为了增强数据传送过程的安全性以及为了节约传输资源,数据访问服务器可以对获取到的数据进行压缩,然后再将压缩后的数据进行加密后发送给网络应用系统。
[0037] 本发明实施例提供的上述方法在实际中的实施示意图如图3所示,与图1相比,在图3中,网络应用系统与数据之间新增了数据访问服务器,该数据访问服务器中设置有数据的标识与Dalet的对应关系,其中,Dalet的数量一般较多,比如针对不同类型的数据、具有不同名称的数据等等,都有相应的Dalet与之对应,如图3中的Dalet1、Dalet2......。
[0038] 本发明实施例提供的上述方法还可以进一步进行以下改造,以获得更好的技术效果:
[0039] 前文已经提到,在一个数据访问系统中可以有多个数据访问服务器,在本发明实施中,为了达到不同数据访问服务器之间的负载均衡,网络应用系统连接到哪个数据访问服务器是可以调整的。具体地,可以在数据访问服务器与网络应用系统之间设置多个负载均衡服务器,设置有负载均衡服务器的数据访问系统的具体示意图如图4所示。负载均衡服务器的作用在于接收网络应用系统发送的待访问数据的标识,并通过收集到的数据访问服务器的负载信息,判断数据访问系统中的数据访问服务器的负载信息是否符合预定条件,以及将网络应用系统发送的待访问数据的标识转发给数据访问服务器,从而数据访问服务器就能够获取到由负载均衡服务器转发来的待访问数据的标识。其中,上述“预定条件”可以为数据访问服务器的负载小于规定的负载阈值,或者为数据访问系统中当前负载最小的数据访问服务器等等。通过设置负载均衡服务器对网络应用系统发送的待访问数据的标识的接收对象进行调整,可以实现数据访问服务器的负载均衡,增强数据访问系统的稳定性。
[0040] 在本发明实施例中,针对不同网络应用系统发送封装有待访问数据的标识的协议消息的情况,为了兼容不同协议消息,数据访问服务器还可以被设计成可支持包括HTTP在内的多种网络协议,从而实现数据服务器可以同时监听多个端口(PORT)。
[0041] 从具体实现上来讲,可以在数据访问服务器中设置分别支持不同协议的多个接口,以实现能够分别处理网络应用系统发送的封装有待访问数据的标识的协议消息。在本发明实施例中,通过在数据访问器中设置多个接口,当接收消息时,数据访问服务器可以通过设置的多个接口中的第一接口接收该协议消息,其中,该第一接口需满足支持用于封装待访问数据的标识的协议,数据访问服务器在接收到该协议消息后,为了从中获取待访问数据的标识,可以根据该协议消息的协议类型,选取相应的序列化处理方式对该协议消息进行序列化处理,得到待访问数据的标识。需要说明的是,当网络应用系统通过发送URI的方式来向数据访问服务器提供待访问数据的标识时,该URI可以隐含表明协议类型,如http://host:port1/sqlid/rdb1/query.xml表明发送的URI使用HTTP协议,而返回的数据应符合xml格式,又如cm20://host:port2/sqlid/rdb2/query.json,其表明发送的URI使用CM20协议,而返回的数据应符合json格式。
[0042] 此外,在本发明实施例中,数据访问服务器可以分别为各个网络应用系统分配一个线程用以监听包含有待访问数据的标识,但这样的方式在网络应用系统的数量较多时,需要花费较多的线程资源,因此,本发明实施例中还可以基于NIO技术,利用指定数目的线程监听大量网络应用系统发送的数据访问请求消息,并从监听到的数据访问请求消息中解析得到所述待访问数据的标识,由于上文的指定数目小于数据访问服务器与所有网络应用系统之间的连接总数目,从而可以节约线程资源。
[0043] 进一步地,针对不同网络应用系统可能会在不同的时间对数据访问有不同的需求的情况,本发明实施例提供的数据访问的方法可以进一步进行改进,以针对不同的网络应用系统的网络应用系统在不同时间段对数据的不同访问需求,为不同访问需求分配对应的访问资源。具体地,在改进后的方法中,可以采用下述步骤实现上述目的:首先,数据访问服务器可以确定接收待访问数据的标识的时间信息以及发送该待访问数据的标识的网络应用系统的标识;然后,根据确定的时间信息和网络应用系统的标识,数据访问服务器从预先设置的网络应用系统的标识、时间信息与数据访问带宽的对应关系中,选取相应的数据访问带宽;最后,根据确定出的访问策略和待访问数据的标识,数据访问服务器就可以利用选取的该访问带宽,访问存储在确定的存储介质中的待访问数据。
[0044] 以下以本发明实施例提供的数据访问方法在实际中的应用为例,详细介绍该方法在实际中的应用流程。该应用流程的应用环境示意图如图5所示,该应用环境可以看做是前文所说的数据访问系统,在该系统中,网络应用系统处于“应用逻辑层”,数据访问服务器处于“数据访问层”,而数据则处于“数据资源层”。基于该应用环境,本发明实施例提供的方案的核心思想在于在应用逻辑层和数据资源层之间插入一个独立的分布式数据访问层,将位于应用逻辑层的网络应用系统在现有技术中使用的DAO演化位于数据访问层中的数据访问服务器中使用的Dalet。
[0045] 以下按照“应用逻辑层”-“数据访问层”-“数据资源层”的顺序,依次对各个层进行介绍:
[0046] 首先,针对应用逻辑层,该层的数据访问接口可以采用HTFP或类HTTP标准协议,从而该接口是一个相比传统DAO简单很多的实现方式,待访问数据的标识用URI进行指示,该URI的格式可以为“scheme://host:port/resouce_path/resouce_id.fmt”其中,该格式包含的各项的含义如下:
[0047] 使用scheme标识不同的网络通信协议,在服务端可支持多种协议;
[0048] 使用host标识不同主机,可方便实现分布式部署;
[0049] 使用port标识不同端口,每个scheme缺省占用不同端口;
[0050] 使用resouce_path标识不同类型的数据,在服务端可对其实现负载均衡;
[0051] 使用resouce_id标示特定的数据,即用以指示待访问数据的标识;
[0052] 使用fmt来识别数据的格式,在服务端可支持多种序列化格式。
[0053] 而Method则用以指示对待访问数据进行操作的操作类型信息,这里的操作类型可以如下表1所示:
[0054] 表1:
[0055]Method所指示的操作类型信息 操作类型信息所指示的操作
GET /resource_path 获取资源列表
POST /resource_path 创建资源
GET /resource_path/id.fmt 获取资源
PUT /resource_path/id.fmt 修改资源状态
DELETE/resource_path/id.fmt 删除资源
[0056] 在应用逻辑层中,网络应用系统对于与待访问数据相关的存储介质和分片策略都可以是无知的,其只需要提供待访问数据的标识,并从预先设置的Method中选取一种或多种操作类型信息即可。其中,待访问数据的标识与选取的操作类型信息都可以承载在URI中,并使用对应的协议,如HTTP协议或CM20协议,按要求构造请求消息,发给数据访问服务器,而数据访问服务器通过一系列解析过程(包括解析消息头,解密,解压缩,反序列化消息体等),最终从该请求消息中获取到待访问数据的标识与选取的操作类型信息等。
[0057] 针对数据访问层,处于该层的数据访问服务器可以包括NIO网络协议适配器(包括消息头解析器和消息体解析器)、Dalet引擎(包括资源分发器和操作映射器)、Dalet容器(包括多个Dalet,比如Dalet1、Dalet2等)。其中,消息头解析器用以对消息头进行解析,而消息体解析器则用以对消息体进行解析,得到待访问数据的标识以及网络应用系统选取的Method。Dalet引擎中的操作映射器用以存储数据的标识与Dalet的标识的对应关系,资源分发器用以根据NIO网络协议适配器解析出的待访问数据的标识,从操作映射器存储的对应关系中,确定对应于该信息的Dalet的标识,并从Dalet容器存储的Dalet中,选取确定的该Dalet的标识所指示的Dalet。在本发明实施例中,某个Dalet(比如为Dalet4Sqlid)的配置代码可以如下所示:
[0058] GET.sql_select=SELECT{fields}FROM{tables}WHERE{wheres}{others}[0059] PUT.sql_insert =INSERT INTO{tables}({fields})VALUES({values})[0060] PUT.sql_update=UPDATE{tables}SET{fieled_values}WHERE{wheres}[0061] 在数据访问层中,针对Dalet引擎选取的不同Dalet,可以使用不同的接口来访问相应的数据,比如,可以通过jdbc接口访问RDB中存储的数据,可以通过Cache相关API接口访问Cache中存储的数据,而通过与操作系统相关的接口访问File中存储的数据等。
[0062] 考虑到HTTP协议的解析效率比较差,并且对长连接和中文字符的支持比较繁琐,故可以在本发明实施例中定义一种类HTTP的CM20网络通信协议,根据该协议,可以采用固定消息头长度以加快解码速度。该协议支持多种加密方式、多种压缩格式、多种序列化格式,多种字符集。
[0063] 针对数据资源层,其所使用的接口是数据访问服务的内部接口,该接口又称内部Dalet接口。数据访问引擎可以通过内部Dalet接口,来调用具体的Dalet处理模块,而Dalet处理模块可以很方便地进行修改和扩展。
[0064] 在需要频繁访问各种不同类型的海量数据时,采用现有技术提供的方案,需要通过提供多种DAO来对数据进行访问,该方式存在的缺陷主要为:将API接口和数据访问策略等设置并固化在每个网络应用系统中,从而导致网络应用系统过于复杂,缺乏灵活性。尤其在多个网络应用系统访问同一套数据时,现有技术中提供过的数据访问方式将严重阻碍对数据存储方式(包括对存储介质、读写分离方式、数据分片方式等)进行任何改变和优化,即时是可以对网络应用系统进行改变的,但同时改变多个网络应用系统也是非常困难的。
[0065] 而采用本发明实施例提供的方案后,由于数据访问服务器可以对数据的标识与访问策略、存储介质的类型信息、在不同类型的存储介质中访问数据分别所需的参数信息的对应关系进行统一管理,网络应用系统无需再分别配置DAO,而只需要提供待访问数据的标识即可,因此,大大节省了网络应用系统的处理资源。并且,当分片策略发生变化导致访问策略发生变化,或者存储介质发生变化(包括存储介质类型的变化以及某存储介质数量的增减等)而导致API变化时,采用本发明实施例提供的该方案,只需要针对数据访问服务器这一个处理对象来修改上述对应关系,无需多个网络应用系统分别对其采用的DAO进行修改,从而在该情况下,也可以实现对处理资源的节约。
[0066] 对应于本发明实施例提供的数据访问方法,本发明实施例还提供一种数据访问装置,用以解决现有技术提供的数据访问方案需要各个网络应用系统分别设置DAO而导致耗费网络应用系统较多处理资源的问题。该装置的具体结构示意图如图6所示,包括以下功能单元:
[0067] 标识获取单元61,用于获取至少一个网络应用系统发送的待访问数据的标识;
[0068] 第一确定单元62,用于从预先设置在该数据访问装置中的数据的标识与访问策略、存储介质的类型信息的对应关系中,确定与标识获取单元61获取到的待访问数据的标识对应的访问策略、存储介质的类型信息;
[0069] 存储地址确定单元63,用于通过执行第一确定单元62确定的访问策略,确定待访问数据的存储地址;
[0070] 访问接口确定单元64,用于根据第一确定单元62确定的存储介质的类型信息,从预先设置在该装置中的存储介质类型信息与针对不同类型的存储介质的访问接口的对应关系中,确定相应的访问接口;
[0071] 访问单元65,用于通过访问接口确定单元64确定的访问接口,访问存储在存储地址确定单元63确定的存储地址中的待访问数据。
[0072] 较佳地,本发明实施例提供的上述装置还可以通过进一步包括下述功能单元以实现对访问到的数据进行操作:
[0073] 信息接收单元,用于接收网络应用系统发送的用于指示对待访问数据进行操作的操作类型信息,其中,操作类型信息是网络应用系统从预先设置的若干操作类型信息中选取的;操作单元,用于对访问单元访问到的数据执行信息接收单元接收的操作类型信息所指示的操作。
[0074] 较佳地,本发明实施例中,还可以通过负载均衡服务器来实现对数据访问系统中的负载均衡,当数据访问系统中还设置有负载均衡服务器时,标识获取单元61具体可以用于获取由负载均衡服务器转发来的由网络应用系统发送的待访问数据的标识,其中,负载均衡服务器可以是在判断出数据访问服务器的负载信息符合预定条件时,将待访问数据的标识转发给数据访问服务器的。
[0075] 较佳地,本发明实施例提供的上述装置可以包含分别支持不同协议的多个接口,当该装置包含多个接口时,标识获取单元61还可以进一步划分为以下功能模块:
[0076] 消息接收模块,用于通过多个接口中的第一接口接收网络应用系统发送的封装有待访问数据的标识的协议消息,其中,第一接口支持用于封装所述待访问数据的标识的协议;协议转化模块,用于根据消息接收模块接收的该协议消息的协议类型,选取相应的序列化处理方式对协议消息进行序列化处理,得到待访问数据的标识。
[0077] 较佳地,本发明实施例提供的上述装置还可以进一步包括:数据获取单元,用于获取访问单元访问到的数据;发送单元,用于对数据获取单元获取到的数据进行压缩,并将压缩后的数据进行加密后发送给网络应用系统。
[0078] 较佳地,本发明实施例提供的上述装置还可以进一步包括:第二确定单元,用于确定标识获取单元61获取待访问数据的标识的时间信息以及发送该待访问数据的标识的网络应用系统的标识;选取单元,用于根据第二确定单元确定的时间信息和网络应用系统的标识,从预先设置的网络应用系统的标识、时间信息与数据访问带宽的对应关系中,选取相应的数据访问带宽。
[0079] 基于包括第二确定单元和选取单元的上述装置,上述访问单元65还可以具体用于根据第一确定单元62确定出的访问策略以及访问数据所需的参数信息,利用选取单元选取的访问带宽,访问存储在确定的存储介质的类型信息所指示的存储介质中的待访问数据。
[0080] 较佳地,对应于标识获取单元61功能的一种实现方式,本发明实施例通的上述标识获取单元61还可以具体划分为以下功能模块:
[0081] 监听模块,用于利用指定数目的线程监听网络应用系统发送的数据访问请求消息,其中,该指定数目小于数据访问服务器与所有网络应用系统之间的连接总数目;解析模块,用于从监听模块监听到的数据访问请求消息中解析得到待访问数据的标识。
[0082] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。