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

下載本文檔

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

文檔簡介

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

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

3、act mtp 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 module for

4、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 developmen

5、t 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 of the me

6、dia, 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 consolemtp module

7、 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, the system

8、under study on the subject to be tested. key words: mtp simulator;graphical interface;socket;console;file; media terminal protocol; transport layer security 目錄 1 緒論.6 1.1 課題的來源.6 1.2 課題背景.6 1.3 mtp simulator開發(fā)前提.7 1.4 mtp simulator開發(fā)意義.7 2 mtpsimulator 系統(tǒng)分析.9 2.1 mtp simulator可行性分析.9 2.2 mtp simulat

9、or的功能分析.9 2.3 系統(tǒng)平臺(tái)分析.10 2.4 所用技術(shù)分析.10 2.4.1 java 開發(fā)語言.10 2.4.2 schema 技術(shù).11 2.4.3 eclipse 開發(fā)工具.11 2.4.4 安全傳輸層協(xié)議(tls).12 3 mtpsimulator 概要設(shè)計(jì).13 3.1 系統(tǒng)結(jié)構(gòu)定義.13 3.2 系統(tǒng)功能模塊劃分.13 3.2.1 socket 方式的 mtp 命令.14 3.2.2 console 方式的 mtp 命令 .14 3.2.3 file 方式的 mtp 命令 .15 3.3 文件規(guī)則定制.16 3.3.1 mtp 命令格式文件.16 3.3.2 mtp 命

10、令互斥控制文件.17 3.3.3 response 文件 .17 3.4 系統(tǒng)參數(shù)設(shè)定.18 3.4.1 配置文件中設(shè)定系統(tǒng)參數(shù).18 3.4.2 圖形界面設(shè)定系統(tǒng)參數(shù).20 3.4.3 tls 證書的導(dǎo)入與導(dǎo)出.21 4 mtpsimulator 詳細(xì)設(shè)計(jì).23 4.1 系統(tǒng)功能邏輯簡介.23 4.2 模塊功能邏輯.23 4.2.1 模塊的總體處理邏輯.23 4.2.2 socketmtp 模塊處理邏輯.24 4.2.3 consolemtp 處理邏輯 .30 4.2.4 filemtp 模塊處理邏輯 .33 4.2.5 系統(tǒng)包結(jié)構(gòu).34 4.2.6 系統(tǒng)類結(jié)構(gòu).35 4.2.7 類功能詳細(xì)

11、.36 4.2.8 模塊線程圖.63 4.2.9 系統(tǒng)時(shí)序圖.65 5 系統(tǒng)測試.69 5.1 軟件測試.69 5.1.1 測試的基本概念.69 5.1.2 測試步驟.70 5.2 本系統(tǒng)功能測試.70 5.2.1 socketmtp 功能模塊測試.71 5.2.2 consolemtp 功能模塊測試 .71 5.2.3 filemtp 功能模塊測試 .71 結(jié)論.72 致謝.73 參考文獻(xiàn).74 附錄 a 英文原文.75 附錄 b 中文翻譯.80 1 緒論 1.1 課題的來源 隨著我國高清數(shù)字電影的發(fā)展,數(shù)字電影已經(jīng)慢慢的融入到我們的日常生 活,4k 數(shù)字電影出色的畫質(zhì)大大提高了 3d 放映

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

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

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

15、交互的細(xì)節(jié),這就 需要了解的數(shù)字影院管理系統(tǒng)是如何與媒體終端設(shè)備進(jìn)行交互,交互的內(nèi)容 是什么,通過什么方式通信,最后要得到什么樣的效果。開發(fā) mtp similator 的目的是為了能在本地搭建一個(gè)整體的數(shù)字影院管理系統(tǒng)的開發(fā)與調(diào)試環(huán)境, 因此決定開發(fā) mtp simulator,最終在本地實(shí)現(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ā)需求 由于

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

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

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

