倪 劼
(南京圖書(shū)館 南京 210018)
我國(guó)公共數(shù)字文化建設(shè)起步于本世紀(jì)初,2002年文化部、財(cái)政部聯(lián)合實(shí)施了全國(guó)文化信息資源共享工程,依托全國(guó)各級(jí)公共圖書(shū)館、文化館,多形式、多渠道開(kāi)展數(shù)字文化資源服務(wù)。在這之后,文化部、財(cái)政部又聯(lián)合實(shí)施了數(shù)字圖書(shū)館推廣工程、公共電子閱覽室建設(shè)計(jì)劃,這兩項(xiàng)文化惠民工程與全國(guó)文化信息資源共享工程一起被統(tǒng)稱(chēng)為“公共數(shù)字文化三大工程”(以下簡(jiǎn)稱(chēng)“三大工程”)。借助“三大工程”的實(shí)施,覆蓋全國(guó)省、市、縣(區(qū))、鄉(xiāng)鎮(zhèn)(街道)、村(社區(qū))的公共數(shù)字文化服務(wù)網(wǎng)絡(luò)初步建成,通過(guò)加強(qiáng)公共數(shù)字文化資源生產(chǎn),不斷提高公共文化服務(wù)機(jī)構(gòu)的數(shù)字產(chǎn)品供給與服務(wù)能力,為公眾提供多層次、多樣化、專(zhuān)業(yè)化的公共數(shù)字文化服務(wù)。“三大工程”在快速建設(shè)的同時(shí),各地區(qū)出現(xiàn)了發(fā)展不平衡、不充分等問(wèn)題,這引起業(yè)界學(xué)者的廣泛注意。王錳等人對(duì)我國(guó)公共數(shù)字文化服務(wù)調(diào)研后發(fā)現(xiàn),基層公共文化服務(wù)機(jī)構(gòu)的信息基礎(chǔ)設(shè)施建設(shè)發(fā)展不平衡、缺乏專(zhuān)業(yè)技術(shù)人才、資金投入不足,提出要加強(qiáng)信息基礎(chǔ)建設(shè),以群眾基本文化需求為導(dǎo)向,創(chuàng)新信息技術(shù)服務(wù)手段[1]。丁寧寧對(duì)十多年來(lái)“三大工程”的成效給予了充分的肯定,但也指出當(dāng)前公共數(shù)字文化服務(wù)仍存在著信息基礎(chǔ)設(shè)施建設(shè)水平較低、專(zhuān)業(yè)技術(shù)人才缺乏、績(jī)效評(píng)估缺失等方面的問(wèn)題,應(yīng)當(dāng)加大資金投入力度,創(chuàng)新資源共建共享模式[2]。吳高等人采用文獻(xiàn)調(diào)研和案例分析方法對(duì)“三大工程”實(shí)施情況進(jìn)行分析,發(fā)現(xiàn)當(dāng)前公共數(shù)字文化服務(wù)缺乏考核評(píng)估,提出加強(qiáng)和完善評(píng)估運(yùn)行機(jī)制[3]。羅清郁、余波等人提出了貧困地區(qū)開(kāi)展公共數(shù)字文化建設(shè)的舉措,認(rèn)為應(yīng)依托現(xiàn)有工程體系,利用新技術(shù)、新手段消除數(shù)字資源鴻溝,推動(dòng)貧困地區(qū)公共數(shù)字文化發(fā)展[4-5]。韋楠華等人進(jìn)行公共數(shù)字文化資源供給分析時(shí)發(fā)現(xiàn),現(xiàn)階段我國(guó)公共數(shù)字文化建設(shè)存在供給內(nèi)容不足、共享缺失,國(guó)家主導(dǎo)與地方自主、政績(jī)至上與公民需求之間的矛盾是問(wèn)題的根源, 應(yīng)當(dāng)充分利用好互聯(lián)網(wǎng)平臺(tái)構(gòu)建數(shù)字文化多元合作供給機(jī)制,推動(dòng)文化科技融合解決現(xiàn)有矛盾[6]。針對(duì)在發(fā)展過(guò)程中出現(xiàn)的突出問(wèn)題,2019年文化和旅游部印發(fā)《公共數(shù)字文化工程融合創(chuàng)新發(fā)展實(shí)施方案》,將原有“三大工程”整合成為全新的“公共數(shù)字文化工程”,進(jìn)一步推動(dòng)公共數(shù)字文化融合發(fā)展。整合后的公共數(shù)字文化建設(shè)將以把握導(dǎo)向、統(tǒng)籌規(guī)劃、創(chuàng)新驅(qū)動(dòng)、開(kāi)放共享為發(fā)展原則,實(shí)現(xiàn)服務(wù)業(yè)態(tài)創(chuàng)新、服務(wù)效能提升,建立能夠?qū)崿F(xiàn)共建共享、管理規(guī)范、服務(wù)高效的服務(wù)體系。公共數(shù)字文化建設(shè)對(duì)資源供給方面提出了更高的目標(biāo),要求在改變傳統(tǒng)資源配送模式的基礎(chǔ)上,建立資源反饋機(jī)制,為實(shí)現(xiàn)精準(zhǔn)化資源服務(wù)提供可參考依據(jù);按照資源適用范圍,實(shí)現(xiàn)版權(quán)效益最大化[7]。我國(guó)多地在規(guī)劃公共文化服務(wù)發(fā)展時(shí),明確指出“十四五”時(shí)期要應(yīng)用最新科技成果,暢通公共數(shù)字文化服務(wù)渠道,創(chuàng)新服務(wù)模式,精準(zhǔn)對(duì)接群眾文化需求,提供多層次、多樣化的數(shù)字文化服務(wù),提升公共數(shù)字文化服務(wù)的針對(duì)性、實(shí)效性[8]。鑒于此,本文將以公共數(shù)字文化資源配送模式為突破口,討論運(yùn)用信息技術(shù)手段,替換原有資源傳遞方式,探索與實(shí)踐公共數(shù)字文化工程的創(chuàng)新發(fā)展。
一直以來(lái),公共數(shù)字文化建設(shè)始終重視資源配送中信息技術(shù)的應(yīng)用。全國(guó)文化信息資源共享工程在建設(shè)初期就嘗試?yán)糜脖P(pán)拷貝、有線電視、衛(wèi)星、互聯(lián)網(wǎng)等方式實(shí)現(xiàn)資源傳遞。為提升公共數(shù)字文化資源服務(wù)效能,在數(shù)字圖書(shū)館推廣工程的推動(dòng)下,以國(guó)家圖書(shū)館為中心節(jié)點(diǎn),各省級(jí)公共圖書(shū)館為省級(jí)分中心節(jié)點(diǎn),輻射至市縣級(jí)公共文化服務(wù)機(jī)構(gòu)的虛擬網(wǎng)項(xiàng)目啟動(dòng)并建成,逐步取代了原有配送模式,成為現(xiàn)階段公共數(shù)字文化資源傳遞的主要通道。
20世紀(jì)90年代起,以公共圖書(shū)館為代表的我國(guó)公共文化服務(wù)機(jī)構(gòu),為解決跨區(qū)域網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)遠(yuǎn)程訪問(wèn),已經(jīng)開(kāi)始嘗試虛擬網(wǎng)的構(gòu)建,從單一館建設(shè)到區(qū)域范圍建設(shè),使用的組網(wǎng)技術(shù)也很豐富,有IPSecVPN、SSLVPN、MPLSVPN等,逐步成為一種普遍的數(shù)據(jù)傳遞方式,但始終局限于市縣級(jí)區(qū)域范圍內(nèi)[9]。2014年開(kāi)始,國(guó)家級(jí)虛擬網(wǎng)建設(shè)項(xiàng)目啟動(dòng)并實(shí)施,一張覆蓋全國(guó)基層公共文化服務(wù)機(jī)構(gòu)的信息高速公路網(wǎng)不斷被擴(kuò)大,逐步成為我國(guó)公共數(shù)字文化資源服務(wù)的基礎(chǔ)支撐。截至2019年底,國(guó)家中心節(jié)點(diǎn)已與全國(guó)各省級(jí)分中心節(jié)點(diǎn)、副省級(jí)以上55家公共圖書(shū)館實(shí)現(xiàn)了虛擬網(wǎng)連接,各省級(jí)分中心也不斷擴(kuò)展建設(shè)規(guī)模,基本實(shí)現(xiàn)了各基層公共文化服務(wù)機(jī)構(gòu)對(duì)國(guó)家中心節(jié)點(diǎn)和省級(jí)分中心節(jié)點(diǎn)數(shù)字資源的遠(yuǎn)程訪問(wèn),并充分利用分布式數(shù)字資源庫(kù),使公眾可以精準(zhǔn)化地獲取海量數(shù)字文化資源[10]。公共數(shù)字文化虛擬網(wǎng)建設(shè)最終呈現(xiàn)樹(shù)形拓?fù)洌唧w如圖1所示。
在虛擬網(wǎng)項(xiàng)目實(shí)施過(guò)程中,采用了分級(jí)建設(shè)的方式,國(guó)家圖書(shū)館中心節(jié)點(diǎn)主要負(fù)責(zé)與各省級(jí)分中心節(jié)點(diǎn)之間完成虛擬網(wǎng)連接,而各省內(nèi)的市縣級(jí)公共文化服務(wù)機(jī)構(gòu)的虛擬網(wǎng)連接,則由所在省的省級(jí)分中心完成,大多數(shù)省級(jí)分中心采用IPSecVPN技術(shù)實(shí)現(xiàn)組網(wǎng)[11]。省內(nèi)虛擬網(wǎng)建設(shè)如果以行政層級(jí)劃分,可以分為“省—市—縣”以及“省—市縣”兩種模式,例如山西[12]、浙江[13]、貴州[14]等省份采用的是“省—市—縣”三級(jí)架構(gòu),筆者所在的江蘇省則是采用“省—市縣”二級(jí)傳輸模式[15]。相較于三級(jí)架構(gòu),二級(jí)傳輸模式由省級(jí)分中心直接與全省各個(gè)市縣級(jí)公共文化機(jī)構(gòu)進(jìn)行虛擬網(wǎng)連接,減少了中間節(jié)點(diǎn),網(wǎng)絡(luò)拓?fù)鋵哟蜗鄬?duì)簡(jiǎn)潔。兩種架構(gòu)模式各有利弊,在實(shí)際項(xiàng)目實(shí)施過(guò)程中,各省都根據(jù)自身情況開(kāi)展虛擬網(wǎng)部署,不管最終采用何種方式,差異性?xún)H僅存在于分支中心節(jié)點(diǎn)的層次多少,采用虛擬網(wǎng)傳遞數(shù)字資源的實(shí)質(zhì)并沒(méi)有改變。

