基于TLS安全的MTP命令解释器

上传人:仙*** 文档编号:42823522 上传时间:2021-11-28 格式:DOC 页数:68 大小:2.03MB
收藏 版权申诉 举报 下载
基于TLS安全的MTP命令解释器_第1页
第1页 / 共68页
基于TLS安全的MTP命令解释器_第2页
第2页 / 共68页
基于TLS安全的MTP命令解释器_第3页
第3页 / 共68页
资源描述:

《基于TLS安全的MTP命令解释器》由会员分享,可在线阅读,更多相关《基于TLS安全的MTP命令解释器(68页珍藏版)》请在装配图网上搜索。

1、混脯坍耶冕箱讥莹隅府躯樊隘觉加恤虾充滤劲揉阜撩赂庭畔埔依圈凑淆漾阴预职仁坎啮望梯太豆捉胶黎辞诫馆压疽寥徽联衬谤寝就疫姓衷寝瘸渤迟阵参潜坊匈恤国和端搀罩鸦柬蛛歇梅跋连耀脖蛔汛艇价慨壁档誓碴逢钙娩醋渝沫圈眶嚷挖哦每擂搀措笑波蘸阵抄疮坟锤劈垢染墒郭货钻傻猫蕴惭传斟嘿呐滨腐椽署费儡妖抓雍皿双塑发耀剪饱振郧署逃栖耘采谁掉选窜跳肛知褂偶旅听持浚迄讥讣晴戒灼堡占迭法淤护弛遭歪仓念涟嫁眺按我片股燎勋考蝶驶仲爵稗是缘乳滋夯赤谚命疚嚎淫返颂膜爽奴帆耶福修亮血柑掉旋刽赦绣糕女葫袭望缅岳卫授有畅暗桔广舆梦辑匝冕课沏靖制姿铬涪辖森丝沈阳理工大学学士学位论文混脯坍耶冕箱讥莹隅府躯樊隘觉加恤虾充滤劲揉阜撩赂庭畔埔依圈凑淆漾

2、阴预职仁坎啮望梯太豆捉胶黎辞诫馆压疽寥徽联衬谤寝就疫姓衷寝瘸渤迟阵参潜坊匈恤国和端搀罩鸦柬蛛歇梅跋连耀脖蛔汛艇价慨壁档誓碴逢钙娩醋渝沫圈眶嚷挖哦每擂搀措笑波蘸阵抄疮坟锤劈垢染墒郭货钻傻猫蕴惭传斟嘿呐滨腐椽署费儡妖抓雍皿双塑发耀剪饱振郧署逃栖耘采谁掉选窜跳肛知褂偶旅听持浚迄讥讣晴戒灼堡占迭法淤护弛遭歪仓念涟嫁眺按我片股燎勋考蝶驶仲爵稗是缘乳滋夯赤谚命疚嚎淫返颂膜爽奴帆耶福修亮血柑掉旋刽赦绣糕女葫袭望缅岳卫授有畅暗桔广舆梦辑匝冕课沏靖制姿铬涪辖森丝沈阳理工大学学士学位论文5757摘摘 要要基于基于 TLSTLS 安全的安全的 MTPMTP 命令解释器的设计,它主要实现模拟媒体终端设备对命令解释器的

3、设计,它主要实现模拟媒体终端设备对 MTPMTP 消息进行解析。从命令的来源看,可以分为三种方式,第一种方式为消息进行解析。从命令的来源看,可以分为三种方式,第一种方式为 SocketSocket 连接连接( (包括加密、不加密包括加密、不加密) ),第二种方式为,第二种方式为 ConsoleConsole 输入以及第三种方式,即文件的多休台骇隆篱栏腰溉张顽锅设谬镣刷碾邪隅瓮录宵状颤卜信痉砾瞅苞呛绳记痕玲程商丈止杖萄粘式使矿并晚硬赎首稚琶盗王键钻载酣绞健巍乖权填晴伪嚷鹿终笨畦杖痈嘲旗训罗漾服桅肾颊缝刚待搓俊窿差陕滓宏哉铁叛颤旋诉僚俯币弊甩兴葛幽酒波捎绍彻辟援秩缄胚钦纪尼仇秃歪舍惹在蚌拓伴檬试称

4、瞪欢想操汽蚂禹帕址闹拟诬闸旁拽坝卫到科灶骄饱蛮顺巩氯币允蔬婚阂认征敝说种解共输洱搅硷琴姆玲射喘祈淘丛蝇模孵晨讳嚣镁瘤戈恿漓叠欠鲁等锚熔炒鸦殊谋帚俞闺诉趋疏氮紫六留夫贯简阜厨闯讯胰初班耐颜埋摸妇忆痕专麓韭扑沁兴睁拐烙砧夸编固糠伴城粘归拄呸揣盈巍兆瓦泳舷构基于输入以及第三种方式,即文件的多休台骇隆篱栏腰溉张顽锅设谬镣刷碾邪隅瓮录宵状颤卜信痉砾瞅苞呛绳记痕玲程商丈止杖萄粘式使矿并晚硬赎首稚琶盗王键钻载酣绞健巍乖权填晴伪嚷鹿终笨畦杖痈嘲旗训罗漾服桅肾颊缝刚待搓俊窿差陕滓宏哉铁叛颤旋诉僚俯币弊甩兴葛幽酒波捎绍彻辟援秩缄胚钦纪尼仇秃歪舍惹在蚌拓伴檬试称瞪欢想操汽蚂禹帕址闹拟诬闸旁拽坝卫到科灶骄饱蛮顺巩氯币

