基于TLS安全的MTP命令解釋器_第1頁
基于TLS安全的MTP命令解釋器_第2頁
基于TLS安全的MTP命令解釋器_第3頁
基于TLS安全的MTP命令解釋器_第4頁
基于TLS安全的MTP命令解釋器_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、沈陽理工大學(xué)學(xué)士學(xué)位論文i摘摘 要要基于 tls 安全的 mtp 命令解釋器的設(shè)計,它主要實現(xiàn)模擬媒體終端設(shè)備對 mtp 消息進(jìn)行解析。從命令的來源看,可以分為三種方式,第一種方式為socket 連接(包括加密、不加密),第二種方式為 console 輸入以及第三種方式,即文件的多條批處理 mtp 命令的解析。從總體功能來看,可以分為四個模塊,即系統(tǒng)啟動、接收命令、解析命令以及響應(yīng)。論文首先論述了課題的背景、開發(fā)前提以及開發(fā)意義。隨著我國數(shù)字電影的發(fā)展,xxxx 公司研發(fā)了以硅基液晶技術(shù)為核心的高清晰度4k(40962048)的數(shù)字放映機。開發(fā)過程中對于媒體終端設(shè)備的依賴,開發(fā)了mtp sim

2、ulator,繼而要從各個方面分析這個系統(tǒng)的可行性以及整體的設(shè)計邏輯。其次,論述了該系統(tǒng)的詳細(xì)設(shè)計過程。主要有三大模塊,分別為 socket mtp 模塊處理、console mtp 模塊處理以及 file mtp 模塊處理。其中 socket mtp 模塊處理又細(xì)化為請求接收、命令處理、命令解析、互斥檢查以及response 處理。其余兩個模塊的的細(xì)化流程同 socket mtp 的細(xì)化過程相同。最后,是對該課題所研究的系統(tǒng)進(jìn)行測試。關(guān)鍵詞關(guān)鍵詞: mtp simulator; 圖形界面; socket;console;文件; mtp(媒體終端協(xié)議);tls(安全傳輸層協(xié)議)沈陽理工大學(xué)學(xué)士

3、學(xué)位論文iiabstractmtp commands based on tls security to explain the design, it is primarily analog media terminal device to parse the mtp message. from the source of the command can be divided into three modules, the first module for socket connections (including encryption, no encryption), the second m

4、odule for console input and the third module, file batch mtp command parsing. from the perspective of the overall function, can be divided into four modules, namely, the system starts to receive the command, parses the command and response. the paper first discusses the background of the topic, the

5、development of the premise and the development of meaning. with the development of digital cinema in china, xxxx has developed a high-resolution liquid crystal on silicon technology for the core 4k (4096 x 2048) digital projectors. the development process for the dependence of the terminal equipment

6、 of the media, decided to develop the mtp simulator, and then from all aspects of the feasibility of this system, as well as the overall design logic. secondly, it discusses the details of the system design process. there are three major modules, respectively socketmtp module processing, the console

7、mtp module processing and filemtp module handles. socketmtp module processing also refine the receiver to request, command processing, command parsing, mutex checking and response processing. the refinement process of the remaining two modules with socketmtp refinement processes the same. finally, t

8、he system under study on the subject to be tested.key words: mtp simulator;graphical interface;socket;console;file; media terminal protocol; transport layer security沈陽理工大學(xué)學(xué)士學(xué)位論文iii目錄1 緒論.61.1 課題的來源.61.2 課題背景.61.3 mtp simulator開發(fā)前提.71.4 mtp simulator開發(fā)意義.72 mtpsimulator 系統(tǒng)分析.92.1 mtp simulator可行性分析.9

9、2.2 mtp simulator的功能分析.92.3 系統(tǒng)平臺分析.102.4 所用技術(shù)分析.102.4.1 java 開發(fā)語言.102.4.2 schema 技術(shù).112.4.3 eclipse 開發(fā)工具.112.4.4 安全傳輸層協(xié)議(tls).123 mtpsimulator 概要設(shè)計.133.1 系統(tǒng)結(jié)構(gòu)定義.133.2 系統(tǒng)功能模塊劃分.133.2.1 socket 方式的 mtp 命令.143.2.2 console 方式的 mtp 命令 .143.2.3 file 方式的 mtp 命令 .153.3 文件規(guī)則定制.163.3.1 mtp 命令格式文件.163.3.2 mtp 命

10、令互斥控制文件.173.3.3 response 文件 .173.4 系統(tǒng)參數(shù)設(shè)定.183.4.1 配置文件中設(shè)定系統(tǒng)參數(shù).183.4.2 圖形界面設(shè)定系統(tǒng)參數(shù).203.4.3 tls 證書的導(dǎo)入與導(dǎo)出.21沈陽理工大學(xué)學(xué)士學(xué)位論文iv4 mtpsimulator 詳細(xì)設(shè)計.234.1 系統(tǒng)功能邏輯簡介.234.2 模塊功能邏輯.234.2.1 模塊的總體處理邏輯.234.2.2 socketmtp 模塊處理邏輯.244.2.3 consolemtp 處理邏輯 .304.2.4 filemtp 模塊處理邏輯 .334.2.5 系統(tǒng)包結(jié)構(gòu).344.2.6 系統(tǒng)類結(jié)構(gòu).354.2.7 類功能詳細(xì).

