前言:想要寫出一篇引人入勝的文章?我們特意為您整理了多租戶網站實現方法研究和設計范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:本文根據J2EE多層架構的Web開發框架,同時結合多租戶SaaS原理以及元數據思想,構建了一個多租戶網站架構。其通過單一網站實例,利用簡單的配置,可以及時部署和資源再利用等相關優勢,最終有效節約社會資源。
現如今,網站建設大部分采取B/S架構以及信息發布,特別是相同行業當中的網站,如,在教育系統里面的中小學網站當中,不管是相關技術需求或業務流程等方面伴有相對比較多相同的地方,大致上均是利用靜態網頁、動態網頁等相關組成,并且整個布局結構相似度相對較高,利用之前單個用戶制定的模式,可以重復利用性相對較差,造成這一系統建設需要加大投資力度,造成成本相對較高等相關問題。如果想要將多租戶共享網站架構給予妥善處理,本文筆者采取一種多租戶的網站框架予以實現,其通過單一網站實例,利用簡單的配置,可以及時部署和資源再利用等相關優勢,最終有效節約社會資源。
1多租戶網站結構
1.1系統架構
本文筆者所設計的是根據J2EE多層架構的Web開發框架,同時結合多租戶SaaS原理以及元數據思想,構建的一個多租戶網站架構。
1.2多租戶網站工作原理
這一框架主要是按照J2EE模型當中的分層思想,其中包括三個層次,能夠充分進行擴張。另外,應用服務器層一般為Web和EJB這兩種容器,前者主要是能夠返回到動態的頁面,其中包括JSP以及Struts兩個組件。后者可以將業務邏輯予以實現,并且利用Bean完成整個映射(O/R),對多租戶當中的數據給予增加或者刪減,并且由于其主要是根據相關對象的想法,需要在操作方面進行簡單封裝,所以,其接口予以簡化,使這一系統具有靈活性以及擴展性。多租戶組合網站管理系統為了保證能夠有效區分不同類型組合的租戶數據庫就需要在多個數據庫列表當中同時增添id等字段,就需要與常規單一用戶網站有著較大的差異。除此之外,當租戶在需要重新進行網站修改以及需要構建一個網站的時候,如查閱網站文章以及需要添加網站欄目等均必須在網站有關的語句當中一并增加了ID這個唯一性的標識,進而將不同時期租戶當中的不同數據來源給予有效的隔離,以免發生泄漏。多媒體租戶服務網站當中的可配置性數據是通過利用具有結合統一數據模型以及結合元數據結構模型技術予以結合實現,同時讓整個系統當中的基本應用數據以及其他個性化的擴展應用數據分別對其進行整合存儲,不但這樣可以充分滿足不同類型用戶的數據個性化需求,并且不會對系統數據資料表當中的數據結構造成任何的破壞。另外,因為必須要面對功能需求個性化以及大量的租戶。因此,系統需要可以支持租戶具有更多選擇性地自行定制自身所可能需要的網站功能。除此之外,本文當中的多租戶管理網站當今所需要支持的都是個性化功能配置,其中主要包含租戶頁面定制內容、模板樣式選擇以及系統菜單等。
2關鍵技術
多租戶網站技術構建與之前網站之當中有非常大的差別,其中包括有以下幾點;(1)各個租戶共享一個應用實例,數據當中不但可以共享,同時可以進行隔離。應該怎樣的情況之下保證每一個租戶當中的數據給予安全隔離;(2)個性化配置問題;(3)多源數據庫訪問。
2.1數據隔離與數據庫訪問接口設計
其架構設計的關鍵就是對每一個租戶當中這些數據的安全隔離,為了我們能夠真正的實現每一個人對租戶當中的所有數據信息給予有效性的隔離,本文筆者主要利用在租戶表當中添加字符id值,進而有效隔離區分各個租戶當中的數據信息。除此之外,筆者利用這一種設計方法在租戶表當中重新增添了對租戶當中標識字段的隔離機制,進而將租戶數據進行有效分離。多租戶共享網站管理框架主要采取的關系型共享數據庫,對每個租戶當中的所有數據可以進行共享儲存,從三種儲存模式當中分別選取一種共享型的數據庫基礎架構,如表1所示。筆者主要考慮到也許我們會同時伴有多個不同的數據源,因此,需要設計一個不同數據源的訪問管理組件,被我們稱之為統一數據訪問層,在當中封裝以及抽象全部數據的增加和刪減改查,采取JDBC,降低每一次連接所需要消耗的時間,本文筆者通過EJB所提供的連接池方式,進而獲得這一效果,例如圖1所示。
2.2可配置性分析
在網站當中需要管理的配置包括有表、頁面以及原子功能等,目前暫時被定義為配置元。通過MDA對相關配置元給予抽象分析,進而將其分解成為常規數據以及元數據模型,其中前者顯示不同用戶之間相同的數據庫字段,然而后者顯示不同租戶可以改變的字段集合。除此之外,為了能夠真實體現這種可變性,本文筆者對當中的數據庫表結構給予相對應的改變,如圖2所示。元數據塊的區表當中,租戶對象信息能夠分配一個id字段作為當中的唯一租戶識別數據字段,通過這一識別系統,我們能夠有效的區分不同租戶之間的一些數據相關信息。除此之外,這一字段據信息不僅能夠更改一個可變的元數據區的字段,同時能夠利用這一id來準確標識這一字段當中的租戶對象數據信息表。如,考慮存放同學信息的數據表—--student表,這個當中的表2所顯示的核心字段以及自定義字段,分別被學校A以及學校B所應用。從表2當中能夠看出學校Q自定義S-sex字段,然而學校B自定義為S-age字段,均能夠在系統處在生產環境。本文筆者假設這里存放的元數據模型當中的對象信息表,全部表的入口均是從m-object表開始,程序均會從這一個表當中開始取出相對應student表記錄自定義字段。元數據模型當中的租戶對象關聯表當中存放的數據為自定義分類,m-class表能夠作為其之間的中間關系表。元數據模型當中的字段信息表里面存在的數據為實際的字段名,能夠獲得相對應的某一個租戶當中均需要的自定義字段每一個自定義字段當中的值儲存在m-data表當中,例如,當中的student表當中的101與102的兩條數據。為了能夠獲得核心模型與元數據模型當中的數據集合,必須要利用共同查詢模式,其結果是包含student表當中的schlool-id為101的記錄。
3多租戶網站的運行實例
租戶必須按需要到系統后臺,將系統前臺所提供需要的元素對其進行組合構造。除此之外,現如今,平臺當中所需要提供的包括文章內容管理、用戶體驗管理、前臺模板網頁設計模板以及后臺欄目管理等,與此同時,不同的系統租戶平臺能夠按照所提供需要的元素給予前臺模板以及后臺功能等多方面進行選擇。選擇成功以后,當中的租戶可以連接到租戶的網站服務后臺,對網站前臺進行管理,后天維護管理當中的租戶不僅能夠為網站前臺欄目進行添加,例如,jave技術等網站相關欄目,同時租戶能夠為網站前臺進行添加相對應的相關文章。網站后天在構建以后,租戶便能夠將前臺予以開放,并且供瀏覽者應用,瀏覽人員采取租戶所提供的瀏覽網址,在這里就能夠看到網站后天當中添加的欄目和里面的文章等。
4總結
多租戶系統技術就是屬于一種軟件架構設計技術,其目的是在通過探討與設計實現系統應該如何進行應用,并在多用戶的軟件環境之下可以共享租戶系統或者應用程序中的組件,同時仍然可以能夠真正保證每個不同用戶之間具有數據的完全隔離性。通過多租戶系統技術不僅能夠真正保證實現多個不同租戶當中的個人共享系統應用實例,并且還可以真正保證實現每個租戶的共享系統應用實例的完全個性化和可定制。另外,利用多租戶系統技術后還能夠保證整個租戶系統具有共性的部分就是可以單獨進行數據共享,個性化的部分則是需要被單獨進行隔離。通過在多個不同租戶當中的成本資源重復組合利用,可以將其中的成本資源給予有效節省,同時在每個不同租戶當中可以共享應用程序的單個系統實例,一旦遇到需要系統升級的重要時候,多個租戶都會在同一時間重新進行系統升級。除此之外,由于多個租戶同時享有一個系統當中的核心系統代碼,所以,一旦進行系統升級,僅需要將當中的一個核心系統代碼重新進行系統升級處理即可。因為網站缺乏多租戶協同運行系統架構和網站個性化資源配置管理能力等功能,以往用于面向承租租戶的各種B/S大型網站管理框架系統開發技術并不完全適用。以往的技術主要采取ASP模式,每一個用戶對應一個運行實例,這一方式開發相對較為簡單,然而會導致多次開發,可重復使用性較差。然而通過利用j2ee以及saas多租戶等多種相關信息技術可以構建多租戶的網站架構,從而讓廣大用戶更加方便于快捷應用系統中的功能。
作者:季露 單位:南京高等職業技術學校