專利名稱:多租戶系統(tǒng)及多租戶系統(tǒng)存取數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多租戶領(lǐng)域,尤其涉及一種多租戶系統(tǒng)及多租戶系統(tǒng)存取數(shù)據(jù)的方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的快速發(fā)展,軟件即服務(wù)(Software as a krvice,SaaS)逐漸成為一種潮流,它顛覆了傳統(tǒng)的軟件交付模式,從架構(gòu)層面來分析,SaaS區(qū)別于傳統(tǒng)技術(shù)的重要差別就是多租戶模式。多租戶不是多用戶或者多企業(yè),租戶的粒度是建立在應(yīng)用層面上,一個租戶可以是任何一個普通用戶應(yīng)用,或者是企業(yè)內(nèi)部應(yīng)用,或者是企業(yè)外部應(yīng)用。它需要有一套安全的、排它的計算環(huán)境,該環(huán)境包含了從存儲到用戶界面的所有或某些選定的企業(yè)架構(gòu)層。因此,構(gòu)建高安全、高性能、易擴展的多租戶系統(tǒng),保證系統(tǒng)內(nèi)租戶間業(yè)務(wù)相互隔離、租戶資源分配合理是十分重要的。在現(xiàn)有的多租戶系統(tǒng)中,一般都是通過虛擬技術(shù)為不同租戶分配資源,通過不同租戶自定義實體和字段實現(xiàn)租戶數(shù)據(jù)的存儲與隔離。這樣租戶的數(shù)據(jù)實際上還是存儲在一起的,物理上相互耦合,通過應(yīng)用層實現(xiàn)租戶的隔離。如果一個租戶的數(shù)據(jù)受到攻擊或損壞,有可能會影響整個多租戶系統(tǒng)的安全,另外,對其中的一個租戶進行升級維護時,也有可能會影響其它租戶。可見,現(xiàn)在的多租戶系統(tǒng)主要存在以下問題(1)租戶數(shù)據(jù)緊耦合,安全性低。在現(xiàn)有的系統(tǒng)中,通過不同租戶自定義實體和字段的可配置性設(shè)計來解決租戶的定制需求。這樣租戶間的數(shù)據(jù)物理上是耦合在一起的,數(shù)據(jù)的耦合會帶來安全上的問題。(2)租戶間通過應(yīng)用層隔離,可擴展性差。在現(xiàn)有的系統(tǒng)中,租戶一般通過虛擬技術(shù)共享同一個應(yīng)用實例,通過應(yīng)用層隔離各租戶間的數(shù)據(jù),這樣會造成應(yīng)用層業(yè)務(wù)邏輯復(fù)雜,當系統(tǒng)中的一個租戶需要應(yīng)用層升級時,有可能會影響系統(tǒng)中其它的租戶,造成系統(tǒng)的可擴展性差,難以為不同租戶靈活地定制需求。
發(fā)明內(nèi)容
本發(fā)明提供了一種多租戶系統(tǒng)及多租戶系統(tǒng)存取數(shù)據(jù)的方法,以解決租戶數(shù)據(jù)緊耦合造成的安全性低等問題。本發(fā)明提供了一種多租戶系統(tǒng),該系統(tǒng)包括路由管理子系統(tǒng)、配置管理子系統(tǒng)和存儲管理子系統(tǒng),其中所述路由管理子系統(tǒng),用于根據(jù)當前租戶發(fā)送的應(yīng)用數(shù)據(jù)使用請求,從所述配置管理子系統(tǒng)確定當前租戶的應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)所述配置信息將所述當前租戶的應(yīng)用數(shù)據(jù)使用請求路由到當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;所述配置管理子系統(tǒng),用于管理各租戶的應(yīng)用數(shù)據(jù)的配置信息;所述存儲管理子系統(tǒng),用于根據(jù)所述應(yīng)用數(shù)據(jù)使用請求,將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上和/或從其歸屬的存儲節(jié)點上輸出應(yīng)用數(shù)據(jù)。
優(yōu)選地,所述應(yīng)用數(shù)據(jù)使用請求為寫入應(yīng)用數(shù)據(jù)時,所述配置管理子系統(tǒng),是用于判斷待寫入的當前租戶的應(yīng)用數(shù)據(jù)是否為新增數(shù)據(jù),若是,則根據(jù)預(yù)設(shè)的存儲模式為該當前租戶的應(yīng)用數(shù)據(jù)分配存儲節(jié)點;若不是,則根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。優(yōu)選地,所述應(yīng)用數(shù)據(jù)使用請求為讀出應(yīng)用數(shù)據(jù)時,所述配置管理子系統(tǒng),是用于根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找到所述當前租戶的待讀出的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。優(yōu)選地,所述應(yīng)用數(shù)據(jù)使用請求中包括所述當前租戶的應(yīng)用數(shù)據(jù)的存儲模式的切換請求;所述配置管理子系統(tǒng),還用于在所述切換請求導(dǎo)致所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點發(fā)生變化時,將變化后的存儲節(jié)點的信息發(fā)送給所述存儲管理子系統(tǒng)。優(yōu)選地,所述存儲節(jié)點包括一個或多個存儲服務(wù)器;所述存儲管理子系統(tǒng)還包括調(diào)度模塊,所述調(diào)度模塊包括同域調(diào)度單元和異域調(diào)度單元;所述同域調(diào)度單元,用于將當前租戶的應(yīng)用數(shù)據(jù)存儲在該存儲節(jié)點中的所有存儲服務(wù)器上;所述異域調(diào)度單元,用于接收所述配置管理子系統(tǒng)發(fā)送的變化后的存儲節(jié)點的信息,并根據(jù)所述變化后的存儲節(jié)點的信息將當前租戶的應(yīng)用數(shù)據(jù)調(diào)度到變化后的存儲節(jié)
點ο優(yōu)選地,所述存儲管理子系統(tǒng)還包括心跳模塊;所述心跳模塊,用于定時將各存儲節(jié)點的狀態(tài)信息反饋給所述配置管理子系統(tǒng);所述配置管理子系統(tǒng),還用于根據(jù)所述心跳模塊反饋的各存儲節(jié)點的狀態(tài)信息維護各租戶的應(yīng)用數(shù)據(jù)的配置信息。本發(fā)明還提供了一種多租戶應(yīng)用數(shù)據(jù)存取方法,該方法包括多租戶系統(tǒng)根據(jù)當前租戶發(fā)送的應(yīng)用數(shù)據(jù)使用請求,確定當前租戶的應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)所述配置信息將所述當前租戶的應(yīng)用數(shù)據(jù)使用請求路由到當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;根據(jù)所述應(yīng)用數(shù)據(jù)使用請求,將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上和/或從其歸屬的存儲節(jié)點上輸出應(yīng)用數(shù)據(jù)。優(yōu)選地,所述應(yīng)用數(shù)據(jù)使用請求為寫入應(yīng)用數(shù)據(jù)時,所述確定當前租戶應(yīng)用數(shù)據(jù)的配置信息包括判斷待寫入的當前租戶的應(yīng)用數(shù)據(jù)是否為新增數(shù)據(jù),若是,則根據(jù)預(yù)設(shè)的存儲模式為該當前租戶的應(yīng)用數(shù)據(jù)分配存儲節(jié)點;若不是,則根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。優(yōu)選地,所述應(yīng)用數(shù)據(jù)使用請求為讀出應(yīng)用數(shù)據(jù)時,所述確定當前租戶應(yīng)用數(shù)據(jù)的配置信息包括根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找到所述當前租戶的待讀出的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。優(yōu)選地,所述應(yīng)用數(shù)據(jù)使用請求中包括所述當前租戶的應(yīng)用數(shù)據(jù)的存儲模式的切換請求,所述方法還包括
在所述切換請求導(dǎo)致所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點發(fā)生變化時,所述多租戶系統(tǒng)根據(jù)確定的當前租戶的應(yīng)用數(shù)據(jù)的配置信息,將所述當前租戶的應(yīng)用數(shù)據(jù)調(diào)度到變化后的存儲節(jié)點。優(yōu)選地,所述存儲節(jié)點包括一個或多個存儲服務(wù)器;所述將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上包括將當前租戶的應(yīng)用數(shù)據(jù)存儲在該存儲節(jié)點中的所有存儲服務(wù)器上。優(yōu)選地,所述方法還包括所述多租戶系統(tǒng)定時監(jiān)控各存儲節(jié)點的狀態(tài)信息,并根據(jù)各存儲節(jié)點的狀態(tài)信息維護各租戶的應(yīng)用數(shù)據(jù)的配置信息。上述多租戶系統(tǒng)及多租戶系統(tǒng)存取數(shù)據(jù)的方法,通過分布式存儲,將各租戶的應(yīng)用數(shù)據(jù)存儲在不同的存儲節(jié)點上,保證了應(yīng)用數(shù)據(jù)物理上的隔離,從而保證系統(tǒng)的安全性。
圖1為本發(fā)明基于分布式存儲的多租戶系統(tǒng)實施例的結(jié)構(gòu)示意圖;圖2為本發(fā)明存儲管理子系統(tǒng)的功能結(jié)構(gòu)示意圖;圖3為本發(fā)明多租戶系統(tǒng)的實現(xiàn)方法實施例的流程圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。本發(fā)明提供了一種多租戶系統(tǒng),該系統(tǒng)包括路由管理子系統(tǒng)、配置管理子系統(tǒng)和存儲管理子系統(tǒng),其中所述路由管理子系統(tǒng),用于根據(jù)當前租戶發(fā)送的應(yīng)用數(shù)據(jù)使用請求,從所述配置管理子系統(tǒng)確定當前租戶的應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)所述配置信息將所述當前租戶的應(yīng)用數(shù)據(jù)使用請求路由到當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;所述配置管理子系統(tǒng),用于管理各租戶的應(yīng)用數(shù)據(jù)的配置信息;所述存儲管理子系統(tǒng),用于根據(jù)所述應(yīng)用數(shù)據(jù)使用請求,將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上和/或從其歸屬的存儲節(jié)點上輸出應(yīng)用數(shù)據(jù)。其中,所述應(yīng)用數(shù)據(jù)使用請求為寫入應(yīng)用數(shù)據(jù)時,所述配置管理子系統(tǒng),是用于判斷待寫入的當前租戶的應(yīng)用數(shù)據(jù)是否為新增數(shù)據(jù),若是,則根據(jù)預(yù)設(shè)的存儲模式為該當前租戶的應(yīng)用數(shù)據(jù)分配存儲節(jié)點;若不是,則根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。所述應(yīng)用數(shù)據(jù)使用請求為讀出應(yīng)用數(shù)據(jù)時,所述配置管理子系統(tǒng),是用于根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找到所述當前租戶的待讀出的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。其中,存儲模式是根據(jù)當前租戶對資源的要求,將該當前租戶的應(yīng)用數(shù)據(jù)配置成共享存儲模式和/或獨占存儲模式。另外,所述應(yīng)用數(shù)據(jù)使用請求中包括所述當前租戶的應(yīng)用數(shù)據(jù)的存儲模式的切換請求;所述配置管理子系統(tǒng),還用于在所述切換請求導(dǎo)致所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點發(fā)生變化時,將變化后的存儲節(jié)點的信息發(fā)送給所述存儲管理子系統(tǒng),由存儲管理子系統(tǒng)將租戶的應(yīng)用數(shù)據(jù)從原存儲節(jié)點調(diào)度到變化后的存儲節(jié)點。具體地,所述存儲管理子系統(tǒng)可以包括讀寫模塊;所述讀寫模塊,用于根據(jù)存儲模式將租戶的應(yīng)用數(shù)據(jù)寫入所述配置管理子系統(tǒng)根據(jù)存儲模式為該租戶的應(yīng)用數(shù)據(jù)分配的存儲節(jié)點中;將待修改的租戶的應(yīng)用數(shù)據(jù)寫入所述配置管理子系統(tǒng)為該租戶的應(yīng)用數(shù)據(jù)查找到的存儲節(jié)點中;以及從所述配置管理子系統(tǒng)為該租戶的應(yīng)用數(shù)據(jù)查找到的存儲節(jié)點中讀出該租戶的應(yīng)用數(shù)據(jù)。另外,所述存儲管理子系統(tǒng)還可以包括調(diào)度模塊;所述調(diào)度模塊包括同域調(diào)度單元和異域調(diào)度單元;所述同域調(diào)度單元用于所述讀寫模塊在將租戶的應(yīng)用數(shù)據(jù)寫入存儲節(jié)點后,實現(xiàn)同一存儲節(jié)點中的所有存儲服務(wù)器上的應(yīng)用數(shù)據(jù)相同;具體地,是將當前租戶的應(yīng)用數(shù)據(jù)存儲在該存儲節(jié)點中的所有存儲服務(wù)器上,從而保證了該存儲節(jié)點內(nèi)數(shù)據(jù)的一致性。由于讀寫模塊根據(jù)不同的存儲模式將各租戶的應(yīng)用數(shù)據(jù)寫入不同的存儲節(jié)點,所以不同存儲節(jié)點間的數(shù)據(jù)是不同的,從而保證了各租戶的應(yīng)用數(shù)據(jù)物理上的隔離,并且,可以通過增加新的存儲節(jié)點對系統(tǒng)進行擴展。異域調(diào)度單元用于實現(xiàn)不同存儲節(jié)點中的應(yīng)用數(shù)據(jù)的調(diào)度,具體地,所述異域調(diào)度單元,用于接收所述配置管理子系統(tǒng)發(fā)送的變化后的存儲節(jié)點的信息,并根據(jù)所述變化后的存儲節(jié)點的信息將當前租戶的應(yīng)用數(shù)據(jù)調(diào)度到變化后的存儲節(jié)點。進一步地,所述存儲管理子系統(tǒng)還可以包括心跳模塊;所述心跳模塊,用于定時將各存儲節(jié)點的狀態(tài)信息反饋給所述配置管理子系統(tǒng);所述配置管理子系統(tǒng),還用于根據(jù)所述心跳模塊反饋的各存儲節(jié)點的狀態(tài)信息維護各租戶的應(yīng)用數(shù)據(jù)的配置信息。如圖1所示,為本發(fā)明基于分布式存儲的多租戶系統(tǒng)實施例的結(jié)構(gòu)示意圖,該多租戶系統(tǒng)包括路由管理子系統(tǒng)11、配置管理子系統(tǒng)12和存儲管理子系統(tǒng)13,其中路由管理子系統(tǒng),負責(zé)從客戶端租戶接受應(yīng)用數(shù)據(jù)使用請求,從所述配置管理子系統(tǒng)獲取該租戶及應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)配置信息將租戶的應(yīng)用數(shù)據(jù)使用請求路由到應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;配置管理子系統(tǒng),負責(zé)所述存儲管理子系統(tǒng)各存儲節(jié)點具體存儲租戶及其應(yīng)用數(shù)據(jù)信息的配置,可以根據(jù)存儲模式的選擇將租戶及其應(yīng)用數(shù)據(jù)信息進行配置管理,同時也提供根據(jù)租戶信息獲取其對應(yīng)應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點的信息;存儲管理子系統(tǒng),負責(zé)租戶異域和同域應(yīng)用數(shù)據(jù)的存儲,可以根據(jù)租戶的要求將租戶的應(yīng)用數(shù)據(jù)存儲在不同的存儲節(jié)點上,也可以根據(jù)需要對租戶的應(yīng)用數(shù)據(jù)在多個存儲節(jié)點之間進行調(diào)度,保證系統(tǒng)的線性可擴展性;同時也可以在同一存儲節(jié)點內(nèi)對該存儲節(jié)點內(nèi)的存儲服務(wù)器的數(shù)據(jù)進行調(diào)度,保證該節(jié)點內(nèi)數(shù)據(jù)的一致性。其中,存儲管理子系統(tǒng)的功能結(jié)構(gòu)示意圖如圖2所示,包括讀寫模塊131、調(diào)度模塊132和心跳模塊133,其中讀寫模塊,用于存儲管理子系統(tǒng)的存儲節(jié)點讀寫方面的操作,包括應(yīng)用數(shù)據(jù)的增加、刪除、修改、查詢等操作。調(diào)度模塊,包括存儲管理子系統(tǒng)節(jié)點間的異域數(shù)據(jù)調(diào)度和節(jié)點內(nèi)存儲服務(wù)器之間的同域數(shù)據(jù)調(diào)度。異域數(shù)據(jù)調(diào)度應(yīng)用在租戶數(shù)據(jù)需要從一個存儲節(jié)點遷移到另外節(jié)點時執(zhí)行的操作,同域數(shù)據(jù)調(diào)度應(yīng)用在存儲節(jié)點內(nèi)存儲服務(wù)器數(shù)據(jù)的復(fù)本備份,每一個寫操作都會觸發(fā)同域的數(shù)據(jù)調(diào)度。調(diào)度模塊依賴于讀寫模塊。心跳模塊,定時將存儲管理子系統(tǒng)中的各存儲節(jié)點的狀態(tài)反饋給配置管理子系統(tǒng),作為配置管理子系統(tǒng)配置租戶與應(yīng)用數(shù)據(jù)關(guān)系的根據(jù)。上述多租戶系統(tǒng),通過分布式存儲,將各租戶的應(yīng)用數(shù)據(jù)存儲在不同的存儲節(jié)點上,保證了應(yīng)用數(shù)據(jù)物理上的隔離,從而保證系統(tǒng)的安全性;將租戶的應(yīng)用數(shù)據(jù)進行分域處理,同域間的數(shù)據(jù)做復(fù)本備份,異域的數(shù)據(jù)做集群,可以形成一個同域數(shù)據(jù)相互備份、異域數(shù)據(jù)相互隔離的安全、可靠、可擴展的多租戶系統(tǒng)。利用包含上述路由管理子系統(tǒng)、配置管理子系統(tǒng)和存儲管理子系統(tǒng)的多租戶系統(tǒng)實現(xiàn)應(yīng)用數(shù)據(jù)的存取過程包括步驟一、所述路由管理子系統(tǒng)負責(zé)客戶端租戶的應(yīng)用數(shù)據(jù)的路由管理;所述路由管理子系統(tǒng)負責(zé)從客戶端租戶接受應(yīng)用數(shù)據(jù)使用請求,并將租戶的應(yīng)用數(shù)據(jù)使用請求路由到應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;具體地,所述路由管理子系統(tǒng)從客戶端租戶接受到應(yīng)用數(shù)據(jù)使用請求,根據(jù)該應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息向所述配置管理子系統(tǒng)發(fā)起查詢該租戶的應(yīng)用數(shù)據(jù)存儲節(jié)點的請求,所述配置管理子系統(tǒng)根據(jù)租戶信息獲取該租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點,并返回存儲節(jié)點信息給所述路由管理子系統(tǒng);步驟二、所述配置管理子系統(tǒng)負責(zé)租戶及其應(yīng)用數(shù)據(jù)在各存儲節(jié)點的配置信息管理;所述配置管理子系統(tǒng)根據(jù)租戶對資源的不同要求,選擇將該租戶應(yīng)用數(shù)據(jù)配置成與其它租戶共享存儲模式,或者獨占存儲模式。共享存儲模式是多個租戶共用存儲節(jié)點,這樣多個租戶應(yīng)用數(shù)據(jù)物理上存儲在一起,適合租戶對資源要求低的場合;獨占存儲模式是租戶獨占存儲節(jié)點,適合租戶對資源要求高的場合。所述配置管理子系統(tǒng)可以根據(jù)租戶的要求,將租戶的應(yīng)用數(shù)據(jù)在共享存儲模式和獨占存儲模式間進行切換;切換后如果租戶應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點發(fā)生變化,則將變化后的存儲節(jié)點通知所述存儲管理子系統(tǒng),所述存儲管理子系統(tǒng)根據(jù)變化后的存儲節(jié)點對租戶的應(yīng)用數(shù)據(jù)進行調(diào)度,存儲到變化后的存儲節(jié)點上;所述配置管理子系統(tǒng)可以根據(jù)存儲模式為租戶的應(yīng)用數(shù)據(jù)分配存儲節(jié)點,也可以根據(jù)租戶信息獲取其對應(yīng)應(yīng)用數(shù)據(jù)具體的存儲節(jié)點的信息。對于應(yīng)用數(shù)據(jù)新增操作,所述配置管理子系統(tǒng)根據(jù)租戶對資源的不同要求,為該租戶配置合適的存儲節(jié)點;對于應(yīng)用數(shù)據(jù)查詢、更新、刪除操作,所述配置管理子系統(tǒng)根據(jù)租戶及其應(yīng)用數(shù)據(jù)的配置信息,獲取租戶應(yīng)用數(shù)據(jù)存儲的節(jié)點信息;步驟三、所述存儲管理子系統(tǒng)負責(zé)將租戶應(yīng)用數(shù)據(jù)存儲到存儲節(jié)點上,并為租戶提供數(shù)據(jù)訪問接口。所述存儲管理子系統(tǒng)負責(zé)租戶異域和同域應(yīng)用數(shù)據(jù)的存儲,將租戶應(yīng)用數(shù)據(jù)存儲在不同存儲節(jié)點上叫異域存儲,對于同一個存儲節(jié)點,包含一或者多個存儲服務(wù)器,將租戶應(yīng)用數(shù)據(jù)存儲在同一存儲節(jié)點的一個或者多個存儲服務(wù)器上叫同域存儲。異域存儲,不同存儲節(jié)點上的數(shù)據(jù)互不相同,可以實現(xiàn)租戶應(yīng)用數(shù)據(jù)物理上的隔離,可以通過增加存儲節(jié)點實現(xiàn)所述存儲管理子系統(tǒng)存儲容量的線性擴展。同域存儲,實現(xiàn)存儲節(jié)點內(nèi)存儲服務(wù)器的復(fù)本備份功能,同一存儲節(jié)點的一個或者多個存儲服務(wù)器上的應(yīng)用數(shù)據(jù)是完全相同的。
8
所述存儲管理子系統(tǒng)負責(zé)從存儲節(jié)點讀寫租戶的應(yīng)用數(shù)據(jù),并根據(jù)租戶的要求對租戶的應(yīng)用數(shù)據(jù)在多個存儲節(jié)點之間進行調(diào)度,保證系統(tǒng)的線性可擴展性;同時也在同一存儲節(jié)點內(nèi)對該節(jié)點內(nèi)的存儲服務(wù)器的數(shù)據(jù)進行調(diào)度,保證該節(jié)點內(nèi)數(shù)據(jù)的一致性。另外,所述配置管理子系統(tǒng)與所述存儲管理子系統(tǒng)存在心跳消息,所述存儲管理子系統(tǒng)中的各存儲節(jié)點定時將該存儲節(jié)點的狀態(tài)反饋給所述配置管理子系統(tǒng),作為所述配置管理子系統(tǒng)配置租戶與應(yīng)用數(shù)據(jù)關(guān)系的根據(jù)。存儲節(jié)點的狀態(tài)包括該存儲節(jié)點并發(fā)租戶個數(shù)、系統(tǒng)資源使用率等信息。所述步驟一和步驟三之間還包括所述路由管理子系統(tǒng)根據(jù)所述配置管理子系統(tǒng)反饋的租戶及其應(yīng)用數(shù)據(jù)在存儲節(jié)點的配置信息,將租戶應(yīng)用數(shù)據(jù)使用請求轉(zhuǎn)發(fā)到所述存儲管理子系統(tǒng)對應(yīng)的存儲節(jié)點,由該存儲節(jié)點為租戶提供相應(yīng)的服務(wù)。上述多租戶系統(tǒng)的實現(xiàn)方法,通過分布式存儲,將租戶的應(yīng)用數(shù)據(jù)進行分域處理, 同域間的數(shù)據(jù)做復(fù)本備份,異域的數(shù)據(jù)做集群,可以實現(xiàn)租戶間應(yīng)用數(shù)據(jù)物理上的隔離,解決租戶數(shù)據(jù)緊耦合造成的安全性低、通過應(yīng)用層隔離造成的需求定制不靈活、可擴展性差等問題,實現(xiàn)了一個同域數(shù)據(jù)相互備份、異域數(shù)據(jù)相互隔離的安全、可靠、可擴展的多租戶系統(tǒng)。如圖3所示,為本發(fā)明多租戶系統(tǒng)的應(yīng)用數(shù)據(jù)存取方法實施例的流程圖,該方法包括步驟301、客戶端租戶發(fā)起應(yīng)用數(shù)據(jù)使用請求,該請求中包含租戶及其應(yīng)用數(shù)據(jù)信息;步驟302、路由管理子系統(tǒng)根據(jù)客戶端租戶發(fā)來的應(yīng)用數(shù)據(jù)使用請求,向配置管理子系統(tǒng)查詢該租戶對應(yīng)應(yīng)用數(shù)據(jù)的配置信息;步驟303、配置管理子系統(tǒng)根據(jù)客戶端租戶發(fā)來的應(yīng)用數(shù)據(jù)使用請求,查詢該租戶對應(yīng)應(yīng)用數(shù)據(jù)的配置信息;對于應(yīng)用數(shù)據(jù)新增操作,配置管理子系統(tǒng)根據(jù)租戶對資源的不同要求,為該租戶配置合適的存儲節(jié)點;對于應(yīng)用數(shù)據(jù)查詢、更新、刪除操作,配置管理子系統(tǒng)根據(jù)租戶及其應(yīng)用數(shù)據(jù)的配置信息,獲取租戶應(yīng)用數(shù)據(jù)存儲的節(jié)點信息并返回配置信息給路由管理子系統(tǒng)。步驟304、路由管理子系統(tǒng)收到配置管理子系統(tǒng)返回的租戶及應(yīng)用配置信息,根據(jù)配置信息將租戶應(yīng)用數(shù)據(jù)使用的請求轉(zhuǎn)發(fā)到存儲管理子系統(tǒng)對應(yīng)的存儲節(jié)點,由該存儲節(jié)點提供應(yīng)用數(shù)據(jù)使用服務(wù);步驟305、存儲管理子系統(tǒng)根據(jù)租戶應(yīng)用數(shù)據(jù)的使用請求,從相應(yīng)存儲節(jié)點上提供應(yīng)用數(shù)據(jù)供租戶使用。與現(xiàn)有的多租戶系統(tǒng)相比,基于分布式存儲的多租戶實現(xiàn)方法具有以下優(yōu)點(1)租戶數(shù)據(jù)物理上可分可合,安全性高。現(xiàn)有的系統(tǒng)中,通過不同租戶自定義實體和字段的可配置性設(shè)計來解決租戶的定制需求。這樣租戶間的數(shù)據(jù)物理上是耦合在一起的,數(shù)據(jù)的耦合會帶來安全上的問題。本發(fā)明通過分布式存儲,將租戶的應(yīng)用數(shù)據(jù)進行分域處理,同域間的數(shù)據(jù)做復(fù)本備份,保證數(shù)據(jù)的可靠性,異域的數(shù)據(jù)做集群,可以實現(xiàn)租戶間數(shù)據(jù)物理上的隔離,保證了數(shù)據(jù)的安全性。(2)租戶應(yīng)用數(shù)據(jù)通過存儲節(jié)點進行物理層上的隔離,可以滿足多租戶靈活定制需求的需求,系統(tǒng)可擴展性好?,F(xiàn)有的系統(tǒng),租戶一般通過虛擬技術(shù)共享同一個應(yīng)用實例, 通過應(yīng)用層隔離各租戶間的數(shù)據(jù),這樣會造成應(yīng)用層業(yè)務(wù)邏輯復(fù)雜,當系統(tǒng)中的一個租戶需要應(yīng)用層升級時,有可能會影響系統(tǒng)中其它的租戶,造成系統(tǒng)的可擴展性差,難以為不同租戶靈活的定制需求。本發(fā)明通過存儲節(jié)點進行物理層上的隔離,與應(yīng)用層無關(guān),當一個租戶需要應(yīng)用層升級時,不會影響到系統(tǒng)中其它的租戶??梢?,本發(fā)明采用基于分布式存儲的多租戶系統(tǒng)的實現(xiàn)方法,實現(xiàn)了一個可以為租戶提供同域數(shù)據(jù)相互備份、異域數(shù)據(jù)相互隔離的安全、可靠、可擴展的多租戶系統(tǒng)。本發(fā)明還提供了一種多租戶應(yīng)用數(shù)據(jù)存取方法,該方法包括步驟一、多租戶系統(tǒng)根據(jù)當前租戶發(fā)送的應(yīng)用數(shù)據(jù)使用請求,確定當前租戶的應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)所述配置信息將所述當前租戶的應(yīng)用數(shù)據(jù)使用請求路由到當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點其中,所述應(yīng)用數(shù)據(jù)使用請求為寫入應(yīng)用數(shù)據(jù)時,所述確定當前租戶應(yīng)用數(shù)據(jù)的配置信息包括判斷待寫入的當前租戶的應(yīng)用數(shù)據(jù)是否為新增數(shù)據(jù),若是,則根據(jù)預(yù)設(shè)的存儲模式為該當前租戶的應(yīng)用數(shù)據(jù)分配存儲節(jié)點;若不是,則根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。所述應(yīng)用數(shù)據(jù)使用請求為讀出應(yīng)用數(shù)據(jù)時,所述確定當前租戶應(yīng)用數(shù)據(jù)的配置信息包括根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找到所述當前租戶的待讀出的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。另外,所述應(yīng)用數(shù)據(jù)使用請求中包括所述當前租戶的應(yīng)用數(shù)據(jù)的存儲模式的切換請求,所述方法還包括在所述切換請求導(dǎo)致所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點發(fā)生變化時,所述多租戶系統(tǒng)根據(jù)確定的當前租戶的應(yīng)用數(shù)據(jù)的配置信息,將所述當前租戶的應(yīng)用數(shù)據(jù)調(diào)度到變化后的存儲節(jié)點。步驟二、根據(jù)所述應(yīng)用數(shù)據(jù)使用請求,將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上和/或從其歸屬的存儲節(jié)點上輸出應(yīng)用數(shù)據(jù)。其中,所述存儲節(jié)點包括一個或多個存儲服務(wù)器;所述將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上包括將當前租戶的應(yīng)用數(shù)據(jù)存儲在該存儲節(jié)點中的所有存儲服務(wù)器上。另外,所述方法還包括所述多租戶系統(tǒng)定時監(jiān)控各存儲節(jié)點的狀態(tài)信息,并根據(jù)各存儲節(jié)點的狀態(tài)信息維護各租戶的應(yīng)用數(shù)據(jù)的配置信息。上述多租戶應(yīng)用數(shù)據(jù)存取方法,通過分布式存儲,將租戶的應(yīng)用數(shù)據(jù)存儲在不同的存儲節(jié)點上,從而實現(xiàn)了應(yīng)用數(shù)據(jù)物理上的隔離,保證了系統(tǒng)的安全性。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,上述程序可以存儲于計算機可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應(yīng)地,上述實施例中的各模塊/單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,僅僅參照較佳實施例對本發(fā)明進行了詳細說明。本領(lǐng)域的普通技術(shù)人員應(yīng)當理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1.一種多租戶系統(tǒng),該系統(tǒng)包括路由管理子系統(tǒng)、配置管理子系統(tǒng)和存儲管理子系統(tǒng), 其中所述路由管理子系統(tǒng),用于根據(jù)當前租戶發(fā)送的應(yīng)用數(shù)據(jù)使用請求,從所述配置管理子系統(tǒng)確定當前租戶的應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)所述配置信息將所述當前租戶的應(yīng)用數(shù)據(jù)使用請求路由到當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;所述配置管理子系統(tǒng),用于管理各租戶的應(yīng)用數(shù)據(jù)的配置信息;所述存儲管理子系統(tǒng),用于根據(jù)所述應(yīng)用數(shù)據(jù)使用請求,將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上和/或從其歸屬的存儲節(jié)點上輸出應(yīng)用數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述應(yīng)用數(shù)據(jù)使用請求為寫入應(yīng)用數(shù)據(jù)時,所述配置管理子系統(tǒng),是用于判斷待寫入的當前租戶的應(yīng)用數(shù)據(jù)是否為新增數(shù)據(jù),若是,則根據(jù)預(yù)設(shè)的存儲模式為該當前租戶的應(yīng)用數(shù)據(jù)分配存儲節(jié)點;若不是,則根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述應(yīng)用數(shù)據(jù)使用請求為讀出應(yīng)用數(shù)據(jù)時,所述配置管理子系統(tǒng),是用于根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找到所述當前租戶的待讀出的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。
4.根據(jù)權(quán)利要求2或3所述的系統(tǒng),其特征在于所述應(yīng)用數(shù)據(jù)使用請求中包括所述當前租戶的應(yīng)用數(shù)據(jù)的存儲模式的切換請求;所述配置管理子系統(tǒng),還用于在所述切換請求導(dǎo)致所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點發(fā)生變化時,將變化后的存儲節(jié)點的信息發(fā)送給所述存儲管理子系統(tǒng)。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于所述存儲節(jié)點包括一個或多個存儲服務(wù)器;所述存儲管理子系統(tǒng)還包括調(diào)度模塊,所述調(diào)度模塊包括同域調(diào)度單元和異域調(diào)度單元;所述同域調(diào)度單元,用于將當前租戶的應(yīng)用數(shù)據(jù)存儲在該存儲節(jié)點中的所有存儲服務(wù)器上;所述異域調(diào)度單元,用于接收所述配置管理子系統(tǒng)發(fā)送的變化后的存儲節(jié)點的信息, 并根據(jù)所述變化后的存儲節(jié)點的信息將當前租戶的應(yīng)用數(shù)據(jù)調(diào)度到變化后的存儲節(jié)點。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于所述存儲管理子系統(tǒng)還包括心跳模塊;所述心跳模塊,用于定時將各存儲節(jié)點的狀態(tài)信息反饋給所述配置管理子系統(tǒng); 所述配置管理子系統(tǒng),還用于根據(jù)所述心跳模塊反饋的各存儲節(jié)點的狀態(tài)信息維護各租戶的應(yīng)用數(shù)據(jù)的配置信息。
7.一種多租戶應(yīng)用數(shù)據(jù)存取方法,該方法包括多租戶系統(tǒng)根據(jù)當前租戶發(fā)送的應(yīng)用數(shù)據(jù)使用請求,確定當前租戶的應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)所述配置信息將所述當前租戶的應(yīng)用數(shù)據(jù)使用請求路由到當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;根據(jù)所述應(yīng)用數(shù)據(jù)使用請求,將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上和/或從其歸屬的存儲節(jié)點上輸出應(yīng)用數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于所述應(yīng)用數(shù)據(jù)使用請求為寫入應(yīng)用數(shù)據(jù)時,所述確定當前租戶應(yīng)用數(shù)據(jù)的配置信息包括判斷待寫入的當前租戶的應(yīng)用數(shù)據(jù)是否為新增數(shù)據(jù),若是,則根據(jù)預(yù)設(shè)的存儲模式為該當前租戶的應(yīng)用數(shù)據(jù)分配存儲節(jié)點;若不是,則根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于所述應(yīng)用數(shù)據(jù)使用請求為讀出應(yīng)用數(shù)據(jù)時,所述確定當前租戶應(yīng)用數(shù)據(jù)的配置信息包括根據(jù)所述應(yīng)用數(shù)據(jù)使用請求中包含的租戶信息查找到所述當前租戶的待讀出的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于所述應(yīng)用數(shù)據(jù)使用請求中包括所述當前租戶的應(yīng)用數(shù)據(jù)的存儲模式的切換請求,所述方法還包括在所述切換請求導(dǎo)致所述當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點發(fā)生變化時,所述多租戶系統(tǒng)根據(jù)確定的當前租戶的應(yīng)用數(shù)據(jù)的配置信息,將所述當前租戶的應(yīng)用數(shù)據(jù)調(diào)度到變化后的存儲節(jié)點。
11.根據(jù)權(quán)利要求7-10任一權(quán)利要求所述的方法,其特征在于 所述存儲節(jié)點包括一個或多個存儲服務(wù)器;所述將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上包括 將當前租戶的應(yīng)用數(shù)據(jù)存儲在該存儲節(jié)點中的所有存儲服務(wù)器上。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述方法還包括所述多租戶系統(tǒng)定時監(jiān)控各存儲節(jié)點的狀態(tài)信息,并根據(jù)各存儲節(jié)點的狀態(tài)信息維護各租戶的應(yīng)用數(shù)據(jù)的配置信息。
全文摘要
本發(fā)明提供了一種多租戶系統(tǒng)及多租戶系統(tǒng)存取數(shù)據(jù)的方法,該系統(tǒng)包括路由管理子系統(tǒng),用于根據(jù)當前租戶發(fā)送的應(yīng)用數(shù)據(jù)使用請求,從所述配置管理子系統(tǒng)確定當前租戶的應(yīng)用數(shù)據(jù)的配置信息,并根據(jù)所述配置信息將所述當前租戶的應(yīng)用數(shù)據(jù)使用請求路由到當前租戶的應(yīng)用數(shù)據(jù)歸屬的存儲節(jié)點;配置管理子系統(tǒng),用于管理各租戶的應(yīng)用數(shù)據(jù)的配置信息;存儲管理子系統(tǒng),用于根據(jù)所述應(yīng)用數(shù)據(jù)使用請求,將當前租戶的應(yīng)用數(shù)據(jù)存儲到其歸屬的存儲節(jié)點上和/或從其歸屬的存儲節(jié)點上輸出應(yīng)用數(shù)據(jù)。本發(fā)明通過分布式存儲,將各租戶的應(yīng)用數(shù)據(jù)存儲在不同的存儲節(jié)點上,保證了應(yīng)用數(shù)據(jù)物理上的隔離,從而保證系統(tǒng)的安全性。
文檔編號H04L12/24GK102340533SQ20111016437
公開日2012年2月1日 申請日期2011年6月17日 優(yōu)先權(quán)日2011年6月17日
發(fā)明者丁巖, 付光, 楊慶平, 汪峰來 申請人:中興通訊股份有限公司