11、364.2.8 模塊線程圖.634.2.9 系統(tǒng)時序圖.655 系統(tǒng)測試.695.1 軟件測試.695.1.1 測試的基本概念.695.1.2 測試步驟.705.2 本系統(tǒng)功能測試.705.2.1 socketmtp 功能模塊測試.715.2.2 consolemtp 功能模塊測試 .715.2.3 filemtp 功能模塊測試 .71結(jié)論.72致謝.73參考文獻(xiàn).74附錄 a 英文原文.75附錄 b 中文翻譯.80沈陽理工大學(xué)學(xué)士學(xué)位論文51 緒論1.1 課題的來源隨著我國高清數(shù)字電影的發(fā)展,數(shù)字電影已經(jīng)慢慢的融入到我們的日常生活,4k 數(shù)字電影出色的畫質(zhì)大大提高了 3d 放映效果,消除了其

12、它單機 3d 放映系統(tǒng)閃爍和模糊的問題,極大地提升了觀眾對 3d 的視覺體驗,給觀眾帶來極為震撼、真實的 3d 視覺享受。20 世紀(jì) 90 年代后,計算機技術(shù)飛速發(fā)展,信息量相對較小的音頻率先進(jìn)入數(shù)字化。隨后,用計算機進(jìn)行電影特技畫面制作逐步興起,影片泰坦尼克號、星球大戰(zhàn)的成功放映,使人們感受到了數(shù)字技術(shù)的神奇。在電影攝影領(lǐng)域,從攝像機出現(xiàn)開始,傳統(tǒng)膠片攝影就不斷接受挑戰(zhàn),本世紀(jì)初,數(shù)字高清攝像機逐漸進(jìn)入電影前期拍攝,從最初的高清到 2k 直到 4k數(shù)字?jǐn)z影機,已有多種數(shù)字?jǐn)z影機應(yīng)用于電影拍攝。在電影后期制作過程中,數(shù)字技術(shù)改變了電影制作工藝流程,膠片掃描儀將拍攝在膠片上的原始素材轉(zhuǎn)變成數(shù)字信

13、號,進(jìn)入后期制作工作站,藝術(shù)家方便地進(jìn)行編輯、調(diào)色、配光等工作,極大地提高了工作效率。在電影放映領(lǐng)域,20 世紀(jì) 90 年代后期電影星球前傳 i首次應(yīng)用數(shù)字投影機在影院放映。數(shù)字影廳逐年增加,到 2010 年底,數(shù)字放映的銀幕數(shù)達(dá)到 3萬塊以上。數(shù)字放映通過硬盤、網(wǎng)絡(luò)、衛(wèi)星等傳輸方式,可以多地同步放映相同影片。數(shù)字放映機從高價笨重到經(jīng)濟(jì)便捷,從分辨率 1. 3k 到 2k、4k,數(shù)字放映技術(shù)不斷進(jìn)步。xxxx 公司研發(fā)了以硅基液晶技術(shù)為核心的高清晰度 4k(40962048)的數(shù)字放映機。為了方便 4k 數(shù)字放映機的管理,因此決定開發(fā)數(shù)字影院管理系統(tǒng)系統(tǒng),開發(fā)過程中對于媒體終端設(shè)備的依賴,決定

14、開發(fā) mtp simulator。1.2 課題背景由于數(shù)字影院管理系統(tǒng)開發(fā)對于媒體終端設(shè)備的依賴,目前媒體終端設(shè)備的數(shù)量不能滿足開發(fā)需要;為節(jié)約成本,保證效率,決定開發(fā)基于媒體終端設(shè)沈陽理工大學(xué)學(xué)士學(xué)位論文6備實體功能的軟件模擬器,即 mtp simulator。 該軟件主要模擬實現(xiàn)媒體終端與數(shù)字影院管理系統(tǒng)的 mtp 命令交互功能,對于接收到的 mtp 指令,給出合理的軟件響應(yīng)。1.3 mtp simulator 開發(fā)前提mtp simulator 軟件是為了模擬實現(xiàn)媒體終端與數(shù)字影院管理系統(tǒng)交互功能,因此需要充分了解數(shù)字影院管理系統(tǒng)與媒體終端設(shè)備交互的細(xì)節(jié),這就需要了解的數(shù)字影院管理系統(tǒng)是

15、如何與媒體終端設(shè)備進(jìn)行交互,交互的內(nèi)容是什么,通過什么方式通信,最后要得到什么樣的效果。開發(fā) mtp similator的目的是為了能在本地搭建一個整體的數(shù)字影院管理系統(tǒng)的開發(fā)與調(diào)試環(huán)境,因此決定開發(fā) mtp simulator,最終在本地實現(xiàn)整體的數(shù)字影院系統(tǒng)的本地開發(fā)與調(diào)試。該系統(tǒng)的整體構(gòu)成如圖 1.1 所示。pc(os:windows)vm(os:linux)prj simulator數(shù)字影院管理系統(tǒng)mtp simulator圖 1.1 整體系統(tǒng)構(gòu)成1.4 mtp simulator 開發(fā)意義(1) 滿足開發(fā)需求由于數(shù)字影院管理系統(tǒng)開發(fā)需要為開發(fā)人員配備一臺媒體終端設(shè)備,因為在開發(fā)的同時

