《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 傳統軟件向SaaS軟件轉型方案的研究
傳統軟件向SaaS軟件轉型方案的研究
來源:微型機與應用2012年第4期
孟小華1,2, 陳傳凱1
(1. 暨南大學 計算機科學系, 廣東 廣州 510632; 2. 暨南大學 天體測量、動力學與空間
摘要: 針對中小企業資金缺乏、IT人才較少等問題,本文對傳統軟件向SaaS軟件轉型關鍵技術進行研究,提出了SaaS軟件關鍵技術的解決方案以及七層架構模型。
Abstract:
Key words :

摘  要: 針對中小企業資金缺乏、IT人才較少等問題,本文對傳統軟件SaaS軟件轉型關鍵技術進行研究,提出了SaaS軟件關鍵技術的解決方案以及七層架構模型
關鍵詞: 傳統軟件; SaaS; 架構模型

    隨著互聯網技術的高速發展和應用軟件的日漸成熟,軟件即服務SaaS(Software-as-a-Service)模式已經成為一種新型的軟件運營模式。在國外,SaaS正在滲透到軟件應用的各個方面,甚至開始成為主流。全球SaaS模式的創始者和領導者Salesforce就是以SaaS模式的CRM取得巨大成功的。而在國內還是以傳統按需求定制軟件的方式為主,SaaS還處于起步階段。在傳統軟件的基礎上向SaaS軟件轉型已經成為當前勢不可擋的潮流。SaaS作為一種新的軟件服務模式,技術架構與傳統軟件相比有很大差別,在技術上還有很多新的挑戰。因此本文對傳統軟件向SaaS軟件轉型的關鍵技術進行研究并提出一些可行方案。
1 SaaS模式及相關概念
1.1 SaaS模式概述

    SaaS模式是一種通過互聯網提供軟件服務的模式,與傳統軟件相比,SaaS軟件不再是用戶向軟件開發商定制軟件或進行二次開發,而是軟件提供商將應用軟件部署在自己的服務器上并通過互聯網提供在線軟件服務。軟件提供商負責搭建一切網絡設備、軟硬件運作平臺等基礎設施,并進行后期維護。企業用戶根據實際需要通過Internet向軟件提供商訂購所需要的應用軟件服務,按照訂購服務的多少和時間長短給提供商支付費用。SaaS模式下通過租用服務的方式,用戶不需再定制軟件、購買硬件、建設機房、招聘IT維護人員就可以按需使用軟件,也不需要用戶關心軟件后期的維護,只要連上網就可以享受軟件商提供的軟件服務。用戶不需要一次性支付很大一筆軟件定制費,只需支付很少一點租用費用就可以使用軟件,風險非常低,發現軟件不滿足要求或不適合本公司管理模式可以停止續租[1]。
    這種基于SaaS模式的軟件服務方式大大減輕了對于資金缺乏、IT人才匱乏的中小企業的壓力。同時,對軟件商也不用在推廣和銷售軟件產品時投入巨大營銷成本和后期的維護成本,不需維護多個用戶的多套軟件產品出現的奇怪問題,減輕了軟件維護人員的負擔。SaaS模式的4個基本要素是:互聯網平臺、網絡存儲、按需付費、多租戶。
1.2 多租戶概念
    多租戶是指多個企業用戶(在SaaS模式下習慣用租戶)共同使用部署在軟件供應商服務器上的一個應用實例,供應商提供一套軟硬件資源,網絡設備進行運營管理和資源維護,通過對租戶的規模效應來大大降低了軟件運營的成本。多租戶(Multi-tenant)是SaaS最重要的核心概念和關鍵技術之一。
1.3 成熟度模型
    根據SaaS應用是否具有可配置性、高性能、可伸縮性等特點,把SaaS成熟度模型分為四級[1]。
    第一級:定制開發,是最初級的SaaS應用成熟度。每個租戶對應一個單獨開發的軟件實例。與傳統模式幾乎沒有差別,最大不同就在于商業模式,即軟硬件以及相應維護均由SaaS供應商負責。
    第二級:可配置,是在第一級的基礎上改進的。每個租戶仍然對應一個單獨的軟件實例,但是供應商只提供了一套代碼,通過不同的配置來靈活地滿足各個租戶。
    第三級:高性能的多租戶架構,提出了多租戶的概念,多個租戶共享同一個運行實例。這種多租戶單實例的架構更接近于真正意義上的SaaS應用架構。降低了硬件及維護成本,發揮了SaaS應用的規模效應。
    第四級:可伸縮性的多租戶架構,添加了中間調度層將多個租戶分配到多個運行實例上,通過多個運行實例來分擔大規模租戶訪問。這一級成熟度硬件和租戶數量可以無限制地增加,因此是最為理想的SaaS架構。
2 SaaS軟件的關鍵技術
2.1 多租戶模式下的數據存儲

    SaaS軟件與傳統軟件相比,最大不同就是多租戶模式,多個租戶共享同一個軟件實例,租戶的數據既有隔離又有共享。根據多租戶模式的特點,在數據存儲上有3種被選的解決方案。
    方案1: 獨立數據庫。這種數據存儲方案將每個租戶的數據信息單獨存儲在獨立的數據庫中,是實現SaaS數據隔離最便捷的方式,而且對一個租戶數據模型的更改不會影響其他租戶的數據,安全性好。但是這種方案大大增加了數據庫的安裝費用,有多少個租戶就需要搭建多少個數據庫。這種數據存儲方案適用于像銀行、醫院等安全性要求較高的企業,但明顯不適合資金缺乏的中小企業的使用。
    方案2:共享數據庫。獨立架構,每個租戶共享同一個數據庫,但是對于每個租戶都有一個獨立的數據庫架構與之對應,這意味著各個租戶都有一套不同的數據表結構。當創建一個新租戶時,系統會相應地創建一套默認的表結構,同時與一個獨立的數據庫架構建立關聯關系。可在一個數據庫中存儲多個租戶的數據,與獨立數據庫相比,雖然數據庫的搭建費用降低了,還有一定的數據隔離,但是存在故障時恢復數據困難和數據統計難度。
    方案3:共享數據庫。共享架構,即所有的租戶共享一個數據庫,共用同一套數據表結構。一個數據表存儲了所有租戶的數據信息,通過一個TenantID字段來區分各個租戶的數據。這種方案是共享程度最高,隔離級別最低的數據存儲方式。這種方案又是硬件維護和購買成本最低的,每臺數據庫服務器支持的租戶最多。這種方式非常適用于大規模的中小企業的租戶。因此下面將詳細研究這種方案下的關鍵技術。
2.2 共享數據庫共享架構的多租戶模式
    (1) 多租戶技術
    多租戶技術是SaaS服務模式區別于傳統模式最本質的區別,達到SaaS模式的成熟度模型的必要條件是解決數據的隔離性,實現多租戶模式。在SaaS模式下建立多租戶,必須在業務表增加一個TenantID字段用來區別每個不同的租戶,保證每個租戶數據的安全。如表1所示。

    通過TenantID字段來獲得對應租戶的業務數據。當系統用到租戶的業務數據時,需要在每條SQL語句中增加‘TenantID = ?’ 條件進行業務數據操作。
    (2) 數據擴展技術[2]
     為了滿足不同租戶的不同需求,SaaS軟件必須能夠保證對數據可擴展。多租戶模式滿足大規模租戶對數據的個性化需要,最常見的解決方案就是實現擴展數據的可配置。實現數據的可配置有以下3種常見方案。
    方案1:定制字段,就是根據租戶的需要在各租戶共有的數據表上添加相應的定制字段來保存擴展數據。這種方案數據擴展非常簡單但是其擴展性非常有限,當租戶量達到一定數量,表中添加的字段就會非常多,而且每個租戶添加的字段對另外租戶是沒有任何意義的,嚴重破壞了表的結構,有些擴展字段可能為空,浪費了表空間。
     方案2:預分配字段,該方法在表格中提供一定數量的預設字段,當租戶要擴展數據時,從表中選取適當的預設字段進行擴展,但是不同租戶選取同一個預設字段的含義可能也不一樣。如表2中TenantID字段區分每個租戶,除了一些固定的字段外,還提供了一些預分配字段,Ext1、Ext2、Ext3就是預分配的字段,預分配字段的使用由租戶自己預定,一般初始為字符串類型,其真實類型可以采用元數據表來進行跟蹤。

    這種方案雖然能滿足可配置、可擴展的需求,但是預留過多浪費空間,預設過少,又不能滿足租戶的需求。
    方案3: 名稱值對,本方案采用一個單獨的表來存儲擴展數據。擴展表將數據表的橫向擴展列轉換成縱向的擴展數據集,為每一條原數據記錄設一個擴展字段,保存為擴展表中的一條記錄。將數據表中的數據記錄與元數據表中的配置記錄相關聯,構成擴展數據記錄。如圖1所示。

    雖然這種方案很好地達到了多租戶數據擴展的靈活性要求,但增加了查詢、更新記錄等數據庫操作的復雜度,每次操作都涉及到多個表間的關聯,因此該方案也有待優化。
    方案4:XML[3]共享模型的數據擴展,這種方案在數據表中采用一種XML數據類型字段來存儲租戶間的數據。當今主流的關系數據系統都支持XML數據的存儲和管理,并提供了很多函數來直接對XML文檔節點進行管理。下面以Oracle數據庫系統為例。
    表結構:TableName(TenantID,Col1,Col2,,XMLDataField),其中TenantID、Col1、Col2字段是所有租戶共用的字段;XMLDataField字段存儲租戶特有的異構數據,其格式完全遵循XML的格式。設計XMLDataField字段的格式如下:
<UserExtendCols>
       <UserExtendCol1 colName=' ' colType=' '>value1
       </UserExtendCol1>
       <UserExtendCol2 colName=' ' colType=' '>value2
       </UserExtendCol2>
       <UserExtendCol3 colName=' ' colType=' '>value3
       </UserExtendCol3>
    ……
</UserExtendCols>
    XML文檔中每個子節點代表租戶的一個擴展列,包括列名、列的數據類型、列所對應的值等信息。每增加一個擴展列就在相應的XML文檔中添加一個子節點,滿足租戶對數據擴展的個性化需要。
    使用XML字段作為數據擴展方案,對擴展數據的操作簡單,不需頻繁地多表連接,可以靈活地滿足多租戶模式下的異構數據的定制,提高了性能。該方案的使用需要在系統的架構模式中添加一層對XML數據進行解析再呈現給客戶以及對客戶數據封裝成XML數據再保存到數據庫中。
2.3 多租戶模式下的功能可配置
     SaaS軟件所強調的是“按需使用,按需付費”。在SaaS模式下,租戶根據自己不同的需求來使用同一軟件,則需達到可配置性要求[4]。實現功能的可配置,可采用如圖2所示的四級表結構。

    每個租戶對應一個預設的功能模式,預設了租戶的基本功能。功能模式由多個原子功能構成。租戶表存儲租戶的相關信息,TenantID:租戶的唯一標識;UserName:租戶的登錄賬號;Password:租戶的登錄密碼;PatternNo:租戶使用系統包括的功能模式。功能表存儲了系統所有的原子功能相關信息,MENU_No:原子功能唯一標識;MENU_NAME:原子功能的名稱。模式表存儲了功能模式信息。PatternNo:系統中包括的所有模式標識。MENU_No:功能模式包括的原子功能。模式表可以作為租戶選擇功能的向導。租戶模式功能表存儲了租戶所擁有的功能的相關信息。租戶模式功能表定義了該租戶所有的功能信息,該表可以作為租戶所擁有的所有功能的查詢。
3 SaaS模式下的體系架構設計
    軟件系統架構決定了系統的靈魂,好的體系架構可以保證系統的穩定性、健壯性、可擴展性、兼容性和可用性,而傳統軟件通常需要采用分層的設計思想,一般大致分為5層,包括客戶層、表現層、控制層、業務邏輯層、數據庫層。這種傳統軟件的體系架構分層不能很好地滿足SaaS軟件的可擴展性和可配置性,難以滿足SaaS模式下多租戶的個性化需要。因此在討論了SaaS軟件關鍵技術之后,本文提出SaaS模式下的體系架構。在傳統軟件體系架構的基礎上增加配置管理層和數據模式選擇層。根據多租戶的不同需要配置管理層可以對系統的功能進行配置管理,選擇滿足自身業務需要的功能。數據模式選擇層是軟件供應商為了考慮各種租戶對系統的不同需求而對數據存儲模式進行選擇。如果數據擴展方案采用的是XML數據字段,則需要在此基礎上添加一層XML數據處理層,完成對XML數據的解析、封裝處理。這樣的體系架構可以極大地滿足大規模的各種行業的租戶,具有極大的可擴展性。SaaS系統體系架構如圖3所示。

    本文就傳統軟件向SaaS軟件轉型的一些關鍵技術進行了研究,并給出了一些技術可行的解決方案。在此基礎上對傳統軟件體系架構進行修改,總結出了SaaS軟件的體系架構模型,可以很好地滿足SaaS軟件的可擴展性和可配置性要求。本文對SaaS軟件的安全性研究涉及較少,安全性[5]是決定租戶對SaaS軟件信任的關鍵要素,只有很好的安全保障才能讓租戶放心地使用SaaS軟件。因此,后期將會對安全性問題進行詳細的研究。
參考文獻
[1] 葉偉.互聯網時代的軟件革命SaaS架構設計[M]. 北京:電子工業出版社,2008
[2] 查俊,溫浩宇. SaaS數據層方案比較研究[J].情報雜志, 2010,29(B06):176-177.
[3] 周健,孫麗燕.面向對象XML的存儲模式的研究[J]. 計算機技術與發展,2009,19(3):114-117,119.
[4] 姜世超,基于SaaS模式Multi-Tenant應用的可配置性研究[D].大連:大連海事大學, 2009.
[5] 琚潔慧,吳吉義,章劍林,等.SaaS應用中的多租戶與安全技術研究[J].電信科學,2010,26(10):41-46.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久爱www久久做| 国产精品国产馆在线真实露脸| 亚洲九九精品| 午夜免费在线观看精品视频| 日韩天堂av| 91久久国产综合久久| 亚洲人在线视频| 亚洲激情视频网站| 在线精品在线| 伊人久久婷婷色综合98网| 国产一区再线| 国产一区二区三区高清| 国产日本欧美一区二区| 国产精品香蕉在线观看| 国产免费成人在线视频| 国产精品视频成人| 国产精品制服诱惑| 国产一区二区久久久| 国产日韩欧美精品在线| 国产欧美一区二区精品仙草咪 | 亚洲一区二区三区精品视频| 国产精品99久久久久久久女警| 一区二区久久| 亚洲视频国产视频| 亚洲欧美日韩一区在线| 欧美一区二区在线免费观看| 欧美诱惑福利视频| 亚洲国产日本| 这里是久久伊人| 午夜精品一区二区三区在线| 久久精品人人| 蜜臀av一级做a爰片久久| 欧美精品成人91久久久久久久| 欧美日韩日韩| 国产精品入口66mio| 狠狠色丁香久久婷婷综合丁香| 在线精品观看| 一级日韩一区在线观看| 午夜日韩电影| 亚洲精品1区2区| 中文日韩在线| 久久激情五月激情| 欧美极品色图| 国产精品久久久久久久久果冻传媒| 国产日产欧美精品| 亚洲第一色中文字幕| 一区二区黄色| 久久成人一区二区| 99精品欧美一区二区三区综合在线| 亚洲影院在线观看| 久久久精品欧美丰满| 欧美精品播放| 国产日韩欧美自拍| 亚洲国产精品一区二区尤物区| 99国产精品99久久久久久粉嫩| 午夜在线a亚洲v天堂网2018| 亚洲区第一页| 欧美亚洲一区二区在线观看| 免费一级欧美在线大片| 欧美性大战久久久久久久| 国内揄拍国内精品少妇国语| 99国产精品久久久久老师| 性伦欧美刺激片在线观看| 日韩一区二区精品| 久久成人亚洲| 欧美日韩日本国产亚洲在线 | 国产三区精品| 亚洲日本一区二区三区| 午夜国产精品影院在线观看| 亚洲三级性片| 久久精品91| 欧美日精品一区视频| 精品成人在线| 亚洲欧美变态国产另类| 亚洲国产美女| 久久er99精品| 欧美午夜精品一区二区三区| 亚洲大片av| 销魂美女一区二区三区视频在线| 99国产精品国产精品久久| 欧美伊人久久大香线蕉综合69| 欧美国产日韩一二三区| 国产欧美视频一区二区| 99在线精品观看| 91久久久久久| 久久精品卡一| 国产精品卡一卡二卡三| 亚洲日本中文字幕免费在线不卡| 欧美一区永久视频免费观看| 亚洲一级特黄| 欧美日韩免费观看一区=区三区| 在线观看一区二区精品视频| 香蕉精品999视频一区二区| 亚洲小视频在线| 欧美极品影院| 亚洲国产精品日韩| 亚洲国产成人不卡| 久久国产加勒比精品无码| 国产精品久久久一区麻豆最新章节| 91久久精品一区二区别| 亚洲国产精品成人va在线观看| 欧美在线观看一区| 国产精品久久久一区二区| 夜夜爽99久久国产综合精品女不卡| 亚洲日本国产| 浪潮色综合久久天堂| 国产欧美日韩麻豆91| 中文精品99久久国产香蕉| 一本色道久久综合一区| 欧美激情1区2区| 亚洲国产成人在线播放| 亚洲黄网站在线观看| 久久欧美中文字幕| 国产综合精品一区| 欧美一级在线亚洲天堂| 欧美亚洲综合久久| 国产精品普通话对白| 一区二区三区国产| 在线一区二区三区做爰视频网站| 欧美区高清在线| 亚洲人精品午夜| 日韩一本二本av| 欧美日产国产成人免费图片| 亚洲人屁股眼子交8| aa日韩免费精品视频一| 欧美日韩一二区| 一区二区免费在线视频| 亚洲图片欧洲图片av| 国产精品福利在线| 亚洲尤物精选| 久久精品国产精品亚洲综合| 国产一区二区丝袜高跟鞋图片| 欧美一区二区在线视频| 久久免费视频一区| 尤物精品国产第一福利三区| 亚洲欧洲精品一区| 欧美激情综合色| 一区二区免费在线播放| 香港成人在线视频| 国产人成一区二区三区影院| 久久精品毛片| 欧美顶级少妇做爰| 亚洲另类一区二区| 亚洲字幕一区二区| 国产日韩欧美综合一区| 亚洲第一天堂av| 欧美经典一区二区| 一区二区欧美激情| 久久aⅴ国产紧身牛仔裤| 狠色狠色综合久久| 亚洲开发第一视频在线播放| 欧美日一区二区在线观看| 亚洲欧美电影在线观看| 久久五月天婷婷| 亚洲韩国日本中文字幕| 亚洲无线视频| 国产日韩在线播放| 亚洲人成人99网站| 国产精品海角社区在线观看| 欧美夜福利tv在线| 欧美xx视频| 中文亚洲欧美| 久久综合给合| 日韩视频在线观看免费| 亚洲欧美成aⅴ人在线观看| 国产专区欧美精品| 一区二区三区四区国产| 国产欧美精品一区| 亚洲精品久久久久久久久久久久久| 国产精品成人免费| 亚洲福利视频在线| 欧美性淫爽ww久久久久无| 久久精品日韩一区二区三区| 欧美日韩免费一区二区三区视频| 性做久久久久久免费观看欧美| 欧美成人精品在线观看| 亚洲免费小视频| 欧美黄色视屏| 欧美一级午夜免费电影| 亚洲国产精品综合| 久久精品国产v日韩v亚洲 | 久久成人久久爱| 亚洲韩国一区二区三区| 欧美一区=区| 亚洲在线成人精品| 国产精品三级久久久久久电影| 在线日韩中文| 午夜一区在线| 亚洲国产精品免费| 欧美一区影院| 一本色道久久综合精品竹菊| 久久久久综合网| 一区二区三区国产盗摄| 欧美不卡视频一区| 亚洲欧美精品中文字幕在线| 欧美久久久久中文字幕| 欧美在线播放| 国产精品美女久久久免费| 亚洲七七久久综合桃花剧情介绍| 国产日韩精品一区|