從系統(tǒng)架構(gòu)的角度來看,要設(shè)計一個符合實際業(yè)務(wù)需求的能夠支持多用戶同時訪問的SaaS系統(tǒng)就必須關(guān)注以下三大要素:可擴展(Scalable)、高效的多用戶支持(Multi-Tenant-Efficient)、可配置(Configurable)。
可擴展意味著最大程度的提高系統(tǒng)并發(fā)性,更有效的使用系統(tǒng)資源。比如說應(yīng)用,優(yōu)化資源鎖的持久性,使用無狀態(tài)的進(jìn)程,使用資源池來共享線和數(shù)據(jù)庫連接等關(guān)鍵資源,緩存參考數(shù)據(jù),為大型數(shù)據(jù)庫分區(qū)等技術(shù)。
高效的多客戶支持則是設(shè)計基于SaaS模式的系統(tǒng)中最為重要的一環(huán)。比如說當(dāng)一個用戶試圖通過某個基于SaaS模式的客戶關(guān)系管理應(yīng)用(CustomerRelationshipManagement)來訪問本公司的客戶數(shù)據(jù)時,它所連接的這一基于SaaS模式的客戶關(guān)系管理應(yīng)用可能正同時被來自不同企業(yè)的成百上千個終端用戶所使用,此時所有用戶完全不知道其他并發(fā)用戶訪問的存在。這種在SaaS應(yīng)用中極為常見的場景就要求基于SaaS模式的系統(tǒng)可以支持在多用戶間最大程度共享資源的同時嚴(yán)格區(qū)分和隔離屬于不同客戶的數(shù)據(jù)。
當(dāng)在傳統(tǒng)的本地安裝軟件的使用環(huán)境中談?wù)摽膳渲眯詴r,直接修改部分代碼進(jìn)行來適應(yīng)當(dāng)前用戶的需求是比較常見的解決方案。但在基于SaaS模式的使用環(huán)境中,如果業(yè)務(wù)應(yīng)用的任何部分被修改了,則這一修改將可能同時影響所有當(dāng)前客戶的使用環(huán)境。因此,一般而言在SaaS模式的使用環(huán)境中,客戶使用元數(shù)據(jù)(Metadata)來為其終端用戶配置系統(tǒng)的界面以及相關(guān)的交互行為。由此可見,設(shè)計SaaS系統(tǒng)的一大挑戰(zhàn)就是要確保配置軟件應(yīng)用的過程本身是簡單且易于為客戶所直接理解并使用的,而且應(yīng)該無需考慮付出任何額外的開發(fā)和維護成本。
上述三大要素固然是構(gòu)建一個成熟的單實例多用戶的SaaS系統(tǒng)的關(guān)鍵因素,但設(shè)計一個成熟的系統(tǒng)并不是做一個簡單的加法。開發(fā)一個僅符合上述一條或二條要素但同時滿足所有客戶商業(yè)需求的SaaS系統(tǒng)一樣具有很大的實用價值。不過這種情況應(yīng)該僅僅在如下前提下成立:即如果要強行使該SaaS系統(tǒng)符合所有上述要素的話就會無法做到成本最優(yōu)(Cost-Effective)。
二.SaaS系統(tǒng)的成熟度模型一般來說按照目前業(yè)界通行標(biāo)準(zhǔn),基于SaaS模式的系統(tǒng)可以按照其設(shè)計成熟度分成以下四種程度,其中每一級與前一級的區(qū)別則在于是否引入了前述三大要素中的部分或全部。
2.1第一級定制
第一級成熟度類似于上世紀(jì)90年代初的應(yīng)用服務(wù)提供商(ApplicationServiceProvider)所采用的軟件交付模式。在符合這一級成熟度的系統(tǒng)中,每個客戶擁有一個為其定制的應(yīng)用實例,這一單獨的實例運行在SaaS服務(wù)提供商的硬件之上。從系統(tǒng)架構(gòu)而言,這一級別的SaaS系統(tǒng)和傳統(tǒng)的本地安裝軟件非常相似,同一客戶的不同終端用戶使用客戶端軟件連接同一個應(yīng)用實例,但這一客戶實例和服務(wù)提供商同時運行的其它客戶的應(yīng)用實例相比是完全獨立的。
因此,傳統(tǒng)的服務(wù)器-客戶端的應(yīng)用可以在花費少量開發(fā)資源和無需重新設(shè)計整個架構(gòu)的前提被改造成符合這一級別的SaaS模式的系統(tǒng)。雖然相比起其它更為成熟的SaaS模式的系統(tǒng),這一類型的系統(tǒng)所能給SaaS服務(wù)提供商帶來的收益有限,但它確實可以讓SaaS服務(wù)提供商通過整合服務(wù)器硬件和管理來降低成本,因此目前有不少國內(nèi)的軟件廠商就嘗試應(yīng)用這種手段將其已有的傳統(tǒng)系統(tǒng)改造為相應(yīng)的SaaS系統(tǒng)。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com