首页> 中国专利> 一种统一数据服务平台及其实现方法

一种统一数据服务平台及其实现方法

摘要

本发明提出了一种统一数据服务平台及其实现方法,包括:采用RESTful接口接收来自应用服务器的操作请求,操作请求中包括数据对象和操作方法;根据所述操作请求中的数据对象和操作方法在内存中查找对应的可执行的操作过程,根据预先设置的数据对象和数据库服务器之间的映射关系查找操作请求中的数据对象所在的数据库服务器;将查找到的可执行的操作过程发送给数据库服务器执行。本发明能够实现数据服务与具体程序设计语言无关,从而具有较高的可扩展性,提高了数据服务的有效性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-31

    授权

    授权

  • 2014-06-04

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140126

    实质审查的生效

  • 2014-04-30

    公开

    公开

说明书

技术领域

本发明涉及云平台领域,尤其涉及一种统一数据服务平台及其实现方法。

背景技术

随着web2.0技术的到来,数据的多样化日益加剧,不同的数据需求产生 了不同的数据库解决方案,如mysql、oracle、cache db、document db、mongo  db等。面对庞大的用户,使用多种数据解决方案的单一网站也越来越多。如 果web应用直接接触多种数据源,则需要web开发人员熟悉多种数据源及其 访问方式,开发难度较大,并且必须重新构建网站使用的数据模型。

目前,各个应用网站的应用服务器开始使用一种统一的数据服务架构进 行数据存取,即应用服务器中包括统一的数据服务模块,该统一的数据服务 模块包括对象/关系映射模块和数据访问控制/调度模块。对象/关系映射模块 预先设置了采用某种特定语言描述的数据访问方法和数据的实际访问方法之 间的对应关系,数据访问控制/调度模块用于实现实际的数据访问过程。开发 人员只需了解特定语言对数据访问方法的描述,而无需了解数据的实际访问 过程。

上述对象/映射模块与某种特定的程序设计语言有较强的耦合性,不适合 复杂性更强的云平台环境,并且目前各种应用服务器的数据均是结构性比较 强的数据库关系或者非关系数据,故对象/映射模块的输出格式一般为特定的 数据库中的数据展示形式。而云平台中的数据大部分是数据量庞大、没有任 何结构性的数据。另外,云平台需要数据存储后台具有较高的可扩展性,并 在增加或减少存储媒介时,能够对旧数据的位置进行有效更新和备份。而目 前各类应用服务器中的数据访问控制模块均不满足此要求。

发明内容

为了解决上述技术问题,本发明提出了一种统一数据服务平台及其实现 方法,能够实现数据服务与具体程序设计语言无关,从而具有较高的可扩展 性,提高了数据服务的有效性。

为了达到上述目的,本发明提出了一种统一数据服务平台的实现方法, 包括:

采用RESTful接口接收来自应用服务器的操作请求,操作请求中包括数 据对象和操作方法;

根据所述操作请求中的数据对象和操作方法在内存中查找对应的可执行 的操作过程,根据预先设置的数据对象和数据库服务器之间的映射关系查找 操作请求中的数据对象所在的数据库服务器;

将查找到的可执行的操作过程发送给数据库服务器执行。

优选地,当在内存中查找不到对应的可执行的操作过程时,该方法还包 括:

将所述操作请求中的操作方法转换成所述查找到的数据库服务器可执行 的操作过程;将所述数据对象、所述操作方法和获得的可执行的操作过程保 存到所述内存中。

优选地,当在预先设置的数据对象和数据库服务器之间的映射关系中查 找不到数据对象所在的数据库服务器时,该方法还包括:

在预先定义的数据对象中查找所述操作请求中的数据对象;

当查找不到所述操作请求中的数据对象时,向所述应用服务器返回没有 定义数据对象的错误信息;否则在预先定义的操作方法中查找所述操作请求 中的操作方法,当查找不到所述操作请求中的操作方法时,向所述应用服务 器返回没有定义操作方法的错误信息;否则向所述应用服务器返回没有设置 数据对象和数据库服务器之间的映射关系的错误信息。

优选地,预先定义数据对象包括:

采用所述RESTful接口接收来自应用服务器的数据对象定义请求;

保存所述数据对象定义请求中的数据对象名称、各属性名称和对应的各 属性类型;预先定义操作方法包括:

采用所述RESTful接口接收来自应用服务器的操作方法定义请求;

保存所述操作方法定义请求中的数据对象名称、操作方法名称、查询的 各属性名称、作为限定条件的各属性名称、各限定条件的操作符号、相邻两 个限定条件之间的关系。

优选地,所述预先设置数据对象和数据库服务器之间的映射关系包括:

采用所述RESTful接口接收来自应用服务器的映射关系设置请求;

保存所述映射关系设置请求中的数据对象名称、各属性名称、各属性名 称映射到的关系型数据库名称、各名称和各属性名称映射到的数据库列名称;

在属性名称映射到的关系型数据库中创建属性名称映射到的数据库表和 属性名称映射到的数据库列名称;

或者,所述预先设置数据对象和数据库服务器之间的映射关系包括:

采用所述RESTful接口接收来自应用服务器的映射关系设置请求;

保存所述映射关系设置请求中的数据对象名称、各属性名称、各属性名 称映射到的非关系型数据库、各属性名称映射到的数据对象名称、各属性名 称映射到的数据对象的属性名称;

在属性名称映射到的非关系型数据库中创建属性名称映射到的数据对象 和属性名称映射到的数据对象的属性。

优选地,所述应用服务器采用超文本转移HTTP协议或安全超文本转移 HTTPS协议发送所述操作请求。

优选地,所述操作请求的数据格式为json数据格式或xml数据格式。

本发明还提出了一种统一数据服务平台,至少包括:

元数据管理器模块,用于保存预先设置的数据对象和数据库服务器的映 射关系;

应用程序接口API引擎模块,用于采用RESTful接口接收来自应用服务 器的操作请求,操作请求中包括数据对象和操作方法;

存取引擎模块,用于根据所述操作请求中的数据对象和操作方法在内存 中查找对应的可执行的操作过程,根据预先设置的数据对象和数据库服务器 之间的映射关系查找操作请求中的数据对象所在的数据库服务器;将查找到 的可执行的操作过程发送给数据库服务器执行。

优选地,所述存取引擎模块,还用于:

在内存中查找不到对应的可执行的操作过程,将所述操作请求中的操作 方法转换成所述查找到的数据库服务器可执行的操作过程;将所述数据对象、 所述操作方法和获得的可执行的操作过程保存到所述内存中。

优选地,所述元数据管理器模块,还用于:

保存预先定义的数据对象和预先定义的操作方法;

所述存取引擎模块,还用于:

在预先设置的数据对象和数据库服务器之间的映射关系中查找不到数据 对象所在的数据库服务器,在所述预先定义的数据对象中查找不到所述操作 请求中的数据对象,向所述应用服务器返回没有定义数据对象的错误信息; 在所述预先定义的操作方法中查找不到所述操作请求中的操作方法,向所述 应用服务器返回没有定义操作方法的错误信息;向所述应用服务器返回没有 设置数据对象和数据库服务器之间的映射关系的错误信息。

优选地,所述API引擎模块,还用于:

采用所述RESTful接口接收来自应用服务器的数据对象定义请求;采用 所述RESTful接口接收来自应用服务器的操作方法定义请求;

所述元数据管理器模块,还用于:

保存所述数据对象定义请求中的数据对象名称、各属性名称和对应的各 属性类型;保存所述操作方法定义请求中的数据对象名称、操作方法名称、 查询的各属性名称、作为限定条件的各属性名称、各限定条件的操作符号、 相邻两个限定条件之间的关系。

优选地,所述API引擎模块,还用于:

采用所述RESTful接口接收来自应用服务器的映射关系设置请求;

所述元数据管理器模块,还用于:

保存所述映射关系设置请求中的数据对象名称、各属性名称、各属性名 称映射到的关系型数据库名称、各名称和各属性名称映射到的数据库列名称; 或者,保存所述映射关系设置请求中的数据对象名称、各属性名称、各属性 名称映射到的非关系型数据库、各属性名称映射到的数据对象名称、各属性 名称映射到的数据对象的属性名称;

还包括:

映射引擎模块,用于在属性名称映射到的关系型数据库中创建属性名称 映射到的数据库表和属性名称映射到的数据库列名称;或者,在属性名称映 射到的非关系型数据库中创建属性名称映射到的数据对象和属性名称映射到 的数据对象的属性。

与现有技术相比,本发明包括:采用RESTful接口接收来自应用服务器 的操作请求,操作请求中包括数据对象和操作方法;根据所述操作请求中的 数据对象和操作方法在内存中查找对应的可执行的操作过程,根据预先设置 的数据对象和数据库服务器之间的映射关系查找操作请求中的数据对象所在 的数据库服务器;将查找到的可执行的操作过程发送给数据库服务器执行。 通过本发明的技术方案,应用服务器采用RESTful接口发送服务请求,而不 对数据进行实际操作,使得应用服务器对数据的操作与具体程序设计语言无 关,从而具有较高的可扩展性,提高了数据服务的有效性。

