伍振興 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,杭州東信北郵信息技術(shù)有限公司李 煒 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,杭州東信北郵信息技術(shù)有限公司
?
產(chǎn)品與技術(shù)方案
手機閱讀業(yè)務(wù)內(nèi)容管理系統(tǒng)統(tǒng)一門戶的設(shè)計方案
伍振興北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,杭州東信北郵信息技術(shù)有限公司
李煒北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點實驗室,杭州東信北郵信息技術(shù)有限公司
手機閱讀業(yè)務(wù)是中國移動手機閱讀基地向用戶提供的以在線和下載為主要閱讀方式的自有增值業(yè)務(wù)。而業(yè)務(wù)內(nèi)容管理系統(tǒng)(Content Manage Unit,CMU)是手機閱讀業(yè)務(wù)的管理系統(tǒng)。隨著時間的推移,CMU系統(tǒng)的兩個子系統(tǒng)變得越來越龐大,使得在原來基礎(chǔ)上進行維護和開發(fā)變得越來越困難。因此在對CMU系統(tǒng)進行重構(gòu)時,采用了微服務(wù)架構(gòu),將整個系統(tǒng)拆分為幾個特定的業(yè)務(wù)子系統(tǒng),子系統(tǒng)之間相互獨立。但是拆分之后,需要提供給用戶一個訪問CMU系統(tǒng)的整體入口,也就是CMU系統(tǒng)的統(tǒng)一門戶。本文針對重構(gòu)后CMU系統(tǒng)做了深入的探討和研究,尋找一個重構(gòu)后CMU系統(tǒng)統(tǒng)一門戶的解決方案。
手機閱讀;內(nèi)容管理系統(tǒng);統(tǒng)一門戶
手機閱讀業(yè)務(wù)是中國移動手機閱讀基地向用戶提供的以在線和下載為主要閱讀方式的自有增值業(yè)務(wù),以移動終端為主要載體,提供圖書、漫畫、雜志、聽書、手機報等多種形式的媒體內(nèi)容,向用戶提供海量圖書內(nèi)容服務(wù),讓人享受隨身隨地閱讀的樂趣。目前,手機閱讀累計用戶數(shù)達4億,月訪問用戶數(shù)達1.6億,日均頁面瀏覽量達6.5億。
作為手機閱讀業(yè)務(wù)運作的管理中樞—業(yè)務(wù)內(nèi)容管理系統(tǒng)(Content Manage Unit,CMU),為業(yè)務(wù)提供內(nèi)容、運營、互動、推薦、配置等全方位的管理。CMU主要面向內(nèi)容提供商(Content Provider,CP)、內(nèi)容編審人員、運營管理人員、系統(tǒng)管理人員提供內(nèi)容整合商(Master Content Provider,MCP)管理、內(nèi)容管理、版權(quán)管理、不良信息管理、質(zhì)檢管理、作家管理、運營管理、終端管理、系統(tǒng)管理、用戶互動管理、實體書管理等手機閱讀業(yè)務(wù)的全方位管理功能。
現(xiàn)有CMU系統(tǒng)分為兩個子系統(tǒng),CP子系統(tǒng)和MP子系統(tǒng),均為單體式架構(gòu),即每一個都是不能拆分的整體系統(tǒng),而且兩個系統(tǒng)相互獨立。隨著時間的推移,兩個子系統(tǒng)變得越來越龐大,越來越復(fù)雜,使現(xiàn)在添加功能或者修正程序錯誤都變得異常復(fù)雜,因此需要對CMU系統(tǒng)進行重構(gòu)。
在設(shè)計CMU重構(gòu)系統(tǒng)時,引入了微服務(wù)架構(gòu),即將整個系統(tǒng)拆分成幾個特定的業(yè)務(wù)子系統(tǒng),每個業(yè)務(wù)子系統(tǒng)完成特定的功能,子系統(tǒng)與子系統(tǒng)之間的通信都是通過接口與消息隊列來實現(xiàn)。由于微服務(wù)架構(gòu)的設(shè)計,重構(gòu)后CMU各個子系統(tǒng)相互獨立,需要一個統(tǒng)一門戶系統(tǒng)將各個子系統(tǒng)進行整合,實現(xiàn)對重構(gòu)后各個子系統(tǒng)的訪問,從而使用戶能夠像使用以前的系統(tǒng)一樣訪問重構(gòu)后的系統(tǒng)。
統(tǒng)一門戶系統(tǒng)主要是提供給用戶一個訪問重構(gòu)后CMU系統(tǒng)的一個整體入口,使以前的CMU系統(tǒng)用戶能夠能夠以很低的學(xué)習(xí)成本來使用現(xiàn)有系統(tǒng),并且實現(xiàn)CMU系統(tǒng)的用戶管理和訪問控制的功能。本文針對CMU重構(gòu)系統(tǒng)的統(tǒng)一門戶的設(shè)計與實現(xiàn)做了深入的探討和研究,尋找一個重構(gòu)后CMU系統(tǒng)統(tǒng)一門戶的解決方案。
CMU系統(tǒng)被劃分為若干業(yè)務(wù)子系統(tǒng):通用業(yè)務(wù)管理子系統(tǒng),圖書業(yè)務(wù)管理子系統(tǒng),漫畫業(yè)務(wù)管理子系統(tǒng),雜志業(yè)務(wù)管理子系統(tǒng),聽書業(yè)務(wù)管理子系統(tǒng),手機報業(yè)務(wù)管理子系統(tǒng),圖書打包子系統(tǒng)。CMU統(tǒng)一門戶的目的就是為了解決系統(tǒng)切分以后的用戶對這些子系統(tǒng)的訪問問題。由于以前的CMU系統(tǒng)是一個整體的網(wǎng)站,所以只需要要實現(xiàn)一個單一的訪問入口,但是現(xiàn)在各個業(yè)務(wù)模塊子系統(tǒng)相互獨立,如何在用戶不改變以前的訪問習(xí)慣的同時,使用一個統(tǒng)一的門戶網(wǎng)站,用最低的學(xué)習(xí)成本來使用現(xiàn)在的系統(tǒng),是本文系統(tǒng)設(shè)計的關(guān)鍵。
CMU統(tǒng)一門戶系統(tǒng)的實現(xiàn)需要解決如下問題:
(1)設(shè)計一個統(tǒng)一的門戶網(wǎng)站
統(tǒng)一門戶網(wǎng)站需要解決的主要問題是如何設(shè)計網(wǎng)站的結(jié)構(gòu),讓用戶不需要改變以前的訪問習(xí)慣,或者讓用戶以最低的學(xué)習(xí)成本去使用重構(gòu)后的系統(tǒng)。這就需要研究以前網(wǎng)站的結(jié)構(gòu),同時考慮到重構(gòu)后的系統(tǒng)的結(jié)構(gòu)劃分,設(shè)計出一套統(tǒng)一的門戶網(wǎng)站。
(2)研究如何實現(xiàn)用戶在各個子系統(tǒng)之間的分布式會話管理
由于用戶與服務(wù)器的會話都是有狀態(tài)的,如何在各個子系統(tǒng)之間共享用戶的會話信息,實現(xiàn)用戶會話信息的分布式管理是需要解決的另一個問題。
(3)實現(xiàn)用戶的訪問控制模型
訪問控制主要是控制不同用戶對各種資源的訪問權(quán)限。資源包括頁面、菜單、按鈕等界面資源,也包括圖書、音頻、視頻等文件資源,同時也包括模塊接口等資源。如何設(shè)計一個適合于CMU系統(tǒng)的訪問控制模型也是需要解決的問題之一。
(4)統(tǒng)一門戶的高可用性
由于用戶對各個子系統(tǒng)的訪問都是通過統(tǒng)一門戶,所以必須保證該系統(tǒng)的高可用。統(tǒng)一門戶包括反向代理服務(wù)器,會話管理服務(wù)器等不同的部分,如何實現(xiàn)這些不同服務(wù)器的高可用,是需要解決的一個重要問題。
3.1統(tǒng)一門戶總體設(shè)計
統(tǒng)一門戶的整體架構(gòu)如圖1所示,用戶通過反向代理服務(wù)器與統(tǒng)一門戶子系統(tǒng)通信,然后根據(jù)請求訪問不同的業(yè)務(wù)子系統(tǒng)。其中統(tǒng)一門戶子系統(tǒng)提供一個統(tǒng)一的接入門戶,并且包括用戶管理模塊,權(quán)限控制模塊,會話管理模塊。各個業(yè)務(wù)子系統(tǒng)包括該子系統(tǒng)的接入門戶,還有會話管理模塊。會話服務(wù)器用于管理所有用戶的會話信息,實現(xiàn)會話信息的共享。
3.2反向代理服務(wù)器
反向代理服務(wù)器為手機業(yè)務(wù)內(nèi)容管理系統(tǒng)的接入模塊(見圖2)。Nginx是一個輕量級的HTTP服務(wù)器,是一個高性能的HTTP和反向代理服務(wù)器。統(tǒng)一門戶使用Nginx作為用戶請求的接入模塊,通過為各個業(yè)務(wù)子系統(tǒng)管理門戶設(shè)置不同的URL前綴,并配置Nginx的反向代理規(guī)則,實現(xiàn)將各業(yè)務(wù)管理門戶的請求轉(zhuǎn)發(fā)到各業(yè)務(wù)管理門戶處理。
3.3統(tǒng)一門戶子系統(tǒng)
(1)統(tǒng)一門戶
統(tǒng)一門戶是內(nèi)容管理系統(tǒng)的統(tǒng)一入口。統(tǒng)一門戶提供給用戶一個注冊登錄界面,用于做用戶的驗證;同時,在用戶成功登錄系統(tǒng)之后,提供給用戶一個操作界面,根據(jù)用戶的權(quán)限,顯示用戶可以訪問的各個子系統(tǒng)的入口鏈接,作為用戶接入相應(yīng)子系統(tǒng)的入口。
(2)用戶管理模塊
CMU系統(tǒng)有許多不同的用戶組,用戶可以屬于一個或者多個用戶組。用戶管理模塊主要用于用戶和用戶組的管理。比如用戶的注冊和登錄;用戶信息的管理;用戶組的創(chuàng)建,修改,刪除等;用戶組信息的管理以及在用戶組中添加用戶,修改用戶,刪除用戶等。
(3)權(quán)限控制模塊
權(quán)限控制模塊主要用于對用戶的權(quán)限管理,主要使用了RBAC的訪問控制模型。訪問控制主要客體、主體和訪問控制約束3個要素??腕w是系統(tǒng)中包含有數(shù)據(jù)的實體;主體是行為的主動發(fā)起者;訪問控制約束是一套規(guī)則,來判斷某個主體對某個客體是否擁有訪問權(quán)限。RBAC具有按照功能劃分角色、采用集中式授權(quán)管理、通過繼承傳遞角色權(quán)力、具有約束的概念和職責(zé)分離的特點。引入這一理論可在系統(tǒng)中解決訪問控制約束的問題,且可多樣化地設(shè)計角色和權(quán)限以實現(xiàn)復(fù)雜的職責(zé)分配,從而解決簡單情況下的訪問控制問題。
圖1 統(tǒng)一門戶架構(gòu)
圖2 Nginx反向代理服務(wù)器
(4)會話管理模塊
會話管理模塊用于用戶會話信息的管理。當用戶通過統(tǒng)一門戶登錄系統(tǒng)后,用戶管理模塊先獲取用戶的會話信息和權(quán)限信息,然后將用戶的會話信息和權(quán)限信息存入會話服務(wù)器,用于會話信息在不同的業(yè)務(wù)子系統(tǒng)之間共享。當用戶訪問其他的業(yè)務(wù)子系統(tǒng)時,各子系統(tǒng)就會先從會話服務(wù)器獲取用戶的會話信息,然后根據(jù)用戶的權(quán)限來判斷是否有權(quán)訪問所請求的資源。
3.4業(yè)務(wù)子系統(tǒng)
(1)業(yè)務(wù)子系統(tǒng)門戶
業(yè)務(wù)子系統(tǒng)門戶功能和統(tǒng)一門戶相仿。主要是提供給用戶訪問相應(yīng)業(yè)務(wù)子系統(tǒng)的界面,同時結(jié)合權(quán)限控制模塊,實現(xiàn)對用戶訪問權(quán)限的管理,如只提供給用戶具有訪問權(quán)限的菜單、鏈接等訪問接口。
(2)會話管理模塊
業(yè)務(wù)子系統(tǒng)的會話管理模塊與統(tǒng)一門戶子系統(tǒng)的會話管理模塊一致。當用戶訪問相應(yīng)業(yè)務(wù)子系統(tǒng)時,業(yè)務(wù)子系統(tǒng)的會話管理模塊從會話服務(wù)器取回用戶的會話信息和權(quán)限信息,根據(jù)用戶的權(quán)限信息來決定用戶是否有權(quán)訪問所請求的資源。
3.5會話服務(wù)器
會話服務(wù)器主要是用戶存儲用戶的會話和權(quán)限信息。內(nèi)容管理系統(tǒng)使用Redis作為會話共享的存儲,通過在Redis中保存Session信息,實現(xiàn)多個業(yè)務(wù)子系統(tǒng)間的會話共享。同時,為了實現(xiàn)系統(tǒng)的可靠性,統(tǒng)一門戶系統(tǒng)使用了Redis集群,當Redis服務(wù)器單臺故障時,可以通過其他的節(jié)點訪問和獲取存儲的數(shù)據(jù)。
如圖3所示,用戶在登錄系統(tǒng)的時候,通過統(tǒng)一門戶子系統(tǒng),將會話信息通過會話管理模塊存入會話服務(wù)器,后續(xù)用戶在訪問各個業(yè)務(wù)子系統(tǒng)時,通過向會話服務(wù)器查詢的方式獲取用戶的會話信息,以此方式來實現(xiàn)各個業(yè)務(wù)子系統(tǒng)之間的會話共享。
以前的CMU系統(tǒng)分是單體式架構(gòu),隨著時間的推移,系統(tǒng)變得越來越龐大,越來越復(fù)雜,使添加功能或者修正錯誤都變得異常復(fù)雜。因此,引入了微服務(wù)的架構(gòu)對CMU系統(tǒng)進行重構(gòu)以解決該問題。
重構(gòu)后CMU系統(tǒng)包括通用業(yè)務(wù)管理子系統(tǒng)、圖書業(yè)務(wù)管理子系統(tǒng)、漫畫業(yè)務(wù)管理子系統(tǒng)、雜志業(yè)務(wù)管理子系統(tǒng)、聽書業(yè)務(wù)管理子系統(tǒng)、手機報業(yè)務(wù)管理子系統(tǒng)和圖書打包子系統(tǒng)等。各個子系統(tǒng)之間都是相互獨立的,CMU統(tǒng)一門戶系統(tǒng)將各個子系統(tǒng)進行整合,實現(xiàn)了對重構(gòu)后各個子系統(tǒng)的訪問,從而使用戶能夠像使用以前的系統(tǒng)一樣訪問重構(gòu)后的系統(tǒng)。
[1]張圣文.中國移動手機閱讀調(diào)研和體驗[J].電腦知識與技術(shù),2011,04:895-897.
[2]鄧杰文,曹彩鳳.微服務(wù)若干關(guān)鍵問題研究[J].五邑大學(xué)學(xué)報(自然科學(xué)版),2016,02:49-54.
[3]黃燃.統(tǒng)一門戶平臺的研究與設(shè)計[D].成都理工大學(xué),2008.
圖3 會話服務(wù)器
[4]劉淼,郭荷清,張為.J2EE平臺會話管理機制分析與改進[J].航空計算技術(shù),2004,03:116-118.
[5]李鳳華,蘇铓,史國振,馬建峰.訪問控制模型研究進展及發(fā)展趨勢[J].電子學(xué)報,2012,04:805-813.
[6]潘紅偉.面向不間斷服務(wù)的高可用系統(tǒng)平臺設(shè)計及實現(xiàn)[D].中國科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2014.
A design schema of the universal portal of content manage unit system
WU Zhenxing, LI Wei
Mobile reading service is a value-added service provided by China Mobile Reading Base with two major reading method: online and download. And Content Manage Unit (CMU) System is the management system of mobile reading service. As the time goes by, two sub-system of CMU system is becoming more and more huge and complex, which leads to growing headaches to maintaining the system and developing on the system. We take micro service architecture when reconstructing CMU system, and we split CMU system to several specific independent sub-systems. But after splitting CMU system, we have to provide the users an entrance to the whole system, which known as Universal Portal of Content Manage Unit System. In this paper, we have done a indepth reseach on reconstructed CMU system , looking for a solution to Universal Portal of Content Manage Unit system.
mobile reading; content manage unit; universal portal