圖1 虛擬網(wǎng)拓?fù)鋱D
虛擬網(wǎng)已逐步取代傳統(tǒng)的資源配送方式,成為公共數(shù)字文化資源傳遞的重要手段。目前,國(guó)家中心節(jié)點(diǎn)與省級(jí)分中心節(jié)點(diǎn)在虛擬網(wǎng)基礎(chǔ)上又增加了專(zhuān)線連接,采用專(zhuān)線實(shí)現(xiàn)資源傳遞,在安全性、可靠性、穩(wěn)定性方面遠(yuǎn)遠(yuǎn)高于虛擬網(wǎng),但昂貴的專(zhuān)線租賃費(fèi)用使得此方式并不適合向下推廣。省級(jí)公共圖書(shū)館作為公共數(shù)字文化省級(jí)分中心與省內(nèi)虛擬網(wǎng)建設(shè)主要機(jī)構(gòu),目前仍主要采用構(gòu)建虛擬網(wǎng)的方式連接各基層公共文化服務(wù)機(jī)構(gòu)。以江蘇省為例,作為東部經(jīng)濟(jì)發(fā)達(dá)地區(qū),虛擬網(wǎng)建設(shè)初期未能享受到國(guó)家補(bǔ)貼政策,由各地方財(cái)政部門(mén)劃撥專(zhuān)項(xiàng)經(jīng)費(fèi)購(gòu)買(mǎi)相應(yīng)網(wǎng)絡(luò)設(shè)備,省級(jí)分中心通過(guò)IPSecVPN的組網(wǎng)方式,最終與全省108個(gè)市縣級(jí)支中心實(shí)現(xiàn)了虛擬網(wǎng)連接。與國(guó)家中心相比,省級(jí)分中心與市縣級(jí)支中心在虛擬網(wǎng)的運(yùn)行與維護(hù)時(shí)都面臨著更多的困難與挑戰(zhàn),主要有以下幾個(gè)方面:
一是缺乏專(zhuān)項(xiàng)維護(hù)經(jīng)費(fèi)。基層公共文化服務(wù)機(jī)構(gòu)尤其是經(jīng)濟(jì)欠發(fā)達(dá)地區(qū)的基層機(jī)構(gòu),普遍缺少財(cái)政資金支持,設(shè)備常年無(wú)法更新。雖然江蘇省處于長(zhǎng)三角經(jīng)濟(jì)發(fā)達(dá)地區(qū),但省內(nèi)各地區(qū)經(jīng)濟(jì)發(fā)展水平差距較大,相當(dāng)一部分基層公共文化服務(wù)機(jī)構(gòu)缺乏專(zhuān)項(xiàng)維護(hù)經(jīng)費(fèi)支持,后期將面臨設(shè)備無(wú)法正常維護(hù)升級(jí)以及鄉(xiāng)鎮(zhèn)街道基層服務(wù)點(diǎn)無(wú)法擴(kuò)展的尷尬局面。
二是缺少專(zhuān)業(yè)技術(shù)人員。公共數(shù)字文化虛擬網(wǎng)建設(shè)中絕大多數(shù)省份均采用IPSecVPN連接技術(shù),維護(hù)時(shí)需要對(duì)兩端設(shè)備同時(shí)進(jìn)行配置。對(duì)于基層公共文化服務(wù)機(jī)構(gòu)來(lái)說(shuō),信息技術(shù)人員相對(duì)缺乏,后期的維護(hù)與拓展將面臨一定的挑戰(zhàn)。對(duì)省級(jí)分中心來(lái)說(shuō),樹(shù)形拓?fù)浣Y(jié)構(gòu)對(duì)建設(shè)與維護(hù)是一個(gè)考驗(yàn),一旦接入站點(diǎn)增多,維護(hù)量也會(huì)不斷增加,需要做好IP地址、虛擬鏈路等方面的規(guī)劃,以應(yīng)對(duì)后期接入站點(diǎn)的不斷增長(zhǎng)。
三是資源管理與績(jī)效評(píng)價(jià)缺失。當(dāng)前公共數(shù)字文化虛擬網(wǎng)只提供資源訪問(wèn)的通道,既無(wú)法實(shí)現(xiàn)資源管理,也無(wú)法實(shí)現(xiàn)用戶(hù)訪問(wèn)統(tǒng)計(jì),如果要對(duì)現(xiàn)有資源的使用情況開(kāi)展績(jī)效評(píng)價(jià),則需要另外增加系統(tǒng)。
綜上所述,采用虛擬網(wǎng)開(kāi)展數(shù)字資源傳遞,面臨著專(zhuān)項(xiàng)經(jīng)費(fèi)缺乏、技術(shù)人員不足、管理與績(jī)效缺失等諸多困難。筆者以“圖書(shū)館or公共數(shù)字文化”+“虛擬網(wǎng)or資源傳遞or資源配送”為關(guān)鍵詞,在中國(guó)知網(wǎng)數(shù)據(jù)庫(kù)對(duì)其進(jìn)行檢索,未發(fā)現(xiàn)有研究對(duì)資源傳遞提出相應(yīng)對(duì)策。鑒于此,筆者將嘗試從技術(shù)的角度,在省域環(huán)境下以合理方式替代現(xiàn)有虛擬網(wǎng),實(shí)現(xiàn)公共數(shù)字文化資源傳遞。
公共數(shù)字文化服務(wù)中絕大多數(shù)資源屬于互聯(lián)網(wǎng)非公開(kāi)訪問(wèn),因此本文討論的數(shù)字資源傳遞技術(shù)均依托互聯(lián)網(wǎng)實(shí)現(xiàn)。現(xiàn)有虛擬網(wǎng)建設(shè)是在互聯(lián)網(wǎng)的環(huán)境下建立站到站的加密隧道,確保資源在規(guī)定范圍內(nèi)實(shí)現(xiàn)傳遞。所以,支持公共數(shù)字文化資源傳遞的技術(shù)必須具備兩個(gè)要素:一是能夠?qū)崿F(xiàn)互聯(lián)網(wǎng)傳輸;二是能夠?qū)崿F(xiàn)訪問(wèn)控制。當(dāng)前能夠滿(mǎn)足以上條件的技術(shù)方式主要有三種:虛擬網(wǎng)、端口映射、反向代理。
虛擬網(wǎng)屬于遠(yuǎn)程訪問(wèn)技術(shù)的一種,簡(jiǎn)單地說(shuō)就是利用公用網(wǎng)絡(luò)架設(shè)專(zhuān)用私有網(wǎng)絡(luò),從而能夠訪問(wèn)到內(nèi)網(wǎng)服務(wù)器資源,公共數(shù)字文化工程正是使用該方式實(shí)現(xiàn)數(shù)字資源傳遞。當(dāng)前建設(shè)的覆蓋全國(guó)公共文化服務(wù)機(jī)構(gòu)的虛擬網(wǎng)屬于端到端訪問(wèn),利用網(wǎng)絡(luò)硬件設(shè)備,在互聯(lián)網(wǎng)搭建類(lèi)似于大型局域網(wǎng)的私有網(wǎng)絡(luò),各機(jī)構(gòu)通過(guò)構(gòu)建的加密隧道訪問(wèn)中心節(jié)點(diǎn)的數(shù)字資源。
端口映射是一種常用的網(wǎng)絡(luò)服務(wù)技術(shù),將公網(wǎng)出口IP地址中的一個(gè)端口映射到內(nèi)網(wǎng)的服務(wù)器上,使得互聯(lián)網(wǎng)用戶(hù)能夠訪問(wèn)相應(yīng)服務(wù)器上的資源。端口映射本身只能實(shí)現(xiàn)資源訪問(wèn),并不能夠達(dá)到訪問(wèn)控制的要求,所以還需要在實(shí)現(xiàn)端口映射的網(wǎng)絡(luò)設(shè)備上增加網(wǎng)絡(luò)訪問(wèn)控制列表,確保數(shù)字資源能夠在規(guī)定范圍內(nèi)有效傳遞。
反向代理技術(shù)通過(guò)在客戶(hù)端與被訪問(wèn)資源之間增加信息中轉(zhuǎn)站,使得用戶(hù)需向代理服務(wù)器發(fā)出訪問(wèn)請(qǐng)求,由代理服務(wù)器將資源服務(wù)器內(nèi)容傳送給訪問(wèn)者。這樣做的優(yōu)勢(shì)是可以將數(shù)字資源與訪問(wèn)者請(qǐng)求都匯集在同一臺(tái)代理服務(wù)器中,在代理服務(wù)器中對(duì)用戶(hù)的請(qǐng)求與響應(yīng)報(bào)文通過(guò)程序進(jìn)行分析與處理,既保證了資源有效傳遞,又實(shí)現(xiàn)了訪問(wèn)控制與資源管理。
上述三種技術(shù)方式對(duì)比如表1所示:

表1 技術(shù)方式比較
端口映射作為數(shù)字資源傳遞的另一種可行性方式,與虛擬網(wǎng)相比,僅需在中心節(jié)點(diǎn)部署,構(gòu)建復(fù)雜度較低。該方式在中心節(jié)點(diǎn)網(wǎng)絡(luò)出口防火墻對(duì)資源訪問(wèn)地址進(jìn)行端口映射,并對(duì)相關(guān)的源地址、目的地址增加訪問(wèn)控制,可以實(shí)現(xiàn)公共數(shù)字文化資源有效傳遞。但該方式需要在中心節(jié)點(diǎn)出口防火墻上進(jìn)行配置,后續(xù)工作均依賴(lài)硬件防火墻完成,很難滿(mǎn)足中心節(jié)點(diǎn)多樣性、定制化的需求,無(wú)法實(shí)現(xiàn)資源管理與績(jī)效評(píng)價(jià),因此采用端口映射方式并不適用于目前的資源服務(wù)環(huán)境。
反向代理方式則主要是將用戶(hù)數(shù)字資源訪問(wèn)請(qǐng)求匯集在一臺(tái)或一組代理服務(wù)器上,并對(duì)代理服務(wù)器上的訪問(wèn)請(qǐng)求與響應(yīng)報(bào)文進(jìn)行處理,實(shí)現(xiàn)用戶(hù)訪問(wèn)、資源管理、訪問(wèn)統(tǒng)計(jì)。其優(yōu)點(diǎn)是系統(tǒng)構(gòu)建相對(duì)簡(jiǎn)單且無(wú)需額外硬件設(shè)備,缺點(diǎn)是僅支持HTTP協(xié)議的數(shù)字資源,但目前公共數(shù)字文化資源均采用B/S結(jié)構(gòu),使用HTTP協(xié)議為用戶(hù)提供服務(wù),這為采用反向代理技術(shù)提供了先決條件。相較于虛擬網(wǎng)和端口映射方式,反向代理能夠?qū)崿F(xiàn)數(shù)字資源管理及訪問(wèn)統(tǒng)計(jì),部署時(shí)不影響現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu),系統(tǒng)可擴(kuò)展性強(qiáng),實(shí)現(xiàn)成本較低,是一種極為簡(jiǎn)便的資源傳遞方式,適合在公共數(shù)字文化服務(wù)中開(kāi)展推廣應(yīng)用。因此,筆者更傾向于使用反向代理的方式實(shí)現(xiàn)數(shù)字資源傳遞。一直以來(lái),反向代理通常使用Nginx平臺(tái)實(shí)現(xiàn),隨著互聯(lián)網(wǎng)技術(shù)不斷發(fā)展,基于Nginx整合的OpenResty平臺(tái)正逐步在互聯(lián)網(wǎng)企業(yè)中被廣泛使用。本文將探討如何通過(guò)OpenResty平臺(tái)采用反向代理方式實(shí)現(xiàn)公共數(shù)字文化資源服務(wù),并對(duì)所涉及的關(guān)鍵技術(shù)進(jìn)行分析與研究。
反向代理屬于Web代理的一種形式,Web代理的作用是為了實(shí)現(xiàn)資源的有效訪問(wèn),按形式可以分為正向代理與反向代理,在實(shí)際應(yīng)用方面二者有一定差別。正向代理一般架設(shè)在客戶(hù)端和目標(biāo)主機(jī)之間,為客戶(hù)端無(wú)法訪問(wèn)到達(dá)的目標(biāo)主機(jī)提供一種可訪問(wèn)途徑。在現(xiàn)實(shí)應(yīng)用中用戶(hù)已知目標(biāo)主機(jī)存在,主動(dòng)通過(guò)代理服務(wù)器去訪問(wèn)目標(biāo)主機(jī)。其作用是能讓客戶(hù)端訪問(wèn)原來(lái)無(wú)法訪問(wèn)的資源,通過(guò)正向代理還可以實(shí)現(xiàn)用戶(hù)訪問(wèn)記錄、訪問(wèn)速度提升、上網(wǎng)權(quán)限認(rèn)證、用戶(hù)信息隱藏等等。而反向代理是將代理服務(wù)器偽裝成被訪問(wèn)的資源服務(wù)器,在現(xiàn)實(shí)應(yīng)用中用戶(hù)并不知道目標(biāo)主機(jī)的存在,通過(guò)訪問(wèn)代理服務(wù)器來(lái)實(shí)現(xiàn)資源獲取。反向代理的作用一般是為了保護(hù)目標(biāo)主機(jī)安全、防止Web攻擊、保障負(fù)載均衡等等,同時(shí)也可以實(shí)現(xiàn)用戶(hù)認(rèn)證與訪問(wèn)行為的獲取[16]。
雖然正向代理與反向代理方式均可實(shí)現(xiàn)數(shù)字資源傳遞,但使用反向代理方式時(shí),用戶(hù)實(shí)際并不知道真實(shí)目標(biāo)主機(jī)的存在,從而不能繞過(guò)代理服務(wù)器去直接訪問(wèn)目標(biāo)主機(jī),這為數(shù)字資源傳遞的安全性提供了保障。能夠?qū)崿F(xiàn)反向代理技術(shù)的平臺(tái)有很多,包括Apache、IIS、Nignx等等。其中,Nginx自問(wèn)世以來(lái),因其卓越的性能表現(xiàn)以及豐富的功能配置,逐步成為反向代理應(yīng)用的首選。本文所采用的OpenResty平臺(tái),正是在Nginx基礎(chǔ)上糅合Lua語(yǔ)言等技術(shù),使得用戶(hù)能夠快速高效地構(gòu)建服務(wù)端相關(guān)應(yīng)用。
2007年,在OpenAPI熱潮的影響下,雅虎中國(guó)的研發(fā)團(tuán)隊(duì)希望能夠設(shè)計(jì)出一套R(shí)EST風(fēng)格的Web 服務(wù)器,為雅虎中國(guó)的搜索產(chǎn)品提供內(nèi)部服務(wù)。后來(lái),該研發(fā)團(tuán)隊(duì)核心成員章亦春加入阿里巴巴,并決定對(duì)之前的項(xiàng)目進(jìn)行重新設(shè)計(jì)和徹底重寫(xiě)。在淘寶數(shù)據(jù)工程師王曉哲的提議下,章亦春選擇基于Nginx和Lua腳本語(yǔ)言進(jìn)行開(kāi)發(fā),將Nginx核心、LuaJIT虛擬機(jī)以及常用的Lua庫(kù)糅合在了一起,構(gòu)成一個(gè)高性能、易擴(kuò)展的開(kāi)源Web平臺(tái),并將這個(gè)平臺(tái)命名為OpenResty[17]。OpenResty有效地把Nginx轉(zhuǎn)換成為性能強(qiáng)大的Web服務(wù)器,開(kāi)發(fā)人員可以使用Lua語(yǔ)言對(duì)Nginx核心以及現(xiàn)有的各種Nginx C模塊進(jìn)行腳本編程,能夠快速構(gòu)建出處理一萬(wàn)以上并發(fā)請(qǐng)求的極端高性能的Web應(yīng)用。目前,越來(lái)越多的大型互聯(lián)網(wǎng)企業(yè)正使用OpenResty處理相關(guān)業(yè)務(wù),如網(wǎng)易、騰訊、去哪兒網(wǎng)、新浪、天涯、CloudFlare、Reblaze.com、EMS、網(wǎng)龍等[18]。筆者選擇OpenResty平臺(tái)實(shí)現(xiàn)系統(tǒng)構(gòu)建,正是充分利用其N(xiāo)ginx反向代理功能、豐富的第三方模塊、高性能Web應(yīng)用能力以及Lua腳本語(yǔ)言易開(kāi)發(fā)的特性,能夠快速實(shí)現(xiàn)更符合需求的定制化開(kāi)發(fā)。
本文基于OpenResty平臺(tái)采用反向代理方式,將被代理數(shù)字資源匯集在一臺(tái)服務(wù)器并部署在省級(jí)分中心節(jié)點(diǎn)出口,國(guó)家中心節(jié)點(diǎn)與省級(jí)分中心節(jié)點(diǎn)仍采用專(zhuān)線方式連接。市縣級(jí)支中心節(jié)點(diǎn)則可以通過(guò)互聯(lián)網(wǎng)直接訪問(wèn)代理服務(wù)器獲取資源。系統(tǒng)拓?fù)淙鐖D2所示:

圖2 系統(tǒng)拓?fù)鋱D
系統(tǒng)設(shè)計(jì)為B/S結(jié)構(gòu),主要由前端界面、業(yè)務(wù)處理、后臺(tái)數(shù)據(jù)庫(kù)三個(gè)部分組成。前端界面使用Python Flask 1.0.2框架,業(yè)務(wù)處理部分采用OpenResty 1.13.6.2,后臺(tái)數(shù)據(jù)庫(kù)使用MariaDB 10.0,系統(tǒng)運(yùn)行環(huán)境CentOS 7.4。系統(tǒng)核心是業(yè)務(wù)處理部分,由資源反向代理、用戶(hù)訪問(wèn)控制、用戶(hù)訪問(wèn)統(tǒng)計(jì)等模塊構(gòu)成,通過(guò)反向代理功能實(shí)現(xiàn)數(shù)字資源代理訪問(wèn),采用訪問(wèn)源IP地址認(rèn)證的方式實(shí)現(xiàn)訪問(wèn)權(quán)限控制,并對(duì)用戶(hù)訪問(wèn)的HTTP請(qǐng)求與響應(yīng)報(bào)文進(jìn)行處理,實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)統(tǒng)計(jì)獲取。
系統(tǒng)核心部分通過(guò)OpenResty平臺(tái)實(shí)現(xiàn)了資源反向代理、用戶(hù)訪問(wèn)控制與訪問(wèn)統(tǒng)計(jì),下面將對(duì)實(shí)現(xiàn)這三部分功能的代碼進(jìn)行展示。
5.1.1 資源反向代理
反向代理利用了Nginx中的proxy_pass方法實(shí)現(xiàn),在Nginx配置文件中將被代理的資源配置到相應(yīng)的location中,即可實(shí)現(xiàn)數(shù)字資源反向代理,反向代理作為Nginx中的基本應(yīng)用,具體配置難度不大,核心代碼示例如下:

5.1.2 用戶(hù)訪問(wèn)控制
訪問(wèn)控制作為本系統(tǒng)另一個(gè)核心模塊,實(shí)現(xiàn)了用戶(hù)源地址訪問(wèn)控制。本系統(tǒng)采用Lua腳本語(yǔ)言對(duì)用戶(hù)訪問(wèn)請(qǐng)求的源IP地址進(jìn)行識(shí)別判斷,允許與數(shù)據(jù)庫(kù)中保存IP地址匹配的用戶(hù)進(jìn)行資源訪問(wèn),核心代碼示例如下:

5.1.3 用戶(hù)訪問(wèn)統(tǒng)計(jì)
使用OpenResty的最大優(yōu)勢(shì)就是可以通過(guò)Lua腳本語(yǔ)言實(shí)現(xiàn)業(yè)務(wù)處理,本系統(tǒng)用戶(hù)通過(guò)HTTP協(xié)議實(shí)現(xiàn)數(shù)字資源訪問(wèn),服務(wù)器端接收由客戶(hù)端瀏覽器發(fā)送的訪問(wèn)請(qǐng)求信息并返回響應(yīng)結(jié)果,在這個(gè)過(guò)程中,使用Lua程序?qū)@些請(qǐng)求和響應(yīng)的內(nèi)容進(jìn)行分析,即可得到用戶(hù)訪問(wèn)數(shù)據(jù)。HTTP請(qǐng)求與響應(yīng)報(bào)文格式如表2所示:

表2 HTTP協(xié)議請(qǐng)求與響應(yīng)報(bào)文格式
用戶(hù)訪問(wèn)統(tǒng)計(jì)內(nèi)容包括:用戶(hù)信息、URL、源IP地址、用戶(hù)檢索、用戶(hù)下載等內(nèi)容。其中用戶(hù)信息與IP地址以及訪問(wèn)的URL信息,可以通過(guò)Lua語(yǔ)言在請(qǐng)求報(bào)文中的Cookie、URL、User-Agent、remote_addr等屬性中獲取。用戶(hù)檢索有兩種方式:GET方式在URL中獲取用戶(hù)檢索數(shù)據(jù);POST方式可以在請(qǐng)求正文中獲取用戶(hù)檢索數(shù)據(jù)。用戶(hù)下載信息獲取相對(duì)較為復(fù)雜,需結(jié)合響應(yīng)報(bào)文內(nèi)容進(jìn)行分析,如響應(yīng)報(bào)文中出現(xiàn)Content-Disposition字段,則表明有附加文件發(fā)送給用戶(hù)。又如Content-Disposition屬性中包含attachment關(guān)鍵字,則說(shuō)明當(dāng)前用戶(hù)通過(guò)下載的方式獲取附件,其他則為當(dāng)前用戶(hù)通過(guò)在線閱覽方式獲取資源。用戶(hù)訪問(wèn)統(tǒng)計(jì)中關(guān)于下載部分的Lua代碼片段如下:


圖3 系統(tǒng)前端訪問(wèn)界面

圖4 系統(tǒng)后臺(tái)統(tǒng)計(jì)界面
南京圖書(shū)館是公共數(shù)字文化工程省級(jí)分中心,也是江蘇省公共數(shù)字文化建設(shè)中心,承擔(dān)著全省各市縣級(jí)公共文化機(jī)構(gòu)資源傳遞的任務(wù)。筆者以南京圖書(shū)館為例,采用以上方法替代原有虛擬網(wǎng),使基層公共文化服務(wù)機(jī)構(gòu)通過(guò)互聯(lián)網(wǎng)直接獲取數(shù)字資源,各分支機(jī)構(gòu)將無(wú)須再做任何維護(hù),即便是增加或者擴(kuò)展基層服務(wù)點(diǎn),也僅需在系統(tǒng)中添加相應(yīng)的出口IP地址即可。與之前采用虛擬網(wǎng)相比,現(xiàn)有方式極大簡(jiǎn)化了工作流程,減少了工作量,后期運(yùn)維工作也全部由省級(jí)分中心完成。系統(tǒng)前端訪問(wèn)以及后臺(tái)數(shù)據(jù)統(tǒng)計(jì)部分界面如圖3、圖4所示。
公共數(shù)字文化長(zhǎng)期以來(lái)一直由國(guó)家中心承擔(dān)建設(shè)的主要任務(wù),省級(jí)分中心通常會(huì)直接借鑒國(guó)家中心的經(jīng)驗(yàn)開(kāi)展相應(yīng)工作,但當(dāng)前在省域環(huán)境下采用虛擬網(wǎng)開(kāi)展數(shù)字資源傳遞,并非最佳方式。在創(chuàng)新發(fā)展推動(dòng)下,借鑒互聯(lián)網(wǎng)其他行業(yè)經(jīng)驗(yàn),充分利用OpenResty的優(yōu)勢(shì)開(kāi)展公共數(shù)字文化建設(shè),具有以下幾個(gè)方面意義:
簡(jiǎn)化傳遞方式,有利于降低服務(wù)成本。虛擬網(wǎng)通過(guò)專(zhuān)業(yè)網(wǎng)絡(luò)設(shè)備在互聯(lián)網(wǎng)上建立站到站加密隧道實(shí)現(xiàn)數(shù)字資源傳遞,而利用OpenResty平臺(tái)類(lèi)似于建立數(shù)字資源云服務(wù),只需要在中心節(jié)點(diǎn)將數(shù)字資源以反向代理方式提供服務(wù),通過(guò)對(duì)接入站點(diǎn)IP地址進(jìn)行驗(yàn)證,即可實(shí)現(xiàn)數(shù)字資源站到站訪問(wèn)。建設(shè)難度大幅降低,接入站點(diǎn)不需要專(zhuān)業(yè)設(shè)備即可實(shí)現(xiàn)資源訪問(wèn)服務(wù),零成本的接入模式,有利于解決基層公共文化服務(wù)機(jī)構(gòu)存在的技術(shù)、經(jīng)費(fèi)等問(wèn)題。
優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),有利于服務(wù)延伸與拓展。從網(wǎng)絡(luò)層次的角度來(lái)看,數(shù)字資源傳遞由網(wǎng)絡(luò)層上升至應(yīng)用層;從邏輯拓?fù)涞慕嵌葋?lái)看,原有樹(shù)形拓?fù)浣Y(jié)構(gòu)更改為星形拓?fù)洹>W(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化帶來(lái)的是應(yīng)用變化,利用網(wǎng)絡(luò)應(yīng)用層的特點(diǎn),對(duì)訪問(wèn)數(shù)據(jù)包進(jìn)行處理,能夠?qū)崿F(xiàn)數(shù)字資源統(tǒng)計(jì)分析、資源管理、統(tǒng)一認(rèn)證、單點(diǎn)登錄等功能,并以此為依據(jù)實(shí)現(xiàn)數(shù)字資源服務(wù)績(jī)效考核。而對(duì)于用戶(hù)來(lái)說(shuō),這與正常訪問(wèn)沒(méi)有任何區(qū)別。借助訪問(wèn)統(tǒng)計(jì)數(shù)據(jù),該方式還可以為用戶(hù)提供更加個(gè)性化的服務(wù),使用戶(hù)可以更加直觀地感受到自身數(shù)字資源使用情況,優(yōu)化用戶(hù)體驗(yàn)。對(duì)于基層公共文化服務(wù)機(jī)構(gòu)來(lái)說(shuō),這將使工作重點(diǎn)更多地向服務(wù)轉(zhuǎn)移,有助于進(jìn)一步發(fā)揮好服務(wù)陣地的作用。
創(chuàng)新驅(qū)動(dòng)發(fā)展,這一嘗試有利于探索公共文化服務(wù)新模式。長(zhǎng)期以來(lái),我國(guó)公共文化服務(wù)一直面臨著發(fā)展不均衡的問(wèn)題,運(yùn)用技術(shù)手段創(chuàng)新發(fā)展方式,消除地區(qū)差異鴻溝,同時(shí)發(fā)揮中心節(jié)點(diǎn)龍頭作用,帶動(dòng)地區(qū)公共文化服務(wù)發(fā)展,也為解決公共文化服務(wù)發(fā)展不平衡不充分的問(wèn)題,實(shí)現(xiàn)基本公共文化服務(wù)均等化,提供了一種探索模式。