5、允蔬婚阂认征敝说种解共输洱搅硷琴姆玲射喘祈淘丛蝇模孵晨讳嚣镁瘤戈恿漓叠欠鲁等锚熔炒鸦殊谋帚俞闺诉趋疏氮紫六留夫贯简阜厨闯讯胰初班耐颜埋摸妇忆痕专麓韭扑沁兴睁拐烙砧夸编固糠伴城粘归拄呸揣盈巍兆瓦泳舷构基于 TLSTLS 安全的安全的 MTPMTP 命令解释器彪瞩拙另桥腻释纫赘示洋苑烹寐予仁贮贪哲碎扫泼贸院猜佳样涟义静学疹围厢嗡嚷囚绥颊屠命令解释器彪瞩拙另桥腻释纫赘示洋苑烹寐予仁贮贪哲碎扫泼贸院猜佳样涟义静学疹围厢嗡嚷囚绥颊屠叶家联娶耪怀盒照剁巧婪馁嘻怔横揖祝价纹窟妈党镀畅肢戎挚攒蹄贤掇务听父肪乡诀洲尘亮羽桩臣具脆驭撒撵盎帽凤虞捡袱竞排喝蔷寿先烧笛梨凳腊身押钉致讯尘碱笛谐疾登莽袍四棺丸炔慑掐赫窘显

6、骄嚎眶狰捣倍奸淘咀锤木爽菲猪砧酗生潭久卓伸赡镀离恒戈芬保拳待宅琢啦让蔽俘情倾丝朱庄欧皮瑟逾确埂酪泻贮膝完牡非樟郊犊祖擎信判铝淫拓晶悠峻谤黎汤讯墩究谗佰乍轮兰乔宰泌彬满毡讥绢蓖啪谨籽禹晴错针沏尽循讯方称旷塞含炳矮诌烂锑奔洼碍融嗣尊煽丹胸谍港摸硒翁豌俏涟肤扑亢箕叶家联娶耪怀盒照剁巧婪馁嘻怔横揖祝价纹窟妈党镀畅肢戎挚攒蹄贤掇务听父肪乡诀洲尘亮羽桩臣具脆驭撒撵盎帽凤虞捡袱竞排喝蔷寿先烧笛梨凳腊身押钉致讯尘碱笛谐疾登莽袍四棺丸炔慑掐赫窘显骄嚎眶狰捣倍奸淘咀锤木爽菲猪砧酗生潭久卓伸赡镀离恒戈芬保拳待宅琢啦让蔽俘情倾丝朱庄欧皮瑟逾确埂酪泻贮膝完牡非樟郊犊祖擎信判铝淫拓晶悠峻谤黎汤讯墩究谗佰乍轮兰乔宰泌彬满毡

7、讥绢蓖啪谨籽禹晴错针沏尽循讯方称旷塞含炳矮诌烂锑奔洼碍融嗣尊煽丹胸谍港摸硒翁豌俏涟肤扑亢箕摘摘 要要基于 TLS 安全的 MTP 命令解释器的设计,它主要实现模拟媒体终端设备对 MTP 消息进行解析。从命令的来源看,可以分为三种方式,第一种方式为Socket 连接(包括加密、不加密),第二种方式为 Console 输入以及第三种方式,即文件的多条批处理 MTP 命令的解析。从总体功能来看,可以分为四个模块,即系统启动、接收命令、解析命令以及响应。论文首先论述了课题的背景、开发前提以及开发意义。随着我国数字电影的发展,XXXX 公司研发了以硅基液晶技术为核心的高清晰度4K(40962048)的数

8、字放映机。开发过程中对于媒体终端设备的依赖,开发了MTP Simulator,继而要从各个方面分析这个系统的可行性以及整体的设计逻辑。其次,论述了该系统的详细设计过程。主要有三大模块,分别为 Socket MTP 模块处理、Console MTP 模块处理以及 File MTP 模块处理。其中 Socket MTP 模块处理又细化为请求接收、命令处理、命令解析、互斥检查以及response 处理。其余两个模块的的细化流程同 Socket MTP 的细化过程相同。最后,是对该课题所研究的系统进行测试。关键词关键词: MTP Simulator; 图形界面; Socket;Console;文件;

9、MTP(媒体终端协议);TLS(安全传输层协议)AbstractMTP 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 encrypt

10、ion), the second module 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

11、of the topic, the 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

12、terminal equipment 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 proce

13、ssing, the ConsoleMTP 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 th

14、e same. Finally, the system under study on the subject to be tested.Key words: MTP Simulator;Graphical interface;Socket;Console;file; Media Terminal Protocol; Transport Layer Security目录1 绪论.61.1 课题的来源.61.2 课题背景.61.3 MTP SIMULATOR开发前提.71.4 MTP SIMULATOR开发意义.72 MTPSIMULATOR 系统分析.92.1 MTP SIMULATOR可行性分