附图说明

下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发 明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范 围的限制。

图1为本发明的统一数据服务平台的实现方法的流程图;

图2为本发明的统一数据服务平台的结构组成图。

具体实施方式

为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描 述,并不能用来限制本发明的保护范围。

参见图1,本发明提出了一种统一数据服务平台的实现方法,该方法包 括两个阶段:设计阶段和数据存取阶段。

在设计阶段,应用服务器向统一数据服务平台请求进行数据对象、操作 方法的定义,并进行数据对象和数据库服务器之间的映射关系的设置;统一 数据服务平台保存应用服务器定义的数据对象、操作方法,并保存数据对象 和数据库服务器之间的映射关系。

在数据存取阶段,应用服务器向统一数据服务平台请求进行数据存取; 统一数据服务平台接收到数据存取请求后,根据设计阶段定义的数据对象、 操作方法,设置的数据对象和数据库服务器之间的映射关系进行数据存取, 并将数据存取结果返回给应用服务器。

在设计阶段,应用服务器向统一数据服务平台请求进行数据对象的定义 的方法包括:

采用RESTful(Representational State Transfer)接口接收来自应用服务器 的数据对象定义请求;

保存数据对象定义请求中的数据对象名称、各属性名称和对应的各属性 类型。

应用服务器向统一数据服务平台请求进行操作方法的定义的方法包括:

采用RESTful接口接收来自应用服务器的操作方法定义请求;

保存操作方法定义请求中的数据对象名称、操作方法名称、查询的各属 性名称、作为限定条件的各属性名称、各限定条件的操作符号、相邻两个限 定条件之间的关系(如和关系、或关系)。

应用服务器向统一数据服务平台请求进行数据对象和数据库服务器之间 的映射关系的设置的方法包括:

采用RESTful接口接收来自应用服务器的映射关系设置请求;

保存映射关系设置请求中的数据对象名称、各属性名称、各属性名称映 射到的关系型数据库名称、各名称和各属性名称映射到的数据库列名称;

在属性名称映射到的关系型数据库中创建属性名称映射到的数据库表和 属性名称映射到的数据库列名称。

或者,

保存映射关系设置请求中的数据对象名称、各属性名称、各属性名称映 射到的非关系型数据库、各属性名称映射到的数据对象名称、各属性名称映 射到的数据对象的属性名称;

在属性名称映射到的非关系型数据库中创建属性名称映射到的数据对象 和属性名称映射到的数据对象的属性。

其中,数据库服务器可以是mysql、oracle、cache db、document db或 mongo db等等。可以用数据库服务器的互联网协议地址(IP地址,Internet  Protocol Address)来表示数据库服务器。

其中,在定义数据对象、操作方法,设置数据对象和数据库服务器之间 的映射关系过程中,可以将需要保存的信息保存到Mongodb数据库中, Mongodb数据库是介于关系数据库和非关系数据库之间的产品,是非关系数 据库中功能最丰富,最像关系数据库的非关系数据库。支持松散的数据结构, 类似json格式,可以存储比较复杂的数据类型,支持查询语言,其语法类似 于面向对象的查询语言,还支持对数据建立索引,适合存储对象类型的数据, 能够自动处理碎片,适合云计算层次的扩展性。

其中,应用服务器的请求可以采用超文本转移(HTTP,Hypertext transfer  protocol)协议或安全超文本转移(HTTPS,Hypertext transfer protocol over  Secure Socket Layer)协议发送。

其中,操作请求的数据格式可以是json或xml。其中json数据格式具有 更强的扩展性。

其中,应用服务器只需要了解通信协议中发送请求消息的数据格式,而 不需要知道具体的数据访问方式,从而使得应用服务器的数据操作不依赖于 某种特定的程序设计语言,从而具有较高的可扩展性,提高了数据服务的有 效性。

在数据存取阶段,应用服务器向统一数据服务平台请求进行数据存取的 方法包括:

步骤100、采用RESTful接口接收来自应用服务器的操作请求,操作请 求中包括数据对象和操作方法。

本步骤中,应用服务器的请求可以采用HTTP协议或HTTPS协议发送。

本步骤中,操作请求的数据格式可以是json或xml。其中json数据格式 具有更强的扩展性。

本步骤中,应用服务器只需要了解通信协议中发送请求消息的数据格式, 而不需要知道具体的数据访问方式,从而使得应用服务器的数据操作不依赖 于某种特定的程序设计语言。

本步骤中,操作方法包括:查找Query、插入Insert、修改Modify和删 除Delete。