16、需要對開發(fā)的功能進(jìn)行調(diào)試,因此需要與媒體終端設(shè)備通信。由于媒體終端設(shè)備的數(shù)量不能滿足開發(fā)需求,因此決定以軟件的形式模擬實現(xiàn)媒體終端設(shè)備與數(shù)字影院管理系統(tǒng)交互的功能。(2) 節(jié)約成本,提高效率沈陽理工大學(xué)學(xué)士學(xué)位論文7由于數(shù)字影院管理系統(tǒng)的開發(fā)需要與媒體終端設(shè)備進(jìn)行交互,如果給每個開發(fā)者配備一臺媒體終端設(shè)備,會使得開發(fā)成本很高。媒體終端設(shè)備的不足又會導(dǎo)致媒體終端設(shè)備的使用非常緊張,整個數(shù)字影院管理系統(tǒng)的開發(fā)緊張受到制約,極大地影響了項目開發(fā)的進(jìn)度,為了提高效率,節(jié)約成本,項目組決定開發(fā) mtp simulator 來代替媒體終端設(shè)備與數(shù)字影院管理系統(tǒng)交互的功能。沈陽理工大學(xué)學(xué)士學(xué)位論文82 mt

17、p simulator 系統(tǒng)分析2.1 mtp simulator 可行性分析系統(tǒng)的可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。在進(jìn)行可行性研究時需要了解和分析現(xiàn)有的系統(tǒng),并以概括的形式表達(dá)對現(xiàn)有的系統(tǒng)的認(rèn)識。系統(tǒng)的目標(biāo)確定后,可以從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性三個方面對能否實現(xiàn)新系統(tǒng)目標(biāo)進(jìn)行可行性分析。技術(shù)可行性方面,mtpsimulator 采用開源 eclipse 作為開發(fā)工具以 java 語言作為開發(fā)語言,無論在其設(shè)計還是開發(fā)與安裝調(diào)試以及部署上都保證作到方便快捷,且操作靈活簡單。經(jīng)濟(jì)可行性方面,eclipse 是一款免費的開源的開發(fā)工具,在技術(shù)方面全

18、部都是免費的。只要有懂得開發(fā)技術(shù)的開發(fā)人員,便可進(jìn)行本系統(tǒng)的開發(fā)工作。本系統(tǒng)主要功能是軟件實現(xiàn)媒體終端的功能,減少開發(fā)中對媒體終端設(shè)備的依賴,降低了開發(fā)成本。操作可行性方面,由于本系統(tǒng)主要是模擬實現(xiàn)媒體終端設(shè)備的功能,主要與數(shù)字影院管理系統(tǒng)進(jìn)行交互,為了便于本系統(tǒng)的操作,本次也開發(fā)了圖形操作界面,操作直觀、方便。mtp simulator 軟件主要采用 socket 技術(shù)來傳輸 mtp 命令,在傳輸過程中,使用 tls 傳輸協(xié)議對傳輸命令進(jìn)行加密。使用線程并行處理多個命令同時請求,使用 schema 和 xml 技術(shù)來規(guī)定 mtp 命令和命令返回結(jié)果。因此理論上是可以完成 mtp simula

19、tor 的開發(fā)。2.2 mtp simulator 的功能分析mtp simulator 是硬件媒體終端設(shè)備功能的軟件實現(xiàn),主要模擬媒體終端設(shè)備對于 mtp 消息的接收、解析和響應(yīng)。mtp simulator 支持客戶端采用socket(加密/不加密)方式進(jìn)行通信、文件形式批量導(dǎo)入方式通信和在控制臺輸入 mtp 命令方式通信,并將結(jié)果作為響應(yīng)傳送給客戶端或者直接顯示在終端屏幕上。該系統(tǒng)的輸入輸出如圖 2.1 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文9圖 2.1 mtp simulator 的輸入與輸出2.3 系統(tǒng)平臺分析1硬件支持:計算機(pc)一臺,處理器 pentium iii800 以上,內(nèi)存 2

20、56m以上,硬盤空間 2g 以上。2軟件支持如下表 2-1 所示:表 2-1 軟件與版本#軟件版本1windowsxp2jdk1.6.0_293eclipse3.72.4 所用技術(shù)分析本系統(tǒng)擬采用的技術(shù)如下:1. java 開發(fā)語言2. schema 技術(shù)3. eclipse 開發(fā)工具4. 安全傳輸層協(xié)議(tls:transport layer security)2.4.1 java 開發(fā)語言java 是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,是由sun microsystems 公司于 1995 年 5 月推出的 java 程序設(shè)計語言和 java 平臺(即 javase, ja

21、vaee, javame)的總稱。java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個人 pc、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算沈陽理工大學(xué)學(xué)士學(xué)位論文10機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,java 更具備了顯著優(yōu)勢和廣闊前景。java 編程語言的風(fēng)格十分接近 c、c+語言。java 是一個純的面向?qū)ο蟮某绦蛟O(shè)計語言,它繼承了 c+ 語言面向?qū)ο蠹夹g(shù)的核心,java 舍棄了 c +語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃

22、圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理 而擔(dān)憂。在 java se 1.5 版本中,java 又引入了泛型編程(generic programming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。2.4.2 schema 技術(shù)schema 是用于描述和規(guī)范 xml 文檔的邏輯結(jié)構(gòu)的一種語言,它最大的作用就是驗證 xml 文件邏輯結(jié)構(gòu)的正確性??梢岳斫獬膳c dtd(文檔類型定義)功能差不多,但是 schema 在當(dāng)前的 web 開發(fā)環(huán)境下優(yōu)越很多。因為它本身就是一個有效的 xml 文檔,因而可以更直觀地了解 xml 的結(jié)構(gòu)。除此之外,schem

23、a 支持命名空間,內(nèi)置多種簡單和復(fù)雜的數(shù)據(jù)類型,并支持自定義數(shù)據(jù)類型。由于存在這么多的優(yōu)點,所以 schema 漸漸成為 xml 應(yīng)用的統(tǒng)一規(guī)范。2.4.3 eclipse 開發(fā)工具eclipse 是一個開放源代碼的、基于 java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括 java 開發(fā)工具(java development kit,jdk)。雖然大多數(shù)用戶很樂于將 eclipse 當(dāng)作 java 集成開發(fā)環(huán)境(ide)來使用,但 eclipse 的目標(biāo)卻不僅限于此。eclipse 還包括插

24、件開發(fā)環(huán)境(plug-in development environment,pde),這個組件主要針對希望擴展 eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 eclipse 環(huán)境無縫集成的工具。由于 eclipse 中的每樣?xùn)|西都是插件,對于給 eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。沈陽理工大學(xué)學(xué)士學(xué)位論文112.4.4 安全傳輸層協(xié)議(tls)安全傳輸層協(xié)議(tls)用于在兩個通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成:tls 記錄協(xié)議(tls record)和 tls 握手協(xié)議(tls handsh

25、ake)。較低的層為 tls 記錄協(xié)議,位于某個可靠的傳輸協(xié)議(例如 tcp)上面。tls 協(xié)議包括兩個協(xié)議組,即 tls 記錄協(xié)議和 tls 握手協(xié)議,每組具有很多不同格式的信息。tls 記錄協(xié)議是一種分層協(xié)議。每一層中的信息可能包含長度、描述和內(nèi)容等字段。記錄協(xié)議支持信息傳輸、將數(shù)據(jù)分段到可處理塊、壓縮數(shù)據(jù)、應(yīng)用mac、加密以及傳輸結(jié)果等。對接收到的數(shù)據(jù)進(jìn)行解密、校驗、解壓縮、重組等,然后將它們傳送到高層客戶機。tls 連接狀態(tài)指的是 tls 記錄協(xié)議的操作環(huán)境。它規(guī)定了壓縮算法、加密算法和 mac 算法。tls 記錄層從高層接收任意大小無空塊的連續(xù)數(shù)據(jù)。密鑰計算:記錄協(xié)議通過算法從握手協(xié)

26、議提供的安全參數(shù)中產(chǎn)生密鑰、iv 和 mac 密鑰。tls 握手協(xié)議由三個子協(xié)議組構(gòu)成,允許對等雙方在記錄層的安全參數(shù)上達(dá)成一致、自我認(rèn)證、例示協(xié)商安全參數(shù)、互相報告出錯條件。tls 握手協(xié)議:1.改變密碼規(guī)格協(xié)議2.警惕協(xié)議3.握手協(xié)議tls 的最大優(yōu)勢就在于:tls 是獨立于應(yīng)用協(xié)議。高層協(xié)議可以透明地分布在 tls 協(xié)議上面。然而,tls 標(biāo)準(zhǔn)并沒有規(guī)定應(yīng)用程序如何在 tls 上增加安全性;它把如何啟動 tls 握手協(xié)議以及如何解釋交換的認(rèn)證證書的決定權(quán)留給協(xié)議的設(shè)計者和實施者來判斷。tls 包含三個基本階段:1.對等協(xié)商支援的密鑰算法2.基于私鑰加密交換公鑰、基于 pki 證書的身份認(rèn)

27、證3.基于公鑰加密的數(shù)據(jù)沈陽理工大學(xué)學(xué)士學(xué)位論文123 mtp simulator 概要設(shè)計3.1 系統(tǒng)結(jié)構(gòu)定義系統(tǒng)結(jié)構(gòu)如圖 3.1 所示。sms serverconsolefilemtp simulatormtp serversocketrequestreceiverconsolerequestreceiverfilerequestreceiverrequestprocessorrequestfilterrequestsenderrequestresonserequestrecord argsreadersettingmtpmessage.xmlmtpresponse.xmlsetting.

28、inioptionfilemtpmutex.xmlconsolefile 圖 3.1 系統(tǒng)結(jié)構(gòu)圖mtp simulator 按照 mtp 命令的接收、處理、互斥控制、響應(yīng)和發(fā)送結(jié)果劃分功能模塊,并按照 mtp 命令的接收來源細(xì)化模塊,根據(jù)用戶配置文件、命令格式定義文件、response 格式定義文件等的處理功能,劃分相應(yīng)的功能模塊。沈陽理工大學(xué)學(xué)士學(xué)位論文133.2 系統(tǒng)功能模塊劃分3.2.1 socket 方式的 mtp 命令本系統(tǒng)支持 mtp 命令以 socket 的方式輸入。socket 方式處理 mtp 命令時不需要用戶進(jìn)行任何操作。程序啟動后會自動監(jiān)聽 socket 連接,當(dāng)有 mt

29、p 命令傳入時,mtp simulator 可以自動接收和處理。socket 通信又分為加密(tls socket)和非加密兩種通信方式。系統(tǒng)啟動的同時,用于監(jiān)聽 client 端(即數(shù)字影院管理系統(tǒng))的 mtp server 也將被同時啟動,并處于監(jiān)聽等待狀態(tài),當(dāng) client 端傳來 mtp 命令時,服務(wù)端將該命令進(jìn)行捕獲,進(jìn)行分析處理后,將 response 信息返回到控制臺并記錄到 recorder.txt 中。當(dāng)系統(tǒng)退出時,mtp server 也將被隨之關(guān)閉。3.2.2 console 方式的 mtp 命令本系統(tǒng)支持在控制臺上輸入 mtp 命令,輸入的命令分為兩類。一類為系統(tǒng)控制命