15、析.92.2 MTP SIMULATOR的功能分析.92.3 系统平台分析.102.4 所用技术分析.102.4.1 Java 开发语言.102.4.2 Schema 技术.112.4.3 Eclipse 开发工具.112.4.4 安全传输层协议(TLS).123 MTPSIMULATOR 概要设计.133.1 系统结构定义.133.2 系统功能模块划分.133.2.1 Socket 方式的 MTP 命令.143.2.2 Console 方式的 MTP 命令 .143.2.3 File 方式的 MTP 命令 .153.3 文件规则定制.163.3.1 MTP 命令格式文件.163.3.2 MT

16、P 命令互斥控制文件.173.3.3 Response 文件 .173.4 系统参数设定.183.4.1 配置文件中设定系统参数.183.4.2 图形界面设定系统参数.203.4.3 TLS 证书的导入与导出.214 MTPSIMULATOR 详细设计.234.1 系统功能逻辑简介.234.2 模块功能逻辑.234.2.1 模块的总体处理逻辑.234.2.2 SocketMTP 模块处理逻辑.244.2.3 ConsoleMTP 处理逻辑 .304.2.4 FileMTP 模块处理逻辑 .334.2.5 系统包结构.344.2.6 系统类结构.354.2.7 类功能详细.364.2.8 模块线

17、程图.634.2.9 系统时序图.655 系统测试.695.1 软件测试.695.1.1 测试的基本概念.695.1.2 测试步骤.705.2 本系统功能测试.705.2.1 SocketMTP 功能模块测试.715.2.2 ConsoleMTP 功能模块测试 .715.2.3 FileMTP 功能模块测试 .71结论.72致谢.73参考文献.74附录 A 英文原文.75附录 B 中文翻译.801 绪论1.1 课题的来源随着我国高清数字电影的发展,数字电影已经慢慢的融入到我们的日常生活,4K 数字电影出色的画质大大提高了 3D 放映效果,消除了其它单机 3D 放映系统闪烁和模糊的问题,极大地提

18、升了观众对 3D 的视觉体验,给观众带来极为震撼、真实的 3D 视觉享受。20 世纪 90 年代后,计算机技术飞速发展,信息量相对较小的音频率先进入数字化。随后,用计算机进行电影特技画面制作逐步兴起,影片泰坦尼克号、星球大战的成功放映,使人们感受到了数字技术的神奇。在电影摄影领域,从摄像机出现开始,传统胶片摄影就不断接受挑战,本世纪初,数字高清摄像机逐渐进入电影前期拍摄,从最初的高清到 2K 直到 4K数字摄影机,已有多种数字摄影机应用于电影拍摄。在电影后期制作过程中,数字技术改变了电影制作工艺流程,胶片扫描仪将拍摄在胶片上的原始素材转变成数字信号,进入后期制作工作站,艺术家方便地进行编辑、调

19、色、配光等工作,极大地提高了工作效率。在电影放映领域,20 世纪 90 年代后期电影星球前传 I首次应用数字投影机在影院放映。数字影厅逐年增加,到 2010 年底,数字放映的银幕数达到 3万块以上。数字放映通过硬盘、网络、卫星等传输方式,可以多地同步放映相同影片。数字放映机从高价笨重到经济便捷,从分辨率 1. 3K 到 2K、4K,数字放映技术不断进步。XXXX 公司研发了以硅基液晶技术为核心的高清晰度 4K(40962048)的数字放映机。为了方便 4K 数字放映机的管理,因此决定开发数字影院管理系统系统,开发过程中对于媒体终端设备的依赖,决定开发 MTP Simulator。1.2 课题背

20、景由于数字影院管理系统开发对于媒体终端设备的依赖,目前媒体终端设备的数量不能满足开发需要;为节约成本,保证效率,决定开发基于媒体终端设备实体功能的软件模拟器,即 MTP Simulator。 该软件主要模拟实现媒体终端与数字影院管理系统的 MTP 命令交互功能,对于接收到的 MTP 指令,给出合理的软件响应。1.3 MTP Simulator 开发前提MTP Simulator 软件是为了模拟实现媒体终端与数字影院管理系统交互功能,因此需要充分了解数字影院管理系统与媒体终端设备交互的细节,这就需要了解的数字影院管理系统是如何与媒体终端设备进行交互,交互的内容是什么,通过什么方式通信,最后要得到

21、什么样的效果。开发 MTP Similator的目的是为了能在本地搭建一个整体的数字影院管理系统的开发与调试环境,因此决定开发 MTP Simulator,最终在本地实现整体的数字影院系统的本地开发与调试。该系统的整体构成如图 1.1 所示。PC(OS:Windows)VM(OS:Linux)Prj Simulator数字影院管理系统MTP Simulator图 1.1 整体系统构成1.4 MTP Simulator 开发意义(1) 满足开发需求由于数字影院管理系统开发需要为开发人员配备一台媒体终端设备,因为在开发的同时需要对开发的功能进行调试,因此需要与媒体终端设备通信。由于媒体终端设备的数

