專利名稱:一種將已有Web應用轉化為SaaS多租戶應用的方法和裝置的制作方法
技術領域:
本發明涉及一種MaS多租戶技術領域,尤其涉及一種將已有Web應用轉化為MaS 多租戶應用的方法和裝置。
背景技術:
SaaS(Software-as-a-Service軟件即服務)是基于互聯網提供軟件服務的軟件應用模式。SaaS應用與傳統的Web應用存在本質不同,傳統Web應用在部署之后只為一家用戶企業服務,而^aS應用是為成百上千的不同客戶提供服務。多租戶指的是軟件架構體系中的一種模式,MaS應用在多租戶架構下,以一份應用軟件實例同時服務于多家客戶或組織(即所謂的租戶),節約了服務器資源,降低了運營成本。為了滿足不同租戶的需求,MaS 應用必須可以安全地隔離各個用戶不同的應用實例(如應用進程)和應用數據甚至配置數據,保證每個用戶的安全與隱私,以及各個租戶對諸如界面、業務邏輯等的個性化需求。隨著^aS技術的發展,傳統的Web應用軟件提供商希望有一種簡單的方法使得他們的Web應用轉化為MaS應用。但是,現有公布的MaS方式往往要求傳統Web應用開發商重新做代碼級的修改以便在應用的應用邏輯、租戶配置、租戶數據存取、租戶上線等方面做出修改。這往往意味著要求傳統Web應用開發商要重新開發應用、重新測試。所以,傳統Web應用開發商迫切需要一種技術能夠提供中間件和平臺級的能力幫助他們解決Web應用轉化為應用的問題。中國專利公開號CN102135883,
公開日2011年7月27日,發明的名稱為一種支持MaS應用生成與部署的方法和裝置,該申請案公開了一種支持MaS應用生成與部署的方法和裝置,它包括以下步驟A、獨立軟件開發商經過注冊獲得MaS應用生成與部署裝置的開發授權,成為正式開發用戶;B、獨立軟件開發商通過ISV門戶單元下載生成及測試工具集并將工具集集成到其本地生成環境中,使得本地生成環境成為快速生成MaS應用的 MaS應用描述生成裝置;C、獨立軟件開發商利用MaS應用描述生成裝置進行應用生成,并將應用的描述上傳到^aS應用部署裝置中;D、SaaS應用部署裝置將ISV生成的應用添加底層實現,將其部署成支持多租戶及個性化定制的&iaS應用;E、租戶對發布的^aS應用進行試用、租賃、定制。其不足之處在于,該方法和裝置不能解決傳統Web應用開發商為實現 SaaS應用而重新開發應用、重新測試的問題。
發明內容
本發明的目的是克服傳統應用開發商為實現MaS應用而重新開發應用、重新測試的問題,提供了一種無需重新開發應用、重新測試,就能夠將已有Web應用轉化為^aS多租戶應用的方法和裝置。為了解決上述問題,本發明采用以下技術方案予以實現
一種將已有Web應用轉化為MaS多租戶應用的裝置,包括隔離模塊,用于在Web應用中設置隔離點,隔離Web應用中不同租戶所定制的不同的Web應用對象,建立相應的隔離
3Web應用對象分區和無需隔離的共享Web應用對象分區;租戶一分區映射表,用于管理運行時租戶與其對應的隔離Web應用對象分區之間的關系;租戶上線管理器,用于為新租戶建立保存租戶信息的租戶分區,并在租戶一分區映射表里注冊新租戶與其對應的隔離Web 應用對象分區之間關系的表組;租戶上下文綁定模塊,用于將一個請求綁定到一個租戶, 建立描述租戶信息的租戶上下文;租戶請求路由器,從租戶上下文中取得租戶信息,通過查詢租戶一分區映射表,將所述請求轉發在到正確的Web應用對象分區里進行處理。在本技術方案中,對于租戶發出的請求,租戶請求路由器查詢租戶一分區映射表中該租戶與其對應的隔離Web應用對象分區之間關系的表組,若沒有查到處理所述請求的Web應用對象分區,則將所述請求轉發到沒有隔離的共享Web應用對象分區進行處理,從而實現一個應用實例同時服務多個租戶的要求;若查到處理所述請求的Web應用對象分區,則將所述請求轉發到相應的隔離Web應用對象分區進行處理,從而保證每個用戶的安全與隱私,以及各個租戶對諸如界面、業務邏輯等的個性化需求。通過在已有Web應用上增加一個由這些裝置構成的中間層,就可以將已有Web應用轉化為多租戶應用,使開發商不用為實現 SaaS應用而重新開發應用、重新測試。作為優選,所述Web應用對象包括全局Java對象、容器管理對象、從Web應用服務器調用的外部資源、用戶界面、高級的應用程序邏輯。通過對這些Web應用要素的隔離,保證每個用戶的安全與隱私,以及各個租戶對諸如界面、業務邏輯等的個性化需求。作為優選,所述租戶分區是內存中保存實時狀態、應用數據、外部資源的一個邏輯隔離空間,便于應用服務器對租戶進行管理。作為優選,所述租戶上下文包括租戶的唯一識別符tenantID,用于確定租戶的身份,根據租戶的身份確定哪些Web應用需要被定制。作為優選,所述租戶上下文綁定模塊包括用于截獲請求的Java過濾器,以便租戶上下文綁定模塊將截獲的請求綁定到租戶。一種將已有Web應用轉化為MaS多租戶應用的方法,包括以下步驟
A、建立應用元數據,描述在Web應用中需要隔離的不同租戶所定制的不同的Web應用對象的信息;
B、基于所述應用元數據的信息,在所述Web應用中設置隔離點,隔離不同租戶定制的不同Web應用對象;
C、對所述不同租戶定制的不同Web應用對象建立相應的隔離Web應用對象分區,并建立相應的租戶一分區映射表,對各個租戶共享的Web應用對象建立無需隔離的共享Web應用對象分區;
D、新租戶上線時,為新租戶建立保存租戶信息的租戶分區,并在所述租戶一分區映射表里注冊新租戶與其對應的隔離Web應用對象分區之間關系的表組;
E、當不同租戶發出應用請求時,租戶上下文綁定模塊截獲應用請求,將應用請求綁定到相應的租戶,構造描述租戶信息的租戶上下文;
F、租戶請求路由器從所述租戶上下文中取得當前租戶信息,查詢當前租戶在所述租戶一分區映射表中的表組若沒有查到處理所述請求的Web應用對象分區,則將所述請求轉發到沒有隔離的共享Web應用對象分區進行處理,從而實現一個應用實例同時服務多個租戶的要求;若查到處理所述請求的Web應用對象分區,則將所述請求轉發到相應的隔離
4Web應用對象分區進行處理,從而保證每個用戶的安全與隱私,以及各個租戶對諸如界面、 業務邏輯等的個性化需求。通過上述步驟,無需對已有Web應用進行代碼級的修改,就可以將Web應用轉化為MaS多租戶應用。本發明的有益效果是能夠快速的將已有Web應用轉化為&iaS多租戶應用,無需對已有的Web應用進行代碼級的修改、重新開發應用、重新測試。
圖1是本發明一種將已有Web應用轉化為MaS多租戶應用的裝置的一種結構示意框圖。圖中1、隔離模塊,2、租戶一分區映射表,3、租戶上線管理器,4、租戶上下文綁定模塊,5、租戶請求路由器。
具體實施例方式下面通過實施例,并結合附圖,對本發明的技術方案作進一步具體的說明。實施例本實施例的一種將已有Web應用轉化為MaS多租戶應用的裝置,包括隔離模塊1,用于在Web應用中設置隔離點,隔離Web應用中不同租戶所定制的不同的Web應用對象,建立相應的隔離Web應用對象分區和無需隔離的共享Web應用對象分區,Web應用對象包括全局Java對象(static field、singleton object)、容器管理對象(servlet、 JSP、EJB3、JPA)、從Web應用服務器調用的外部資源(數據庫訪問、LDAP訪問、本地和遠程文件系統訪問)、用戶界面(利用樣式表、界面上的圖片)、高級的應用程序邏輯(體現不同租戶邏輯的程序片段、配置項);租戶一分區映射表2,用于管理運行時租戶與其對應的隔離 Web應用對象分區之間的關系;租戶上線管理器3,用于為新租戶建立保存租戶信息的租戶分區,并在租戶一分區映射表2里注冊新租戶與其對應的隔離Web應用對象分區之間關系的表組,當中斷一個租戶的服務時,銷毀租戶分區、并將注冊的表組從租戶一分區映射表2 中移除,租戶分區是內存中保存實時狀態、應用數據、外部資源的一個邏輯隔離空間;租戶上下文綁定模塊4,用于將一個請求綁定到一個租戶,建立描述租戶信息且擁有唯一識別符 tenantID的租戶上下文,當請求完成時,解除綁定,以便租戶能夠綁定新請求,租戶上下文綁定模塊4包括用于截獲請求的Java過濾器;租戶請求路由器5,從租戶上下文中取得租戶信息,通過查詢租戶一分區映射表2,將請求轉發在到正確的Web應用對象分區里進行處理。首先,建立應用元數據,描述在Web應用中需要隔離的不同租戶所定制的不同的 Web應用對象的信息。隔離模塊1基于應用元數據的信息,通過修改該Web應用的配置項, 在該Web應用中設置隔離點,隔離不同租戶定制的不同Web應用對象,建立相應的隔離Web 應用對象分區,并建立相應的租戶一分區映射表2,對各個租戶共享的Web應用對象建立無需隔離的共享Web應用對象分區。當新租戶上線時,租戶上線管理器3賦予其唯一的識別符 tenantID,并為新租戶建立保存租戶信息的租戶分區,并在租戶一分區映射表2里注冊新租戶的唯一識別符tenantID與其對應的隔離Web應用對象分區之間關系的表組。新租戶發出應用請求,租戶上下文綁定模塊4通過Java過濾器截獲應用請求,將應用請求綁定到該租戶,構造描述租戶信息的租戶上下文。租戶請求路由器5從租戶上下文中取得tenantID和應用請求,查詢當前租戶在租戶一分區映射表2中的表組若沒有查到處理該應用請求的Web應用對象分區,則將該應用請求轉發到沒有隔離的共享Web應用對象分區進行處理; 若查到處理該應用請求的Web應用對象分區,則將該應用請求轉發到相應的隔離Web應用對象分區進行處理,當請求完成時,解除綁定,以便租戶能夠綁定新請求。從而無需對已有的Web應用進行代碼級的修改、重新開發應用、重新測試,就能將已有Web應用轉化為MaS 多租戶應用。
權利要求
1.一種將已有Web應用轉化為MaS多租戶應用的裝置,其特征在于包括隔離模塊(1),用于在Web應用中設置隔離點,隔離Web應用中不同租戶所定制的不同的Web應用對象,建立相應的隔離Web應用對象分區和無需隔離的共享Web應用對象分區;租戶一分區映射表(2),用于管理運行時租戶與其對應的隔離Web應用對象分區之間的關系;租戶上線管理器(3),用于為新租戶建立保存租戶信息的租戶分區,并在租戶一分區映射表(2)里注冊新租戶與其對應的隔離Web應用對象分區之間關系的表組;租戶上下文綁定模塊(4),用于將一個請求綁定到一個租戶,建立描述租戶信息的租戶上下文;租戶請求路由器(5),從租戶上下文中取得租戶信息,通過查詢租戶一分區映射表 (2),將所述請求轉發在到正確的Web應用對象分區里進行處理。
2.根據權利要求1所述的一種將已有Web應用轉化為^aS多租戶應用的裝置,其特征在于所述Web應用對象包括全局Java對象、容器管理對象、從Web應用服務器調用的外部資源、用戶界面、高級的應用程序邏輯。
3.根據權利要求1所述的一種將已有Web應用轉化為^aS多租戶應用的裝置,其特征在于所述租戶分區是內存中保存實時狀態、應用數據、外部資源的一個邏輯隔離空間。
4.根據權利要求1所述的一種將已有Web應用轉化為^aS多租戶應用的裝置,其特征在于所述租戶上下文包括租戶的唯一識別符tenantID。
5.根據權利要求1或2或3或4所述的一種將已有Web應用轉化為MaS多租戶應用的裝置,其特征在于所述租戶上下文綁定模塊包括用于截獲請求的Java過濾器。
6.一種將已有Web應用轉化為MaS多租戶應用的方法,其特征在于,包括以下步驟A、建立應用元數據,描述在Web應用中需要隔離的不同租戶所定制的不同的Web應用對象的信息;B、基于所述應用元數據的信息,在所述Web應用中設置隔離點,隔離不同租戶定制的不同Web應用對象;C、對所述不同租戶定制的不同Web應用對象建立相應的隔離Web應用對象分區,并建立相應的租戶一分區映射表(2),對各個租戶共享的Web應用對象建立無需隔離的共享Web 應用對象分區;D、新租戶上線時,為新租戶建立保存租戶信息的租戶分區,并在所述租戶一分區映射表(2)里注冊新租戶與其對應的隔離Web應用對象分區之間關系的表組;E、當不同租戶發出應用請求時,租戶上下文綁定模塊(4)截獲應用請求,將應用請求綁定到相應的租戶,構造描述租戶信息的租戶上下文;F、租戶請求路由器(5)從所述租戶上下文中取得當前租戶信息,查詢當前租戶在所述租戶一分區映射表(2)中的表組若沒有查到處理所述請求的Web應用對象分區,則將所述請求轉發到沒有隔離的共享Web應用對象分區進行處理;若查到處理所述請求的Web應用對象分區,則將所述請求轉發到相應的隔離Web應用對象分區進行處理。
全文摘要
本發明公開了一種將已有Web應用轉化為SaaS多租戶應用的方法和裝置。該裝置包括隔離模塊,用于在Web應用中設置隔離點,建立Web應用對象分區;租戶—分區映射表,用于管理租戶與其對應Web應用對象分區的關系;租戶上線管理器,用于為新租戶建立租戶分區,并在租戶—分區映射表里注冊新分區;租戶上下文綁定模塊,用于將一個請求綁定到一個租戶,建立租戶上下文;租戶請求路由器,從租戶上下文中取得租戶信息,通過查詢租戶—分區映射表,將請求轉發在到正確的分區里進行處理。本發明通過在已有Web應用上增加了一個中間層,無需對已有的Web應用進行代碼級的修改,就能把Web應用轉化為SaaS多租戶應用。
文檔編號H04L29/08GK102333115SQ20111025584
公開日2012年1月25日 申請日期2011年9月1日 優先權日2011年9月1日
發明者馮望瑜, 張鐵柱, 楊弋 申請人:杭州灣云計算技術有限公司