步骤101、根据所述操作请求中的数据对象和操作方法在内存中查找对 应的可执行的操作过程,根据预先设置的数据对象和数据库服务器之间的映 射关系查找操作请求中的数据对象所在的数据库服务器。

步骤102、将查找到的可执行的操作过程发送给数据库服务器执行。

本步骤中,查找到对应的可执行的操作过程后,以TCP协议的方式将查 找到的可执行的操作过程发送给查找到的数据库服务器,查找到的数据库服 务器调用接收到的可执行的操作过程对操作请求中的数据对象进行数据操 作。

本发明的统一数据服务平台的实现方法中,当在内存中查找不到对应的 可执行的操作过程时,该方法还包括:

将操作请求中的操作方法转换成查找到的数据库服务器可执行的操作过 程;将数据对象、操作方法和获得的可执行的操作过程保存到所述内存中。

本发明的统一数据服务平台的实现方法中,当在预先设置的数据对象和 数据库服务器之间的映射关系中查找不到数据对象所在的数据库服务器时, 该方法还包括:

在预先定义的数据对象中查找操作请求中的数据对象;

当查找不到操作请求中的数据对象时,向应用服务器返回没有定义数据 对象的错误信息;否则在预先定义的操作方法中查找操作请求中的操作方法, 当查找不到操作请求中的操作方法时,向应用服务器返回没有定义操作方法 的错误信息;否则向应用服务器返回没有设置数据对象和数据库服务器之间 的映射关系的错误信息。

参见图2,本发明还提出了一种统一数据服务平台,至少包括:

元数据管理器模块,用于保存预先设置的数据对象和数据库服务器的映 射关系;

应用程序接口API引擎模块,用于采用RESTful接口接收来自应用服务 器的操作请求,操作请求中包括数据对象和操作方法;

存取引擎模块,用于根据所述操作请求中的数据对象和操作方法在内存 中查找对应的可执行的操作过程,根据预先设置的数据对象和数据库服务器 之间的映射关系查找操作请求中的数据对象所在的数据库服务器;将查找到 的可执行的操作过程发送给数据库服务器执行。

本发明的统一数据服务平台中,

存取引擎模块,还用于:

在内存中查找不到对应的可执行的操作过程,将操作请求中的操作方法 转换成查找到的数据库服务器可执行的操作过程;将数据对象、操作方法和 获得的可执行的操作过程保存到内存中。

本发明的统一数据服务平台中,

元数据管理器模块,还用于:

保存预先定义的数据对象和预先定义的操作方法;

存取引擎模块,还用于:

在预先设置的数据对象和数据库服务器之间的映射关系中查找不到数据 对象所在的数据库服务器,在预先定义的数据对象中查找不到所述操作请求 中的数据对象,向应用服务器返回没有定义数据对象的错误信息;在预先定 义的操作方法中查找不到操作请求中的操作方法,向应用服务器返回没有定 义操作方法的错误信息;向应用服务器返回没有设置数据对象和数据库服务 器之间的映射关系的错误信息。

本发明的统一数据服务平台中,

API引擎模块,还用于:

采用RESTful接口接收来自应用服务器的数据对象定义请求;

元数据管理器模块,还用于:

保存数据对象定义请求中的数据对象名称、各属性名称和对应的各属性 类型。

本发明的统一数据服务平台中,API引擎模块,还用于:

采用RESTful接口接收来自应用服务器的操作方法定义请求;

元数据管理器模块,还用于:

保存操作方法定义请求中的数据对象名称、操作方法名称、查询的各属 性名称、作为限定条件的各属性名称、各限定条件的操作符号、相邻两个限 定条件之间的关系。

本发明的统一数据服务平台中,API引擎模块,还用于:

采用RESTful接口接收来自应用服务器的映射关系设置请求;

元数据管理器模块,还用于:

保存映射关系设置请求中的数据对象名称、各属性名称、各属性名称映 射到的关系型数据库名称、各名称和各属性名称映射到的数据库列名称;

还包括:

映射引擎模块,用于在属性名称映射到的关系型数据库中创建属性名称 映射到的数据库表和属性名称映射到的数据库列名称。

本发明的统一数据服务平台中,API引擎模块,还用于:

采用所述RESTful接口接收来自应用服务器的映射关系设置请求;

所述元数据管理器模块,还用于:

保存所述映射关系设置请求中的数据对象名称、各属性名称、各属性名 称映射到的非关系型数据库、各属性名称映射到的数据对象名称、各属性名 称映射到的数据对象的属性名称;

还包括:

映射引擎模块,用于在属性名称映射到的非关系型数据库中创建属性名 称映射到的数据对象和属性名称映射到的数据对象的属性。

需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解 而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提 下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本 发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号