王新穎
?
基于云計算的Web系統(tǒng)架構設計
王新穎
(湖北文理學院 數學與計算機科學學院,湖北 襄陽 441053)
針對傳統(tǒng)Web系統(tǒng)架構存在的問題,結合湖北文理學院的云計算平臺優(yōu)勢,提出了一個基于云計算的Web系統(tǒng)架構. 該架構具有可伸縮優(yōu)點,支持一云多屏顯示和離線應用機制. 借助多租戶思想,該架構可向用戶提供個性化和多樣化的規(guī)模化定制.
云計算;Web系統(tǒng);多租戶
隨著網絡技術的快速發(fā)展,每個企事業(yè)單位均建有自己的Web系統(tǒng),以適應現今的信息化需要. 然而,搭建傳統(tǒng)的Web系統(tǒng)架構,企事業(yè)單位在購買Web軟件產品的同時,還需要購買服務器設備,并且對其維護成本高昂. 這對于中小企事業(yè)單位來說,是不可承受的[1]. 首先,在建立Web系統(tǒng)初期,需要一次性的支付軟件產品費用和服務器設備費用,對于中小企事業(yè)單位來說是個不小的經濟壓力. 其次,在Web系統(tǒng)運行過程中,要安排一名專職計算機維護人員對系統(tǒng)進行日常維護,增加了企事業(yè)單位的信息化成本. 并且對于軟件開發(fā)者來說,按照圖1所示的傳統(tǒng)Web系統(tǒng)架構開發(fā)軟件產品,由于不能批量化生產,開發(fā)成本和維護成本巨大,盈利空間越來越小.
圖1 傳統(tǒng)的Web系統(tǒng)架構
針對上述問題,結合湖北文理學院數學與計算機科學學院建立的云計算平臺優(yōu)勢,筆者在本文中探討設計基于云計算的Web系統(tǒng)架構. 并借助多租戶思想為用戶提供個性化和多元化的規(guī)?;ㄖ?
基于云計算的Web系統(tǒng)架構包括IaaS平臺、PaaS平臺和SaaS平臺三個組成部分,如圖2所示. IaaS平臺提供存儲和計算等硬件資源,PaaS平臺提供資源管理、設備管理、監(jiān)控管理、安全管理以及計費管理等平臺服務,SaaS平臺對外提供Web應用程序服務. 用戶可以利用PC、便攜電腦、智能手機和PDA等終端訪問SaaS平臺的Web系統(tǒng),從而實現了提供軟件產品向提供軟件服務的轉變. 本文主要基于云計算的SaaS平臺的Web系統(tǒng)應用架構設計探討.
Web系統(tǒng)在SaaS平臺上構建,支持多租戶模式,只需運行一個應用系統(tǒng)實例,就可以滿足不同單位的不同用戶,做到一次開發(fā),多次使用,大大節(jié)約了開發(fā)成本和維護費用,如圖3所示. 本架構基于多租戶模式[2],可向用戶提供個性化和多樣化的定制服務[3];隨著用戶量的動態(tài)變化,本架構具備自動伸縮的能力[4];由于多租戶共享一個應用實例,安全性顯得尤為重要;為了讓用戶具有好的應用體驗,本架構支持離線應用和一云多屏顯示. 以下就多租戶設計、個性化和多元化定制、可伸縮機制、安全機制、離線應用和一云多屏等方面展開討論.
多租戶實現有三種模式:“獨立數據庫”模式、“共享數據庫隔離數據架構”模式、“共享數據庫共享數據架構”模式. 基于維護和設備購置成本的考慮,本架構采用“共享數據庫共享數據架構”模式. 實現多租戶的具體方法是:首先建立一個租戶表(Tenant),租戶數據表如表1所示;再在其它與租戶有關的數據表中增加TenantID字段,比如在用戶表中添加TenantID字段. 用戶數據表如表2所示.
圖2 基于云計算的Web系統(tǒng)架構
表1 租戶數據表
表2 用戶數據表
在網絡化和服務化背景下,軟件生產的目標是滿足個性化和多元化的大眾需求的規(guī)模化定制. 對于Web系統(tǒng),不同的單位組織在使用過程中,從數據、功能和界面等方面都存在一定的差異. 因此,各個租戶可以根據自身的特點,從如下三個方面進行個性化定制:1)數據定制. Web系統(tǒng)在提供Web服務過程中,只運行一個實例,不同的租戶共享這個實例. 不同的租戶根據自己的工作特點,往往需要保存特有的數據. 本架構采用預分配定制字段方式,允許用戶進行數據定制操作,從而實現了不同租戶在數據上的個性化定制. 2)功能定制. SaaS軟件面對的是大多數租戶,功能強大. 不同的租戶可以根據自己的實際情況定制不同的功能包,按需定制,按需付費,這正充分體現了網絡化軟件的特征. 3)界面定制.不同的租戶希望界面展現自己單位的風格特點,因此,租戶可以在系統(tǒng)上從菜單和頁面元素兩方面進行個性化定制.
基于云計算的Web系統(tǒng)架構提供了可伸縮能力,隨著用戶量的動態(tài)變化,系統(tǒng)可以自動實現應用服務器的快速擴展. 用戶量在5000個以下時,只需要一臺應用服務器即可滿足訪問需求. 如果在某一個時間點用戶的訪問量急劇增加,負載均衡機制會快速啟動更多的應用服務器以滿足用戶需求. 相反,如果用戶的訪問量變小,負載均衡機制會關閉部分應用服務器以降低消耗.
身份認證 身份認證是系統(tǒng)安全的基礎,是對客戶身份的識別和認證. 通過身份認證,能夠阻止非法用戶使用系統(tǒng)或冒充他人登錄系統(tǒng). 在Web系統(tǒng)中,采用“非集中式認證”方式,實現了用戶的“單點登錄”,一次登錄可以全網漫游,增強了系統(tǒng)的友好性.
權限管理 權限管理就是控制用戶是否有權限使用系統(tǒng)的功能,確保有權限的用戶正常使用系統(tǒng),沒有權限的用戶不能使用系統(tǒng). 在基于云平臺的Web系統(tǒng)架構中的權限管理,要為用戶分配權限. 具體方法是管理員為租戶授予權限分配能力,租戶為用戶分配系統(tǒng)的使用權限. 當用戶訪問Web系統(tǒng)時,系統(tǒng)判斷租戶是否定制了該功能包,如果租戶沒有定制該功能包,就無需判斷用戶是否具有使用權限;如果租戶定制了該功能包,再判斷用戶是否被授予了使用權限.
日志記錄 日志記錄是記下用戶的操作過程,包括行為日志記錄和數據日志記錄. 行為日志會記下用戶訪問的頁面和訪問時間,以及在訪問頁面執(zhí)行的操作和操作時間. 數據日志記錄用戶對數據執(zhí)行了哪些操作,以及執(zhí)行操作的時間. 通過日志記錄,系統(tǒng)可以提供用戶的操作歷史,增強了系統(tǒng)的可信性.
數據加密 由于基于云平臺的Web系統(tǒng)是基于多租戶的,因此,數據的安全性尤為重要,需要采取加密措施來保護用戶的數據安全. 對用戶來說,密碼至關重要. 在本Web系統(tǒng)架構中,采用MD5加密算法對存儲密碼進行加密[5],以保證信息數據的安全. 由于MD5不可逆,因此,他人即使獲得了MD5碼,也無法知道用戶密碼. 比如用戶的密碼為“zhongyuan”,經MD5加密后得到MD5(129F1B9ED6264093E9BD 4F04A32CE7EF),根據MD5加密算法的不可逆特性,他人無法根據MD5碼獲得用戶的密碼. 對于用戶的關鍵數據,租戶是需要還原使用的,因此,本系統(tǒng)采用AES加密機制保證其安全性.
為解決網絡不穩(wěn)定給用戶帶來的影響,在Web系統(tǒng)架構中引入離線應用機制. 當用戶在使用本系統(tǒng)時,系統(tǒng)首先檢查網絡的連接狀態(tài),并根據網絡的狀態(tài)來決定采用本地策略還是服務器策略. 在本地應用中,數據在本地存儲,在網絡連通后本地存儲的數據會和服務器執(zhí)行數據同步操作.
隨著Android/IOS的普及,智能手機、PDA等智能終端大量涌現,人們上網的方式不僅僅局限于電腦上網. 在該系統(tǒng)架構中,采用一云多屏技術,將云計算的結果可以通過多種方法顯示出來,比如通過計算機、手機、PDA等.
基于云計算的Web系統(tǒng)架構,設計開發(fā)客戶關系管理系統(tǒng),具體設計過程如下:1)在數據庫設計過程中,參照表1建立租戶數據表,參照表2在其它與租戶有關的數據表中增加TenantID字段,實現多租戶設計. 2)采用預分配定制字段的方式,實現不同租戶在數據上的個性化定制. 設計了訂單管理、產品功能、基礎管理、客戶管理、客服人員管理、記錄管理、行程管理等7個功能包,實現功能包定制. 提供了界面定制接口,實現界面定制. 3)參照圖3的負載均衡機制實現系統(tǒng)的可伸縮能力. 4)采用“非集中式認證”方式實現系統(tǒng)的身份認證;在傳統(tǒng)權限管理的基礎上,增加了租戶管理;通過日志記錄,增強了系統(tǒng)的可信性;采用MD5加密機制實現用戶的密碼安全,采用AES加密機制實現關鍵數據的安全性. 5)采用離線應用機制實現本地數據和服務器數據的同步;采用一云多屏技術實現了云計算結果的多重方法顯示.
基于多租戶模式,該客戶關系管理系統(tǒng)在云計算平臺上運行一個實例,就可以供多個單位同時使用. 每個單位在使用此系統(tǒng)時,可根據單位自身的實際需求和資金情況,訂購不同的功能包. 依據上述論述,湖北文理學院設計開發(fā)了客戶關系管理系統(tǒng),已經成功運行5個月時間,現擁有20個租戶(即20家單位正在使用),且租戶數量正在進一步增長中. 實踐表明,基于云計算的Web系統(tǒng)架構可行. 它與基于服務器的Web系統(tǒng)架構相比,可實現個性化和多元化的規(guī)模化定制,具有很大優(yōu)勢,如表3所示.
表3 兩種Web系統(tǒng)架構比較分析表
在湖北文理學院建立的云計算平臺的基礎上,設計了基于云計算的Web系統(tǒng)架構. 該架構的設計,對企事業(yè)單位來說,軟件應用實現了從“為我所有”向“我所用”的轉變,用戶不再購買軟件產品本身,而是購買軟件提供的服務,大大節(jié)約了信息化成本;對軟件開發(fā)者來說,軟件實現了規(guī)?;ㄖ频纳a方式,可節(jié)約開發(fā)成本和維護費用.
[1] 馬于濤, 何克清, 李 兵, 等. 網絡化軟件的復雜網絡特性實證[J]. 軟件學報, 2011, 22(3): 381-407.
[2] 陳 全, 鄧倩妮. 云計算及其關鍵技術[J]. 計算機應用, 2009, 29(9): 2562-2567.
[3] 張建勛, 古志民, 鄭 超. 云計算研究進展綜述[J]. 計算機應用研究, 2010, 27(2): 429-433.
[4] 謝桂園, 魏文國, 何克晶. 可伸縮并行Web服務器體系結構的設計與研究[J]. 海南大學學報: 自然科學版, 2009, 27(1): 69-72.
[5] 張浩華, 齊維毅, 趙子夫, 等. 基于JAVA技術的MD5加密算法的設計與實現[J]. 沈陽師范大學學報: 自然科學版, 2009, 27(1): 75-77.
Design of Architecture for Web Systems Based on Cloud Computing
WANG Xinying
(School of Mathematical and Computer Sciences, Hubei University of Arts and Science, Xiangyang 441053, China)
Aiming at the problems existing in the architecture of traditional web system, a web system architecture based on cloud computing is proposed, combined with cloud computing platform’s advantages of Hubei University of Arts and Science. This architecture has the advantage of scalable, supports multi screen display of one cloud and offline application mechanism. With the help of a thought on multi-tenant, the architecture can provide users with personalized and diversified large-scale customization.
Cloud computing; Web system; Multi-tenant
2013-10-08;
2013-12-30
湖北省教育廳科學技術研究基金資助項目(B2013102)
王新穎(1976— ), 男, 河南平頂山人, 湖北文理學院數學與計算機科學學院講師.
TP399
A
2095-4476(2014)02-0016-04
(責任編輯:陳 丹)