19、術(shù)來規(guī)定 mtp 命令和命令返回結(jié)果。因此理論上是可 以完成 mtp simulator 的開發(fā)。 2.2 mtp simulator 的功能分析 mtp simulator 是硬件媒體終端設(shè)備功能的軟件實(shí)現(xiàn),主要模擬媒體終端 設(shè)備對(duì)于 mtp 消息的接收、解析和響應(yīng)。mtp simulator 支持客戶端采用 socket(加密/不加密)方式進(jìn)行通信、文件形式批量導(dǎo)入方式通信和在控制臺(tái)輸 入 mtp 命令方式通信,并將結(jié)果作為響應(yīng)傳送給客戶端或者直接顯示在終端 屏幕上。該系統(tǒng)的輸入輸出如圖 2.1 所示。 圖 2.1 mtp simulator 的輸入與輸出 2.3 系統(tǒng)平臺(tái)分析 1硬件支持

20、:計(jì)算機(jī)(pc)一臺(tái),處理器 pentium iii800 以上,內(nèi)存 256m 以上,硬盤空間 2g 以上。 2軟件支持如下表 2-1 所示: 表 2-1 軟件與版本 #軟件版本 1windowsxp 2jdk1.6.0_29 3eclipse3.7 2.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 是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由 sun microsystem

21、s 公司于 1995 年 5 月推出的 java 程序設(shè)計(jì)語言和 java 平臺(tái)(即 javase, javaee, javame)的總稱。java 技術(shù)具有卓越的通用性、高效性、平臺(tái) 移植性和安全性,廣泛應(yīng)用于個(gè)人 pc、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算 機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算 和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,java 更具備了顯著優(yōu)勢和廣闊前景。 java 編程語言的風(fēng)格十分接近 c、c+語言。java 是一個(gè)純的面向?qū)ο蟮?程序設(shè)計(jì)語言,它繼承了 c+ 語言面向?qū)ο蠹夹g(shù)的核心,java 舍棄了 c +語 言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算

22、符重載(operator overloading)、多 重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì) 象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理 而擔(dān)憂。在 java se 1.5 版本中,java 又引入了泛型編程(generic programming)、類型安全的枚舉、不 定長參數(shù)和自動(dòng)裝/拆箱等語言特性。 2.4.2 schema 技術(shù) schema 是用于描述和規(guī)范 xml 文檔的邏輯結(jié)構(gòu)的一種語言,它最大的作 用就是驗(yàn)證 xml 文件邏輯結(jié)構(gòu)的正確性。可以理解成與 dtd(文檔類型定義) 功能差不多,但是 schema 在當(dāng)前的 web 開發(fā)環(huán)境下優(yōu)越

23、很多。因?yàn)樗旧砭?是一個(gè)有效的 xml 文檔,因而可以更直觀地了解 xml 的結(jié)構(gòu)。除此之外, schema 支持命名空間,內(nèi)置多種簡單和復(fù)雜的數(shù)據(jù)類型,并支持自定義數(shù)據(jù)類 型。由于存在這么多的優(yōu)點(diǎn),所以 schema 漸漸成為 xml 應(yīng)用的統(tǒng)一規(guī)范。 2.4.3 eclipse 開發(fā)工具 eclipse 是一個(gè)開放源代碼的、基于 java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而 言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是, eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 java 開發(fā)工具(java development kit,jdk)。 雖然大多數(shù)用戶很樂于將 ecl

24、ipse 當(dāng)作 java 集成開發(fā)環(huán)境(ide)來使用, 但 eclipse 的目標(biāo)卻不僅限于此。eclipse 還包括插件開發(fā)環(huán)境(plug-in development environment,pde),這個(gè)組件主要針對(duì)希望擴(kuò)展 eclipse 的軟件 開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 eclipse 環(huán)境無縫集成的工具。由于 eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 eclipse 提供插件,以及給用戶提供一致和統(tǒng) 一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。 2.4.4 安全傳輸層協(xié)議(tls) 安全傳輸層協(xié)議(tls)用于在兩個(gè)通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整

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

26、壓縮算法、加密 算法和 mac 算法。 tls 記錄層從高層接收任意大小無空塊的連續(xù)數(shù)據(jù)。密鑰計(jì)算:記錄協(xié)議 通過算法從握手協(xié)議提供的安全參數(shù)中產(chǎn)生密鑰、iv 和 mac 密鑰。tls 握手 協(xié)議由三個(gè)子協(xié)議組構(gòu)成,允許對(duì)等雙方在記錄層的安全參數(shù)上達(dá)成一致、自 我認(rèn)證、例示協(xié)商安全參數(shù)、互相報(bào)告出錯(cuò)條件。 tls 握手協(xié)議: 1.改變密碼規(guī)格協(xié)議 2.警惕協(xié)議 3.握手協(xié)議 tls 的最大優(yōu)勢就在于:tls 是獨(dú)立于應(yīng)用協(xié)議。高層協(xié)議可以透明地分 布在 tls 協(xié)議上面。然而,tls 標(biāo)準(zhǔn)并沒有規(guī)定應(yīng)用程序如何在 tls 上增 加安全性;它把如何啟動(dòng) tls 握手協(xié)議以及如何解釋交換的認(rèn)證證書