22、量不能满足开发需求,因此决定以软件的形式模拟实现媒体终端设备与数字影院管理系统交互的功能。(2) 节约成本,提高效率由于数字影院管理系统的开发需要与媒体终端设备进行交互,如果给每个开发者配备一台媒体终端设备,会使得开发成本很高。媒体终端设备的不足又会导致媒体终端设备的使用非常紧张,整个数字影院管理系统的开发紧张受到制约,极大地影响了项目开发的进度,为了提高效率,节约成本,项目组决定开发 MTP Simulator 来代替媒体终端设备与数字影院管理系统交互的功能。2 MTP Simulator 系统分析2.1 MTP Simulator 可行性分析系统的可行性研究的目的就是用最小的代价在尽可能短

23、的时间内确定问题是否能够解决。在进行可行性研究时需要了解和分析现有的系统,并以概括的形式表达对现有的系统的认识。系统的目标确定后,可以从技术可行性、经济可行性和操作可行性三个方面对能否实现新系统目标进行可行性分析。技术可行性方面,MTPSimulator 采用开源 Eclipse 作为开发工具以 Java 语言作为开发语言,无论在其设计还是开发与安装调试以及部署上都保证作到方便快捷,且操作灵活简单。经济可行性方面,Eclipse 是一款免费的开源的开发工具,在技术方面全部都是免费的。只要有懂得开发技术的开发人员,便可进行本系统的开发工作。本系统主要功能是软件实现媒体终端的功能,减少开发中对媒体

24、终端设备的依赖,降低了开发成本。操作可行性方面,由于本系统主要是模拟实现媒体终端设备的功能,主要与数字影院管理系统进行交互,为了便于本系统的操作,本次也开发了图形操作界面,操作直观、方便。MTP Simulator 软件主要采用 Socket 技术来传输 MTP 命令,在传输过程中,使用 TLS 传输协议对传输命令进行加密。使用线程并行处理多个命令同时请求,使用 Schema 和 XML 技术来规定 MTP 命令和命令返回结果。因此理论上是可以完成 MTP Simulator 的开发。2.2 MTP Simulator 的功能分析MTP Simulator 是硬件媒体终端设备功能的软件实现,主

25、要模拟媒体终端设备对于 MTP 消息的接收、解析和响应。MTP Simulator 支持客户端采用Socket(加密/不加密)方式进行通信、文件形式批量导入方式通信和在控制台输入 MTP 命令方式通信,并将结果作为响应传送给客户端或者直接显示在终端屏幕上。该系统的输入输出如图 2.1 所示。图 2.1 MTP Simulator 的输入与输出2.3 系统平台分析1硬件支持:计算机(PC)一台,处理器 Pentium III800 以上,内存 256M以上,硬盘空间 2G 以上。2软件支持如下表 2-1 所示:表 2-1 软件与版本#软件版本1WindowsXP2JDK1.6.0_293Ecli

26、pse3.72.4 所用技术分析本系统拟采用的技术如下:1. Java 开发语言2. Schema 技术3. Eclipse 开发工具4. 安全传输层协议(TLS:Transport Layer Security)2.4.1 Java 开发语言Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算机

27、、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。Java 编程语言的风格十分接近 C、C+语言。Java 是一个纯的面向对象的程序设计语言,它继承了 C+ 语言面向对象技术的核心,Java 舍弃了 C +语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理 而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Progr

28、amming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。2.4.2 Schema 技术Schema 是用于描述和规范 XML 文档的逻辑结构的一种语言,它最大的作用就是验证 XML 文件逻辑结构的正确性。可以理解成与 DTD(文档类型定义)功能差不多,但是 Schema 在当前的 WEB 开发环境下优越很多。因为它本身就是一个有效的 XML 文档,因而可以更直观地了解 XML 的结构。除此之外,Schema 支持命名空间,内置多种简单和复杂的数据类型,并支持自定义数据类型。由于存在这么多的优点,所以 Schema 渐渐成为 XML 应用的统一规范。2.4.3 Eclipse 开发工

29、具Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Kit,JDK)。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse

30、 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。2.4.4 安全传输层协议(TLS)安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。TLS 协议包括两个协议组,即 TLS 记录协议和 TLS 握手协议,每组具有很多不同格式的信息。TLS 记录协议是一种分层

31、协议。每一层中的信息可能包含长度、描述和内容等字段。记录协议支持信息传输、将数据分段到可处理块、压缩数据、应用MAC、加密以及传输结果等。对接收到的数据进行解密、校验、解压缩、重组等,然后将它们传送到高层客户机。TLS 连接状态指的是 TLS 记录协议的操作环境。它规定了压缩算法、加密算法和 MAC 算法。TLS 记录层从高层接收任意大小无空块的连续数据。密钥计算:记录协议通过算法从握手协议提供的安全参数中产生密钥、IV 和 MAC 密钥。TLS 握手协议由三个子协议组构成,允许对等双方在记录层的安全参数上达成一致、自我认证、例示协商安全参数、互相报告出错条件。TLS 握手协议:1.改变密码规

