潘 虎,熊 偉,2
(1.湖北文理學院 數學與計算機科學學院,湖北 襄陽 441053;2.武漢大學 軟件工程國家重點實驗室,湖北 武漢 430072)
基于MDA統一配置的SaaS元模型
潘 虎1,熊 偉1,2
(1.湖北文理學院 數學與計算機科學學院,湖北 襄陽 441053;2.武漢大學 軟件工程國家重點實驗室,湖北 武漢 430072)
為了適應用戶個性化與多元化的定制需求,基于SaaS的多租戶特性建立了一種由MDA統一配置的SaaS元模型,內容包括各種場景下的SaaS配置元模型和統一的用戶配置接口. 模型將各種配置場景參數轉化為元數據及其關系,讓SaaS模型進一步地抽象并統一起來. 設計了相應的原型系統進行規模實驗驗證. 結果表明:該方法能夠對系統進行有效的多租戶定制,可以滿足用戶對SaaS服務的特殊定制需求,降低了服務定制復雜度,適宜應用到大型SaaS系統中.
SaaS;多租戶;個性化定制;MDA
要在競爭中獲勝,企業必須保證業務的敏捷性,盡可能降低系統的服務代價[1-3]. 隨著云計算技術的發展和面向服務架構(SOA)技術的日漸成熟,SaaS模式使用外包方法降低了租戶費用(冷啟動具有較低代價,對市場反應具有敏捷性),贏得了多數企業的支持. SaaS模式的一個典型特征是“單實例多租賃”,對于每個租戶來說,實例像是只為自己工作. 通過給大量租戶供應服務能夠實現規模化定制. 這種統一的軟件服務方式通過按需定制,可以讓具有不同服務要求的租戶基于單實例構建定制流程和服務. 其中流程邏輯可以虛擬化并可以重用. 另外現存的大批不同性質的服務也應使用統一架構整合起來.
SaaS模式的服務定制過程在界面、流程、服務、數據等層次上比以往的服務定制模式都復雜,租戶的服務定制行為必須遵從這些層次間的大量依附和約束關系.
本文的第1節回顧了與本文相關的研究工作;第2節提出了各種場景下SaaS配置元模型;第3節提出了支持統一的用戶配置接口架構,通過實驗對本文提出的方法進行了評估;最后展示了未來的研究方向.
傳統模式的業務流程定制是針對服務組合、形式化驗證與流程演進等進行研究. SaaS模式下的服務定制研究剛起步,很多問題(包括安全策略、構造方法、定制方法、可擴展性等)才開始研究[4-7]. 文獻[8]中的復雜業務流定制框架將業務流程執行語言(BPEL)規范引入了SaaS業務流程定制,它獨立于BPEL引擎與Web服務,支持流程邏輯驗證,依照租戶提出的規則實現自適應. 文獻[9]提出了一種基于TLA的模型定制方法,主要關注對象是如何實現驗證. 文獻[10]中先設計了層次化定制框架(能夠描述流程、服務、數據等層次的定制活動及其之間的依賴關系并進行相應驗證,為提高定制效率,該框架還提供了推薦機制). 上述方法都將流程定制作為目標,并且對流程間的依賴規則進行驗證,確保了流程定制的正確性. 但是,流程定制僅僅是SaaS服務定制中的一種,在動態多變的網絡環境中,需要滿足更多用戶個性化的定制需求.
目前SaaS模型在“多租戶”特征下已支持功能、流程和界面的可配置,但缺乏將上述配置數據統一起來的辦法. 本文設計了一個MDA(Model Driven Architecture)驅動的統一配置SaaS元模型與相應體系結構. 將各種配置場景的參數轉化為元數據及其關系,使SaaS模型更進一步地抽象并統一起來. 然后使用了4個支持SaaS的開源項目進行實驗,驗證了本文方法的有效性.
2.1 研究場景
本文假定某項目組開發一個在線客戶管理系統(CRM)平臺. 考慮以下幾個場景:場景A:根據項目時間需求的緊迫性和現有技術儲備,采用面向對象方法,利用“Struts+Spring+Hibernate”開源框架進行開發,項目順利上線,由于采用了成熟技術,系統穩定可靠. 場景B:經過一段時間的業務發展,公司接手了若干類似項目,在原有系統的基礎上為這些項目定制開發多個系統,系統版本分支逐漸增多,公司需要響應多個項目的需求變更,版本管理越來越復雜. 公司通過抽象提取現有項目的共性需求,將原有項目轉型為支持功能可配置的產品. 場景C:又經歷了一些時日,公司需要支持的可配置能力變得更多起來,除了功能可配置,還希望支持流程、界面和數據的可配置. 為了維護方便,引入了SaaS的多租戶思想,以實現用戶深度定制. 另外,對于原有功能模塊進行重構并服務化,便于系統的復用、對外開放OpenAPI以及支持第三方開發.
2.2 配置擴展數據
為了適應實際業務個性化定制對于自定義擴展字段的需求,關系模式表可以用key/value方式轉化來實現可擴展性. 如圖1如示,可以為SaaS系統提供靈活的數據擴展.

