陳繼祥
(亳州職業(yè)技術(shù)學(xué)院, 安徽 亳州 236800)
軟件定制在SaaS模式下的應(yīng)用研究
陳繼祥
(亳州職業(yè)技術(shù)學(xué)院, 安徽 亳州 236800)
隨著云計算技術(shù)和企業(yè)信息化建設(shè)的快速發(fā)展, SaaS模式下的軟件定制逐漸以其獨特的優(yōu)點受到中小企業(yè)的歡迎.基于此背景下, 介紹了當(dāng)前企業(yè)進(jìn)行軟件定制的兩個重要方面——數(shù)據(jù)定制和邏輯定制, 構(gòu)建了一個基于適合SaaS 應(yīng)用的業(yè)務(wù)邏輯定制框架, 為中小企業(yè)方便、快速的定制軟件提供了一個理論參考依據(jù).
SaaS; 數(shù)據(jù)定制; 業(yè)務(wù)邏輯定制
隨著信息技術(shù)的快速發(fā)展, 中小企業(yè)為了能夠?qū)崿F(xiàn)信息快速流通, 以便資源共享, 提高工作效率, 實現(xiàn)高效管理, 降低成本, 增強(qiáng)自身的競爭力, 開展信息化建設(shè)是必選的途徑.但是, 針對不同的企業(yè), 開展信息化建設(shè)的模式和方法各不相同, 特別是針對一些中小企業(yè)而言, 很難有足夠的財力和人力去開展信息化建設(shè).作為一種新型的軟件架構(gòu)模式, SaaS模式逐漸成為了中國中小企業(yè)進(jìn)行軟件定制的首選.據(jù)計世資訊發(fā)布的最新調(diào)查數(shù)據(jù)報告顯示, 2012年中國SaaS市場規(guī)模達(dá)到了584.3億元, 增長率為30.2%.由此可見, SaaS模式下進(jìn)行軟件定制必將成為未來軟件行業(yè)發(fā)展的新方向.
SaaS的意思是軟件即服務(wù), 它是通過網(wǎng)絡(luò)向客戶提供軟件服務(wù)的商業(yè)模式.作為一種新型的軟件布局模型[1].軟件租戶不需要向軟件供應(yīng)商購買相應(yīng)的硬件, 只要根據(jù)自己的需要向SaaS平臺運(yùn)營商或者軟件供應(yīng)商訂購自己需要的軟件功能模塊, 即可獲得基于 Web的軟件服務(wù), 可以滿足不同軟件租戶的個性化軟件定制需求.軟件租戶不需要自己進(jìn)行硬件和軟件維護(hù), 相對于傳統(tǒng)軟件模式, SaaS模式針對企業(yè)信息化建設(shè)具有更大的優(yōu)勢,更能滿足企業(yè)用戶的個性化需求[1], SaaS模式傳統(tǒng)軟件模式區(qū)別如表1所示:
表1 SaaS模式與傳統(tǒng)軟件模式區(qū)別表
目前, 企業(yè)在 SaaS 模式下定制軟件時, 主要包括數(shù)據(jù)定制和業(yè)務(wù)邏輯定制.基于 SaaS 模式下的數(shù)據(jù)定制是指軟件租戶可以通過一定的技術(shù)來實現(xiàn)自身的數(shù)據(jù)存儲和擴(kuò)展.業(yè)務(wù)邏輯定制是指不同的軟件租戶可以根據(jù)自己的往來業(yè)務(wù)情況進(jìn)行業(yè)務(wù)邏輯定制.
SaaS 軟件服務(wù)商或供應(yīng)商面對的是來自不同行業(yè)、不同領(lǐng)域的用戶, 他們各自需要的數(shù)據(jù)差異很大.即便同一個租戶可能也會隨著自己業(yè)務(wù)對象的變化, 所需要的數(shù)據(jù)結(jié)構(gòu)也會跟著變化.因此, SaaS軟件供應(yīng)商不僅要滿足軟件租戶這種個性化數(shù)據(jù)定制需求, 又要保證客戶自身的數(shù)據(jù)安全.在 SaaS模式下, 設(shè)計安全穩(wěn)定的數(shù)據(jù)架構(gòu)是十分必要的.在 SaaS模式下, 如果多個租戶共享一個實例時, 如何做好租戶之間的數(shù)據(jù)隔離和共享是值得思考的.租戶之間共享的公共數(shù)據(jù)無論采取那種存儲方式, 租戶都不能隨意更改.租戶數(shù)據(jù)存儲架構(gòu)一般按照隔離和共享的情況分為三類:
這種存儲結(jié)構(gòu)一般是指一個租戶對應(yīng)一個數(shù)據(jù)庫, 軟件租戶可以按照自己的需求進(jìn)行設(shè)計數(shù)據(jù)結(jié)構(gòu), 是一種能夠?qū)崿F(xiàn)最安全數(shù)據(jù)隔離的數(shù)據(jù)架構(gòu).在這樣數(shù)據(jù)模式下, 軟件租戶可以根據(jù)自己的業(yè)務(wù)情況進(jìn)行數(shù)據(jù)的擴(kuò)展.軟件租戶的數(shù)據(jù)備份同樣使用的是專用的數(shù)據(jù)庫, 不易被其他軟件租戶意外訪問, 方便軟件租戶恢復(fù)數(shù)據(jù),安全系數(shù)比較高.
這種數(shù)據(jù)存儲架構(gòu)可以共享數(shù)據(jù)庫, 但是每個軟件租戶擁有一套單獨的數(shù)據(jù)表架構(gòu), 存儲在單獨的模式中.如圖 1所示, 這種架構(gòu)下, 軟件租戶可以自由對數(shù)據(jù)架構(gòu)下的表格進(jìn)行修改.與獨立數(shù)據(jù)庫一樣, 這種數(shù)據(jù)架構(gòu)也能快速進(jìn)行數(shù)據(jù)隔離, 支持的軟件租戶數(shù)量得到了增加, 成本相對減少.但是, 這種類型數(shù)據(jù)維護(hù)比較復(fù)雜,一旦數(shù)據(jù)庫出現(xiàn)錯誤, 恢復(fù)軟件租戶的數(shù)據(jù)時, 將要花費(fèi)很長的時間.
圖1 共享數(shù)據(jù)庫、獨立數(shù)據(jù)架構(gòu)
共享數(shù)據(jù)庫、共享數(shù)據(jù)架構(gòu)是指軟件租戶的數(shù)據(jù)存放在同一個數(shù)據(jù)庫的同一個表中[2].如圖2所示.一張表中存放著不同軟件租戶的數(shù)據(jù)記錄, 軟件租戶之間的信息通過租戶號來進(jìn)行區(qū)分.在這樣數(shù)據(jù)架構(gòu)下, 所有軟件租戶的數(shù)據(jù)共享級別比較高, 但是數(shù)據(jù)的隔離性比較差, 給數(shù)據(jù)的安全帶來一定的風(fēng)險.比較適合對安全要求不太高, 存儲數(shù)據(jù)信息比較少的軟件租戶.
圖2 共享數(shù)據(jù)庫、共享數(shù)據(jù)架構(gòu)
一般情況下,SaaS軟件服務(wù)商或供應(yīng)商采取單實例多租賃的形式為多個軟件租戶服務(wù).針對客戶業(yè)務(wù)數(shù)據(jù)情況, 我們可以發(fā)現(xiàn)人們提出了以上三種數(shù)據(jù)基本存儲方式主要區(qū)別如表2所示:
表2 SaaS模式三種數(shù)據(jù)基本存儲方式比較
從表2 中可以看出 獨立數(shù)據(jù)庫數(shù)據(jù)隔離、成本消耗、維護(hù)級別都比較高, 數(shù)據(jù)擴(kuò)展、便利程度比較簡單, 但是共享級別比較低.共享數(shù)據(jù)庫、獨立數(shù)據(jù)架構(gòu)處在兩者之間, 而共享數(shù)據(jù)庫、共享數(shù)據(jù)架構(gòu), 數(shù)據(jù)隔離、成本消耗、維護(hù)級別都比較低, 數(shù)據(jù)擴(kuò)展、便利程度比較復(fù)雜, 但是共享級別比較高.因此, SaaS 軟件服務(wù)商要根據(jù)具體情況有選擇的使用以上數(shù)據(jù)架構(gòu).在共享數(shù)據(jù)庫, 共享數(shù)據(jù)架構(gòu)中, 多個軟件租戶共用一個數(shù)據(jù)表, 一般不允許軟件租戶擅自修改數(shù)據(jù)結(jié)構(gòu).在傳統(tǒng)軟件應(yīng)用中, 一般而言, 軟件租戶對應(yīng)的是各自不同的實例, 軟件租戶一般通過名稱值、預(yù)分配字段、數(shù)據(jù)透視表、XML字段拓展等方式進(jìn)行更改自己的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)擴(kuò)展.
預(yù)分配字段[3]是指在軟件租戶需要擴(kuò)展數(shù)據(jù)的表中預(yù)設(shè)一定數(shù)量的字段.當(dāng)軟件租戶進(jìn)行數(shù)據(jù)擴(kuò)展時, 可以使用其中的字段對擴(kuò)展的數(shù)據(jù)進(jìn)行保存.但是, 表中預(yù)設(shè)的字段的大小和多少要適中, 因為來自不同行業(yè)的軟件租戶所開展的業(yè)務(wù)也各不相同.如果預(yù)存的字段過大, 對于一些業(yè)務(wù)量比較小的軟件租戶, 就會產(chǎn)生空間的浪費(fèi); 相反, 如果預(yù)存空間過小, 對于一些日常業(yè)務(wù)量比較大的軟件租戶, 則不能滿足其進(jìn)行數(shù)據(jù)擴(kuò)展的需要.
名稱值對[4]解決了預(yù)分配字段的難題, 它使用另外一種表把擴(kuò)展的數(shù)據(jù)保存下來, 實現(xiàn)了原數(shù)據(jù)和擴(kuò)展數(shù)據(jù)的分離.同時, 將數(shù)據(jù)表中的兩種數(shù)據(jù)關(guān)聯(lián)起來.理論上保障了數(shù)據(jù)的無限擴(kuò)展.在實際應(yīng)用中, 也暴露了很多缺點, 在進(jìn)行數(shù)據(jù)插入、新增的過程中, 要做數(shù)據(jù)分析, 必須通過關(guān)聯(lián)的表格才能獲得完整的業(yè)務(wù)信息, 這樣會增加數(shù)據(jù)訪問負(fù)擔(dān).
數(shù)據(jù)透視表[5]是一種通用的數(shù)據(jù)結(jié)構(gòu).數(shù)據(jù)透視表中可以有各種數(shù)據(jù)列, 而且每列的數(shù)據(jù)類型也是各種各樣的.這種方法也能避免預(yù)分配字段的浪費(fèi)現(xiàn)象.但是通過索引把所有數(shù)據(jù)轉(zhuǎn)換成真實的數(shù)據(jù)類型是影響訪問性能的.
XML字段拓展[6]是一種基于XML 共享數(shù)據(jù)庫、共享架構(gòu)的數(shù)據(jù)模型.它是通過引入XML來進(jìn)行數(shù)據(jù)處理.這種方法能夠?qū)崿F(xiàn)數(shù)據(jù)的擴(kuò)以及靈活的數(shù)據(jù)查詢, 但是,在進(jìn)行XML 的解析時也會降低數(shù)據(jù)庫的訪問性能.
一般情況下, 在不考慮預(yù)分配字段這一數(shù)據(jù)模型固有缺陷的前提下, 如果是基于索引字段值的查詢, 則采取預(yù)分配字段或者名稱值都是比較合適.相反, 如果在應(yīng)用中的操作是基于非索引字段值的查詢, 則采取數(shù)據(jù)透視表比較好.如果在應(yīng)用過程中, 主要是對數(shù)據(jù)進(jìn)行更新操作, 采取預(yù)分配字段或者數(shù)據(jù)透視表都是不錯的選擇.
軟件租戶在定制軟件時, 要結(jié)合自身業(yè)務(wù)范圍和實際情況, 因為不同行業(yè)的企業(yè), 業(yè)務(wù)規(guī)則不同, 因此, 構(gòu)建一個適合所有行業(yè)的企業(yè)進(jìn)行邏輯定制的業(yè)務(wù)規(guī)則模板是不切合實際的.為了能夠使中小企業(yè)快速定制軟件,本文結(jié)合領(lǐng)域工程方法, 針對已經(jīng)定義的業(yè)務(wù)規(guī)則模板, 構(gòu)建了一個相對比較適合SaaS應(yīng)用的企業(yè)業(yè)務(wù)邏輯定制框架, 以方便軟件租戶進(jìn)行網(wǎng)絡(luò)在線業(yè)務(wù)邏輯定制.框架的具體架構(gòu)如圖3所示:
圖3 面向 SaaS 應(yīng)用的業(yè)務(wù)邏輯定制框架
構(gòu)建的面向SaaS 應(yīng)用的業(yè)務(wù)邏輯定制框架主要包含以下幾個部分[7].
1)規(guī)則定義器:軟件租戶可以通過它進(jìn)行網(wǎng)絡(luò)在線業(yè)務(wù)規(guī)則編輯, 是一個面向軟件租戶的可視化業(yè)務(wù)規(guī)則編輯頁面.
2) 規(guī)則翻譯器:它可以根據(jù)規(guī)則的驗證引擎情況, 把用自然語言描述的不易辨別的業(yè)務(wù)規(guī)則轉(zhuǎn)化成可以識別的業(yè)務(wù)規(guī)則, 是一個轉(zhuǎn)換工具.
3) 租戶業(yè)務(wù)對象表:用來存放與軟件租戶相關(guān)的業(yè)務(wù)規(guī)則及對象等.
4) 規(guī)則引擎:它是根據(jù)業(yè)務(wù)規(guī)則來執(zhí)行業(yè)務(wù)決策的工具, 可以用來進(jìn)行接受數(shù)據(jù)輸入, 解釋業(yè)務(wù)規(guī)則等.
5) 規(guī)則文件庫:它包含了若干個已經(jīng)被校驗好的規(guī)則包, 以便規(guī)則引擎使用.
6) 數(shù)據(jù)庫:數(shù)據(jù)信息的集合, 它是用來存放數(shù)據(jù)的, 包括應(yīng)用數(shù)據(jù)和規(guī)則數(shù)據(jù).
租戶在定制軟件時, 都會根據(jù)自己獨特的業(yè)務(wù)需求進(jìn)行定制, 這樣會導(dǎo)致大量的業(yè)務(wù)對象.實際上, 對于一些業(yè)務(wù)量比較小的軟件租戶來說, 沒有必要預(yù)先定義大量的規(guī)則引擎, 因為它們需要的業(yè)務(wù)對象可能很少, 定義大量的規(guī)則引擎會降低系統(tǒng)執(zhí)行速度.因此, 基于 SaaS模式的業(yè)務(wù)邏輯定制框架, 給每個軟件租戶都配備了一個存放業(yè)務(wù)隊列的業(yè)務(wù)對象表, 軟件租戶在定義規(guī)則時, 首先核實業(yè)務(wù)對象表中是否有相關(guān)業(yè)務(wù), 如有則調(diào)用規(guī)則引擎, 沒有則放棄, 這樣, 大大提高了系統(tǒng)的性能.
隨著信息技術(shù)的快速發(fā)展以及各類企業(yè)信息化建設(shè)的廣泛應(yīng)用, SaaS以其低成本、按需使用、不需維護(hù)和按需付費(fèi)等優(yōu)勢, 越來越受到中小企業(yè)的歡迎.軟件租戶的個性化需求為 SaaS發(fā)展帶來了不小的挑戰(zhàn).本文只是對 SaaS模式下軟件的定制進(jìn)行了初步的探索, 在今后的工作中, 仍需大家不停的努力和學(xué)習(xí), 以使現(xiàn)有的定制技術(shù)日趨完善.
[1]蘇飛.基于中小企業(yè)特性的SaaS應(yīng)用模式研究[D].北京: 北京工業(yè)大學(xué), 2012.
[2]侯一兵.基于SaaS服務(wù)模式的中小企業(yè)信息化基礎(chǔ)平臺系統(tǒng)的研究與實現(xiàn)[J].軟件導(dǎo)刊, 2010(12): 68-69.
[3]羅小利, 吳清烈, 任鴻美.SaaS軟件服務(wù)基于大規(guī)模定制的數(shù)據(jù)層架構(gòu)研究[J].電信科學(xué), 2012(4): 50-52.
[4]葉偉, 趙進(jìn), 葉軍, 等.互聯(lián)網(wǎng)時代的軟件革命—SaaS 架構(gòu)設(shè)計[M].北京: 電子工業(yè)出版社, 2009.
[5]陳偉.面向SaaS 應(yīng)用的軟件定制技術(shù)研究[D].上海: 上海交通大學(xué), 2011.
[6]余文斌.一種基于XML共享數(shù)據(jù)庫、共享架構(gòu)的SaaS解決方案[J].計算機(jī)與現(xiàn)代化, 2008(4): 8-10.
[8]陳偉, 沈備軍, 戚正偉.面向SaaS 應(yīng)用的業(yè)務(wù)邏輯定制框架的研究與實現(xiàn)[J].計算機(jī)應(yīng)用研究, 2011(1): 156-158.
The research and application of software customization under SaaS model
CHEN Ji-xiang
(Bozhou Vocational and Technical College, Bozhou 236800, P.R.C.)
With the rapid development of cloud computing technology and enterprise information technology, the software customization of SaaS model is becoming more and more popular with the medium and small enterprises for its unique advantages.Based on this situation, this paper introduces the two important aspects of data customization and logic customization which are often used in the software customization by enterprises.In this paper, based on SaaS, the frame of logic customization used for business is constructed, which is a theoretical reference for the medium and small enterprises to make a convenient and fast software customization.
SaaS; data customization; business logic customization
TP393.09
A
1003-4271(2014)02-0288-04
10.3969/j.issn.1003-4271.2014.02.23
2013-12-24
陳繼祥(1979-), 男, 安徽亳州人, 講師, 碩士; 研究方向: 計算機(jī)應(yīng)用; Emial: bzzhuangzhuang001@163.com.
安徽省2012年高等學(xué)校省級優(yōu)秀青年人才項目編號(2012SQRL249).