27、的決定 權(quán)留給協(xié)議的設(shè)計(jì)者和實(shí)施者來判斷。 tls 包含三個(gè)基本階段: 1.對(duì)等協(xié)商支援的密鑰算法 2.基于私鑰加密交換公鑰、基于 pki 證書的身份認(rèn)證 3.基于公鑰加密的數(shù)據(jù) 3 mtp simulator 概要設(shè)計(jì) 3.1 系統(tǒng)結(jié)構(gòu)定義 系統(tǒng)結(jié)構(gòu)如圖 3.1 所示。 sms server console file mtp simulator mtp server socket requestreceiver console requestreceiver file requestreceiver requestprocessor requestfilter requestsender r

28、equestresonse requestrecord argsreadersetting mtpmessage .xml mtpresponse .xml setting .ini optionfile mtpmutex .xml console file 圖 3.1 系統(tǒng)結(jié)構(gòu)圖 mtp simulator 按照 mtp 命令的接收、處理、互斥控制、響應(yīng)和發(fā)送結(jié)果 劃分功能模塊,并按照 mtp 命令的接收來源細(xì)化模塊,根據(jù)用戶配置文件、命 令格式定義文件、response 格式定義文件等的處理功能,劃分相應(yīng)的功能模塊。 3.2 系統(tǒng)功能模塊劃分 3.2.1 socket 方式的 mtp 命令

29、 本系統(tǒng)支持 mtp 命令以 socket 的方式輸入。 socket 方式處理 mtp 命令時(shí)不需要用戶進(jìn)行任何操作。程序啟動(dòng)后會(huì)自動(dòng) 監(jiān)聽 socket 連接,當(dāng)有 mtp 命令傳入時(shí),mtp simulator 可以自動(dòng)接收和處理。 socket 通信又分為加密(tls socket)和非加密兩種通信方式。系統(tǒng)啟動(dòng)的同時(shí), 用于監(jiān)聽 client 端(即數(shù)字影院管理系統(tǒng))的 mtp server 也將被同時(shí)啟動(dòng),并處 于監(jiān)聽等待狀態(tài),當(dāng) client 端傳來 mtp 命令時(shí),服務(wù)端將該命令進(jìn)行捕獲,進(jìn) 行分析處理后,將 response 信息返回到控制臺(tái)并記錄到 recorder.txt

30、 中。當(dāng)系統(tǒng) 退出時(shí),mtp server 也將被隨之關(guān)閉。 3.2.2 console 方式的 mtp 命令 本系統(tǒng)支持在控制臺(tái)上輸入 mtp 命令,輸入的命令分為兩類。一類為系統(tǒng) 控制命令,另一類為 mtp 命令。 (1) 系統(tǒng)控制命令 系統(tǒng)控制命令包括 quit、reload、dashboard。 quit:系統(tǒng)退出命令。 reload:對(duì)本系統(tǒng)中所涉及到的所有文件重新加載,其中批處理文件中所設(shè) 定的 mtp 命令也將被重新執(zhí)行一遍。 dashboard:啟動(dòng)用戶操作界面,在該界面,用戶能夠自定義配置系統(tǒng)參數(shù) 等信息,配置后能夠立即生效。 (2) mtp 命令 除系統(tǒng)控制命令中包括的三種

31、命令外,其他輸入的所有命令,系統(tǒng)都會(huì)當(dāng) 做 mtp 命令來處理。輸入的 mtp 命令的格式要嚴(yán)格按照 mtp 定義文件中規(guī) 定的格式來輸入。 例如:user login name pwd 注:user login 為命令部分,name 和 pwd 分別為該命令的兩個(gè)參數(shù), 每個(gè)字段都以空格符來隔開。 (3) 無效命令 若輸入的命令,系統(tǒng)不能識(shí)別,將返回錯(cuò)誤信息。 3.2.3 file 方式的 mtp 命令 本系統(tǒng)支持 mtp 命令以 flie 方式輸入。 在批處理文件中寫入若干條 mtp 命令,當(dāng)系統(tǒng)啟動(dòng)時(shí),用于控制該文件的 線程也隨之啟動(dòng),該線程會(huì)自動(dòng)讀取該文件中的 mtp 命令并傳遞給相應(yīng)