圖1 擴展數據元模型 圖2 功能包元模型
2.3 配置功能
為提供規模化定制服務,SaaS需要支持功能的可配置性.

圖3 界面元模型
1)SaaS服務的碎片化.是功能配置實現的基礎,可以從兩個方面入手:第一是原子功能的劃分. 資源分解遵循原則是每個功能自有價值,并具有原子性(功能不重疊且不能形成依賴環). 功能的并集要完整覆蓋系統功能,功能劃分最好由價值驅動. 第二是功能描述和功能關系. 功能描述包括對功能名稱、關鍵字、內容、以及所依賴的功能列表的描述. 每個原子功能在系統內要求具有唯一關鍵字,實現功能引用和校驗. 2)針對租戶的特殊要求設計功能包.實時構建滿足需求的服務組合需要很高代價, 可以在線下根據用戶類型和場景聚類原子功能并打包,用戶可根據需要在功能包中選擇. 但是,由于原子功能具有依賴性,必須遵循高內聚、低耦合的原則. 3)功能驗證.包括功能驗證和互操作驗證,系統根據租戶定制的配置,遞歸查找其包含的功能包,并據此進行相關驗證. 功能包元模型如圖2所示.
2.4 配置界面
SaaS服務需要規模化自定制界面,用于配置系統菜單和頁面內容.
1)系統菜單配置. 出于個性化需要,不同租戶對于相同功能的菜單可能使用不同標示,對于菜單結構和分布可能會有不同要求.租戶可以定制唯一菜單,其中各個菜單項關聯一項原子功能. 菜單采用樹狀結構,同級菜單項為順序排列. 2)頁面內容配置. 租戶對界面都會提出特殊需求,包括頁面上元素的數量、順序、位置、含義,還需要支持數據可擴展性. 頁面內容的實現一般比較復雜,多采用標簽語言來描述. 界面元模型如圖3所示.
2.5 配置流程
通過改造工作流系統可以在支持多租戶的基礎上實現流程的可配置. 為方便性考慮,系統通過提供公用流程模板,租戶可以復制該模板并根據自身需要修改,設計出符合要求的工作流程. 另外,由于租戶流程是私有的,其他租戶應該不可見,因此要確保租戶間的數據隔離. 流程元模型如圖4所示.

圖4 流程元模型

圖5 配置數據元模型

圖6 配置數據元模型用例
2.6 配置數據管理
一個完整的SaaS應用有很多配置需要. 如果配置達到原子功能,系統業務邏輯的實現會過于復雜,用戶體驗也差,實現系統可配置的成本較高. 根據MDA核心思想,基于模型所在領域提取一個相對核心的領域模型. 經過抽象發現在系統的各種配置場景下(數據擴展、功能、界面、流程可配置等),表面上配置參數各不相同,實際上仍然存在很多共性. 如果采用Key/value方案,各種配置場景的實現完全一樣. 因此,可以實現統一的接口,簡化實現系統可配置性的復雜度,同時保證統一的配置規劃和管理風格. 配置數據元模型如圖5所示.
圖5中配置元數據間的關系為包含關系、依賴關系和關聯關系. ConfigType表示類別. 類別包括表、原子功能、功能包、菜單、頁面、頁面元素、流程等,每個類別對應一個處理類,負責處理相應配置元數據. ConfigMeta表示可共享屬性. MetaProperty表示私有屬性. 以CRM為例,如圖6所示,其中箭頭表示關聯. 配置元數據與系統設計緊密關聯,必須根據系統的規劃設計確定可配置點,才能定義出配置元數據內容.
2.7 租戶配置數據
租戶配置數據即租戶定制配置信息,包括自定義菜單、自定義界面元素、自定義流程、數據表擴展字段、租戶購買包等. 由系統管理員設置租戶購買包,其他信息均由租戶管理員配置. 租戶元模型如圖7所示.
在一套統一的租戶配置接口下,管理員可以輕松設置和修改相應配置以適應各種場景,為用戶提供更好的服務. 運行結構如圖8所示. 可以通過界面元模型實現系統菜單定制與頁面定制,通過擴展數據元模型實現擴展數據引擎并提供對于擴展數據的查詢、使用、提交和檢查等支持,通過功能包元模型實現功能引擎(根據租戶定制的功能包找到所有原子功能集合),更進一步通過結合租約與流程實現配置數據和工作流引擎的融合.