30、令,另一類為 mtp 命令。(1) 系統(tǒng)控制命令系統(tǒng)控制命令包括 quit、reload、dashboard。 quit:系統(tǒng)退出命令。reload:對本系統(tǒng)中所涉及到的所有文件重新加載,其中批處理文件中所設(shè)定的 mtp 命令也將被重新執(zhí)行一遍。dashboard:啟動用戶操作界面,在該界面,用戶能夠自定義配置系統(tǒng)參數(shù)等信息,配置后能夠立即生效。(2) mtp 命令除系統(tǒng)控制命令中包括的三種命令外,其他輸入的所有命令,系統(tǒng)都會當(dāng)做 mtp 命令來處理。輸入的 mtp 命令的格式要嚴(yán)格按照 mtp 定義文件中規(guī)定的格式來輸入。例如:user login name pwd注:user login

31、為命令部分,name 和 pwd 分別為該命令的兩個參數(shù),每個字段都以空格符來隔開。沈陽理工大學(xué)學(xué)士學(xué)位論文14(3) 無效命令若輸入的命令,系統(tǒng)不能識別,將返回錯誤信息。3.2.3 file 方式的 mtp 命令本系統(tǒng)支持 mtp 命令以 flie 方式輸入。在批處理文件中寫入若干條 mtp 命令,當(dāng)系統(tǒng)啟動時,用于控制該文件的線程也隨之啟動,該線程會自動讀取該文件中的 mtp 命令并傳遞給相應(yīng)的功能模塊做處理。執(zhí)行 mtp 批處理文件方式有兩種,一種是通過控制臺輸入控制命令的方式,另一種為通過系統(tǒng)的輪詢方式。(1) 控制臺輸入控制命令方式在控制臺輸入“reload”命令,所有與系統(tǒng)相關(guān)的文

32、件都將被進(jìn)行重載,其中mtp 批處理文件中的若干條 mtp 命令將被執(zhí)行。(2) 系統(tǒng)的輪詢方式系統(tǒng)啟動時,用于對文件進(jìn)行輪詢的線程也將一同啟動,若在對文件的輪詢過程中,出現(xiàn)某個文件被更改了,那么系統(tǒng)將對該文件進(jìn)行重新加載,若該文件為 mtp 批處理文件,則文件中的 mtp 命令將被執(zhí)行。注:在文件中寫入一條 mtp 命令后就需要換行,即始終保證每一行只有一條 mtp 命令。3.2.4 記錄 recorder 文件本系統(tǒng)提供記錄 recorder 功能。針對每一條 mtp 命令的執(zhí)行,都將生成一條 log 信息。該信息包括記錄log 的時間、請求來源、mtp 命令名、mtp 命令參數(shù)、執(zhí)行 m

33、tp 命令所需要的延時時間、mtp 命令所對應(yīng)的響應(yīng)信息,其中 mtp 命令響應(yīng)信息由code、message、parameter 三部分組成。正常返回消息形式如下:time:2012-05-08 10:58:56 /記錄 log 的生成時間requestfrom:xxxserver /192.168.1.100:12345/mtp 請求來源messagename:get stat/mtp 命令名沈陽理工大學(xué)學(xué)士學(xué)位論文15messageparameter:run /mtp 命令參數(shù)messagedelay:8000 /執(zhí)行 mtp 命令所需要的延時時間messageresponse:0000

34、 success 001 playing/mtp 命令返回結(jié)果 注:0000 為 code,success 為 message,001 playing 為parameter.以下是所有的錯誤響應(yīng)類型及對照的 message 信息:invalidmessage(1001,invalid message);internalprocesserror(1002,internal process error);internalsystemerror(1004,internal system error);timeout(1007,timeout);notsupported(1010,not suppor

35、ted);3.3 文件規(guī)則定制3.3.1 mtp 命令格式文件每一條 mtp 命令,都是由命令名和參數(shù)兩部分組成。具體的操作方法如下,即圖 3.2 所示。圖 0.2 命令格式文件結(jié)構(gòu)圖其中 1 表示 mtp 命令的命令名;2 表示本條命令中命令名部分的字段數(shù);3 表示本條命令和參數(shù)的字段總數(shù);4 表示每一條 mtp 命令的起始和結(jié)束的標(biāo)簽。一條有效的 mtp 命令,必須具有一套完整的標(biāo)簽(如圖所示的 4 包含的所有標(biāo)簽),并且在 1、2、3 三部分設(shè)定相應(yīng)值。沈陽理工大學(xué)學(xué)士學(xué)位論文163.3.2 mtp 命令互斥控制文件互斥控制文件描述的是 mtp 消息之間的互斥關(guān)系,在一條 mtp 消息執(zhí)

36、行的過程中,可能有些 mtp 消息與其存在互斥關(guān)系,這些 mtp 消息在這條消息執(zhí)行過程中可能要等待執(zhí)行或者不能執(zhí)行,等待執(zhí)行是這條 mtp 消息執(zhí)行后再執(zhí)行?;コ饪刂莆募詷?biāo)準(zhǔn)的 xml 文件格式來定義描述 mtp 消息之間的這種互斥關(guān)系。互斥控制文件名是 mtpmutex.xml互斥控制文件內(nèi)容請參照下圖 3.3 所示。圖 0.3 互斥文件結(jié)構(gòu)圖其中 1、2、3 處均輸入 mtp 命令;2 處的 mtp 命令與 1 處 mtp 命令為互斥關(guān)系,等待執(zhí)行;3 處的 mtp 命令與 1 處的 mtp 命令為互斥關(guān)系,不執(zhí)行。3.3.3 response 文件response 定義文件結(jié)構(gòu)示例如