32、的功能 模塊做處理。 執(zhí)行 mtp 批處理文件方式有兩種,一種是通過控制臺(tái)輸入控制命令的方式, 另一種為通過系統(tǒng)的輪詢方式。 (1) 控制臺(tái)輸入控制命令方式 在控制臺(tái)輸入“reload”命令,所有與系統(tǒng)相關(guān)的文件都將被進(jìn)行重載,其中 mtp 批處理文件中的若干條 mtp 命令將被執(zhí)行。 (2) 系統(tǒng)的輪詢方式 系統(tǒng)啟動(dòng)時(shí),用于對(duì)文件進(jìn)行輪詢的線程也將一同啟動(dòng),若在對(duì)文件的輪 詢過程中,出現(xiàn)某個(gè)文件被更改了,那么系統(tǒng)將對(duì)該文件進(jìn)行重新加載,若該 文件為 mtp 批處理文件,則文件中的 mtp 命令將被執(zhí)行。 注:在文件中寫入一條 mtp 命令后就需要換行,即始終保證每一行只有一 條 mtp 命令

33、。 3.2.4 記錄 recorder 文件 本系統(tǒng)提供記錄 recorder 功能。 針對(duì)每一條 mtp 命令的執(zhí)行,都將生成一條 log 信息。該信息包括記錄 log 的時(shí)間、請(qǐng)求來源、mtp 命令名、mtp 命令參數(shù)、執(zhí)行 mtp 命令所需要 的延時(shí)時(shí)間、mtp 命令所對(duì)應(yīng)的響應(yīng)信息,其中 mtp 命令響應(yīng)信息由 code、message、parameter 三部分組成。 正常返回消息形式如下: time:2012-05-08 10:58:56 /記錄 log 的生成時(shí)間 requestfrom:xxxserver /192.168.1.100:12345/mtp 請(qǐng)求來源 messag

34、ename:get stat/mtp 命令名 messageparameter:run /mtp 命令參數(shù) messagedelay:8000 /執(zhí)行 mtp 命令所需要的延時(shí)時(shí)間 messageresponse:0000 success 001 playing/mtp 命令返回結(jié)果 注:0000 為 code,success 為 message,001 playing 為 parameter. 以下是所有的錯(cuò)誤響應(yīng)類型及對(duì)照的 message 信息: invalidmessage(1001,invalid message); internalprocesserror(1002,interna

35、l process error); internalsystemerror(1004,internal system error); timeout(1007,timeout); notsupported(1010,not supported); 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) 簽。 一條

36、有效的 mtp 命令,必須具有一套完整的標(biāo)簽(如圖所示的 4 包含的所 有標(biāo)簽),并且在 1、2、3 三部分設(shè)定相應(yīng)值。 3.3.2 mtp 命令互斥控制文件 互斥控制文件描述的是 mtp 消息之間的互斥關(guān)系,在一條 mtp 消息執(zhí)行 的過程中,可能有些 mtp 消息與其存在互斥關(guān)系,這些 mtp 消息在這條消息 執(zhí)行過程中可能要等待執(zhí)行或者不能執(zhí)行,等待執(zhí)行是這條 mtp 消息執(zhí)行后再 執(zhí)行?;コ饪刂莆募詷?biāo)準(zhǔn)的 xml 文件格式來定義描述 mtp 消息之間的這種 互斥關(guān)系?;コ饪刂莆募?mtpmutex.xml 互斥控制文件內(nèi)容請(qǐng)參照下圖 3.3 所示。 圖 0.3 互斥文件結(jié)構(gòu)圖 其

37、中 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)示例如下圖 3.3 所示。 圖 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 命令的延遲時(shí)間、11 響應(yīng)開始標(biāo)簽。 3.4 系統(tǒng)參數(shù)設(shè)定 3.4.1 配置文件中設(shè)定系統(tǒng)參