圖7 租戶元模型 圖8 可配置系統的運行結構
基于統一配置的SaaS元模型開發出了相應的原型系統. 為評估此方法,實驗采用如下配置環境:1)該集群包括8個節點,每個節點有64位8核CPU和16GB RAM;2)所有節點都用CentOS 6.2和Java 1.6.022;3)開發工具包括Java 5,工作流引擎Yawl版本為2.3,數據庫采用MySQL 5.1,使用Mule ESB 2.2.1作為服務總線,有效地串聯起各個模塊. 為了比較本方法的用戶滿意度,使用了4個支持SaaS的開源項目(SugarCRM、GladCRM、vTigerCRM、CloudCRM)進行驗證,編號為CRM 1、CRM 2、CRM 3、CRM 4. 課題組中的4個成員(編號為U1、U2、U3、U4)對4個開源項目都很熟悉,閱讀過它們的源碼,熟悉項目架構,規定運用“優、良、中、差”四級評斷標準對4個開源項目的用戶滿意度分別給出貢獻等級,未使用本方法的情況為M1,使用了為M2. 最后匯總如表1所示.
通過比較在租戶數量不同時,使用與未使用以上方法的平均響應時間,進一步檢驗以上方法在租戶規模化定制下的性能. 結果如圖9所示.

圖9 多租戶下定制性能

表1 用戶滿意度比較
從圖9中可以看出,使用統一配置方法優于未使用統一配置方法. 并且隨著定制規模的擴大,定制所需要的響應時間會逐漸增加,但變化幅度較小,便于將其運用到大型系統中.
此項研究提出了一種基于MDA統一配置的SaaS元模型及其系統架構,包括配置擴展數據,功能配置過程,系統菜單和頁面內容配置,配置工作流程,配置數據管理和租戶配置數據. 經過實驗驗證了基于以上元模型構建的原型系統,滿足用戶對于SaaS服務的特殊定制需求. 通過采用統一配置方法,能有效降低服務定制復雜度,驗證了它適用于大型系統中. 下一步研究將繼續深入探討SaaS服務的交互行為特性,從多層次分析交互行為產生的涌現行為及其調控機理.
[1] KANG S,MYUNG J,YEON J,et a1. A general maturity model and reference architecture for SaaS service [J].Lecture Notes in Computer Science,2010,5982(2):337-346.
[2] JACOBS D. Enterprise software as service [J].ACM Queue. 2005,3(6):36-42.
[3] JACOBS D,AULBACH S. Ruminations on multi-tenant databases [J].BTW,2007(103):514-521.
[4] FREDERICK C,GIANPAOLO C,ROGER W. Multi-Tenant Data Architecture[R].Microsoft Corporation,2006:36-45.
[5] AULBACH S,GRUST T,JACOBS D,et a1. Multi-Tenant Databases for Software as a Service:Proceedings of SIGMOD’08 [C].ACM,2008,25(7):1195-1206.
[6] AULBACH S,JACOBS D,KEMPER A,et a1. A Comparison of Flexible Schemas for Software as a Service:Proceedings of SIGMOD’09 [C].ACM,2009:881-888.
[7] FRANCLIN S F,IOANNIS M. D,JOHN F S I. A New Hybrid Schema-Sharing Technique for Multitenant Applications:Proceedings of ICDIM 2009[C].IEEE,2009:1-6.
[8] YULIANG S,SHUAI L,QINGZHONG L,et a1. A flexible business process customization framework for SaaS:Proceedings of ICIE 2009[C].IEEE,2009,2(6):350-353.
[9] LUAN S,SHI Y,WANG H. A mechanism of modeling and verification for SaaS customization based on TLA[J].Lecture Notes in Computer Science,2009(5854):337-344.
[10] SHI Y L,LUAN S,LI Q Z,et a1. TLA based customization and verification mechanism of business process for SaaS[J].Chinese Journal of Computers,2010,33(11):2055-2067.
(責任編輯:陳 丹)
A SaaS Meta Model of Unified Configuration Based on MDA
PAN Hu1, XIONG Wei1,2
(1.College of Mathematical and Computer Sciences, Hubei University of Arts and Science, Xiangyang 441053, China; 2.State Key Lab of Software Engineering, Wuhan University, Wuhan 430072, China)
This paper establishs a SaaS meta model of unified configuration based on MDA (Model Driven Architecture) according to multi-tenancy features, in order to meet the requirements of personalized customization for SaaS tenants. The content includes SaaS configuration meta model and unified user configuration interface in various scenarios. The model translates parameters of various deployment scenarios into metadata and its relationship,making the SaaS model more abstract and unified. To validate our approach, large-scale experiments are conducted based on a developed prototype system. The results show that the architecture can customize service effectively in a multi-tenant environment, meeting the user’s special customization demand for SaaS services, reducing the complexity of service customization, suitable for application to large scale systems.
SaaS; multi-tenant; personalized customization; MDA
2016-07-04;
2016-11-20
國家自然科學基金項目(61172084)
潘 虎(1975— ),男,湖北襄陽人,湖北文理學院數學與計算機科學學院講師.
TP311.5
A
2095-4476(2017)08-0010-05