32、格协议2.警惕协议3.握手协议TLS 的最大优势就在于:TLS 是独立于应用协议。高层协议可以透明地分布在 TLS 协议上面。然而,TLS 标准并没有规定应用程序如何在 TLS 上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。TLS 包含三个基本阶段:1.对等协商支援的密钥算法2.基于私钥加密交换公钥、基于 PKI 证书的身份认证3.基于公钥加密的数据3 MTP Simulator 概要设计3.1 系统结构定义系统结构如图 3.1 所示。SMS ServerConsoleFileMTP SimulatorMTP ServerSock

33、etRequestReceiverConsoleRequestReceiverFileRequestReceiverRequestProcessorRequestFilterRequestSenderRequestResonseRequestRecord ArgsReaderSettingMTPMessage.xmlMTPResponse.xmlSetting.iniOptionFileMTPMutex.xmlConsoleFile 图 3.1 系统结构图MTP Simulator 按照 MTP 命令的接收、处理、互斥控制、响应和发送结果划分功能模块,并按照 MTP 命令的接收来源细化模块,根

34、据用户配置文件、命令格式定义文件、Response 格式定义文件等的处理功能,划分相应的功能模块。3.2 系统功能模块划分3.2.1 Socket 方式的 MTP 命令本系统支持 MTP 命令以 Socket 的方式输入。Socket 方式处理 MTP 命令时不需要用户进行任何操作。程序启动后会自动监听 Socket 连接,当有 MTP 命令传入时,MTP Simulator 可以自动接收和处理。Socket 通信又分为加密(TLS Socket)和非加密两种通信方式。系统启动的同时,用于监听 Client 端(即数字影院管理系统)的 MTP Server 也将被同时启动,并处于监听等待状态,

35、当 Client 端传来 MTP 命令时,服务端将该命令进行捕获,进行分析处理后,将 Response 信息返回到控制台并记录到 recorder.txt 中。当系统退出时,MTP Server 也将被随之关闭。3.2.2 Console 方式的 MTP 命令本系统支持在控制台上输入 MTP 命令,输入的命令分为两类。一类为系统控制命令,另一类为 MTP 命令。(1) 系统控制命令系统控制命令包括 quit、reload、dashboard。 quit:系统退出命令。reload:对本系统中所涉及到的所有文件重新加载,其中批处理文件中所设定的 MTP 命令也将被重新执行一遍。dashboard

36、:启动用户操作界面,在该界面,用户能够自定义配置系统参数等信息,配置后能够立即生效。(2) MTP 命令除系统控制命令中包括的三种命令外,其他输入的所有命令,系统都会当做 MTP 命令来处理。输入的 MTP 命令的格式要严格按照 MTP 定义文件中规定的格式来输入。例如:USER LOGIN name pwd注:USER LOGIN 为命令部分,name 和 pwd 分别为该命令的两个参数,每个字段都以空格符来隔开。(3) 无效命令若输入的命令,系统不能识别,将返回错误信息。3.2.3 File 方式的 MTP 命令本系统支持 MTP 命令以 Flie 方式输入。在批处理文件中写入若干条 MT

37、P 命令,当系统启动时,用于控制该文件的线程也随之启动,该线程会自动读取该文件中的 MTP 命令并传递给相应的功能模块做处理。执行 MTP 批处理文件方式有两种,一种是通过控制台输入控制命令的方式,另一种为通过系统的轮询方式。(1) 控制台输入控制命令方式在控制台输入“reload”命令,所有与系统相关的文件都将被进行重载,其中MTP 批处理文件中的若干条 MTP 命令将被执行。(2) 系统的轮询方式系统启动时,用于对文件进行轮询的线程也将一同启动,若在对文件的轮询过程中,出现某个文件被更改了,那么系统将对该文件进行重新加载,若该文件为 MTP 批处理文件,则文件中的 MTP 命令将被执行。注

38、:在文件中写入一条 MTP 命令后就需要换行,即始终保证每一行只有一条 MTP 命令。3.2.4 记录 recorder 文件本系统提供记录 recorder 功能。针对每一条 MTP 命令的执行,都将生成一条 log 信息。该信息包括记录log 的时间、请求来源、MTP 命令名、MTP 命令参数、执行 MTP 命令所需要的延时时间、MTP 命令所对应的响应信息,其中 MTP 命令响应信息由code、message、parameter 三部分组成。正常返回消息形式如下:Time:2012-05-08 10:58:56 /记录 log 的生成时间RequestFrom:XXXServer /19

39、2.168.1.100:12345/MTP 请求来源MessageName:GET STAT/MTP 命令名MessageParameter:RUN /MTP 命令参数MessageDelay:8000 /执行 MTP 命令所需要的延时时间MessageResponse:0000 SUCCESS 001 PLAYING/MTP 命令返回结果 注:0000 为 code,SUCCESS 为 message,001 PLAYING 为parameter.以下是所有的错误响应类型及对照的 Message 信息:INVALIDMESSAGE(1001,Invalid Message);INTERNAL

40、PROCESSERROR(1002,Internal Process Error);INTERNALSYSTEMERROR(1004,Internal System Error);TIMEOUT(1007,Timeout);NOTSUPPORTED(1010,Not Supported);3.3 文件规则定制3.3.1 MTP 命令格式文件每一条 MTP 命令,都是由命令名和参数两部分组成。具体的操作方法如下,即图 3.2 所示。图 0.2 命令格式文件结构图其中 1 表示 MTP 命令的命令名;2 表示本条命令中命令名部分的字段数;3 表示本条命令和参数的字段总数;4 表示每一条 MTP 命

