王亞雄 張飛 王穎卓
摘 ?要:Web應(yīng)用程序的易訪問、表現(xiàn)標(biāo)準(zhǔn)化程度高、以及客戶端的輕量化等特性,使得其客戶端工具(瀏覽器)基本上已經(jīng)成為所有主流操作系統(tǒng)的標(biāo)準(zhǔn)配置組件。這使得Web應(yīng)用程序客戶端應(yīng)用的安裝成本基本為零,理論上只要客戶端設(shè)備能夠訪問網(wǎng)絡(luò)就可以訪問使用Web應(yīng)用程序。本文通過實(shí)現(xiàn)一個(gè)支持HTTPS的Web服務(wù)器來轉(zhuǎn)述和執(zhí)行用戶通過瀏覽器提交的命令以實(shí)現(xiàn)對(duì)AIX主機(jī)進(jìn)行訪問和控制。
關(guān)鍵詞:AIX系統(tǒng);Web應(yīng)用程序;遠(yuǎn)程控制
中圖分類號(hào):TP277 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)12-0096-03
Abstract:Web applications are easy to access,highly standardized in performance,and lightweight in client,making their client tools (browsers)basically become standard configuration components of all mainstream operating systems. This makes the installation cost of Web application client application basically zero. In theory,as long as the client device can access the network,it can access and use the Web application. This paper implements a Web server supporting HTTPS to reproduce and execute commands submitted by users through browsers in order to access and control the AIX host.
Keywords:AIX system;Web application;remote control
0 ?引 ?言
AIX作為IMB開發(fā)的符合Open group的UNIX 98行業(yè)標(biāo)準(zhǔn)的服務(wù)器操作系統(tǒng),自身雖然帶有一個(gè)Web版本的高級(jí)系統(tǒng)管理接口(Advance System Management Interface—ASMI),但是該Web管理接口僅限于使用人員對(duì)AIX操作系統(tǒng)本身運(yùn)行相關(guān)選項(xiàng)的管理和查看,同時(shí)相對(duì)過于簡(jiǎn)單的用戶管理系統(tǒng)使得該系統(tǒng)在實(shí)際使用場(chǎng)合中有著極大的限制和不便。本系統(tǒng)通過利用AIX現(xiàn)有的一套完整的權(quán)限控制系統(tǒng)和命令執(zhí)行系統(tǒng)來對(duì)其進(jìn)行擴(kuò)展,以彌補(bǔ)AIX自帶ASMI的不足,方便AIX的使用人員對(duì)其進(jìn)行遠(yuǎn)程操作和控制。
1 ?設(shè)計(jì)目標(biāo)
本系統(tǒng)以一個(gè)搭建在AIX主機(jī)上的應(yīng)用系統(tǒng)而存在,設(shè)計(jì)開發(fā)的主要目的在于幫助AIX用戶安全方便地對(duì)AIX主機(jī)進(jìn)行遠(yuǎn)程操作控制。因此用戶管理的設(shè)計(jì)必須最大程度地保留從瀏覽器客戶端登錄的用戶行為和直接使用AIX主機(jī)用戶的行為一致;命令設(shè)計(jì)為單向命令執(zhí)行方式,用以減少系統(tǒng)開發(fā)的復(fù)雜度。對(duì)必須進(jìn)行交互操作的命令則采用客戶端模擬的方式予以支持。
2 ?系統(tǒng)軟件設(shè)計(jì)
2.1 ?系統(tǒng)的劃分
本系統(tǒng)分為客戶端子系統(tǒng)和服務(wù)器子系統(tǒng)兩大子系統(tǒng)進(jìn)行開發(fā)??蛻舳俗酉到y(tǒng)運(yùn)行在用戶終端的瀏覽器上,采用圖形化展現(xiàn)方式,通過HTTPS協(xié)議經(jīng)由廣(局)域網(wǎng)對(duì)AIX主機(jī)進(jìn)行訪問,是最終用戶和AIX系統(tǒng)的交互入口;服務(wù)器系統(tǒng)運(yùn)行在目標(biāo)AIX主機(jī)上(服務(wù)器系統(tǒng)的可拆卸部分可以部署在HTTPS代理服務(wù)器上,詳見后述),通過HTTPS協(xié)議接收來自主機(jī)以外的請(qǐng)求,并對(duì)發(fā)起請(qǐng)求的終端用戶進(jìn)行身份認(rèn)證以及命令的接收、解析、執(zhí)行和執(zhí)行結(jié)果反饋等動(dòng)作。相關(guān)的邏輯拓?fù)鋱D如圖1所示。
2.2 ?各系統(tǒng)的主要功能及相關(guān)實(shí)現(xiàn)技術(shù)介紹
2.2.1 ?客戶端系統(tǒng)
(1)客戶端系統(tǒng)設(shè)計(jì)為一個(gè)單頁面的富客戶端表現(xiàn)形態(tài),所有的GUI部分渲染均在客戶端瀏覽器內(nèi)完成。渲染由第三方渲染庫(kù)ExtJS完成,該庫(kù)的最大特點(diǎn)是全部由JS實(shí)現(xiàn),對(duì)主流瀏覽器的支持良好,瀏覽器無須下載其他額外的控件即可對(duì)其進(jìn)行執(zhí)行,此外該庫(kù)的可定制程度很高,經(jīng)筆者的實(shí)際測(cè)裁剪后整個(gè)應(yīng)用(包括所有的圖像資源和CSS控制文件)客戶端的源代碼大小可以控制在2M左右,大小是開發(fā)庫(kù)源代碼的1/20左右。如果采用gzip壓縮技術(shù)則完全可以控制在700k以內(nèi),完全可以滿足終端用戶在復(fù)雜網(wǎng)絡(luò)情況下的速度要求。
(2)客戶端系統(tǒng)和服務(wù)器之間的數(shù)據(jù)交互方式設(shè)計(jì)為Ajax方式。采用該技術(shù)最大的特點(diǎn)是可以通過單一Web頁面的局部刷新來更改頁面的展現(xiàn)方式。從而避免了Web頁面不能保存歷史信息的缺點(diǎn),使得客戶端能夠保留一些自有的相關(guān)性上下文而不必通過服務(wù)器來進(jìn)行中轉(zhuǎn)保存。從而降低對(duì)服務(wù)器狀態(tài)的依賴,并可以利用自身的運(yùn)算能力在減少服務(wù)器壓力的同時(shí)對(duì)所保留的上下文數(shù)據(jù)進(jìn)行分布式加工處理。
(3)頁面展現(xiàn)和動(dòng)作執(zhí)行相分離,使得服務(wù)器端靜態(tài)文件的分發(fā)和業(yè)務(wù)邏輯能夠徹底分離,在必要時(shí)可以通過增加HTTPS代理服務(wù)器來進(jìn)一步減輕AIX主機(jī)的負(fù)荷。
2.2.2 ?服務(wù)器系統(tǒng)
(1)服務(wù)器靜態(tài)文件服務(wù)負(fù)責(zé)客戶端請(qǐng)求的Web文件以及HTTPS相關(guān)認(rèn)證文件的分發(fā),該部分可以通過專業(yè)的HTTPS代理服務(wù)器進(jìn)行處理。如果使用HTTPS代理服務(wù)器,則該部分可以不與目標(biāo)AIX服務(wù)器部署在同一個(gè)物理機(jī)上。
(2)服務(wù)器的用戶權(quán)限控制采用AIX自帶的權(quán)限控制系統(tǒng)作為用戶驗(yàn)證入口。足跡記錄系統(tǒng)則利用AIX自帶的histroy功能來進(jìn)行記錄以備后期查看和追蹤。
(3)服務(wù)器的用戶命令執(zhí)行部分采用與HTTPS連接的socket套接字綁定的方式來保存用戶命令執(zhí)行環(huán)境的上下文,使得每一個(gè)不同的用戶都在各自獨(dú)立的session空間下執(zhí)行命令。服務(wù)器和客戶端相配合對(duì)每一個(gè)登錄用戶采用長(zhǎng)連接的HTTPS傳輸方式進(jìn)行交互。當(dāng)客戶端因?yàn)槟撤N原因而使鏈接斷掉則終端用戶必須重新登錄。
2.3 ?客戶端和服務(wù)器之間的協(xié)作說明
客戶端和服務(wù)器端之間的內(nèi)容交互分為兩大部分,第一部分為Web應(yīng)用文件,在本系統(tǒng)中,由于客戶端的展示頁面為單一頁面且是動(dòng)態(tài)生成的,所以具體物理形態(tài)為一個(gè)JS(壓縮)文件、一個(gè)CSS(壓縮)樣式文件、一個(gè)圖片樣式合集。第二部分為客戶端和服務(wù)器之間的動(dòng)作交互,是整個(gè)服務(wù)器業(yè)務(wù)邏輯的實(shí)現(xiàn),在本系統(tǒng)中整個(gè)命令的提交方式采用Ajax方式進(jìn)行提交。請(qǐng)求和回復(fù)的命令內(nèi)容則采用JSON格式進(jìn)行編解碼。
3 ?系統(tǒng)的特點(diǎn)和技術(shù)特色
3.1 ?系統(tǒng)特點(diǎn)
(1)系統(tǒng)具有較高的數(shù)據(jù)一致性、完整性和可靠性,Ajax的交互數(shù)據(jù)格式采用了JSON格式進(jìn)行編碼,大大降低了客戶端與服務(wù)器端交互時(shí)雙方的編解碼復(fù)雜度,同時(shí)又很好地兼顧了兩者的可擴(kuò)展性和數(shù)據(jù)的可讀性。
(2)采用HTTPS鏈接保證了數(shù)據(jù)傳輸層的安全性,使用AIX自身的權(quán)限認(rèn)證系統(tǒng)不僅降低了系統(tǒng)使用的復(fù)雜度,也使得Web應(yīng)用程序和AIX系統(tǒng)權(quán)限控制很好地保持了一致。避免了新的權(quán)限控制系統(tǒng)的引入,降低了系統(tǒng)服務(wù)器的開發(fā)復(fù)雜度。
(3)使用方便,利用Web程序的標(biāo)準(zhǔn)化程度高的特點(diǎn)拓展了用戶對(duì)AIX系統(tǒng)操作的終端類型,使得終端用戶不僅可以在普通PC上對(duì)AIX主機(jī)進(jìn)行遠(yuǎn)程控制和維護(hù),也可以通過平板電腦、智能手機(jī)等非傳統(tǒng)終端對(duì)AIX主機(jī)進(jìn)行遠(yuǎn)程操作和控制。
3.2 ?技術(shù)特色
(1)采用了類RESTful的設(shè)計(jì)風(fēng)格,通過適度的裁剪和改變。最大程度地簡(jiǎn)化Web客戶端和服務(wù)器端的開發(fā)復(fù)雜度。
(2)服務(wù)器開發(fā)使用NodeJS,通過使用和前端開發(fā)相同的JS語言進(jìn)行開發(fā),最大程度地減小系統(tǒng)后期開發(fā)維護(hù)的成本。同時(shí)采用了多層次、高度模塊化的插件設(shè)計(jì)開發(fā)風(fēng)格,使得后期的功能擴(kuò)展標(biāo)準(zhǔn)化、一致化。
(3)沒有使用任何數(shù)據(jù)庫(kù),整個(gè)系統(tǒng)的架構(gòu)都建立在AIX系統(tǒng)現(xiàn)有的功能上,不對(duì)AIX系統(tǒng)做任何額外功能擴(kuò)展,最大程度減少對(duì)原有AIX系統(tǒng)的影響。
(4)命令執(zhí)行系統(tǒng)采用fork、dup,system等系統(tǒng)命令組合,最大限度地降低了對(duì)AIX系統(tǒng)命令的二次封裝。提高開發(fā)執(zhí)行效率,避免引入二次封裝帶來的bug風(fēng)險(xiǎn)。
(5)不同用戶隔離在不同的進(jìn)程空間中進(jìn)行遠(yuǎn)程操作,使得終端登錄用戶彼此獨(dú)立,不相互影響。
(6)采用長(zhǎng)連接socket套接字綁定技術(shù),使得服務(wù)器界面與維護(hù)客戶命令執(zhí)行上下文。
4 ?結(jié) ?論
本平臺(tái)采用SENCHA公司的ExtJS4.0 GPLv3開源庫(kù)作為客戶端開發(fā)基線庫(kù),實(shí)現(xiàn)了一個(gè)基于Ajax方案的富客戶端的遠(yuǎn)程控制系統(tǒng)。本平臺(tái)實(shí)現(xiàn)的基本原則是:簡(jiǎn)單、安全、實(shí)用、復(fù)用性高??紤]到用戶群體的特殊性,在系統(tǒng)設(shè)計(jì)時(shí)進(jìn)行了一些必要的取舍,比如:不考慮高并發(fā)性、高負(fù)載性和高擴(kuò)展性等平臺(tái)系統(tǒng)所要考慮到的基本原則,而對(duì)系統(tǒng)數(shù)據(jù)傳輸?shù)陌踩院陀脩魴?quán)限認(rèn)證的時(shí)效性進(jìn)行了更多的考慮。在具體開發(fā)中則采用了建模最小化、迭代功能增加、人員配置自由、在階段性工作完畢前工作職能專一等漸近、有序、持續(xù)進(jìn)化的敏捷開發(fā)原則。從投產(chǎn)后的實(shí)際反饋來看,較完滿地實(shí)現(xiàn)了當(dāng)初設(shè)計(jì)的各項(xiàng)指標(biāo)。有效地提高了AIX開發(fā)維護(hù)人員的工作效率。
參考文獻(xiàn):
[1] [美]David Herron,著.Node Web Development [M].鄢學(xué)鵾,吳天豪,廖健,譯.人民郵電出版社,2012.
[2] [巴西]Loiane Groner.Ext JS 4 First Look [M].Birming-ham:Packt Publishing,2012.
[3] [美]弗蘭納根,著.JavaScript權(quán)威指南 [M].淘寶前端團(tuán)隊(duì),譯.北京:機(jī)械工業(yè)出版社,2012.
[4] [美]Leonard Richardson,Sam Ruby. RESTful Web ServicesRestful Web Services [M].徐涵,胡偉,譯.北京:電子工業(yè)出版社,2007.
[5] Martinez Cordero, Jose Eduardo,Shiv Dutta ,et al. IBM certification study guide eServer p5 and pSeries administration and support for AIX 5L version 5.3 [M]. [United States] IBM,International Technical Support Organization,2006.
[6] [美]Alistair Cockburn,著.敏捷軟件開發(fā) [M].第2版.北京:機(jī)械工業(yè)出版社,2008.
作者簡(jiǎn)介:王亞雄(1985.01-),男,漢族,湖北天門人,中級(jí)工程師,本科,研究方向:大數(shù)據(jù)開發(fā);張飛(1981.05-),男,漢族,陜西西安人,中級(jí)工程師,本科,研究方向:大數(shù)據(jù)開發(fā);王穎卓(1978.05-),男,漢族,江西贛州人,碩士,架構(gòu)師,研究方向:大數(shù)據(jù)開發(fā)。