38、數(shù) mtp simulator 的系統(tǒng)參數(shù)在 setting.ini 文件中設(shè)定,該文件記錄著 mtp simulator 運(yùn)行的基本參數(shù),文件的基本格式如下圖 3.4 所示。 注:在 setting.ini 中,每個(gè)參數(shù)設(shè)定占一行,以“#”開頭的是注釋行。參數(shù)名與參數(shù)值之 間以“=”連接組成的鍵值對(duì)。 圖 3.4 setting.ini 參數(shù)文件 以下列出可設(shè)定的參數(shù): 1.ip 指 mtp simulator 運(yùn)行時(shí)所使用的 ip 地址 2.port 指 mtp simulator 運(yùn)行時(shí)所監(jiān)聽的端口號(hào) 3.requesttimeout 指請(qǐng)求超時(shí)的時(shí)間 4.connecttimeout

39、指連接超時(shí)的時(shí)間 5.maxconnections 是 mtp simulator 允許的最大連接數(shù)量 6.clientauthentication 是否使用客戶端認(rèn)證(只能取值 on 或 off) 7.keystorelocation keystore 文件的位置 8.keystorepassword keystore 文件的密碼 9.tlsencryption 是否使用 tls 加密通信(只能取值 on 或 off) 10.syntaxfile 指定語法定義文件 11.mutexfile 指定互斥文件 12.batchfile 指定批處理文件 13.outputfile 指定日志輸出文件

40、14.recordactions 是否記錄操作日志 15.autopolling 文件自動(dòng)輪詢(只能取值 on 或 off) 16.pollinginterval 文件自動(dòng)輪詢間隔 3.4.2 圖形界面設(shè)定系統(tǒng)參數(shù) dashboard 圖形界面是 mtp simulator 提供給用戶用來動(dòng)態(tài)修改系統(tǒng)參數(shù)的 圖形化操作界面,界面上的每個(gè)設(shè)定項(xiàng)在 setting.ini 文件中都有對(duì)應(yīng)的設(shè)定項(xiàng), 圖形界面說明如下圖 3.5 所示。 3214 5 6 7 8 10 01 00 3 11 12 13 14 9 15 16 17 圖 3.5 dashboard 圖形界面 1. 是否使用 tls 加密通

41、訊 2. 是否使用客戶端認(rèn)證 3. 導(dǎo)入證書文件 4. 導(dǎo)出證書文件 5. tcp/ip 設(shè)定 6. 監(jiān)聽端口號(hào) 7. 連接超時(shí) 8. 請(qǐng)求超時(shí) 9. 最大連接數(shù) 10. 是否記錄操作日志 11. 指定語法定義文件 12. 指定互斥文件 13. 指定批處理文件 14. 指定日志輸出文件 15. 文件自動(dòng)輪詢 16. 文件自動(dòng)輪詢間隔 17. 確認(rèn)按鈕 3.4.3 tls 證書的導(dǎo)入與導(dǎo)出 當(dāng)系統(tǒng)使用 tls 加密通信時(shí),客戶端需要使用 mtp simulator 的證書進(jìn)行 身份驗(yàn)證。如果啟用客戶端驗(yàn)證,那么 mtp simulator 同樣需要導(dǎo)入客戶端的 證書,mtp simulator

42、就要提供 tls 證書的導(dǎo)入和導(dǎo)出操作。 在導(dǎo)入和導(dǎo)出證書之前,需要設(shè)定 setting.ini 中的“tlsencryption”、 “clientauthentication”、 “keystorelocation”和“keystorepassword”參數(shù)項(xiàng)。 (1)“tlsencryption”參數(shù)的取值只能是“on”或“off”, “on”表示使用 tls 加密, “off”表示不使用 tls 加密; (2)“clientauthentication”參數(shù)的取值同樣只能是“on”或“off”, “on” 表示使 用客戶端驗(yàn)證, “off”表示不使用客戶端驗(yàn)證; (3)“keystor

43、elocation”用來指定用來維護(hù)證書文件的 keystore 文件的位置; “keystorepassword”是對(duì)應(yīng)的 keystore 的密碼。 下面的例子表示使用 tls 加密但不使用客戶端驗(yàn)證,keystore 文件的 位置是“/root/.keystore”,對(duì)應(yīng)的密碼是“changeit”。示例如圖 3.6 所示。 圖 3.6 setting.ini 文件 在配置好以上信息后,單擊 dashboard 界面上的的“import key”按鈕,導(dǎo)入 客戶端的證書文件,如果單擊“export key”按鈕,將導(dǎo)出 mtp simulator 的證書 文件,對(duì)應(yīng)的客戶端文件請(qǐng)放置在

