伍振興 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,杭州東信北郵信息技術(shù)有限公司李 煒 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,杭州東信北郵信息技術(shù)有限公司
?
產(chǎn)品與技術(shù)方案
手機(jī)閱讀業(yè)務(wù)內(nèi)容管理系統(tǒng)統(tǒng)一門戶的設(shè)計(jì)方案
伍振興北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,杭州東信北郵信息技術(shù)有限公司
李煒北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,杭州東信北郵信息技術(shù)有限公司
手機(jī)閱讀業(yè)務(wù)是中國移動(dòng)手機(jī)閱讀基地向用戶提供的以在線和下載為主要閱讀方式的自有增值業(yè)務(wù)。而業(yè)務(wù)內(nèi)容管理系統(tǒng)(Content Manage Unit,CMU)是手機(jī)閱讀業(yè)務(wù)的管理系統(tǒng)。隨著時(shí)間的推移,CMU系統(tǒng)的兩個(gè)子系統(tǒng)變得越來越龐大,使得在原來基礎(chǔ)上進(jìn)行維護(hù)和開發(fā)變得越來越困難。因此在對(duì)CMU系統(tǒng)進(jìn)行重構(gòu)時(shí),采用了微服務(wù)架構(gòu),將整個(gè)系統(tǒng)拆分為幾個(gè)特定的業(yè)務(wù)子系統(tǒng),子系統(tǒng)之間相互獨(dú)立。但是拆分之后,需要提供給用戶一個(gè)訪問CMU系統(tǒng)的整體入口,也就是CMU系統(tǒng)的統(tǒng)一門戶。本文針對(duì)重構(gòu)后CMU系統(tǒng)做了深入的探討和研究,尋找一個(gè)重構(gòu)后CMU系統(tǒng)統(tǒng)一門戶的解決方案。
手機(jī)閱讀;內(nèi)容管理系統(tǒng);統(tǒng)一門戶
手機(jī)閱讀業(yè)務(wù)是中國移動(dòng)手機(jī)閱讀基地向用戶提供的以在線和下載為主要閱讀方式的自有增值業(yè)務(wù),以移動(dòng)終端為主要載體,提供圖書、漫畫、雜志、聽書、手機(jī)報(bào)等多種形式的媒體內(nèi)容,向用戶提供海量圖書內(nèi)容服務(wù),讓人享受隨身隨地閱讀的樂趣。目前,手機(jī)閱讀累計(jì)用戶數(shù)達(dá)4億,月訪問用戶數(shù)達(dá)1.6億,日均頁面瀏覽量達(dá)6.5億。
作為手機(jī)閱讀業(yè)務(wù)運(yùn)作的管理中樞—業(yè)務(wù)內(nèi)容管理系統(tǒng)(Content Manage Unit,CMU),為業(yè)務(wù)提供內(nèi)容、運(yùn)營、互動(dòng)、推薦、配置等全方位的管理。CMU主要面向內(nèi)容提供商(Content Provider,CP)、內(nèi)容編審人員、運(yùn)營管理人員、系統(tǒng)管理人員提供內(nèi)容整合商(Master Content Provider,MCP)管理、內(nèi)容管理、版權(quán)管理、不良信息管理、質(zhì)檢管理、作家管理、運(yùn)營管理、終端管理、系統(tǒng)管理、用戶互動(dòng)管理、實(shí)體書管理等手機(jī)閱讀業(yè)務(wù)的全方位管理功能。
現(xiàn)有CMU系統(tǒng)分為兩個(gè)子系統(tǒng),CP子系統(tǒng)和MP子系統(tǒng),均為單體式架構(gòu),即每一個(gè)都是不能拆分的整體系統(tǒng),而且兩個(gè)系統(tǒng)相互獨(dú)立。隨著時(shí)間的推移,兩個(gè)子系統(tǒng)變得越來越龐大,越來越復(fù)雜,使現(xiàn)在添加功能或者修正程序錯(cuò)誤都變得異常復(fù)雜,因此需要對(duì)CMU系統(tǒng)進(jìn)行重構(gòu)。
在設(shè)計(jì)CMU重構(gòu)系統(tǒng)時(shí),引入了微服務(wù)架構(gòu),即將整個(gè)系統(tǒng)拆分成幾個(gè)特定的業(yè)務(wù)子系統(tǒng),每個(gè)業(yè)務(wù)子系統(tǒng)完成特定的功能,子系統(tǒng)與子系統(tǒng)之間的通信都是通過接口與消息隊(duì)列來實(shí)現(xiàn)。由于微服務(wù)架構(gòu)的設(shè)計(jì),重構(gòu)后CMU各個(gè)子系統(tǒng)相互獨(dú)立,需要一個(gè)統(tǒng)一門戶系統(tǒng)將各個(gè)子系統(tǒng)進(jìn)行整合,實(shí)現(xiàn)對(duì)重構(gòu)后各個(gè)子系統(tǒng)的訪問,從而使用戶能夠像使用以前的系統(tǒng)一樣訪問重構(gòu)后的系統(tǒng)。
統(tǒng)一門戶系統(tǒng)主要是提供給用戶一個(gè)訪問重構(gòu)后CMU系統(tǒng)的一個(gè)整體入口,使以前的CMU系統(tǒng)用戶能夠能夠以很低的學(xué)習(xí)成本來使用現(xiàn)有系統(tǒng),并且實(shí)現(xiàn)CMU系統(tǒng)的用戶管理和訪問控制的功能。本文針對(duì)CMU重構(gòu)系統(tǒng)的統(tǒng)一門戶的設(shè)計(jì)與實(shí)現(xiàn)做了深入的探討和研究,尋找一個(gè)重構(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),手機(jī)報(bào)業(yè)務(wù)管理子系統(tǒng),圖書打包子系統(tǒng)。CMU統(tǒng)一門戶的目的就是為了解決系統(tǒng)切分以后的用戶對(duì)這些子系統(tǒng)的訪問問題。由于以前的CMU系統(tǒng)是一個(gè)整體的網(wǎng)站,所以只需要要實(shí)現(xiàn)一個(gè)單一的訪問入口,但是現(xiàn)在各個(gè)業(yè)務(wù)模塊子系統(tǒng)相互獨(dú)立,如何在用戶不改變以前的訪問習(xí)慣的同時(shí),使用一個(gè)統(tǒng)一的門戶網(wǎng)站,用最低的學(xué)習(xí)成本來使用現(xiàn)在的系統(tǒng),是本文系統(tǒng)設(shè)計(jì)的關(guān)鍵。
CMU統(tǒng)一門戶系統(tǒng)的實(shí)現(xiàn)需要解決如下問題:
(1)設(shè)計(jì)一個(gè)統(tǒng)一的門戶網(wǎng)站
統(tǒng)一門戶網(wǎng)站需要解決的主要問題是如何設(shè)計(jì)網(wǎng)站的結(jié)構(gòu),讓用戶不需要改變以前的訪問習(xí)慣,或者讓用戶以最低的學(xué)習(xí)成本去使用重構(gòu)后的系統(tǒng)。這就需要研究以前網(wǎng)站的結(jié)構(gòu),同時(shí)考慮到重構(gòu)后的系統(tǒng)的結(jié)構(gòu)劃分,設(shè)計(jì)出一套統(tǒng)一的門戶網(wǎng)站。
(2)研究如何實(shí)現(xiàn)用戶在各個(gè)子系統(tǒng)之間的分布式會(huì)話管理
由于用戶與服務(wù)器的會(huì)話都是有狀態(tài)的,如何在各個(gè)子系統(tǒng)之間共享用戶的會(huì)話信息,實(shí)現(xiàn)用戶會(huì)話信息的分布式管理是需要解決的另一個(gè)問題。
(3)實(shí)現(xiàn)用戶的訪問控制模型
訪問控制主要是控制不同用戶對(duì)各種資源的訪問權(quán)限。資源包括頁面、菜單、按鈕等界面資源,也包括圖書、音頻、視頻等文件資源,同時(shí)也包括模塊接口等資源。如何設(shè)計(jì)一個(gè)適合于CMU系統(tǒng)的訪問控制模型也是需要解決的問題之一。
(4)統(tǒng)一門戶的高可用性
由于用戶對(duì)各個(gè)子系統(tǒng)的訪問都是通過統(tǒng)一門戶,所以必須保證該系統(tǒng)的高可用。統(tǒng)一門戶包括反向代理服務(wù)器,會(huì)話管理服務(wù)器等不同的部分,如何實(shí)現(xiàn)這些不同服務(wù)器的高可用,是需要解決的一個(gè)重要問題。
3.1統(tǒng)一門戶總體設(shè)計(jì)
統(tǒng)一門戶的整體架構(gòu)如圖1所示,用戶通過反向代理服務(wù)器與統(tǒng)一門戶子系統(tǒng)通信,然后根據(jù)請(qǐng)求訪問不同的業(yè)務(wù)子系統(tǒng)。其中統(tǒng)一門戶子系統(tǒng)提供一個(gè)統(tǒng)一的接入門戶,并且包括用戶管理模塊,權(quán)限控制模塊,會(huì)話管理模塊。各個(gè)業(yè)務(wù)子系統(tǒng)包括該子系統(tǒng)的接入門戶,還有會(huì)話管理模塊。會(huì)話服務(wù)器用于管理所有用戶的會(huì)話信息,實(shí)現(xiàn)會(huì)話信息的共享。
3.2反向代理服務(wù)器
反向代理服務(wù)器為手機(jī)業(yè)務(wù)內(nèi)容管理系統(tǒng)的接入模塊(見圖2)。Nginx是一個(gè)輕量級(jí)的HTTP服務(wù)器,是一個(gè)高性能的HTTP和反向代理服務(wù)器。統(tǒng)一門戶使用Nginx作為用戶請(qǐng)求的接入模塊,通過為各個(gè)業(yè)務(wù)子系統(tǒng)管理門戶設(shè)置不同的URL前綴,并配置Nginx的反向代理規(guī)則,實(shí)現(xiàn)將各業(yè)務(wù)管理門戶的請(qǐng)求轉(zhuǎn)發(fā)到各業(yè)務(wù)管理門戶處理。
3.3統(tǒng)一門戶子系統(tǒng)
(1)統(tǒng)一門戶
統(tǒng)一門戶是內(nèi)容管理系統(tǒng)的統(tǒng)一入口。統(tǒng)一門戶提供給用戶一個(gè)注冊(cè)登錄界面,用于做用戶的驗(yàn)證;同時(shí),在用戶成功登錄系統(tǒng)之后,提供給用戶一個(gè)操作界面,根據(jù)用戶的權(quán)限,顯示用戶可以訪問的各個(gè)子系統(tǒng)的入口鏈接,作為用戶接入相應(yīng)子系統(tǒng)的入口。
(2)用戶管理模塊
CMU系統(tǒng)有許多不同的用戶組,用戶可以屬于一個(gè)或者多個(gè)用戶組。用戶管理模塊主要用于用戶和用戶組的管理。比如用戶的注冊(cè)和登錄;用戶信息的管理;用戶組的創(chuàng)建,修改,刪除等;用戶組信息的管理以及在用戶組中添加用戶,修改用戶,刪除用戶等。
(3)權(quán)限控制模塊
權(quán)限控制模塊主要用于對(duì)用戶的權(quán)限管理,主要使用了RBAC的訪問控制模型。訪問控制主要客體、主體和訪問控制約束3個(gè)要素??腕w是系統(tǒng)中包含有數(shù)據(jù)的實(shí)體;主體是行為的主動(dòng)發(fā)起者;訪問控制約束是一套規(guī)則,來判斷某個(gè)主體對(duì)某個(gè)客體是否擁有訪問權(quán)限。RBAC具有按照功能劃分角色、采用集中式授權(quán)管理、通過繼承傳遞角色權(quán)力、具有約束的概念和職責(zé)分離的特點(diǎn)。引入這一理論可在系統(tǒng)中解決訪問控制約束的問題,且可多樣化地設(shè)計(jì)角色和權(quán)限以實(shí)現(xiàn)復(fù)雜的職責(zé)分配,從而解決簡(jiǎn)單情況下的訪問控制問題。

