廖國(guó)棟,肖玉容
(1.亞信科技(南京)有限公司,江蘇南京 210016;2.江蘇省電信公司,江蘇 南京 320100)
LAMP(Linux-Apache-MySQL-PHP)網(wǎng)站架構(gòu)是目前國(guó)際流行的Web框架,該框架包括:Linux操作系統(tǒng);Apache網(wǎng)絡(luò)服務(wù)器、MySQL數(shù)據(jù)庫(kù);Perl、PHP或者 Python編程語(yǔ)言。LAMP提供了一個(gè)快捷、低投入的前端開(kāi)發(fā)框架,但是作為一個(gè)穩(wěn)健的、并且可以最大擴(kuò)展的平臺(tái),還可以利用Java平臺(tái)提供后端服務(wù)的能力,通過(guò)多線程、輕量級(jí)服務(wù)保證高并發(fā)訪問(wèn),并結(jié)合統(tǒng)一搜索、即時(shí)通訊、在線視頻分享等提供更加豐富的功能。本文提出的LAMP云管理平臺(tái)總體技術(shù)路線如圖1所示。
圖1 LAMP云管理平臺(tái)總體技術(shù)路線
■基礎(chǔ)層由 Linux,MySQL,MongoDB,Memcached 提供基礎(chǔ)軟件運(yùn)行環(huán)境。
■服務(wù)層由JBoss/Tomcat提供Restful服務(wù),由Solr搭建自定義搜索引擎,F(xiàn)Fmpeg提供流媒體服務(wù)并支持多種視頻格式轉(zhuǎn)換,Openfire作為即時(shí)通訊服務(wù)器。
■表示層由Apache作為WEB容器,并由PHP搭建前端運(yùn)行框架。
■前端支持瀏覽器接入、智能終端、基于WEB/客戶端的即時(shí)通訊,并可以擴(kuò)展至多媒體查詢機(jī)、智能電視等大屏設(shè)備。
LAMP云管理平臺(tái)將在統(tǒng)一基礎(chǔ)設(shè)施環(huán)境下,構(gòu)建“平臺(tái)+應(yīng)用”的業(yè)務(wù)支撐體系,包括:
■平臺(tái):基于云的基礎(chǔ)設(shè)施平臺(tái)、基于云的基礎(chǔ)服務(wù)平臺(tái)、統(tǒng)一的門戶和業(yè)務(wù)技術(shù)能力平臺(tái)。
■應(yīng)用:在平臺(tái)及規(guī)范體系下的業(yè)務(wù)應(yīng)用。
平臺(tái)支持應(yīng)用從創(chuàng)建到運(yùn)行整個(gè)生命周期管理,支持服務(wù)從創(chuàng)建到運(yùn)行整個(gè)生命周期管理。平臺(tái)可以對(duì)應(yīng)用使用的計(jì)算資源進(jìn)行管理,可根據(jù)應(yīng)用的業(yè)務(wù)規(guī)模、用戶數(shù)等為應(yīng)用分配相應(yīng)的計(jì)算資源。
LAMP平臺(tái)上所有業(yè)務(wù)以應(yīng)用的方式提供給用戶使用,用戶必須通過(guò)訂購(gòu)應(yīng)用后才能使用。訂購(gòu)可以是用戶訂購(gòu)、管理員代訂購(gòu)(默認(rèn)可使用的應(yīng)用)、群組應(yīng)用管理員添加使用者3種方式。
應(yīng)用在發(fā)布時(shí),必須配置需使用的資源或者服務(wù),并通過(guò)安全控制授予應(yīng)用可以訪問(wèn)的系統(tǒng)資源。同時(shí),應(yīng)用可以使用的服務(wù)資源可以被收回,用以應(yīng)用異常或第三方開(kāi)發(fā)者越權(quán)訪問(wèn)資源時(shí)對(duì)應(yīng)用進(jìn)行隔離。
本文論述的LAMP云管理平臺(tái)總體技術(shù)架構(gòu)如圖2所示。
WEB Framework為應(yīng)用提供了統(tǒng)一的開(kāi)發(fā)和運(yùn)行框架,負(fù)責(zé)為應(yīng)用提供URL轉(zhuǎn)換、頁(yè)面流轉(zhuǎn)控制、頁(yè)面渲染、服務(wù)訪問(wèn)封裝、布局管理、主題等能力,為業(yè)務(wù)應(yīng)用提供敏捷開(kāi)發(fā)能力(見(jiàn)圖3)。
(1)URL Handler:URL由Web App資源索引定義,包括URL和回調(diào)函數(shù)。訪問(wèn)URL時(shí)框架會(huì)先作權(quán)限驗(yàn)證,成功后自動(dòng)調(diào)用相應(yīng)的回調(diào)函數(shù)并返回。
圖2 總體技術(shù)架構(gòu)
圖3 WEB Framework框架
(2)UI Viewer Render:根據(jù)PHP頁(yè)面模板對(duì)頁(yè)面元素進(jìn)行渲染??蚣芴峁┠0逡娉橄箢?,提供常用的視圖函數(shù)。Web App中通過(guò)assign方法對(duì)模板變量賦值,賦值后在模板中可直接調(diào)用。模板中可再調(diào)用render方法渲染子模板。
(3)Page Render:加載應(yīng)用主題、配置文件、屬性等配置數(shù)據(jù)。
(4)Proxy:Web App對(duì)外部服務(wù)調(diào)用的代理,Web 端的Proxy通過(guò)HTTP Request方式向Service發(fā)起調(diào)用請(qǐng)求。
(5)WEB Service Wrapper:外部系統(tǒng)不能對(duì)Web系統(tǒng)直接調(diào)用,Web系統(tǒng)的方法必須由Web Service Wrapper呈現(xiàn)。外部系統(tǒng)通過(guò)Web Service方式調(diào)用平臺(tái)上的服務(wù)。其業(yè)務(wù)應(yīng)用在WEB Framework下的運(yùn)行狀況如圖4所示。
圖4 WEB Framework運(yùn)行流程
■ Agent負(fù)責(zé)代理平臺(tái)核心服務(wù),并統(tǒng)一接口對(duì)其他部分提供服務(wù)。
■ Proxy是Agent系統(tǒng)在Controller層的代理,以PHP inc文件方式呈現(xiàn)。
■ 模板引擎結(jié)合Web App所提供的PHTML和Proxy所提供的服務(wù)內(nèi)容,進(jìn)行渲染,得到App的展現(xiàn)界面。
■ Portal架構(gòu)在Web Framework基礎(chǔ)之上,將Web App組織起來(lái),同用戶進(jìn)行交互。
LAMP平臺(tái)是一個(gè)可以快速橫向擴(kuò)展的平臺(tái),運(yùn)行業(yè)務(wù)應(yīng)用眾多,從技術(shù)上需要對(duì)與技術(shù)相關(guān)和通用性較強(qiáng)的能力進(jìn)行抽取,結(jié)合云計(jì)算的先進(jìn)理念,將基礎(chǔ)架構(gòu)及應(yīng)用功能云化管理,形成一個(gè)科學(xué)先進(jìn)的基礎(chǔ)平臺(tái),保證各應(yīng)用在技術(shù)架構(gòu)上是統(tǒng)一的、可靠的、易維護(hù)的、易擴(kuò)展的、高性能的。
(1)統(tǒng)一認(rèn)證授權(quán)服務(wù):將校內(nèi)所有應(yīng)用中的帳號(hào)(Account)管理、認(rèn)證(Authentication)管理、授權(quán)(Authorization)管理和安全審計(jì)(Audit)整合成集中、統(tǒng)一的安全服務(wù)系統(tǒng),也稱之為4A管理。
(2)統(tǒng)一資源管理:基礎(chǔ)設(shè)施資源指提供承載的主機(jī)(或虛擬主機(jī))以及其上運(yùn)行的應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、文件存儲(chǔ)服務(wù)器。統(tǒng)一資源管理對(duì)運(yùn)行環(huán)境中軟硬件等基礎(chǔ)設(shè)施的登記管理、資源調(diào)度、拓?fù)洳樵兊取?/p>
(3)統(tǒng)一消息中心:在用戶使用過(guò)程中會(huì)產(chǎn)生許多與用戶切身相關(guān)的信息事件,如預(yù)約、通知、日程提醒等,依據(jù)事件的重要性、緊迫性及時(shí)將各類通知提醒投遞至用戶可以提高工作效率、提升用戶體驗(yàn),是平臺(tái)具備的一項(xiàng)基本能力。
(4)統(tǒng)一搜索引擎:隨著應(yīng)用的增多和用戶使用頻度的增多,未來(lái)平臺(tái)的數(shù)據(jù)會(huì)爆炸性的增長(zhǎng),用戶感興趣的數(shù)據(jù)不僅包括各業(yè)務(wù)應(yīng)用產(chǎn)生的結(jié)構(gòu)化數(shù)據(jù),還包括信息發(fā)布、虛擬社區(qū)、消息通知、文件文檔、互聯(lián)網(wǎng)上數(shù)據(jù)等各類非結(jié)構(gòu)化的數(shù)據(jù),傳統(tǒng)的查詢統(tǒng)計(jì)已經(jīng)不能將這些數(shù)據(jù)統(tǒng)一呈現(xiàn)出來(lái),甚至對(duì)非結(jié)構(gòu)化數(shù)據(jù)已經(jīng)完全束手無(wú)策,因此定制了一個(gè)統(tǒng)一的搜索引擎。
(5)統(tǒng)一工作流引擎:日常工作中的公文流轉(zhuǎn)、各項(xiàng)審批可以使用工作流進(jìn)行標(biāo)準(zhǔn)化的管理,統(tǒng)一工作流引擎具備工作流可視化建模、流程動(dòng)態(tài)部署、流程驅(qū)動(dòng)、流程監(jiān)控等功能,對(duì)于流程類業(yè)務(wù)快速開(kāi)發(fā)和實(shí)施上線、流程統(tǒng)一監(jiān)控等具有重要意義。
(6)統(tǒng)一信息發(fā)布:統(tǒng)一信息發(fā)布實(shí)現(xiàn)對(duì)站內(nèi)信息內(nèi)容發(fā)布的統(tǒng)一管理,支撐新聞、公告、各種宣傳材料、規(guī)章制度等內(nèi)容的采編、審批和發(fā)布流程。統(tǒng)一信息發(fā)布是綜合門戶、各虛擬站點(diǎn)的重要信息來(lái)源。
(7)統(tǒng)一日志服務(wù):以標(biāo)準(zhǔn)服務(wù)向業(yè)務(wù)應(yīng)用提供日志記錄服務(wù),統(tǒng)一日志格式,集中日志存儲(chǔ),統(tǒng)一查詢界面,統(tǒng)一設(shè)置日志開(kāi)關(guān)。
(8)統(tǒng)一緩存服務(wù):非頻繁變動(dòng)的數(shù)據(jù)放在內(nèi)存緩存中,系統(tǒng)需要數(shù)據(jù)時(shí)直接從緩存中讀取,從而節(jié)約數(shù)據(jù)獲取時(shí)間,大大提高系統(tǒng)性能。
(9)統(tǒng)一文件存儲(chǔ)服務(wù):文件分享也是目前常用的應(yīng)用,平臺(tái)提供了對(duì)文件進(jìn)行統(tǒng)一的存儲(chǔ)管理的功能,可以為各類應(yīng)用提供上傳附件的接口,并向用戶提供類似各大網(wǎng)站的網(wǎng)盤服務(wù)。
(10)統(tǒng)一應(yīng)用管理:平臺(tái)的核心特色就是以“應(yīng)用倉(cāng)庫(kù)”的方式對(duì)應(yīng)用管理的能力,使用平臺(tái)的SDK開(kāi)發(fā)的應(yīng)用可以直接發(fā)布在平臺(tái)上,平臺(tái)類似于一個(gè)管理WEB應(yīng)用的操作系統(tǒng),為教育教學(xué)應(yīng)用提供基本的運(yùn)行環(huán)境,負(fù)責(zé)監(jiān)控和維護(hù)應(yīng)用的運(yùn)行。
*應(yīng)用注冊(cè):向應(yīng)用注冊(cè)表中注冊(cè)應(yīng)用,為應(yīng)用分配應(yīng)用標(biāo)識(shí),用以在應(yīng)用訪問(wèn)中動(dòng)態(tài)尋址。
*應(yīng)用安裝:根據(jù)應(yīng)用系統(tǒng)規(guī)范中定義的標(biāo)準(zhǔn),定義應(yīng)用版本,制作應(yīng)用安裝包,通過(guò)上傳應(yīng)用安裝包,將應(yīng)用安裝在平臺(tái)上并啟動(dòng)應(yīng)用。
*應(yīng)用監(jiān)控:監(jiān)控已經(jīng)安裝的應(yīng)用的運(yùn)行狀態(tài),統(tǒng)計(jì)所消耗資源,近期內(nèi)應(yīng)用產(chǎn)生的交易量,并能夠在監(jiān)控界面中選擇啟動(dòng)或停止應(yīng)用。
*應(yīng)用訂購(gòu):用戶可以訂購(gòu)已安裝的應(yīng)用,并支持按角色、工作組批量訂購(gòu)應(yīng)用。
*應(yīng)用卸載:對(duì)已經(jīng)停用的應(yīng)用可以通過(guò)運(yùn)維監(jiān)控界面進(jìn)行卸載。
(11)統(tǒng)一SOA標(biāo)準(zhǔn):SOA是一種面向服務(wù)的系統(tǒng)架構(gòu)方法,通過(guò)統(tǒng)一的SOA標(biāo)準(zhǔn)實(shí)現(xiàn)業(yè)務(wù)能力的提升和技術(shù)能力的提升(見(jiàn)圖5)。
圖5 SOA技術(shù)標(biāo)準(zhǔn)
*采用HTTP+RESTful通訊協(xié)議:相較于SOAP的WEB Service實(shí)現(xiàn),RESTful服務(wù)更加高效、簡(jiǎn)單、安全、可靠,已經(jīng)成為WEB Service的主流實(shí)現(xiàn)方式。
*采用JSON的數(shù)據(jù)格式:JSON能夠描述XML格式的層次關(guān)系,由于省略了XML中字段的標(biāo)記信息,數(shù)據(jù)量更小,通訊效率更高。
*安全策略:采用密碼驗(yàn)證+摘要驗(yàn)證的方式,保證業(yè)務(wù)應(yīng)用通過(guò)安全的身份驗(yàn)證,通訊數(shù)據(jù)不被篡改。
(1)完全基于云計(jì)算理念:云計(jì)算包括3個(gè)層次:基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)、軟件即服務(wù)(SaaS),本文論述的基于LAMP的云管理平臺(tái)對(duì)云計(jì)算各層次提供全面支持。
(2)基于軟件平臺(tái)理念構(gòu)建:軟件平臺(tái)能夠提供基礎(chǔ)的軟件運(yùn)行環(huán)境,各種類型應(yīng)用可以在其上運(yùn)行。
(3)采用了先進(jìn)的WEB2.0技術(shù):近幾年WEB2.0迅速發(fā)展,已經(jīng)成為各大網(wǎng)站的主流技術(shù),WEB2.0強(qiáng)調(diào)用戶分享、信息聚合、人人參與,并具有非常豐富的用戶體驗(yàn),采用WEB2.0技術(shù)的站點(diǎn)對(duì)用戶的吸引程度大超過(guò)了傳統(tǒng)站點(diǎn)。
(4)符合SOA體系的架構(gòu)規(guī)劃:解決方案基于SOA架構(gòu)規(guī)劃,充分體現(xiàn)了以人為中心,支持多用戶角色、多應(yīng)用融合的架構(gòu)設(shè)計(jì)理念,彰顯IT應(yīng)用架構(gòu)的靈活性和業(yè)務(wù)條線化發(fā)展的獨(dú)立性,且能應(yīng)對(duì)未來(lái)新業(yè)務(wù)的增加,促進(jìn)信息化的高速發(fā)展。
(5)遵循開(kāi)放的架構(gòu)體系和技術(shù)標(biāo)準(zhǔn):解決方案完全遵循業(yè)界開(kāi)放的架構(gòu)體系標(biāo)準(zhǔn):PHP前端+Java EE應(yīng)用層+SOA架構(gòu),以服務(wù)為導(dǎo)向,結(jié)合模塊化結(jié)構(gòu)、參數(shù)化設(shè)計(jì),交易模板定制技術(shù),層次清晰,封裝性好,充分保證系統(tǒng)的靈活性和可擴(kuò)展性。
(6)高性能和高擴(kuò)展性的架構(gòu)設(shè)計(jì):方案采用高性能的架構(gòu)設(shè)計(jì),系統(tǒng)部署運(yùn)行在高性能的應(yīng)用服務(wù)器中,能充分利用應(yīng)用服務(wù)器的負(fù)載均衡技術(shù),確保系統(tǒng)的高可用性和高可靠性;系統(tǒng)應(yīng)用架構(gòu)設(shè)計(jì)采用松耦合的分層架構(gòu)設(shè)計(jì),支持應(yīng)用的橫向擴(kuò)展和縱向擴(kuò)展,充分保證系統(tǒng)的性能擴(kuò)展能力;部署架構(gòu)采用具有高可擴(kuò)展性和低成本的虛擬集群技術(shù)。
(7)高度的安全體系設(shè)計(jì):采用了多層次的安全體系設(shè)計(jì),從網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)、應(yīng)用和流程等各個(gè)層面都進(jìn)行安全設(shè)計(jì),并充分利用了操作系統(tǒng)、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器提供的先進(jìn)的安全技術(shù),結(jié)合產(chǎn)品平臺(tái)提供的完善的授權(quán)管理和審計(jì)安全技術(shù),以及高安全的網(wǎng)絡(luò)傳輸協(xié)議和傳輸加密技術(shù),確保系統(tǒng)具備高度的安全性。
(8)總成本最低:跨平臺(tái)支持,可以部署至當(dāng)前主流的各類Linux,Windows,UNIX上,除去開(kāi)發(fā)費(fèi)用不必再有額外的第三方軟件投入,且支持多種硬件平臺(tái)。還可通過(guò)分布式部署方案將應(yīng)用部署在不同PC Server上,極大限度地利用現(xiàn)有IT資源,保護(hù)系統(tǒng)投資。
[1]陳立,李蘭友.基于LAMP的高校網(wǎng)站集群建設(shè)與管理研究[J].南京工程學(xué)院學(xué)報(bào),2011(1).
[2]張建華.LAMP從入門到精通[M].杭州:浙江大學(xué)出版社,2006.
[3]于翔海,吳小虎,徐磊,等.基于LAMP架設(shè)的信息家庭網(wǎng)絡(luò)系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2011(8).