琚潔慧 ,吳吉義 ,章劍林 ,傅建慶
(1.浙江科技學院信息與電子工程學院 杭州 310036;2.杭州師范大學電子商務與信息安全重點實驗室 杭州 310036;3.浙江大學計算機科學與技術學院 杭州 310027)
軟件即服務(software as a service,SaaS)是隨著互聯網技術的發展和應用軟件的成熟而興起的一種新的軟件應用模式,軟件部署為托管服務,通過互聯網存取[1]。SaaS模式具有可配置、托管服務、單實例多租戶等典型特點,與應用服務提供商 (application service provider)、按需軟件(on demand software)、托管軟件(hosted software)有一些相似,但區別也非常明顯。SaaS是一種新的軟件應用模式,它以軟件租用、在線使用方式提供軟件服務,軟件廠商或供貨商將應用軟件統一部署在自己的服務器上,客戶可以根據實際需要通過互聯網向廠商訂購所需的應用軟件服務,按訂購服務的多少和時間長短向廠商支付費用,通過互聯網獲得廠商提供的服務,用戶不用再購買軟件,而改用向提供商租用基于Web的軟件來管理企業經營活動,且無需對軟件進行維護。服務提供商會全權管理和維護軟件,在向客戶提供互聯網應用的同時,服務商也提供軟件的離線操作和本地數據存儲,讓用戶隨時隨地都可以使用定購的軟件和服務。
根據計世資訊(CCW Research)的研究報告,2007年國內SaaS市場規模達到157.5億元人民幣,比2006年(122.2億元人民幣)增長了28.9%。2008年,國內SaaS市場總體規模達到277.6億元人民幣,2009年則達到了354.2億元人民幣[2],增長率為27.6%,市場增速有所回落。與傳統IT市場受經濟環境影響非常大相對而言,SaaS市場可謂一枝獨秀,市場持續保持高速、穩定的增長,培育了如阿里軟件、金算盤、銘萬軟件、800CRM、Xtools、華美宏大、開啟網、神碼在線、金蝶友商網等一大批優秀的SaaS運營商??傮w分析,未來3到5年,國內工具型SaaS將向普及應用的方向發展,管理型SaaS將會快速增長,未來管理型SaaS的市場占比將不斷增加[3]。
研究SaaS的起源與發展歷程有助于我們理解它的來龍去脈,為更好理解和解決SaaS發展中存在的問題、把握SaaS的發展趨勢提供幫助。工具型SaaS起步相對較早,基本上是隨著互聯網的發展而產生且不斷豐富和發展的,此類SaaS的用戶數量龐大,目前已經比較成熟。實際應用包括網絡游戲、搜索引擎、郵箱、在線殺毒等個人桌面應用,統一通信、網絡視頻會議、網絡傳真、在線辦公等企業應用。這里主要研究管理型SaaS的起源與發展情況。
當前備受關注的SaaS的概念最早出現在2000—2001年,當時以Citrix System等為代表的一些公司提出把軟件當作一種服務來提供給客戶,而非以產品的形式銷售給客戶,SaaS一詞則是在2005年3月的一次主題研討會上被首次提出的。自此以后,SaaS不斷地被人們所關注,匯集了業界企業及專家學者的目光。
SaaS應用于企業管理的思想在國外并不新穎,已經有了近10年的歷史。在此期間,其表現形式各異,思想內涵也不盡相同。結合時代背景,企業管理的SaaS的發展大概可以劃分為3個階段。
(1)萌芽階段
企業管理的SaaS最早可以追溯到20世紀90年代興起的ASP模式,所謂ASP模式是指應用服務提供商通過網絡向用戶分發并且管理SaaS的一種模式。在此模式下,企業用戶通過網絡來訪問和使用軟件,既無需購買也不用親自運行、維護這些軟件,而是由一個新的角色——應用服務提供商購買、部署、運行、維護和負責升級軟件。ASP模式是SaaS應用于企業管理的最初表現形式。雖然已經具備SaaS的部分核心思想,但是這個時期的ASP模式發展并不順利,這與它的理念在當時過于新穎和技術水平發展不成熟有關。ASP模式在2000年前后事實上以失敗告終。盡管經歷了前期的挫折,但是經過早期ASP們的廣泛宣傳,ASP模式開始廣為人知,接受程度緩慢提高。
(2)調整階段
隨后,一種稱之為“按需軟件”的理念日益成長,并攜ASP模式的余溫再次受到關注。按照按需軟件的模式,客戶可以根據自己的實際需求向SaaS提供商定購所需的SaaS,按定購的SaaS多少和時間的長短向SaaS提供商支付費用,并通過互聯網獲取SaaS。按需軟件是SaaS在思想上的一次擴充,它將“按需”的思想和“服務”的形式結合在一起,形成了目前SaaS的核心。在此階段,企業管理類的SaaS模式發展比較艱難,原有的ASP廠商們正經歷著不斷的整合與調整。但是,SaaS提供商們比以往更加摸準了市場的需求,提出了更有針對性的服務。SaaS提供商們經歷了早期的沖動與燥熱,開始回歸理性的方向,在市場中摸索前行。
(3)穩步發展階段
經過一段時間的發展,隨著社會對IT認識的逐步加深,人們逐漸認識到IT作為組織的非核心業務可以外包出去;同時,技術水平的提升使得基于Web的信息系統與傳統的信息系統使用起來差別不大;用戶開始認可并接受基于Web的信息系統。這些都為面向企業管理的SaaS重獲生機提供了條件,SaaS在這樣的時代背景下應運而生。SaaS秉承了“前輩”優秀的思想精髓,也吸取了它們在發展過程中的教訓,一開始就將自己定位于向用戶提供基于互聯網的企業通用管理軟件,為中小企業提供企業信息化服務。目前,SaaS發展迅速,以Salesforce.com等為代表的SaaS提供商開始向用戶提出各類解決方案,以幫助企業向更高一級的信息化階段邁進。以Microsoft、SAP、Oracle等為代表的傳統IT廠商也紛紛加入這一陣營,開始將一些傳統軟件產品轉向SaaS模式。2004年6月,Salesforce.com在紐約證交所成功上市,這無疑是一記宣告市場對SaaS認同的堅強錘音。
為表示與之前ASP模式有所區分,國外開始普遍用SaaS取代ASP的說法,稱之為“軟件即服務”。我們可以看到,企業管理類的SaaS的發展并非一帆風順,經歷了一次曲線式前進、螺旋式上升的事物發展過程,如圖1所示。對于國內SaaS市場,爆發仍然還需要一段時間,2015年左右將是SaaS市場發展的黃金時期,之后將進入市場成熟階段。
目前,實現多租戶的方法主要有物理分隔(physical isolation)、虛擬化(virtualization)、支持多租戶的應用設計等[4,5]。
· 物理隔離方法,通過為每個Tenant配置獨占的物理資源,實現在物理層面上的隔離。同時可以根據每個Tenant的需求,對運行在物理機器上的應用進行個性化。然而這種模式的軟、硬件成本較高,只適用于大、中型企業。
· 虛擬化方法,包括虛擬機(virtual machine)和虛擬服務(virtual service)。虛擬機模擬了物理機器,在一臺物理機器上運行多個服務器環境和程序,各種物理資源被虛擬機共享。可以在每個虛擬機內對Tenant進行個性化。但當有成千上萬個Tenant的時候,給每個Tenant都建立獨立的虛擬機是不合理和沒有效率的。虛擬服務的主要目的是為了減少為達到隔離目的而產生的獨占性資源。與對OS層做整體的虛擬化不同,多個虛擬服務可以共享一些基本OS內核,例如各種驅動程序等。與虛擬機器一樣,虛擬服務很難支持成千上萬的客戶,但在SaaS運營商優化機器資源分配等方面,卻是一個很有用的技術。
· 支持多租戶的應用設計方法,主要通過應用本身來實現對多租戶的支持。如共享應用實例是用在一個應用實例上,為成千上萬個Tenant提供服務,Tenant間是隔離的,并且Tenant可以用配置的方式對應用進行定制。這種技術在資源利用率和配置靈活性上都較虛擬化的方式好,并且由于是一個應用實例,在管理、維護方面也比虛擬化的方式方便。
對比以上幾種多租戶的實現方法可以看到,隨著實現層面從物理機器到應用程序自身支持,資源利用率呈上升趨勢,整體軟、硬件的成本呈下降趨勢,Tenant間的隔離程度呈下降趨勢,資源利用率大幅提高。
IBM公司的Carl Osipov等人在參考文獻[6]中則提出了服務供應商可以使用以下5種實現多租戶的方法,如圖2所示。
(1)包含單一應用程序實例的共享中間件
所有租戶共享操作系統、服務器以及中間件和應用程序的單一實例。實現的方法是用租戶標識參數對應用程序的單一實例進行參數化。例如,如果應用程序有Web服務接口和實現,那么在接口中的操作和數據對象中添加租戶ID參數。如果應用程序使用數據庫表,那么在每個數據庫表中添加一個表示租戶ID的新列。在這個模型中,有一些配置元素對于每個租戶是獨特的。例如,虛擬門戶為每個租戶提供不同的外觀和感覺以及獨特的數據庫模式元素。
(2)包含共享地址空間中的多個應用程序實例的共享中間件
租戶使用應用程序的不同實例,這些實例部署在中間件的單一實例中,共享單一操作系統進程(地址空間)。租戶共享操作系統和服務器。
(3)包含單獨地址空間中的多個應用程序實例的共享中間件
租戶使用應用程序的不同實例,這些實例部署在中間件的不同實例中。租戶共享操作系統和服務器。因為中間件實例是不同的,所以每個租戶有自己的操作系統進程(地址空間)。因此,這個模型要求在操作系統層維持租戶隔離。這種方法在相同的物理服務器上支持的租戶數量比方法1和2少。
(4)用多個VM 映像實現虛擬化
租戶使用不同的虛擬映像以及應用程序、中間件和操作系統實例,但是共享物理服務器。近幾年,服務器虛擬化技術在基于x86的服務器上得到了廣泛應用,正在迅速地成為一種低成本的日常技術。多租戶的技術困難之一是供應新的租戶。為了供應新的租戶,服務供應商必須執行可能漫長且復雜的安裝和配置步驟。可以采用Virtual appliances(例如,VMWare Virtual Appliance for WebSphere Application Server Network Deployment V7.0 Open Beta),在其中包含預先配置的與租戶相關的操作系統和中間件,這有助于解決供應問題。
(5)在單獨的服務器上運行多個實例的 ASP模型
租戶只共享數據中心的基礎結構(比如供電和制冷),但是使用應用程序、中間件、操作系統和服務器的不同實例。在圖 3所示的示例中,租戶A、B和C使用3個不同的應用程序實例AppA、AppB和AppC,它們在與租戶相關的中間件實例、操作系統實例和物理服務器上運行。這種方法最適合那些要求為不同的租戶提供充分隔離和定制的工作負載和場景。
方法1、2和3都在多個租戶之間共享中間件和應用程序組件,只是程度不同,方法3提供最強的租戶隔離。共享中間件方法的運營成本相對較低,因為隨著資源共享程度的提高(服務器、中間件和操作系統),要管理的組件數量會減少。與共享中間件方法相比,服務器虛擬化不需要為啟用多租戶進行大量代碼開發。
有關多租戶技術的研究,有助于選擇合適的方法并準備適當的體系結構,從而逐步實現這些目標。
當前,安全問題成為制約SaaS全面興起的主要瓶頸。參考文獻[7]對SaaS模式下的數據安全進行了較全面的研究,對SaaS安全技術研究具有一定參考價值。企業用戶在選擇IT產品時,無論是傳統軟件還是基于SaaS的軟件服務,最先考慮的就是安全性[2],如圖4所示。
SaaS的安全性主要分兩個方面:技術安全和非技術安全。
技術安全即物理安全,從機房安全開始。機房的安全性包括氣體滅火、恒溫恒濕、聯網電子鎖防盜、24 h專人和錄像監控、網絡設備帶寬冗余、口令進入機房等。服務器和防火墻的負載平衡、數據庫集群和網絡儲存備份在近幾年也成為標準安全性技術。主流SaaS運營商多采用雙數據中心運營,其中一個機房數據中心為冗余備份。多城市多機房的模式可提高訪問速度,但因大大增加安全管理隱患和維護成本,很少被成熟的SaaS企業采用。
(1)數據庫安全
SaaS軟件系統普遍采用大型商用關系型數據庫和集群技術。在數據庫的設計上,多重租賃的軟件會有3種設計,每個客戶公司獨享一個數據庫instance,或獨享一個數據庫instance中的一個schema,或多客戶公司以隔離和保密技術原理共享一個數據庫instance的一個schema。幾乎所有SaaS軟件開發商都選擇后兩種方案,也就是說,所有用戶共享一個數據庫license,從而降低了成本。數據庫隔離的方式經歷了instance隔離、schema隔離、partition隔離、數據表隔離到在應用程序的數據邏輯層提供的根據共享數據庫進行用戶數據增刪改授權的隔離機制,從而在不影響安全性的前提下實現效率最大化。
(2)應用程序安全
應用程序的安全圍繞Web服務器展開,比如Apache、IIS等?;谶@些Web服務器,主流廠商多采用J2EE或.NET開發技術,并會采用特殊的Web服務器或服務器配置以優化安全性、訪問速度和可靠性。有些廠商會采用PHP、Ruby等開發技術,相比之下,J2EE和.NET集成了更多、更成熟的安全技術。同樣,Oracle、SQL Server和DB2在數據庫層面相比MySQL等數據庫也更加成熟。
身份驗證和授權服務是系統安全性的起點,J2EE和.NET自帶全面的安全服務。J2EE提供Servlet Presentation Framework,.NET 提供.NET Framework,并持續升級,因多重租賃帶來的整體升級效應,使所有使用者共同受益,并不需要支付額外的升級費用。應用程序通過調用安全服務的編程接口(API),對用戶進行授權和上、下文繼承。
在應用程序的設計上,安全服務通過維護用戶訪問列表、應用程序Session、數據庫訪問Session等進行數據訪問控制,并需要建立嚴格的組織、組、用戶樹和維護機制。
平臺安全的核心是用戶權限在各個SaaS應用程序中的繼承,Salesforce或八百客等廠商的產品自帶成熟的權限樹繼承技術,自2006年以來,已經實現大規模商業運營。而與第二種運營平臺模式類似的集成需要專業的定制開發,相應的中間件技術或SOA總線技術還未成熟。
ACL和密碼保護策略也是SaaS軟件成熟度的標志。客戶可在自己的系統中修改相關策略。有些廠商還推出了瀏覽器插件來保護客戶登錄安全。而在最近半年,國外廠商頻繁地開始讓用戶登錄后回答自己預設的秘密保護問題和答案,也是一種安全的保護策略,因國內對這種密碼保護策略的使用還不習慣,所以還沒有廣泛地推廣開。
(3)數據傳輸和客戶端安全
SaaS通過互聯網而非企業局域網來傳輸數據和表格。SaaS和已經普及的網上銀行和網銀支付都采用SSL加密技術,加密位數隨著硬件速度的提升而增加。主流廠商通常也會花大筆資金購買專用SSL加密設備。八百客、金蝶等國內廠商也提供類似網上銀行的U盾客戶端認證技術。
SaaS軟件都采用瀏覽器來訪問,普遍采用的安全技術包括Cookie加密、URL隨機碼、SQL等代碼的注入防范等技術。當然,瀏覽器及時升級也非常重要。
成熟的SaaS系統也推出了可離線使用的客戶端軟件。雖然Salesforce用“不用軟件”的口號吸引了很多關注,但其需要下載和安裝的離線版也擁有10%左右的使用率。像RightNow等其他廠商,在客戶端上做了更多的開發和實施工作。八百客的專用客戶端還做了呼叫中心、VoIP電話、短信、電子傳真和企業郵局的集成。這些專用客戶端多采用本地數據加密、SSL傳輸加密等安全技術。
相對而言,非技術安全才是最重要的,也是用戶當前最擔心的。把企業客戶或運營資料全盤委托給服務商保管,還會遇到一些非技術性的困境,就是誰可以保證機密資料不被泄漏。換句話說就是,服務商能否值得信任。SaaS的特點是由服務商完成所有的系統維護,當服務商提供服務時,技術人員可以很方便地接觸到用戶的商業數據,這時就存在著用戶對服務商的信任問題。
隨著互聯網的應用不斷深化,構建如圖5所示基于用戶視角的安全框架或安全解決方案也成為越來越多SaaS軟件運營商關注的話題[3]。有效地增強SaaS系統抵御風險的能力,提高SaaS系統整體運營效率是絕大多數SaaS運營商首要考慮的問題。
隨著互聯網的迅猛發展,特別是Web2.0的興起,將軟件作為一種服務形式提供給客戶的需求逐漸增加,軟件產業正在形成新的SaaS模式。SaaS模式使得客戶不再像傳統模式那樣在硬件、軟件、人員上花費大量的投資,而只需按照自己想要享受服務的時間,簽訂服務合同,并且支出一定的租賃費用,通過互聯網便可以享受到相應的硬件、軟件和維護服務,享有軟件的使用權及不斷升級,它是網絡應用最具效益的運營模式。
本文在介紹SaaS的起源與發展過程基礎上,重點研究了SaaS中多租戶的實現方法,并從技術與非技術兩方面對SaaS的安全性進行了較詳細的分析。
1 吳吉義,平玲娣,潘雪增.云計算:從概念到平臺.電信科學,2009,25(12)
2 計世資訊(CCW Research).2010年中國軟件運營服務(SaaS)與云計算市場發展狀況白皮書,2010
3 計世資訊 (CCW Research).2009—2010年中國軟件運營服務(SaaS)市場研究報告,2010
4 Fred Chong. Multi-tenancy and virtualization,http://blogs.msdn.com/b/fred_chong/archive/2006/10/23/multi-tenancy-andvirtualization.aspx,2010
5 高波.面向SOA的多租戶(Multi-Tenancy)技術的研究與實現.天津大學碩士學位論文,2006
6 Carl Osipov,Germán Goldszmidt,Mary Taylor.啟用多租戶的方法,http://www.ibm.com/developerworks/cn/webservices/ws-multitenantpart2
7 張勇亮.SaaS模式下的數據安全研究與實現.東北大學碩士學位論文,2009
8 賽迪咨詢.SaaS ERP選型遭受六大安全問題拷問.信息系統工程,2009(3)