44、certificates 目錄下,mtp simulator 的證書文 件也可以在該目錄下找到。 如圖 3.7 所示。 圖 3.7 mtp simulator 的證書文件的目錄 4 mtp simulator 詳細(xì)設(shè)計(jì) 4.1 系統(tǒng)功能邏輯簡介 (1) 數(shù)字影院管理系統(tǒng)的 server 端向 mtpsimulator 發(fā)送 mtp 命令 有 client 連接到 mtpserver request 來源是 client(數(shù)字影院管理系統(tǒng) server) response 發(fā)送給對(duì)應(yīng)的 client (2) 用戶使用控制臺(tái)向 mtpsimulator 發(fā)送 mtp 命令 沒有 client 連接

45、到 mtpserver request 的來源是控制臺(tái) response 輸出到控制臺(tái) (3) 用戶使用配置文件向 mtpsimulator 發(fā)送 mtp 命令 沒有 client 連接到 mtpserver request 來源是文件 response 輸出到控制臺(tái) 4.2 模塊功能邏輯 4.2.1 模塊的總體處理邏輯 mtp simulator 總體邏輯說明:啟動(dòng)后,程序首先加載 setting 配置文件, 然后順序啟動(dòng)用于監(jiān)聽系統(tǒng)所涉及的所有文件是否變更的線程、socket 連接監(jiān) 聽線程,控制臺(tái)也將進(jìn)入等待命令狀態(tài)。當(dāng)系統(tǒng)接收到 mtp 命令后,啟動(dòng)命令 執(zhí)行線程,執(zhí)行成功后,返回該命

46、令所對(duì)應(yīng)的 response 結(jié)果,并記錄 record。 邏輯圖如下圖 4.1 所示。 啟動(dòng)mtpsimulator 啟動(dòng)mtpserver對(duì) socket監(jiān)聽 socket管理 socket接收處理 mtp命令解析 命令處理 返回結(jié)果并記錄日 志 控制臺(tái)監(jiān)聽命令 啟動(dòng)監(jiān)聽文件是否 改變觀察者線程 判定控制臺(tái)接受命 令類型 命令為 reload 命令為quit 命令為mtp命 令 命令為 dashboard 退出系統(tǒng)開啟ui界面 重新設(shè)置配置信息 重載所有配置文件 通知相關(guān)file文件重 新加載 加載配置文件 mtp simulator process mtp批處理文件執(zhí) 行mtp命令 co

47、nsole接收處理 啟動(dòng)文件變更的監(jiān) 聽線程 mtp批處理文件執(zhí) 行mtp命令 1.setting配置文件 2.argsreader命令 行輸入 圖 4.1 mtpsimulator 總體邏輯 4.2.2 socket mtp 模塊處理邏輯 1 socket mtp 請(qǐng)求接收 首先,線程啟動(dòng),負(fù)責(zé)監(jiān)聽請(qǐng)求接收,如果有請(qǐng)求,則獲取信息,該信息 包括命令類型、ip、source 類型。在這里有一個(gè)超時(shí)判斷的設(shè)定,如果接收超 時(shí),則終止該請(qǐng)求接收線程。如果沒有超時(shí),則根據(jù)特定的 source 類型創(chuàng)建輸 入輸出流,然后將接收的信息封裝,啟動(dòng)處理該命令信息的線程。 socketmtp 請(qǐng)求處理線程的流

48、程圖如下圖 4.2 所示。 獲取信息 根據(jù)特定的source 類型創(chuàng)建輸入輸出 流 將信息封裝 根據(jù)socket對(duì)象獲 取到的命令 ,ip,source類型 這里的信息包括: 1.根據(jù)socket對(duì)象 獲取的一條命令 2.ip地址 3.source類型 4.流信息 啟動(dòng)請(qǐng)求處理線程 請(qǐng)求接收線程 啟動(dòng) 獲取信息是否 超時(shí) f 終止該請(qǐng)求接收線 程 t 結(jié)束該線程時(shí),計(jì) 數(shù)器(服務(wù)器當(dāng)前 socket連接數(shù))-1 socket request receiver 圖 4.2 socket 請(qǐng)求接收流程圖 2 socket mtp 命令處理 處理的流程如下: 【解析 mtp 命令】【進(jìn)行互斥檢查】【