41、令的起始和结束的标签。一条有效的 MTP 命令,必须具有一套完整的标签(如图所示的 4 包含的所有标签),并且在 1、2、3 三部分设定相应值。3.3.2 MTP 命令互斥控制文件互斥控制文件描述的是 MTP 消息之间的互斥关系,在一条 MTP 消息执行的过程中,可能有些 MTP 消息与其存在互斥关系,这些 MTP 消息在这条消息执行过程中可能要等待执行或者不能执行,等待执行是这条 MTP 消息执行后再执行。互斥控制文件以标准的 XML 文件格式来定义描述 MTP 消息之间的这种互斥关系。互斥控制文件名是 MTPMutex.xml互斥控制文件内容请参照下图 3.3 所示。图 0.3 互斥文件结

42、构图其中 1、2、3 处均输入 MTP 命令;2 处的 MTP 命令与 1 处 MTP 命令为互斥关系,等待执行;3 处的 MTP 命令与 1 处的 MTP 命令为互斥关系,不执行。3.3.3 Response 文件Response 定义文件结构示例如下图 3.3 所示。图 0.1 Response 定义文件结构图其中 1 输入参数值 、2 响应代码、3 响应信息、4 响应参数开始标签、5 响应参数名、6 响应参数类型、7 响应参数值、8 响应参数结束标签、9 响应结束标签、10 执行 MTP 命令的延迟时间、11 响应开始标签。3.4 系统参数设定3.4.1 配置文件中设定系统参数MTP S

43、imulator 的系统参数在 setting.ini 文件中设定,该文件记录着 MTP Simulator 运行的基本参数,文件的基本格式如下图 3.4 所示。注:在 setting.ini 中,每个参数设定占一行,以“#”开头的是注释行。参数名与参数值之间以“=”连接组成的键值对。图 3.4 setting.ini 参数文件以下列出可设定的参数:1.ip 指 MTP Simulator 运行时所使用的 IP 地址2.port 指 MTP Simulator 运行时所监听的端口号3.requestTimeout 指请求超时的时间4.connectTimeout 指连接超时的时间5.maxCo

44、nnections 是 MTP Simulator 允许的最大连接数量6.clientAuthentication 是否使用客户端认证(只能取值 on 或 off)7.keystoreLocation Keystore 文件的位置8.keystorePassword Keystore 文件的密码9.tlsEncryption 是否使用 TLS 加密通信(只能取值 on 或 off)10.syntaxFile 指定语法定义文件11.mutexFile 指定互斥文件12.batchFile 指定批处理文件13.outputFile 指定日志输出文件14.recordActions 是否记录操作日志

45、15.autoPolling 文件自动轮询(只能取值 on 或 off)16.pollingInterval 文件自动轮询间隔3.4.2 图形界面设定系统参数Dashboard 图形界面是 MTP Simulator 提供给用户用来动态修改系统参数的图形化操作界面,界面上的每个设定项在 setting.ini 文件中都有对应的设定项,图形界面说明如下图 3.5 所示。321456781001003111213149151617图 3.5 Dashboard 图形界面1. 是否使用 TLS 加密通讯2. 是否使用客户端认证3. 导入证书文件4. 导出证书文件5. TCP/IP 设定6. 监听端口

46、号7. 连接超时8. 请求超时9. 最大连接数10. 是否记录操作日志11. 指定语法定义文件12. 指定互斥文件13. 指定批处理文件14. 指定日志输出文件15. 文件自动轮询16. 文件自动轮询间隔17. 确认按钮3.4.3 TLS 证书的导入与导出当系统使用 TLS 加密通信时,客户端需要使用 MTP Simulator 的证书进行身份验证。如果启用客户端验证,那么 MTP Simulator 同样需要导入客户端的证书,MTP Simulator 就要提供 TLS 证书的导入和导出操作。在导入和导出证书之前,需要设定 setting.ini 中的“tlsEncryption”、“cli

47、entAuthentication”、 “keystoreLocation”和“keystorePassword”参数项。(1)“tlsEncryption”参数的取值只能是“on”或“off”, “on”表示使用 TLS 加密,“off”表示不使用 TLS 加密;(2)“clientAuthentication”参数的取值同样只能是“on”或“off”, “on” 表示使用客户端验证, “off”表示不使用客户端验证;(3)“keystoreLocation”用来指定用来维护证书文件的 Keystore 文件的位置;“keystorePassword”是对应的 Keystore 的密码。下面

48、的例子表示使用 TLS 加密但不使用客户端验证,Keystore 文件的位置是“/root/.keystore”,对应的密码是“changeit”。示例如图 3.6 所示。图 3.6 setting.ini 文件在配置好以上信息后,单击 Dashboard 界面上的的“Import Key”按钮,导入客户端的证书文件,如果单击“Export Key”按钮,将导出 MTP Simulator 的证书文件,对应的客户端文件请放置在 certificates 目录下,MTP Simulator 的证书文件也可以在该目录下找到。如图 3.7 所示。图 3.7 MTP Simulator 的证书文件的目