37、下圖 3.3 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文17圖 0.1 response 定義文件結(jié)構(gòu)圖其中 1 輸入?yún)?shù)值 、2 響應(yīng)代碼、3 響應(yīng)信息、4 響應(yīng)參數(shù)開始標(biāo)簽、5 響應(yīng)參數(shù)名、6 響應(yīng)參數(shù)類型、7 響應(yīng)參數(shù)值、8 響應(yīng)參數(shù)結(jié)束標(biāo)簽、9 響應(yīng)結(jié)束標(biāo)簽、10 執(zhí)行 mtp 命令的延遲時間、11 響應(yīng)開始標(biāo)簽。3.4 系統(tǒng)參數(shù)設(shè)定3.4.1 配置文件中設(shè)定系統(tǒng)參數(shù)mtp simulator 的系統(tǒng)參數(shù)在 setting.ini 文件中設(shè)定,該文件記錄著 mtp simulator 運行的基本參數(shù),文件的基本格式如下圖 3.4 所示。注:在 setting.ini 中,每個參數(shù)設(shè)定占一行,以“#

38、”開頭的是注釋行。參數(shù)名與參數(shù)值之間以“=”連接組成的鍵值對。圖 3.4 setting.ini 參數(shù)文件以下列出可設(shè)定的參數(shù):1.ip 指 mtp simulator 運行時所使用的 ip 地址2.port 指 mtp simulator 運行時所監(jiān)聽的端口號3.requesttimeout 指請求超時的時間4.connecttimeout 指連接超時的時間5.maxconnections 是 mtp simulator 允許的最大連接數(shù)量沈陽理工大學(xué)學(xué)士學(xué)位論文186.clientauthentication 是否使用客戶端認(rèn)證(只能取值 on 或 off)7.keystorelocati

39、on keystore 文件的位置8.keystorepassword keystore 文件的密碼9.tlsencryption 是否使用 tls 加密通信(只能取值 on 或 off)10.syntaxfile 指定語法定義文件11.mutexfile 指定互斥文件12.batchfile 指定批處理文件13.outputfile 指定日志輸出文件14.recordactions 是否記錄操作日志15.autopolling 文件自動輪詢(只能取值 on 或 off)16.pollinginterval 文件自動輪詢間隔3.4.2 圖形界面設(shè)定系統(tǒng)參數(shù)dashboard 圖形界面是 mtp

40、 simulator 提供給用戶用來動態(tài)修改系統(tǒng)參數(shù)的圖形化操作界面,界面上的每個設(shè)定項在 setting.ini 文件中都有對應(yīng)的設(shè)定項,圖形界面說明如下圖 3.5 所示。321456781001003111213149151617沈陽理工大學(xué)學(xué)士學(xué)位論文19圖 3.5 dashboard 圖形界面1. 是否使用 tls 加密通訊2. 是否使用客戶端認(rèn)證3. 導(dǎo)入證書文件4. 導(dǎo)出證書文件5. tcp/ip 設(shè)定6. 監(jiān)聽端口號7. 連接超時8. 請求超時9. 最大連接數(shù)10. 是否記錄操作日志11. 指定語法定義文件12. 指定互斥文件13. 指定批處理文件14. 指定日志輸出文件15.

41、文件自動輪詢16. 文件自動輪詢間隔17. 確認(rèn)按鈕沈陽理工大學(xué)學(xué)士學(xué)位論文203.4.3 tls 證書的導(dǎo)入與導(dǎo)出當(dāng)系統(tǒng)使用 tls 加密通信時,客戶端需要使用 mtp simulator 的證書進(jìn)行身份驗證。如果啟用客戶端驗證,那么 mtp simulator 同樣需要導(dǎo)入客戶端的證書,mtp simulator 就要提供 tls 證書的導(dǎo)入和導(dǎo)出操作。在導(dǎo)入和導(dǎo)出證書之前,需要設(shè)定 setting.ini 中的“tlsencryption”、“clientauthentication”、 “keystorelocation”和“keystorepassword”參數(shù)項。(1)“tlsen

42、cryption”參數(shù)的取值只能是“on”或“off”, “on”表示使用 tls 加密,“off”表示不使用 tls 加密;(2)“clientauthentication”參數(shù)的取值同樣只能是“on”或“off”, “on” 表示使用客戶端驗證, “off”表示不使用客戶端驗證;(3)“keystorelocation”用來指定用來維護(hù)證書文件的 keystore 文件的位置;“keystorepassword”是對應(yīng)的 keystore 的密碼。下面的例子表示使用 tls 加密但不使用客戶端驗證,keystore 文件的位置是“/root/.keystore”,對應(yīng)的密碼是“change

43、it”。示例如圖 3.6 所示。圖 3.6 setting.ini 文件在配置好以上信息后,單擊 dashboard 界面上的的“import key”按鈕,導(dǎo)入客戶端的證書文件,如果單擊“export key”按鈕,將導(dǎo)出 mtp simulator 的證書文件,對應(yīng)的客戶端文件請放置在 certificates 目錄下,mtp simulator 的證書文沈陽理工大學(xué)學(xué)士學(xué)位論文21件也可以在該目錄下找到。如圖 3.7 所示。圖 3.7 mtp simulator 的證書文件的目錄4 mtp simulator 詳細(xì)設(shè)計 4.1 系統(tǒng)功能邏輯簡介(1) 數(shù)字影院管理系統(tǒng)的 server 端

44、向 mtpsimulator 發(fā)送 mtp 命令 有 client 連接到 mtpserverrequest 來源是 client(數(shù)字影院管理系統(tǒng) server)response 發(fā)送給對應(yīng)的 client(2) 用戶使用控制臺向 mtpsimulator 發(fā)送 mtp 命令 沒有 client 連接到 mtpserver request 的來源是控制臺 response 輸出到控制臺 (3) 用戶使用配置文件向 mtpsimulator 發(fā)送 mtp 命令 沒有 client 連接到 mtpserver request 來源是文件 response 輸出到控制臺 沈陽理工大學(xué)學(xué)士學(xué)位論文2