49、獲取命令的 response 信息】 【發(fā)送 response 信息】【記錄操作】 。 解析完后,進(jìn)行互斥性檢查。該檢查調(diào)用了 requestfilter 完成 runningcmds 保存在 requestfilter 中。其中互斥性檢查有四個(gè)檢查結(jié)果,分別為 delay run(延 遲執(zhí)行)、run(執(zhí)行)、not run(不能執(zhí)行)、logout(提示沒有登錄)。延遲執(zhí)行時(shí), 獲取當(dāng)前時(shí)間,與處理時(shí)間進(jìn)行比較,如果超時(shí)了,就向客戶端發(fā)送一個(gè) error response,如果沒有超時(shí),則再進(jìn)行互斥檢查。執(zhí)行時(shí),獲取 response 信息, delaytime 等于 0 時(shí),立即向客戶端

50、發(fā)送 success response,否則,將該命令加入 runningcmds 隊(duì)列里,延遲 delay 時(shí)間后,向客戶端發(fā)送 success response。如果 是不執(zhí)行或者未登錄,則直接向客戶端發(fā)送 error response。 詳細(xì)處理流程圖如下圖 4.3 所示。 獲取cmd字符串 該判斷調(diào)用requestfilter完成 runningcmds保存在requestfilter中 互斥性檢查 向客戶端發(fā)送 errorr response 獲取當(dāng)前時(shí)間,與 處理時(shí)間進(jìn)行比較 delaytime=0 向客戶端發(fā)送 success response not rundelay run

51、mtprequest n y 延遲delaytime 從runningcmds中 移除該命令 將該命令加入 runningcmds n 記錄命令開始處理 時(shí)間 是否超時(shí) 向客戶端發(fā)送 errorr response 解析命令字符串 調(diào)用responseparser解析cmd命令字符 串獲取 命令名和命令參數(shù) 獲取response信息 run 處理結(jié)束 是否需要記錄 record 記錄record 結(jié)束 開始 request processor process 向客戶端發(fā)送 errorr response logout 圖 4.3 socketmtp 命令處理流程 3 socket mtp 命令

52、解析流程 這里,解析 mtp 命令,是獲取到命令字符串,然后將其存放到一個(gè)數(shù)組中, 以空格為分界,依次存放。然后獲取存儲(chǔ) mtp 命令定義信息的 hashtable,該 hashtable 中存儲(chǔ)了 mtp 定義文件中定義的信息,即 mtpsyntaxlist.xml 文件。 結(jié)構(gòu)為,其中 string 為命令名,list 中存放了命令的定義信息(命令 總長度為 l1,命令名長度 l2)。存放命令字符串?dāng)?shù)組的長度為 l3。遍歷 hashtable 的每一項(xiàng),如果 l1 和 l3 相等,就可視為符合命令格式。然后解析 命令,獲取數(shù)組 a 的前 l2 個(gè)元素,并組裝成字符串 s2,數(shù)組元素之間用空

53、格 隔開,比較 s2 與 s1,s1 為 hashtable 的鍵,如果相同則說明有這個(gè)命令,解 析成功,否則解析失敗。然后封裝解析的信息。解析命令字符串時(shí)調(diào)用 responseparser()。 具體流程請(qǐng)參見下圖 4.4 所示。 mtpcmdstr ing 獲取存儲(chǔ)mtp命令定 義信息的hashtable 該hashtable中存儲(chǔ)了mtp定義 文件中定義的信息,結(jié)構(gòu)為 其中string為命令 名,list中存放了命令的定義 信息(命令總長度l1,命令名 長度l2) 獲取字符串?dāng)?shù)組a (長度為l3) 遍歷hashtable的每 一項(xiàng)(鍵為s1) 將mtpcmdstring按空格分 割為字符