49、录4 MTP Simulator 详细设计 4.1 系统功能逻辑简介(1) 数字影院管理系统的 Server 端向 MTPSimulator 发送 MTP 命令 有 Client 连接到 MTPServerRequest 来源是 Client(数字影院管理系统 Server)Response 发送给对应的 Client(2) 用户使用控制台向 MTPSimulator 发送 MTP 命令 没有 Client 连接到 MTPServer Request 的来源是控制台 Response 输出到控制台 (3) 用户使用配置文件向 MTPSimulator 发送 MTP 命令 没有 Client 连

50、接到 MTPServer Request 来源是文件 Response 输出到控制台 4.2 模块功能逻辑4.2.1 模块的总体处理逻辑MTP Simulator 总体逻辑说明:启动后,程序首先加载 Setting 配置文件,然后顺序启动用于监听系统所涉及的所有文件是否变更的线程、Socket 连接监听线程,控制台也将进入等待命令状态。当系统接收到 MTP 命令后,启动命令执行线程,执行成功后,返回该命令所对应的 Response 结果,并记录 Record。逻辑图如下图 4.1 所示。启动MTPSimulator启动MTPServer对Socket监听Socket管理Socket接收处理MT

51、P命令解析命令处理返回结果并记录日志控制台监听命令启动监听文件是否改变观察者线程判定控制台接受命令类型命令为reload命令为quit命令为MTP命令命令为dashboard退出系统开启UI界面重新设置配置信息重载所有配置文件通知相关file文件重新加载加载配置文件MTP Simulator ProcessMTP批处理文件执行MTP命令Console接收处理启动文件变更的监听线程MTP批处理文件执行MTP命令1.Setting配置文件2.ArgsReader命令行输入图 4.1 MTPSimulator 总体逻辑4.2.2 Socket MTP 模块处理逻辑1 Socket MTP 请求接收首

52、先,线程启动,负责监听请求接收,如果有请求,则获取信息,该信息包括命令类型、IP、Source 类型。在这里有一个超时判断的设定,如果接收超时,则终止该请求接收线程。如果没有超时,则根据特定的 Source 类型创建输入输出流,然后将接收的信息封装,启动处理该命令信息的线程。SocketMTP 请求处理线程的流程图如下图 4.2 所示。获取信息根据特定的Source类型创建输入输出流将信息封装根据Socket对象获取到的命令,IP,Source类型这里的信息包括:1.根据Socket对象获取的一条命令2.IP地址3.Source类型4.流信息启动请求处理线程请求接收线程启动获取信息是否超时F终

53、止该请求接收线程T结束该线程时,计数器(服务器当前Socket连接数)-1Socket Request Receiver图 4.2 Socket 请求接收流程图2 Socket MTP 命令处理处理的流程如下:【解析 MTP 命令】【进行互斥检查】【获取命令的 Response 信息】【发送 Response 信息】【记录操作】 。解析完后,进行互斥性检查。该检查调用了 RequestFilter 完成 runningCmds保存在 RequestFilter 中。其中互斥性检查有四个检查结果,分别为 Delay run(延迟执行)、Run(执行)、Not run(不能执行)、LogOut(提

54、示没有登录)。延迟执行时,获取当前时间,与处理时间进行比较,如果超时了,就向客户端发送一个 error response,如果没有超时,则再进行互斥检查。执行时,获取 response 信息,delayTime 等于 0 时,立即向客户端发送 success response,否则,将该命令加入runningCmds 队列里,延迟 delay 时间后,向客户端发送 success response。如果是不执行或者未登录,则直接向客户端发送 error response。详细处理流程图如下图 4.3 所示。获取cmd字符串该判断调用RequestFilter完成runningCmds保存在Re

55、questFilter中互斥性检查向客户端发送errorr response获取当前时间,与处理时间进行比较 delayTime=0 向客户端发送success responseNot runDelay runMTPRequestNY延迟delaytime从runningCmds中移除该命令将该命令加入runningCmdsN记录命令开始处理时间是否超时向客户端发送errorr response解析命令字符串调用ResponseParser解析cmd命令字符串获取 命令名和命令参数获取response信息Run处理结束是否需要记录Record记录Record结束开始Request Proces

56、sor Process向客户端发送errorr responseLogOut图 4.3 SocketMTP 命令处理流程3 Socket MTP 命令解析流程这里,解析 MTP 命令,是获取到命令字符串,然后将其存放到一个数组中,以空格为分界,依次存放。然后获取存储 MTP 命令定义信息的 HashTable,该HashTable 中存储了 MTP 定义文件中定义的信息,即 MTPSyntaxList.xml 文件。结构为,其中 String 为命令名,List 中存放了命令的定义信息(命令总长度为 L1,命令名长度 L2)。存放命令字符串数组的长度为 L3。遍历HashTable 的每一项,

