王亞雄 張飛 王穎卓
摘 ?要:Web應用程序的易訪問、表現(xiàn)標準化程度高、以及客戶端的輕量化等特性,使得其客戶端工具(瀏覽器)基本上已經(jīng)成為所有主流操作系統(tǒng)的標準配置組件。這使得Web應用程序客戶端應用的安裝成本基本為零,理論上只要客戶端設備能夠訪問網(wǎng)絡就可以訪問使用Web應用程序。本文通過實現(xiàn)一個支持HTTPS的Web服務器來轉述和執(zhí)行用戶通過瀏覽器提交的命令以實現(xiàn)對AIX主機進行訪問和控制。
關鍵詞:AIX系統(tǒng);Web應用程序;遠程控制
中圖分類號:TP277 ? ? ?文獻標識碼:A 文章編號: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è)標準的服務器操作系統(tǒng),自身雖然帶有一個Web版本的高級系統(tǒng)管理接口(Advance System Management Interface—ASMI),但是該Web管理接口僅限于使用人員對AIX操作系統(tǒng)本身運行相關選項的管理和查看,同時相對過于簡單的用戶管理系統(tǒng)使得該系統(tǒng)在實際使用場合中有著極大的限制和不便。本系統(tǒng)通過利用AIX現(xiàn)有的一套完整的權限控制系統(tǒng)和命令執(zhí)行系統(tǒng)來對其進行擴展,以彌補AIX自帶ASMI的不足,方便AIX的使用人員對其進行遠程操作和控制。
1 ?設計目標
本系統(tǒng)以一個搭建在AIX主機上的應用系統(tǒng)而存在,設計開發(fā)的主要目的在于幫助AIX用戶安全方便地對AIX主機進行遠程操作控制。因此用戶管理的設計必須最大程度地保留從瀏覽器客戶端登錄的用戶行為和直接使用AIX主機用戶的行為一致;命令設計為單向命令執(zhí)行方式,用以減少系統(tǒng)開發(fā)的復雜度。對必須進行交互操作的命令則采用客戶端模擬的方式予以支持。
2 ?系統(tǒng)軟件設計
2.1 ?系統(tǒng)的劃分
本系統(tǒng)分為客戶端子系統(tǒng)和服務器子系統(tǒng)兩大子系統(tǒng)進行開發(fā)??蛻舳俗酉到y(tǒng)運行在用戶終端的瀏覽器上,采用圖形化展現(xiàn)方式,通過HTTPS協(xié)議經(jīng)由廣(局)域網(wǎng)對AIX主機進行訪問,是最終用戶和AIX系統(tǒng)的交互入口;服務器系統(tǒng)運行在目標AIX主機上(服務器系統(tǒng)的可拆卸部分可以部署在HTTPS代理服務器上,詳見后述),通過HTTPS協(xié)議接收來自主機以外的請求,并對發(fā)起請求的終端用戶進行身份認證以及命令的接收、解析、執(zhí)行和執(zhí)行結果反饋等動作。相關的邏輯拓撲圖如圖1所示。
2.2 ?各系統(tǒng)的主要功能及相關實現(xiàn)技術介紹
2.2.1 ?客戶端系統(tǒng)
(1)客戶端系統(tǒng)設計為一個單頁面的富客戶端表現(xiàn)形態(tài),所有的GUI部分渲染均在客戶端瀏覽器內完成。渲染由第三方渲染庫ExtJS完成,該庫的最大特點是全部由JS實現(xiàn),對主流瀏覽器的支持良好,瀏覽器無須下載其他額外的控件即可對其進行執(zhí)行,此外該庫的可定制程度很高,經(jīng)筆者的實際測裁剪后整個應用(包括所有的圖像資源和CSS控制文件)客戶端的源代碼大小可以控制在2M左右,大小是開發(fā)庫源代碼的1/20左右。如果采用gzip壓縮技術則完全可以控制在700k以內,完全可以滿足終端用戶在復雜網(wǎng)絡情況下的速度要求。
(2)客戶端系統(tǒng)和服務器之間的數(shù)據(jù)交互方式設計為Ajax方式。采用該技術最大的特點是可以通過單一Web頁面的局部刷新來更改頁面的展現(xiàn)方式。從而避免了Web頁面不能保存歷史信息的缺點,使得客戶端能夠保留一些自有的相關性上下文而不必通過服務器來進行中轉保存。從而降低對服務器狀態(tài)的依賴,并可以利用自身的運算能力在減少服務器壓力的同時對所保留的上下文數(shù)據(jù)進行分布式加工處理。
(3)頁面展現(xiàn)和動作執(zhí)行相分離,使得服務器端靜態(tài)文件的分發(fā)和業(yè)務邏輯能夠徹底分離,在必要時可以通過增加HTTPS代理服務器來進一步減輕AIX主機的負荷。
2.2.2 ?服務器系統(tǒng)
(1)服務器靜態(tài)文件服務負責客戶端請求的Web文件以及HTTPS相關認證文件的分發(fā),該部分可以通過專業(yè)的HTTPS代理服務器進行處理。如果使用HTTPS代理服務器,則該部分可以不與目標AIX服務器部署在同一個物理機上。
(2)服務器的用戶權限控制采用AIX自帶的權限控制系統(tǒng)作為用戶驗證入口。足跡記錄系統(tǒng)則利用AIX自帶的histroy功能來進行記錄以備后期查看和追蹤。
(3)服務器的用戶命令執(zhí)行部分采用與HTTPS連接的socket套接字綁定的方式來保存用戶命令執(zhí)行環(huán)境的上下文,使得每一個不同的用戶都在各自獨立的session空間下執(zhí)行命令。服務器和客戶端相配合對每一個登錄用戶采用長連接的HTTPS傳輸方式進行交互。當客戶端因為某種原因而使鏈接斷掉則終端用戶必須重新登錄。
2.3 ?客戶端和服務器之間的協(xié)作說明
客戶端和服務器端之間的內容交互分為兩大部分,第一部分為Web應用文件,在本系統(tǒng)中,由于客戶端的展示頁面為單一頁面且是動態(tài)生成的,所以具體物理形態(tài)為一個JS(壓縮)文件、一個CSS(壓縮)樣式文件、一個圖片樣式合集。第二部分為客戶端和服務器之間的動作交互,是整個服務器業(yè)務邏輯的實現(xiàn),在本系統(tǒng)中整個命令的提交方式采用Ajax方式進行提交。請求和回復的命令內容則采用JSON格式進行編解碼。
3 ?系統(tǒng)的特點和技術特色
3.1 ?系統(tǒng)特點
(1)系統(tǒng)具有較高的數(shù)據(jù)一致性、完整性和可靠性,Ajax的交互數(shù)據(jù)格式采用了JSON格式進行編碼,大大降低了客戶端與服務器端交互時雙方的編解碼復雜度,同時又很好地兼顧了兩者的可擴展性和數(shù)據(jù)的可讀性。
(2)采用HTTPS鏈接保證了數(shù)據(jù)傳輸層的安全性,使用AIX自身的權限認證系統(tǒng)不僅降低了系統(tǒng)使用的復雜度,也使得Web應用程序和AIX系統(tǒng)權限控制很好地保持了一致。避免了新的權限控制系統(tǒng)的引入,降低了系統(tǒng)服務器的開發(fā)復雜度。
(3)使用方便,利用Web程序的標準化程度高的特點拓展了用戶對AIX系統(tǒng)操作的終端類型,使得終端用戶不僅可以在普通PC上對AIX主機進行遠程控制和維護,也可以通過平板電腦、智能手機等非傳統(tǒng)終端對AIX主機進行遠程操作和控制。
3.2 ?技術特色
(1)采用了類RESTful的設計風格,通過適度的裁剪和改變。最大程度地簡化Web客戶端和服務器端的開發(fā)復雜度。
(2)服務器開發(fā)使用NodeJS,通過使用和前端開發(fā)相同的JS語言進行開發(fā),最大程度地減小系統(tǒng)后期開發(fā)維護的成本。同時采用了多層次、高度模塊化的插件設計開發(fā)風格,使得后期的功能擴展標準化、一致化。
(3)沒有使用任何數(shù)據(jù)庫,整個系統(tǒng)的架構都建立在AIX系統(tǒng)現(xiàn)有的功能上,不對AIX系統(tǒng)做任何額外功能擴展,最大程度減少對原有AIX系統(tǒng)的影響。
(4)命令執(zhí)行系統(tǒng)采用fork、dup,system等系統(tǒng)命令組合,最大限度地降低了對AIX系統(tǒng)命令的二次封裝。提高開發(fā)執(zhí)行效率,避免引入二次封裝帶來的bug風險。
(5)不同用戶隔離在不同的進程空間中進行遠程操作,使得終端登錄用戶彼此獨立,不相互影響。
(6)采用長連接socket套接字綁定技術,使得服務器界面與維護客戶命令執(zhí)行上下文。
4 ?結 ?論
本平臺采用SENCHA公司的ExtJS4.0 GPLv3開源庫作為客戶端開發(fā)基線庫,實現(xiàn)了一個基于Ajax方案的富客戶端的遠程控制系統(tǒng)。本平臺實現(xiàn)的基本原則是:簡單、安全、實用、復用性高。考慮到用戶群體的特殊性,在系統(tǒng)設計時進行了一些必要的取舍,比如:不考慮高并發(fā)性、高負載性和高擴展性等平臺系統(tǒng)所要考慮到的基本原則,而對系統(tǒng)數(shù)據(jù)傳輸?shù)陌踩院陀脩魴嘞拚J證的時效性進行了更多的考慮。在具體開發(fā)中則采用了建模最小化、迭代功能增加、人員配置自由、在階段性工作完畢前工作職能專一等漸近、有序、持續(xù)進化的敏捷開發(fā)原則。從投產(chǎn)后的實際反饋來看,較完滿地實現(xiàn)了當初設計的各項指標。有效地提高了AIX開發(fā)維護人員的工作效率。
參考文獻:
[1] [美]David Herron,著.Node Web Development [M].鄢學鵾,吳天豪,廖健,譯.人民郵電出版社,2012.
[2] [巴西]Loiane Groner.Ext JS 4 First Look [M].Birming-ham:Packt Publishing,2012.
[3] [美]弗蘭納根,著.JavaScript權威指南 [M].淘寶前端團隊,譯.北京:機械工業(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版.北京:機械工業(yè)出版社,2008.
作者簡介:王亞雄(1985.01-),男,漢族,湖北天門人,中級工程師,本科,研究方向:大數(shù)據(jù)開發(fā);張飛(1981.05-),男,漢族,陜西西安人,中級工程師,本科,研究方向:大數(shù)據(jù)開發(fā);王穎卓(1978.05-),男,漢族,江西贛州人,碩士,架構師,研究方向:大數(shù)據(jù)開發(fā)。