54、串?dāng)?shù)組 l3 = l1 是否解析成功 獲取數(shù)組a的前l(fā)2個(gè)元素,并 組裝成字符串s2(數(shù)組元素之 間用空格隔開)。比較s2與 s1,如果相同則解析成功, 否則解析失敗 n y n 封裝解析結(jié)果 n 遍歷結(jié)束 結(jié)束 command resolving process 圖 4.4 命令解析流程圖 4 socket mtp 互斥檢查流程 互斥判斷過程:如果已登錄,則獲取到 mtp 命令互斥表,該互斥表在系統(tǒng) 啟動(dòng)時(shí)創(chuàng)建并保存在系統(tǒng)內(nèi)存中,查詢與 mtpcmd 互斥的命令列表 a 和延遲 列表 b,然后獲取當(dāng)前在運(yùn)行的命令列表 c。查看 a 與 c 是否有交集,如果有, 則返回 not run,即不執(zhí)

55、行。如果沒有交集,則繼續(xù)判斷 b 和 c 是否有交集,如 果有,則返回 delay run,即延遲執(zhí)行,如果沒有,則返回 run,可以執(zhí)行。 具體流程如下圖 4.5 所示。 mtpcmd 獲取mtp命令互斥表 該互斥表在 系統(tǒng)啟動(dòng)時(shí)創(chuàng)建并 保存在系統(tǒng)內(nèi)存中 查詢與mtpcmd互 斥的命令列表a, 延遲列表b 獲取當(dāng)前在運(yùn)行的 命令列表c a和c有交集? 返回 run n b和c有交 集? n 返回 not run y 返回 delay run y conflict checking process islogined y 返回 logout n 圖 4.5 mtp 互斥檢查流程圖 5 resp

56、onse 處理流程 具體流程如下圖 4.6 所示。 find response file file 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 parameters yes yes no travers mtpresponse nodes the nodes child requestparameterstr

57、ing matches the request parameters? set messages returncode, message and parameter the node has child requestparameterstring with * value? yes no yes print error message no response processor process 圖 4.6 response 處理流程圖 4.2.3 console mtp 處理邏輯 console mtp 的輸入界面如下圖 4.7 所示。 圖 4.7 console mtp 輸入界面 mtp

58、的響應(yīng)結(jié)果如下圖 4.8 所示。 圖 4.8 mtp 的響應(yīng)結(jié)果 1 consolemtp 總體處理邏輯 原理同上。 consolemtp 總體處理邏輯如下圖 4.9 所示。 mtp命令接收線程 獲取mtp命令 啟動(dòng)mtp命令處理 線程 mtp命令處理線程 解析mtp命令 查詢r(jià)esponse信息 互斥判斷 send mtp response mtp命命令令接接收收模模塊塊 get mtp request mtp命命令令處處理理模模塊塊 console console console mtp process 圖 4.9 console mtp 模塊處理邏輯圖 2 console mtp 請(qǐng)求接

59、收 console mtp 請(qǐng)求接收流程如下圖 4.10 所示。 請(qǐng)求接收線程啟動(dòng) 獲取信息 根據(jù)特定的source 類型創(chuàng)建輸入輸出 流 將信息封裝 啟動(dòng)請(qǐng)求處理線程 信息包括: 1.一條mtp命令 2.source類型 3.流信息 一條mtp命令 console request receiver 圖 4.10 console 請(qǐng)求接收流程圖 3 其他邏輯處理 請(qǐng)參考(socketmtp 的處理邏輯)。 4.2.4 file mtp 模塊處理邏輯 file mtp 的輸入如下圖 4.11 所示。 圖 4.11 file mtp 的輸入 file mtp 的響應(yīng)結(jié)果如下圖 4.12 所示。 圖

60、 4.12 file mtp 的響應(yīng)結(jié)果 1 filemtp 模塊總體處理邏輯 filemtp 模塊總體處理邏輯如下圖 4.13 所示。 file請(qǐng)求線程 獲取mtp命令 啟動(dòng)mtp命令處理 線程 mtp命令處理線程 解析mtp命令 查詢r(jià)esponse信息 互斥判斷 response mtp命命令令接接收收模模塊塊 mtpsimulator 接收來自 console輸入 如果輸入mtp文件名 啟動(dòng)file請(qǐng)求處理 線程 request 如果file方式為手 動(dòng)讀取 mtp命命令令處處理理模模塊塊 console file mtp process 圖 4.13 file mtp 模塊總體處理邏

溫馨提示

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

評(píng)論

0/150

提交評(píng)論