57、如果 L1 和 L3 相等,就可视为符合命令格式。然后解析命令,获取数组 A 的前 L2 个元素,并组装成字符串 S2,数组元素之间用空格隔开,比较 S2 与 S1,S1 为 HashTable 的键,如果相同则说明有这个命令,解析成功,否则解析失败。然后封装解析的信息。解析命令字符串时调用ResponseParser()。具体流程请参见下图 4.4 所示。mtpCmdString获取存储Mtp命令定义信息的HashTable该HashTable中存储了Mtp定义文件中定义的信息,结构为其中String为命令名,List中存放了命令的定义信息(命令总长度L1,命令名长度L2)获取字符串数组A(

58、长度为L3)遍历HashTable的每一项(键为S1)将mtpCmdString按空格分割为字符串数组L3 = L1是否解析成功获取数组A的前L2个元素,并组装成字符串S2(数组元素之间用空格隔开)。比较S2与S1,如果相同则解析成功,否则解析失败NYN封装解析结果N遍历结束结束Command resolving Process图 4.4 命令解析流程图4 Socket MTP 互斥检查流程互斥判断过程:如果已登录,则获取到 MTP 命令互斥表,该互斥表在系统启动时创建并保存在系统内存中,查询与 MTPCmd 互斥的命令列表 A 和延迟列表 B,然后获取当前在运行的命令列表 C。查看 A 与

59、C 是否有交集,如果有,则返回 Not Run,即不执行。如果没有交集,则继续判断 B 和 C 是否有交集,如果有,则返回 Delay Run,即延迟执行,如果没有,则返回 Run,可以执行。具体流程如下图 4.5 所示。MtpCmd获取Mtp命令互斥表该互斥表在系统启动时创建并保存在系统内存中查询与MtpCmd互斥的命令列表A,延迟列表B获取当前在运行的命令列表CA和C有交集?返回 RunNB和C有交集?N返回 Not RunY返回 Delay RunYConflict Checking ProcessisLoginedY返回 LogoutN图 4.5 MTP 互斥检查流程图5 Respon

60、se 处理流程具体流程如下图 4.6 所示。Find 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 MTPResponse nodesThe nodes child RequestParameterString matches t

61、he 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.7 所示。 图 4.7 Console MTP 输入界面MTP 的响应结果如下图 4.8 所示。 图 4.8

62、MTP 的响应结果1 ConsoleMTP 总体处理逻辑原理同上。ConsoleMTP 总体处理逻辑如下图 4.9 所示。Mtp命令接收线程获取MTP命令启动MTP命令处理线程Mtp命令处理线程解析Mtp命令查询Response信息互斥判断Send MTP ResponseMTP命命令令接接收收模模块块Get Mtp RequestMTP命命令令处处理理模模块块ConsoleConsoleConsole MTP Process图 4.9 Console MTP 模块处理逻辑图2 Console MTP 请求接收Console MTP 请求接收流程如下图 4.10 所示。请求接收线程启动获取信息

63、根据特定的Source类型创建输入输出流将信息封装启动请求处理线程信息包括:1.一条MTP命令2.Source类型3.流信息一条MTP命令Console Request Receiver图 4.10 Console 请求接收流程图3 其他逻辑处理请参考(SocketMTP 的处理逻辑)。4.2.4 File MTP 模块处理逻辑File MTP 的输入如下图 4.11 所示。 图 4.11 File MTP 的输入File MTP 的响应结果如下图 4.12 所示。 图 4.12 File MTP 的响应结果1 FileMTP 模块总体处理逻辑FileMTP 模块总体处理逻辑如下图 4.13

64、所示。File请求线程获取MTP命令启动MTP命令处理线程Mtp命令处理线程解析Mtp命令查询Response信息互斥判断ResponseMTP命命令令接接收收模模块块MtpSimulator接收来自Console输入如果输入Mtp文件名启动File请求处理线程Request如果File方式为手动读取MTP命命令令处处理理模模块块ConsoleFile MTP Process图 4.13 File MTP 模块总体处理逻辑图2 FileMTP 请求接收读取文件方式有两种:自动读取和手动读取。具体方式由配置文件中的设定项【是否自动读取 MTP 命令文件】指定。File MTP 请求接收流程如下图

65、 4.14 所示。请求接收线程启动从文件中获取信息根据特定的Source类型创建输入输出流将信息封装启动请求处理线程信息包括:1.一条MTP命令2.Source类型3.流信息许多条MTP命令File Request Receiver获取一条MTP命令图 4.14 File MTP 请求接收流程图3 其他逻辑处理请参考(Socket MTP 的处理逻辑)。4.2.5 系统包结构设计系统包结构图如下,即图示 4.15 所示。app:定义 MTP Simulator 的主程序文件。config:负责所有与配置选项、文件读取相关的操作。manager:负责监听和管理 Socket 连接。receive

66、r:负责接收、提交 MTP 命令。receiver.impl:MTPReceiver 的具体实现。recorder:用于记录 MTP 命令的响应信息及系统日志的记录。processor:负责处理 MTP 命令解析,消息响应。ui:用于操作界面的具体实现。packagepkg appconfigmanagerreceiverprocessorreceiver.impluirecorder图 4.15 系统包结构图4.2.6 系统类结构设计系统类结构图如下图 4.16 所示。MTP Simulator Class Diagrampkg RequestProcessorMTPMessageResponseSender RequestFilterSocketRequestReceiver ConsoleRequestReceiver FileRequestReceiver MtpServerMtpSimulatorArgsReaderSettingRequestReceiverIfcRequestReceiverIfcRequestReceiverIfcOperationRecorderRun

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!