45、24.2 模塊功能邏輯4.2.1 模塊的總體處理邏輯mtp simulator 總體邏輯說明:啟動后,程序首先加載 setting 配置文件,然后順序啟動用于監(jiān)聽系統(tǒng)所涉及的所有文件是否變更的線程、socket 連接監(jiān)聽線程,控制臺也將進(jìn)入等待命令狀態(tài)。當(dāng)系統(tǒng)接收到 mtp 命令后,啟動命令執(zhí)行線程,執(zhí)行成功后,返回該命令所對應(yīng)的 response 結(jié)果,并記錄 record。邏輯圖如下圖 4.1 所示。啟動mtpsimulator啟動mtpserver對socket監(jiān)聽socket管理socket接收處理mtp命令解析命令處理返回結(jié)果并記錄日志控制臺監(jiān)聽命令啟動監(jiān)聽文件是否改變觀察者線程判定

46、控制臺接受命令類型命令為reload命令為quit命令為mtp命令命令為dashboard退出系統(tǒng)開啟ui界面重新設(shè)置配置信息重載所有配置文件通知相關(guān)file文件重新加載加載配置文件mtp simulator processmtp批處理文件執(zhí)行mtp命令console接收處理啟動文件變更的監(jiān)聽線程mtp批處理文件執(zhí)行mtp命令1.setting配置文件2.argsreader命令行輸入沈陽理工大學(xué)學(xué)士學(xué)位論文23圖 4.1 mtpsimulator 總體邏輯4.2.2 socket mtp 模塊處理邏輯1 socket mtp 請求接收首先,線程啟動,負(fù)責(zé)監(jiān)聽請求接收,如果有請求,則獲取信息,

47、該信息包括命令類型、ip、source 類型。在這里有一個超時判斷的設(shè)定,如果接收超時,則終止該請求接收線程。如果沒有超時,則根據(jù)特定的 source 類型創(chuàng)建輸入輸出流,然后將接收的信息封裝,啟動處理該命令信息的線程。socketmtp 請求處理線程的流程圖如下圖 4.2 所示。獲取信息根據(jù)特定的source類型創(chuàng)建輸入輸出流將信息封裝根據(jù)socket對象獲取到的命令,ip,source類型這里的信息包括:1.根據(jù)socket對象獲取的一條命令2.ip地址3.source類型4.流信息啟動請求處理線程請求接收線程啟動獲取信息是否超時f終止該請求接收線程t結(jié)束該線程時,計數(shù)器(服務(wù)器當(dāng)前soc

48、ket連接數(shù))-1socket request receiver圖 4.2 socket 請求接收流程圖2 socket mtp 命令處理處理的流程如下:沈陽理工大學(xué)學(xué)士學(xué)位論文24【解析 mtp 命令】【進(jìn)行互斥檢查】【獲取命令的 response 信息】【發(fā)送 response 信息】【記錄操作】 。解析完后,進(jìn)行互斥性檢查。該檢查調(diào)用了 requestfilter 完成 runningcmds保存在 requestfilter 中。其中互斥性檢查有四個檢查結(jié)果,分別為 delay run(延遲執(zhí)行)、run(執(zhí)行)、not run(不能執(zhí)行)、logout(提示沒有登錄)。延遲執(zhí)行時,獲

49、取當(dāng)前時間,與處理時間進(jìn)行比較,如果超時了,就向客戶端發(fā)送一個 error response,如果沒有超時,則再進(jìn)行互斥檢查。執(zhí)行時,獲取 response 信息,delaytime 等于 0 時,立即向客戶端發(fā)送 success response,否則,將該命令加入runningcmds 隊列里,延遲 delay 時間后,向客戶端發(fā)送 success response。如果是不執(zhí)行或者未登錄,則直接向客戶端發(fā)送 error response。詳細(xì)處理流程圖如下圖 4.3 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文25獲取cmd字符串該判斷調(diào)用requestfilter完成runningcmds保存在re

50、questfilter中互斥性檢查向客戶端發(fā)送errorr response獲取當(dāng)前時間,與處理時間進(jìn)行比較 delaytime=0 向客戶端發(fā)送success responsenot rundelay runmtprequestny延遲delaytime從runningcmds中移除該命令將該命令加入runningcmdsn記錄命令開始處理時間是否超時向客戶端發(fā)送errorr response解析命令字符串調(diào)用responseparser解析cmd命令字符串獲取 命令名和命令參數(shù)獲取response信息run處理結(jié)束是否需要記錄record記錄record結(jié)束開始request proces

51、sor process向客戶端發(fā)送errorr responselogout圖 4.3 socketmtp 命令處理流程3 socket mtp 命令解析流程沈陽理工大學(xué)學(xué)士學(xué)位論文26這里,解析 mtp 命令,是獲取到命令字符串,然后將其存放到一個數(shù)組中,以空格為分界,依次存放。然后獲取存儲 mtp 命令定義信息的 hashtable,該hashtable 中存儲了 mtp 定義文件中定義的信息,即 mtpsyntaxlist.xml 文件。結(jié)構(gòu)為,其中 string 為命令名,list 中存放了命令的定義信息(命令總長度為 l1,命令名長度 l2)。存放命令字符串?dāng)?shù)組的長度為 l3。遍歷h

