面向多租户的数据管理方法和数据存储系统的制作方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种面向多租户的数据管理方法和数据存储系统。
【背景技术】
[0002]对企业来说,人、物资、能源、资金、信息是5大重要资源。人、物资、能源、资金这些都是可见的有形资源,而信息是一种无形的资源。以前人们比较看重有形的资源,进入信息社会和知识经济时代以后,信息资源就显得日益重要。因为信息资源决定了如何更有效地利用物资资源。信息资源是人类与自然的斗争中得出的知识结晶,掌握了信息资源,就可以更好地利用有形资源,使有形资源发挥更好的效益。
[0003]管理信息系统(Management Informat1n System, MIS)是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新、拓展和维护的系统。细分下来可以认为是由信息的采集、信息的传递、信息的储存、信息的加工、信息的维护和信息的使用六个方面组成。
[0004]随着计算机软硬件技术和网络技术的飞速发展,为了信息的方便使用和信息共享的需要,人们将越来越多的信息存储在网络中存储设备上。信息存储的管理混乱可能会导致企业用户无法正确获取所需信息,而错误信息可能会造成企业决策错误,给企业带来巨大损失。信息存储的不安全性,如信息丢失或被窃取,更是会给企业带来灾难性的打击。因此如何更加有效、安全的进行信息存储,越来越引起人们的关注。
【发明内容】
[0005]本发明实施例提供了一种面向多租户的数据管理方法和数据存储系统,针对不同租户设立物理上相互独立的数据库,通过数据交换引擎识别数据来源,从而确定数据在租户数据库中的存取。由此避免了不同租户之间数据在数据库中混合存储可能造成的数据混乱,也避免了管理信息系统的数据库发生故障时造成所有租户数据同时损失的问题。
[0006]第一方面,本发明实施例提供了一种面向多租户的数据管理方法,所述方法包括:
[0007]第一应用接收第一租户的用户通过所述第一应用提供的用户界面输入的第一数据;所述第一数据的数据属性包括第一租户的信息;
[0008]所述第一应用将所述第一数据发送给数据交换引擎;
[0009]所述数据交换引擎根据所述第一数据识别出所述第一租户的信息;
[0010]所述数据交换引擎根据所述第一租户的信息,识别数据中心包括的多个租户数据库中归属于第一租户的第一数据库,并在所述第一数据库中对所述第一数据进行存储。
[0011 ] 优选的,所述方法还包括:
[0012]第一应用接收第一租户的用户通过所述第一应用提供的用户界面输入的数据调用指令;所述数据调用指令用以请求调用第二数据;
[0013]所述第一应用根据所述数据调用指令产生第二数据调用请求,并发送给所述数据交换引擎;所述第二数据调用请求包括第一租户的信息和所述第二数据的属性信息;
[0014]所述数据交换引擎根据所述第二数据调用请求包括的所述第一租户的信息,识别所述数据中心包括的多个租户数据库中归属于第一租户的第一数据库;
[0015]所述数据交换引擎根据所述第二数据的属性信息确定所述第二数据在所述第一数据库中的存储区域,并根据所述确定的存储区域获取到所述第二数据;
[0016]所述数据交换引擎将所述第二数据发送给所述第一应用,用以所述第一应用对所述第二数据进行处理。
[0017]进一步优选的,所述对所述的第二数据进行处理包括:
[0018]通过所述第一应用提供的用户界面,将第二数据向所述用户进行展示。
[0019]第二方面,本发明实施例提供了一种面向多租户的数据存储系统,所述系统包括:
[0020]多租户共享的应用平台,包括多个应用,用以向不同租户的不同用户提供对管理信息系统进行操作的交互界面;
[0021]数据中心,包括多个租户数据库,每个租户数据库归属于一个租户,用于对不同租户的数据进行隔离存储;
[0022]数据交换引擎,用于所述多个应用与所述多个租户数据库之间的数据交互。
[0023]优选的,当租户的用户通过所述应用向数据中心存储数据时,所述应用具体用于,
[0024]将所述数据发送给所述数据交换引擎。
[0025]优选的,所述数据交换引擎具体用于,
[0026]接收应用发送的所述数据,根据所述数据识别出所述租户的信息,并根据所述租户的信息确定在所述数据中心中对所述数据进行存储的租户数据库。
[0027]优选的,当租户的用户通过所述应用向数据中心请求数据时,所述应用具体用于,
[0028]生成数据调用请求,并发送给数据交换引擎。
[0029]进一步优选的,所述数据交换引擎具体用于,
[0030]接收应用发送的数据调用请求,根据所述数据调用请求识别出所述租户的信息,并根据所述租户的信息确定在所述数据中心中归属于所述租户的租户数据库,再根据所述数据调用请求中包括的被请求的数据的属性信息,在确定的租户数据库中获取所述数据。
[0031]本发明提出的面向多租户的数据管理方法,针对不同租户设立物理上相互独立的租户数据库,通过数据交换引擎识别数据来源,从而确定数据存入数据中心的哪一个租户数据库。由此实现管理信息系统中不同租户之间数据的物理隔离,针对每个租户,能够更加方便的对自己的租户数据进行管理,提供了一种更加有效、安全的信息存储机制。
【附图说明】
[0032]图1为本发明实施例提供的一种面向多租户的数据管理方法流程图;
[0033]图2为本发明实施例提供的另一种面向多租户的数据管理方法流程图;
[0034]图3为本发明实施例提供的面向多租户的数据管理系统的框图。
【具体实施方式】
[0035]为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。
[0036]在管理信息系统中,其运营平台往往是针对多个租户开放的,加载在运营平台上的多个应用能够向租户提供用户界面,从而使每个租户下的各用户能够使用管理信息系统提供的各种服务。
[0037]下面以图1为例详细说明本发明实施例提供的面向多租户的数据管理方法,图1为本发明实施例提供的一种面向多租户的数据管理方法流程图。本发明实施例方法的实施主体为管理信息系统的运营平台。图3显示了本发明实施例提出的面向多租户的数据管理系统的框图。结合图1和图3所示,该方法包括如下步骤:
[0038]步骤110,第一应用接收第一租户的用户通过所述第一应用提供的用户界面输入的第一数据;所述第一数据的数据属性包括第一租户的信息;
[0039]具体的,第一应用是指运营平台上加载的多个应用中的一个。运营平台对多租户同时开放,当某租户下的用户通过第一应用的用户界面进行数据输入时,第一应用能够根据接收到的数据和输入该数据的租户信息对收到的数据进行处理,在数据属性中记录该租户信息。
[0040]步骤120,
所述第一应用将所述第一数据发送给数据交换引擎;
[0041]具体的,应用将处理后的数据发送到数据交换引擎。数据交换引擎是面向所有应用和所有租户的,能够根据应用的数据请求从数据中心调用相应数据,还可以将应用产生的数据发送到数据中心进行存储。也就是说,数据交换引擎是管理信息系统中数据在后台存储和前台应用之间的交换接口。数据交换引擎具有存储地址分配、数据属性识别等功能。
[0042]步骤130,所述数据交换引擎根据所述第一数据识别出所述第一租户的信息;
[0043]具体的,数据交换引擎根据前步中应用发送的数据,通过其数据属性识别出该数据是第一租户的数据。
[0044]步骤140,所述数据交换引擎根据所述第一租户的信息,识别数据中心包括的多个租户数据库中归属于第一租户的第一数据库,并在所述第一数据库中对所述第一数据进行存储。
[0045]具体的,数据中心中包括针对该管理信息系统的每个租户单独架构的租户数据库,从而对不同租户之间的数据存储进行物理分离。数据交换引擎根据数据属性中第一租户的信息,确定归属于第一租户的第一数据库,然后将该数据在第一数据库中进行存储。数据存储的存储区域和地址由数据交换引擎确定。
[0046]进一步的,数据的存储可以采用传统的集中式存储,也可以采用分布式存储。考虑到传统的存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要,因此在本例中,租户数据库中的数据存储优选的采用分布式存储的方案。分布式存储,是将数据分散存储在多台独立的存储设备上。采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用数据交换引擎定位存储信息,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
[0047]数据在租户数据库中的存储可以以元数据形式进行存储,即在数据交换引擎对数据进行存储的时候,采用一些数据处理的方法,将不同应用的数据先进行数据结构转换和数据拆分,将数据拆分为数据字段并转换为符合数据中心下数据字典规定的元数据的数据结构,再进行存储。
[0048]上述过程中以图1为例说明了本发明实施例提供的面向多租户的数据管理中数据存储的方法。下面,以图2并结合图3为例,说明本发明实施例提供的面向多租户的数据管理中数据调用的方法。
[0049]结合图2和图3所示,该数据调用方法包括如下步骤:
[0050]步骤210,第一应用接收第一租户的用户通过所述第一应用提供的用户界面输入的数据调用指令;所述数据调用指令用以请求调用第二数据;
[0051]具体的,当用户需要在管理信息系统的某个应用调用数据时,通过应用提供的用户界面会输入数据调用指令,该指令可能是通过点击应用提供的用户界面上的按钮,如“查询”按钮产生的,也可能是在用户操作启动应用时通过开启应用用户界面的动作产生的,还可能是以其他操作方式产生的。
[0052]步骤220,所述第一应用根据所述数据调用指令产生第二数据调用请求,并发送给所述数据交换引擎;所述第二数据调用请求包括第一租户的信息和所述第二数据的属性信息;
[0053]具体的,应用接收到用户的数据调用指令时,会对指令进行解析得到需要调用的数据的一些属性信息和发出调用指令的用户归属的租户的信息。其中,数据的属性信息可以包括用于描述这个数据的相关项信息,例如用户请求调用的数据时某部门的人员名单,则被请求调用数据的属性信息中就可以包括这个部门的名称,还可以包括描述被请求调用数据的含义信息,如“人名”,等等。
[0054]应用根据数据调用指令生成数据调用请求时会将这些信息都加载到调用请求中,发送给数据交换引擎。
[0055]步骤230,所述数据交换引擎根据所述第二数据调用请求包括的所述第一租户的信息,识别所述数据中心包括的多个租户数据库中归属于第一租户的第一数据库;
[0056]具体的,数据交换引擎收到数据调用请求之后,会解析出其中携带的租户信息。数据交换引擎中包括管理租户和租户数据库对应关系和记录数据存储逻辑(如存储区域)的存储管理模块,通过数据调用请求携带的租户信息,就可以确定出需要调用的数据是存储于哪个租户数据库的。
[0057]步骤240,所述数据交换引擎根据所述第二数据的属性信息确定所述第二数据在所述第一数据库中的存储区域,并根据所述确定的存储区域获取到所述第二数据;
[0058]具体的,数据交换引擎还通过数据调用请求携带的被请求调用数据的数据属性,在存储管理模块中查找到数据的存储区域,随后在确认的第一数据库中,根据该数据存储区域就可以获取到所需调用的数据了。
[0059]步骤250,所述数据交换引擎将所述第二数据发送给所述第一应用,用以所述第一应用对所述第二数据进行处理。
[0060]具体的,数据交换引擎将调用到的数据发送给发出数据调用请求的应用。如果数据在租户数据库中是以元数据形式存储的,那么数据交换引擎会首先通过调用功能模块,将获取的元数据字段进行数据结构转换和数据拼接,将元数据字段转换为应用支持的数据结构并拼接成数据在发送给应用。
[0061]本发明实施例提供的面向多租户的数据管理方法,针对不同租户设立物理上相互独立的租户数据库,通过数据交换引擎识别数据来源,从而确定数据在租户数据库中的存取。由此实现了管理信息系统中不同租户之间数据的物理隔离,针对每个租户,能够更加方便的对自己的租户数据进行管理,也能够支持租户自己架构数据存储的数据库,同时也支持租户在自己本地的数据库之前再构架一层数据网关,使得存储的安全性得到更好的提升。本发明实施例的面向多租户的数据管理方法,提供了一种更加有效、安全的信息存储机制。
[0062]此外,当管理信息系统增加新的租户时,只需要相应的配置增加针对该租户的租户数据库即可。完全不会影响到使用管理信息系统应用平台的其他租户。
[0063]相应的,本发明实施例还提供了一种能够用以实现上述数据管理方法的面向多租户的数据管理系统,在本实施例中,数据管理系统的框图可以如图3所示,主要包括:多租户共享的应用平台1、数据交换引擎2和数据中心3。
[0064]多租户共享的应用平台I包括多个应用,用以向不同租户的不同用户提供对管理信息系统进行操作的交互界面;管理信息系统中,可以支持针对不同租户多种用户权限的设置,提供给不同租户的不同用户的交互界面可以是根据权限而不完全相同的。
[0065]数据交换引擎2,用于多个应用与多个租户数据库之间的数据交互。数据交换引擎2具有管理租户和租户数据库对应关系和记录数据存储逻辑的功能。
[0066]数据中心3,包括多个租户数据库,每个租户数据库归属于一个租户,对不同租户的数据进行隔离存储。
[0067]当租户的用户通过应用向数据中心3存储数据时,所述应用将数据发送给所述数据交换引擎2。数据交换引擎2接收应用发送的数据,根据数据识别出租户的信息,并根据租户的信息确定在数据中心3中对数据进行存储的租户数据库,随后再进行数据存储。该数据的存储逻辑被记录在数据交换引擎2中。
[0068]当租户的
用户通过应用向数据中心3请求数据时,应用生成数据调用请求,并发送给数据交换引擎2。数据交换引擎2接收应用发送的数据调用请求,根据数据调用请求识别出租户的信息,并根据租户的信息确定在数据中心中归属于该租户的租户数据库,再根据数据调用请求中包括的被请求的数据的属性信息,查找该数据的存储逻辑,从而在确定的租户数据库中获取到所述数据。
[0069]此外,为了进一步提高租户数据库的存储安全性,系统还可以在租户数据库之前搭建数据网关,通过数据网关,将租户数据库与数据交换引擎2进行隔离,以使租户能够自己对数据库进行更安全的管理。
[0070]数据网关的作用是对存在不同IP地址上的数据进行存储作业和数据交换作业。
[0071]如图中,数据网关6是架设在租户数据库4和数据交换引擎2之间的,数据网关7是架设在租户数据库5和数据交换引擎2之间的。通过数据网关6和数据网关7来分别记录租户数据库4和租户数据库5中数据存储的地址、数据与其他数据的关系,以及对数据的调度。
[0072]对于数据交换引擎2直接管理的租户数据库,将这种数据库的存储方式称为托管存储。对于数据交换引擎2不直接管理的租户数据库,而是需要通过数据网关对数据库进行管理的存储方式,称为非托管存储。
[0073]上述数据存储系统的具体工作过程在前述方法实施例中已经进行了详述,此处不再赘述。
[0074]本发明实施例提供的面向多租户的数据存储系统,针对不同租户设立物理上相互独立的租户数据库,通过数据交换引擎识别数据来源,从而确定数据在租户数据库中的存取。由此实现了管理信息系统中不同租户之间数据的物理隔离,针对每个租户,能够更加方便的对自己的租户数据进行管理,也能够支持租户自己架构数据存储的数据库,同时也支持租户在自己本地的数据库之前再构架一层数据网关,使得存储的安全性得到更好的提升。本发明实施例的面向多租户的数据存储系统是一种有效、安全的信息存储系统。
[0075]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能宄竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
[0076]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0077]以上所述的【具体实施方式】,对本发明实施例的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明实施例的【具体实施方式】而已,并不用于限定本发明实施例的保护范围,凡在本发明实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
【主权项】
1.一种面向多租户的数据管理方法,其特征在于,所述方法包括: 第一应用接收第一租户的用户通过所述第一应用提供的用户界面输入的第一数据;所述第一数据的数据属性包括第一租户的信息; 所述第一应用将所述第一数据发送给数据交换引擎; 所述数据交换引擎根据所述第一数据识别出所述第一租户的信息; 所述数据交换引擎根据所述第一租户的信息,识别数据中心包括的多个租户数据库中归属于第一租户的第一数据库,并在所述第一数据库中对所述第一数据进行存储。2.根据权利要求1所述的数据管理方法,其特征在于,所述方法还包括: 第一应用接收第一租户的用户通过所述第一应用提供的用户界面输入的数据调用指令;所述数据调用指令用以请求调用第二数据; 所述第一应用根据所述数据调用指令产生第二数据调用请求,并发送给所述数据交换引擎;所述第二数据调用请求包括第一租户的信息和所述第二数据的属性信息; 所述数据交换引擎根据所述第二数据调用请求包括的所述第一租户的信息,识别所述数据中心包括的多个租户数据库中归属于第一租户的第一数据库; 所述数据交换引擎根据所述第二数据的属性信息确定所述第二数据在所述第一数据库中的存储区域,并根据所述确定的存储区域获取到所述第二数据; 所述数据交换引擎将所述第二数据发送给所述第一应用,用以所述第一应用对所述第二数据进行处理。3.根据权利要求2所述的数据管理方法,其特征在于,所述对所述的第二数据进行处理包括: 通过所述第一应用提供的用户界面,将第二数据向所述用户进行展示。4.一种用以实现上述权利要求1-3任一权项所述方法的数据存储系统,其特征在于,所述系统包括: 多租户共享的应用平台,包括多个应用,用以向不同租户的不同用户提供对管理信息系统进行操作的交互界面; 数据中心,包括多个租户数据库,每个租户数据库归属于一个租户,用于对不同租户的数据进行隔离存储; 数据交换引擎,用于所述多个应用与所述多个租户数据库之间的数据交互。5.根据权利要求4所述的数据存储系统,其特征在于,当租户的用户通过所述应用向数据中心存储数据时,所述应用具体用于, 将所述数据发送给所述数据交换引擎。6.根据权利要求5所述的数据存储系统,其特征在于,所述数据交换引擎具体用于, 接收应用发送的所述数据,根据所述数据识别出所述租户的信息,并根据所述租户的信息确定在所述数据中心中对所述数据进行存储的租户数据库。7.根据权利要求4所述的数据存储系统,其特征在于,当租户的用户通过所述应用向数据中心请求数据时,所述应用具体用于, 生成数据调用请求,并发送给数据交换引擎。8.根据权利要求7所述的数据存储系统,其特征在于,所述数据交换引擎具体用于, 接收应用发送的数据调用请求,根据所述数据调用请求识别出所述租户的信息,并根据所述租户的信息确定在所述数据中心中归属于所述租户的租户数据库,再根据所述数据调用请求中包括的被请求的数据的属性信息,在确定的租户数据库中获取所述数据。
【专利摘要】本发明实施例涉及一种面向多租户的数据管理方法和数据存储系统,所述方法包括:第一应用接收第一租户的用户通过所述第一应用提供的用户界面输入的第一数据;所述第一数据的数据属性包括第一租户的信息;所述第一应用将所述第一数据发送给数据交换引擎;所述数据交换引擎根据所述第一数据识别出所述第一租户的信息;所述数据交换引擎根据所述第一租户的信息,识别数据中心包括的多个租户数据库中归属于第一租户的第一数据库,并在所述第一数据库中对所述第一数据进行存储。
【IPC分类】G06Q30/06, G06Q10/06, G06F17/30
【公开号】CN104881749
【申请号】CN201510294152
【发明人】李东海, 蒙朝辉, 贺剑敏
【申请人】北京圆通慧达管理软件开发有限公司
【公开日】2015年9月2日
【申请日】2015年6月1日
转载请注明原文地址:https://www.famiwei.com/read-8138327.html