圖1 統(tǒng)一門戶架構(gòu)

圖2 Nginx反向代理服務(wù)器
(4)會(huì)話管理模塊
會(huì)話管理模塊用于用戶會(huì)話信息的管理。當(dāng)用戶通過統(tǒng)一門戶登錄系統(tǒng)后,用戶管理模塊先獲取用戶的會(huì)話信息和權(quán)限信息,然后將用戶的會(huì)話信息和權(quán)限信息存入會(huì)話服務(wù)器,用于會(huì)話信息在不同的業(yè)務(wù)子系統(tǒng)之間共享。當(dāng)用戶訪問其他的業(yè)務(wù)子系統(tǒng)時(shí),各子系統(tǒng)就會(huì)先從會(huì)話服務(wù)器獲取用戶的會(huì)話信息,然后根據(jù)用戶的權(quán)限來判斷是否有權(quán)訪問所請(qǐng)求的資源。
3.4業(yè)務(wù)子系統(tǒng)
(1)業(yè)務(wù)子系統(tǒng)門戶
業(yè)務(wù)子系統(tǒng)門戶功能和統(tǒng)一門戶相仿。主要是提供給用戶訪問相應(yīng)業(yè)務(wù)子系統(tǒng)的界面,同時(shí)結(jié)合權(quán)限控制模塊,實(shí)現(xiàn)對(duì)用戶訪問權(quán)限的管理,如只提供給用戶具有訪問權(quán)限的菜單、鏈接等訪問接口。
(2)會(huì)話管理模塊
業(yè)務(wù)子系統(tǒng)的會(huì)話管理模塊與統(tǒng)一門戶子系統(tǒng)的會(huì)話管理模塊一致。當(dāng)用戶訪問相應(yīng)業(yè)務(wù)子系統(tǒng)時(shí),業(yè)務(wù)子系統(tǒng)的會(huì)話管理模塊從會(huì)話服務(wù)器取回用戶的會(huì)話信息和權(quán)限信息,根據(jù)用戶的權(quán)限信息來決定用戶是否有權(quán)訪問所請(qǐng)求的資源。
3.5會(huì)話服務(wù)器
會(huì)話服務(wù)器主要是用戶存儲(chǔ)用戶的會(huì)話和權(quán)限信息。內(nèi)容管理系統(tǒng)使用Redis作為會(huì)話共享的存儲(chǔ),通過在Redis中保存Session信息,實(shí)現(xiàn)多個(gè)業(yè)務(wù)子系統(tǒng)間的會(huì)話共享。同時(shí),為了實(shí)現(xiàn)系統(tǒng)的可靠性,統(tǒng)一門戶系統(tǒng)使用了Redis集群,當(dāng)Redis服務(wù)器單臺(tái)故障時(shí),可以通過其他的節(jié)點(diǎn)訪問和獲取存儲(chǔ)的數(shù)據(jù)。
如圖3所示,用戶在登錄系統(tǒng)的時(shí)候,通過統(tǒng)一門戶子系統(tǒng),將會(huì)話信息通過會(huì)話管理模塊存入會(huì)話服務(wù)器,后續(xù)用戶在訪問各個(gè)業(yè)務(wù)子系統(tǒng)時(shí),通過向會(huì)話服務(wù)器查詢的方式獲取用戶的會(huì)話信息,以此方式來實(shí)現(xiàn)各個(gè)業(yè)務(wù)子系統(tǒng)之間的會(huì)話共享。
以前的CMU系統(tǒng)分是單體式架構(gòu),隨著時(shí)間的推移,系統(tǒng)變得越來越龐大,越來越復(fù)雜,使添加功能或者修正錯(cuò)誤都變得異常復(fù)雜。因此,引入了微服務(wù)的架構(gòu)對(duì)CMU系統(tǒng)進(jìn)行重構(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)、手機(jī)報(bào)業(yè)務(wù)管理子系統(tǒng)和圖書打包子系統(tǒng)等。各個(gè)子系統(tǒng)之間都是相互獨(dú)立的,CMU統(tǒng)一門戶系統(tǒng)將各個(gè)子系統(tǒng)進(jìn)行整合,實(shí)現(xiàn)了對(duì)重構(gòu)后各個(gè)子系統(tǒng)的訪問,從而使用戶能夠像使用以前的系統(tǒng)一樣訪問重構(gòu)后的系統(tǒng)。
[1]張圣文.中國移動(dòng)手機(jī)閱讀調(diào)研和體驗(yàn)[J].電腦知識(shí)與技術(shù),2011,04:895-897.
[2]鄧杰文,曹彩鳳.微服務(wù)若干關(guān)鍵問題研究[J].五邑大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,02:49-54.
[3]黃燃.統(tǒng)一門戶平臺(tái)的研究與設(shè)計(jì)[D].成都理工大學(xué),2008.

圖3 會(huì)話服務(wù)器
[4]劉淼,郭荷清,張為.J2EE平臺(tái)會(huì)話管理機(jī)制分析與改進(jìn)[J].航空計(jì)算技術(shù),2004,03:116-118.
[5]李鳳華,蘇铓,史國振,馬建峰.訪問控制模型研究進(jìn)展及發(fā)展趨勢(shì)[J].電子學(xué)報(bào),2012,04:805-813.
[6]潘紅偉.面向不間斷服務(wù)的高可用系統(tǒng)平臺(tái)設(shè)計(jì)及實(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