52、ashtable 的每一項,如果 l1 和 l3 相等,就可視為符合命令格式。然后解析命令,獲取數(shù)組 a 的前 l2 個元素,并組裝成字符串 s2,數(shù)組元素之間用空格隔開,比較 s2 與 s1,s1 為 hashtable 的鍵,如果相同則說明有這個命令,解析成功,否則解析失敗。然后封裝解析的信息。解析命令字符串時調(diào)用responseparser()。具體流程請參見下圖 4.4 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文27mtpcmdstring獲取存儲mtp命令定義信息的hashtable該hashtable中存儲了mtp定義文件中定義的信息,結(jié)構(gòu)為其中string為命令名,list中存放了命令的定義

53、信息(命令總長度l1,命令名長度l2)獲取字符串?dāng)?shù)組a(長度為l3)遍歷hashtable的每一項(鍵為s1)將mtpcmdstring按空格分割為字符串?dāng)?shù)組l3 = l1是否解析成功獲取數(shù)組a的前l(fā)2個元素,并組裝成字符串s2(數(shù)組元素之間用空格隔開)。比較s2與s1,如果相同則解析成功,否則解析失敗nyn封裝解析結(jié)果n遍歷結(jié)束結(jié)束command resolving process圖 4.4 命令解析流程圖4 socket mtp 互斥檢查流程互斥判斷過程:如果已登錄,則獲取到 mtp 命令互斥表,該互斥表在系統(tǒng)啟動時創(chuàng)建并保存在系統(tǒng)內(nèi)存中,查詢與 mtpcmd 互斥的命令列表 a 和延遲沈

54、陽理工大學(xué)學(xué)士學(xué)位論文28列表 b,然后獲取當(dāng)前在運行的命令列表 c。查看 a 與 c 是否有交集,如果有,則返回 not run,即不執(zhí)行。如果沒有交集,則繼續(xù)判斷 b 和 c 是否有交集,如果有,則返回 delay run,即延遲執(zhí)行,如果沒有,則返回 run,可以執(zhí)行。具體流程如下圖 4.5 所示。mtpcmd獲取mtp命令互斥表該互斥表在系統(tǒng)啟動時創(chuàng)建并保存在系統(tǒng)內(nèi)存中查詢與mtpcmd互斥的命令列表a,延遲列表b獲取當(dāng)前在運行的命令列表ca和c有交集?返回 runnb和c有交集?n返回 not runy返回 delay runyconflict checking processisl

55、oginedy返回 logoutn圖 4.5 mtp 互斥檢查流程圖5 response 處理流程具體流程如下圖 4.6 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文29find response filefile exist?messages delay = 0 (default )the file has delay node and the nodes text is nether null nor empty string.messages delay = value of nodes text assemble request parametersyesyesnotravers mtprespon

56、se nodesthe nodes child requestparameterstring matches the request parameters?set messages returncode, message and parameterthe node has child requestparameterstring with * value? yesnoyesprint error messagenoresponse processor process圖 4.6 response 處理流程圖4.2.3 console mtp 處理邏輯 console mtp 的輸入界面如下圖 4

57、.7 所示。 圖 4.7 console mtp 輸入界面mtp 的響應(yīng)結(jié)果如下圖 4.8 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文30 圖 4.8 mtp 的響應(yīng)結(jié)果1 consolemtp 總體處理邏輯原理同上。consolemtp 總體處理邏輯如下圖 4.9 所示。mtp命令接收線程獲取mtp命令啟動mtp命令處理線程mtp命令處理線程解析mtp命令查詢response信息互斥判斷send mtp responsemtp命命令令接接收收模模塊塊get mtp requestmtp命命令令處處理理模模塊塊consoleconsoleconsole mtp process圖 4.9 console m

58、tp 模塊處理邏輯圖2 console mtp 請求接收console mtp 請求接收流程如下圖 4.10 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文31請求接收線程啟動獲取信息根據(jù)特定的source類型創(chuàng)建輸入輸出流將信息封裝啟動請求處理線程信息包括:1.一條mtp命令2.source類型3.流信息一條mtp命令console request receiver圖 4.10 console 請求接收流程圖3 其他邏輯處理請參考(socketmtp 的處理邏輯)。4.2.4 file mtp 模塊處理邏輯file mtp 的輸入如下圖 4.11 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文32 圖 4.11 file

59、mtp 的輸入file mtp 的響應(yīng)結(jié)果如下圖 4.12 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文33 圖 4.12 file mtp 的響應(yīng)結(jié)果1 filemtp 模塊總體處理邏輯filemtp 模塊總體處理邏輯如下圖 4.13 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文34file請求線程獲取mtp命令啟動mtp命令處理線程mtp命令處理線程解析mtp命令查詢response信息互斥判斷responsemtp命命令令接接收收模模塊塊mtpsimulator接收來自console輸入如果輸入mtp文件名啟動file請求處理線程request如果file方式為手動讀取mtp命命令令處處理理模模塊塊consolef

60、ile mtp process圖 4.13 file mtp 模塊總體處理邏輯圖2 filemtp 請求接收讀取文件方式有兩種:自動讀取和手動讀取。具體方式由配置文件中的設(shè)定項【是否自動讀取 mtp 命令文件】指定。file mtp 請求接收流程如下圖 4.14 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文35請求接收線程啟動從文件中獲取信息根據(jù)特定的source類型創(chuàng)建輸入輸出流將信息封裝啟動請求處理線程信息包括:1.一條mtp命令2.source類型3.流信息許多條mtp命令file request receiver獲取一條mtp命令圖 4.14 file mtp 請求接收流程圖3 其他邏輯處理請參考(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論