




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学校代号10536 学号0810803550 分类号TP391 密级公开 硕士学位论文AFC系统通信中间件的研究与设计学位申请人姓名张良春培养单位长沙理工大学导师姓名及职称龙鹏飞教授学科专业计算机应用技术研究方向人工智能及应用论文提交日期2011年3月学校代号:10536学号:0810803550密级:公开长沙理工大学硕士学位论文AFC系统通信中间件的研究与设计学位申请人姓名张良春导师姓名及职称龙鹏飞教授培养单位长沙理工大学专业名称计算机应用技术论文提交日期2011年3月论文答辩日期2011年5月答辩委员会主席车生兵教授Research and Design of Communication
2、Middlewareon AFC SystembyZhang LiangchunB.E.( Hunan City University 2008A thesis submitted in partial satisfaction of theRequirements for the degree ofMaster of EngineeringinComputer Application TechnologyinChangsha University of Science & TechnologySupervisorProfessor Long PengfeiMarch, 2011长沙理
3、工大学学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权长沙理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本
4、学位论文。本学位论文属于1、保密,在_年解密后适用本授权书。2 (请在以上相应方框内打“”作者签名:日期:年月日导师签名:日期:年月日摘要随着城市化进程的加速,城市人口暴增,城市交通压力越来越严重。中国各大城市都在想方设法解决这方面的问题,其中就投入了大量人力物力财力进行城市轨道交通的建设,因此城市轨道交通智能化和信息化的发展空间巨大。自动售检票(Automatic Fare Collection, AFC系统作为轨道交通智能化设备的重要组成部分,其信息化建设一直备受重视。中间件技术作为一种前沿的软件应用技术,在各种软件系统中发挥着集成度高、可复用性强和提高应用开发效率的优势。本文通过对中间件
5、,特别是通信中间件的研究,阐述了一种通过通信中间件来提高AFC系统软件可靠性、降低开发成本、缩短开发周期的开发体制。本文根据通用性和易维护性原则设计了一种基于消息的通信中间件,同时利用具备兼容性的C+和socket开发技术,封装了一套为各种系统应用软件提供统一接口的通信模式。该通信中间件屏蔽网络连接,不再考虑通信方面的细节问题。在具体实现过程中,运用了以下几点技术来优化通信中间件的性能:采用多线程技术并发通信,提高了数据传输效率,降低了CPU的占用率;对紧急信息开辟实时的通道,对其做专门的处理,尽可能减少这类消息的延时;对所有消息实行优先级控制,建立数据缓冲机制,应用程序在轮询消息队列时,优先
6、检测级别高的消息队列;提供了加密过程,确保数据传输过程中的安全。根据实际应用情况,使用通信中间件后,简化了AFC系统的开发,提高了应用软件的开发效率,使开发人员更加专注于对具体业务的研究。关键词:中间件;消息队列;并发处理;SocketIABSTRACTWith the acceleration of urbanization process and the explosion of urban population, pressure on urban transport becomes more and more intense. Many big cities in China are
7、trying to solve this problem through investments of a great deal of human, material and financial resources in the construction of urban rail transit system, so the intelligence and information technology development of urban rail transit has a great potential; AFC (Automatic Fare Collection system
8、acting as an important part of intelligent rail transportation equipment and its information construction has always been given priority. Middleware, as a cutting-edge software application technology, in a variety of software systems has a lot of advantages such as a high integration, a high reusabi
9、lity, and a better application development efficiency. Through studying the middleware, the communication middleware in particular, this paper describes the development system which can improve AFC systems software reliability, lower development costs and shorten development cycle with its help.Acco
10、rding to the principles of commonality and easy-maintainability, a message based communication middleware is designed, while taking advantages of C+ and Socket technologies, a communication pattern of unified interface for different systems and applications is designed.The communication middleware c
11、an shield the network connection and thus it is needless to consider the communication details. In practical implementation, several techniques are used to improve the performance: the multi-thread technology for simultaneous communication to improve the data transmission efficiency as to reduce the
12、 occupancy rate of CPU; the real-time channel for emergence messages as to reduce the delay; the priority control and data buffer for all messages as to give priority to higher priority message in polling message sequence; encryption procedure of data transmission as to guarantee the security.The re
13、search shows that the application of communication middleware can simplify the development of AFC system, improve the development efficiency of application software and enable the developers to give a higher focus on the specific business.Key words:Middleware ; Message Queue ; Concurrent Process ; S
14、ocket目录摘要. I ABSTRACT . II 第一章绪论1.1 研究背景及意义 (11.2 国内外研究现状 (21.3 本文所做的工作 (31.4 本文的内容组织 (3第二章中间件技术分析2.1中间件的概述 (52.2 通信中间件的几种形式 (62.3 面向消息的中间件技术 (72.4 网络通信协议 (15第三章AFC系统通信中间件的分析与设计3.1 AFC系统简介 (183.2 通信中间件总体设计 (213.3 通信管理器设计 (213.4 用户接口设计 (24第四章AFC系统中间件实现4.1 Socket技术 (264.2 自定义通信协议 (294.3 通信中间件的消息处理机制 (
15、314.4 通信中间件的具体实现 (354.5 仿真实验 (40结论与展望 (43参考文献 (44致谢 (47附录(攻读硕士学位期间发表录用论文 (48第一章绪论1.1 研究背景及意义随着城市化进程的加速,城市人口暴增,城市交通压力越来越严重。中国各大城市都在想方设法解决这方面的问题,其中就投入了大量人力物力财力进行城市轨道交通的建设。与公路运输,水运等交通方式相比,轨道交通用地面积省、运输能力大、环境污染小等特点更适宜于经济实力相对雄厚的大中城市交通发展。目前,国内像北京、广州、上海等大城市已经拥有较为完善的轨道交通网络,就广州来看,至2010年底开通运营的地铁线路就达到8条,其他城市已经批
16、准开工建设城市轨道交通项目达到23个,据统计,全国“十一五”期间建设城市轨道交通1500公里左右,总投资额在40005000亿左右1。可以说,中国的城市轨道交通行业随着经济建设的飞速发展和科学技术的不断进步,已经步入一个跨越式发展的新阶段,城市轨道交通智能化和信息化的发展空间也因此巨大。自动售检票AFC(Automatic Fare Collection系统作为轨道交通智能化设备的重要组成部分,其信息化建设当前备受关注。中间件技术3作为一种面向对象的技术是伴随网络的快速发展而起来的。最初的计算机系统没有分布式网络的概念,多是通过联机终端来访问的独立系统。随着网络的普及,服务器端/客户端的网络服
17、务模式被建立起来3,多个客户端可以共同访问打印服务器和数据库服务器等等。随着各种网络的进一步发展,许多软件系统需要在不同厂家的硬件平台、通信协议、通信产品等不同结构环境下运行,从局域网到广域网的应用规模也在不断扩大。在这种情况下,服务器端/客服端模式兼容性不强等局限性也就显现出来了,就此中间件应运而生。中间件是一类连接应用和软件组件的计算机软件,中间件包括一系列的服务,以便于运行在网络中的多个软件进行交互。中间件技术所提供的互操作性,通常支持用于分布式应用程序的分布式体系架构的推进。中间件技术在连接管理、调度和负载平衡方面起了很大的作用,同时满足了关键业务的需求,大幅提升了企业级应用的性能。城
18、市轨道交通自动售检票(AFC系统是一个集信息管理和控制于一体的综合管理系统。在终端设备、车站系统、中央计算机系统和城市轨道交通票务清分系统之间的网络通信,直接影响自动售检票系统数据传输的稳定性和可靠性4。中间件,特别是通信中间件是很多大型软件系统中的重要组成部分,它对简化系统、降低成本、提高软件的鲁棒性和使得系统易于移植都有很大的好处。AFC系统作为一个网络化的系统,在实际应用中,通信中间件能够为自动售检票系统提供提高其系统性能的很多服务,如监控服务、通信服务、并发服务等。1.2 国内外研究现状在国外经济比较发达城市,轨道交通己经发展到比较先进的技术水平,并普遍应用到了AFC系统。我国城市轨道
19、交通发展比较晚,最初车站的自动售检票设备,自己还不能生产,基本上是来自国外,不过近年来我国针对轨道交通信息化已进行了大量的研究开发工作,并实际生产出了多种形式的产品,无论是硬件还是软件技术水平都在不断提高。随着线网的形成和发展和轨道交通资源的大量投入,许多信息化企业和集成公司都开始开发和研制AFC系统,为此必然会需要将不同公司的产品集成进来。国内目前城市轨道交通AFC系统软件开发商已经具有一定的规模,但都不是很成熟,具体原因就在于开发商必须具备一般只是运营商熟悉的丰富的票卡业务管理经验,才能更好的将其理念融入到程序设计中。目前国内这方面的专家还较少,所以国内的专业厂家对国外软件设计的依赖性还很
20、强,用户在自动售检票系统的维护和升级方面,暂时往往也只能从国外厂家得到很有效的帮助。通过分析这种情况,为了弥补AFC系统开发能力不足的缺陷,国内开发相关系统的集成商和设备厂家应主动寻找合作机会,使轨道交通自动售检票系统国产化得以全面实现。国内这些相关的系统集成商和研发厂家通过聘请国际上经验丰富的自动售检票系统设计专家,参与和指导AFC系统软件设计,建立实用、全面、严谨、高效的程序库,逐步实现AFC系统国产软件的标准化。随着轨道交通的不断普及,线网中各种系统将越来越多的与AFC系统进行联系和交互,软硬件的维保工作量加大,技术难度也会提高,因此AFC系统的发展工作重心将逐步转移到获得最高效率和最佳
21、质量的维护方式。AFC系统作为一个分布式系统,将中间件技术应用到其中在当前也有了一定的研究。中间件技术从开始研究到现在的日趋成熟,已经有二十多年。中间件产品多种多样,这是由于需求广泛性及应用复杂性所决定的。中间件的开发针对某一领域逐步细分,既保障了其通用性,有可充分发挥其优势,并可避免软件资源的浪费。当前,集成化中间件产品的企业级应用已经上线,这种中间件通过研究、设计与开发等一系列的过程支持了其他大型应用系统的开发,取得了很好的效果。国际上IBM和微软等公司通过在中间件产品中集成模型驱动架构(Model Driven Architecture,MDA工具为信息系统的网络应用层、业务逻辑层、前台
22、显示层提供全方位的支撑。国内金蝶等公司也已经研究开发出了功能强大的中间件产品,应用在我国大型的信息化建设项目上。目前,中间件也已经成为分布式系统应用全生命周期支撑工具。中间件不是一个完整的系统,它只能作为一个应用系统开发和运行的支撑平台,它和很多软件构件一样,为软件工程的效率优化等带来方便,所以当前软件构件库管理平台随着中间件的发展将更加受到关注。中间件等软件构件等到迅速的发展,进行构件的独立开发商已经出现,基于构件的软件开发成为软件开发的主流。AFC系统作为一个分布式网络系统,它的硬件和操作系统平台具有多样性,如何简化其应用软件的开发也成为当前轨道交通信息化建设研究的热点。1.3 本文所做的
23、工作本文设计和实现了应用于AFC系统的通信中间件,力争做成一种安全性能高与各平台兼容的通信中间件,其中所做主要工作如下:1、通过对中间件,特别对基于消息的通信中间件进行分析,并对通信协议以及各平台下的Socket通信原理的分析,提出了AFC系统的通信中间件的设计方法。2、提出本通信中间件的通信模型,并对该模型下的通信管理器、客户通信接口、通信协议等进行了具体的设计。3、通过C+编程实现中间件,模拟AFC系统环境测试其功能,基本达到应有效果。1.4 本文的内容组织本文通过对AFC系统的通信要求和特点分析,设计和实现了一款基于AFC系统的通信中间件,全文的内容组织结构为:第一章介绍了本论文课题的研
24、究背景及意义,接着叙述了AFC系统和中间件的研究现状,然后描述了本论文所做的主要工作和内容组织。第二章对通信中间件的消息队列、网络协议等关键技术进行了比较和分析。第三章对AFC系统中各级终端的通信特点进行分析,对通信中间件进行总体的设计和模块功能分析。第四章利用Socket技术实现通信中间件的通信功能,并通过实验验证其功能和性能要求。论文最后针对本文所设计的中间件结合AFC系统作了一个总结,提出了几点展望。第二章中间件技术分析2.1中间件的概述二十世纪八十年代初,人们开始研究并开发中间件产品,最初它仅仅用于管理事物以及消息通信。直到九十年代,随着网络技术的飞速发展以及企业中实际应用的需要,人们
25、对于中间件的需求越来越多样化,中间件技术的划分也越来越细,与此同时各企业也开发出了了各种各样的中间件产品。九十年代末期,中间件已经被明确的分成了五大类,即消息、远程调用、数据访问、事务处理以及对象请求代理等中间件7。从此以后,随着电子商务行业的不断发展以及企业信息化建设的要求越来越高,由于各种各样类型的需求影响,中间件产品的类型越来越丰富,中间件的内涵以及外延也得到了更大的扩展。中间件平台的主流技术主要是面向对象的中间件技术,主要代表是Sun公司研发的EJB/J2EE、Microsoft研发的COM+DNA以及OMG研发的CORBA+OMA14。面向对象的中间件技术的研究重点主要是建立规范的对
26、象请求代理,对网络中的计算机,操作系统,编程语言以及网络协议的异构性和复杂性进行屏蔽,促使网络中的各种应用系统可以共同协作,为各种网络应用提供共同服务,如先进网络管理服务、一些应用领域的增值服务等。由于中间件技术的发展速度非常快,产生了一些变化,所以研究者们对中间件技术进行了再次分类,分别是以下几种:通信中间件、直用服务器、数据集成中间件、应用集成中间件、流程集成中间件和B2B应用集成中间件。其中,通信中间件基本包括了传统中间件中的所有分类。通信中间件一般用来解决不同应用或系统间的通信问题,安全可靠的为上层提供来自下层的消息传递服务。用数据表述抽象的表示应用接口,对分布式系统中隐藏的通信传输进
27、行抽象化,为了处理各种集成问题准备了特定的通信模式,保证在一定条件下能够达到事务处理的目的。为了使客户能够隔离底层进行通信,中间件还提供了一个接口,因此不同系统之间的用户可以使用该接口进行通讯,对于编程技术人员也是相当便利的。它既不需要网络平台中的硬件条件一致,也允许操作系统和网络协议存在差异,可以在不同的网络平台之间进行通信,在分布式系统之间实现了跨平台通信的可靠性、高效性以及实时性,使得各种应用程序可以在不同的网络平台上顺利运行,真正达到了互相通信的目的。通信中间件的通信模型主要分为以下两种:请求/响应、消息传送。前者对通信模式的主体进行了限制,即限于请求或者是响应的双方。由于请求通信的一
28、方差不多都会被阻塞,直到接收到另一方的响应,因此以请求/响应模式为基础的应用更接近单一进程的应用。但是以消息传递为基础的应用则对自身与外界进程之间的通信很清楚,因此它们许可希望通信的进程无论何时都可以发送请求,并且设计的风格非常明显。2.2 通信中间件的几种形式通信中间件的形式一般分为以下三种:远程过程调用、会话编程以及消息队列中间件。下面分别对这三种形式的基本思想以及特点进行讨论。远程过程调用作为同步的对话方式模型,当本地应用程序提出请求时,远程过程调用提供服务是通过远程应用程序来实现的。主调者与被调者之间存在一条专用逻辑连接,远程过程调用利用该连接为应用程序提供了一种“调用-返回”的同步通
29、信机制。此时主调程序一直被阻塞,直到被调程序完成且返回一个信号为止。基于远程过程调用通信的应用程序一般分为两种,即主调与被调程序,双方之间基于“客户机/服务器”模型进行通信。远程过程调用的主调程序的结构非常简单,通常是基于连接的且同步的。由于被调者与服务器相当,必须支持大量主调程序,且需要执行很多功能与服务,因此远程过程调用的被调程序虽然也是基于连接的、同步的,结构却非常复杂。远程调用过程与常规的过程调用非常相似,但是其执行过程在远程系统发生而非本地。会话编程的对话通信模式是同步的。应用程序之间提供了以应用程序为基础的一条私有逻辑连接,会话通信方案就是利用该逻辑连接进行通信。在整个通信期间,只
30、有参与通信的应用程序双方能够拥有该逻辑连接。私有对话存在于两两进行通信的应用程序之间,而且其中每个单独的应用程序都同时能够参加多个对话。基于会话编程的应用程序的操作方式往往是同步的,并且结构比较单一。若程序逻辑比较单一,需要专用的逻辑连接,比方说信息交换序列比较长时,通常使用会话编程的方式。会话编程的使用方与提供方在对方的通信系统中具有一个等价的逻辑单元。当两个应用程序在进行对话时,这两个逻辑单元及其之间的逻辑连接将为应用程序准备特定的网络通信。在会话通信方案中,应用程序之间可以互相通信,为了使应用程序之间的相关度进一步提高,需要在系统底层进行通信编程的工作量比较大。消息队列中间件作为一种应用
31、程序之间异步的通信方式,它是利用消息队列为程序提供接口。在消息队列中间件中,应用程序与网络、远程应用程序之间的相关度不必很高,通信的应用程序双方也不必同时运行。消息队列管理器作为消息队列的容器及处理单元,是在消息中间件中处于核心地位的。消息队列中间件支持应用程序向消息队列传入或者获取消息,应用程序之间传递消息能够利用共享队列来进行。基于消息队列中间件的应用程序逻辑上是没有联系的,应用程序仅仅使用队列组成多种方法互相联系。目前一种比较流行的通信模型是队列化消息传递,它的简要特点就是不需要接口用户之间具备逻辑上的连接。消息队列中间件的使用者与提供者的联系简要描述为:消息的发送者或者接收者与消息传递
32、者、消息排队的关系。客户机/服务器模式下的分布式系统适用于队列化消息传递,其基本思想是通过消息队列对通信双方的请求及相应进行统一处理,把客户端与服务器隔离开来。消息队列中间件使用的编程接口比较简单,基于消息队列中间件的应用程序也并不复杂,并且应用程序的完整性、可移植性、一致性易于实现。2.3 面向消息的中间件技术面向消息的中间件是一种把不同系统或应用的软件相互联系起来的支撑平台,这种平台是通过消息的发送和接收并处理,使用程序接口或者比较灵活的方式来集成应用程序。面向消息的中间件在进行消息缓存和转发的基础上还能解决应用程序间信息的非同步传送和在异构平台之间的通信,从而支持分布式系统中稳定的、效率
33、高的数据交互。在分布式应用中,不同的应用进程之间传递的信息统称为消息。消息一般包含两个部分:数据和描述。数据库查询或应用程序数据等组成了消息的数据部分;消息格式和数据长度等的定义等组成了消息的描述部分。消息的接收者和提供者在进行消息定义的时候需要相互讨论,得出消息的内容和具体格式,这样才能有效的按照规则进行消息传递解析,最终得到需要的数据。消息的形式不一定,既可以是一个简单的数据包,也可以是一个大的文件。消息的收发和传递方式以及消息在中间件与应用程序之间转发传送都有多种形式。1消息的收发方式(1阻塞方式所谓阻塞方式就是一种同步的消息收发方式,它需要用户进程在进行消息发送或接收过程中等待单个过程
34、的完成,在进程未结束当此发送或接收过程时将会阻塞。如果是比较长的消息,阻塞过程就会相对较长,所以如果是应用场景中长消息较少,需要传送大量的短消息时,可以使用此种方式。(2轮询方式所谓轮询方式就是用户进程设定一个定时器或者死循环方式不断的查询消息的发送和接收情况,等到检测到收发完毕就进行下一次消息的收发。在此之前,用户进程在调用发送或接收过程后,立即返回。这种消息收发方式不会使某一段程序过程的阻塞,但是实现的时候需要增加轮询的代码,消息的收发和处理函数也将结合起来,增加了这方面的难度。(3回调方式所谓回调方式就是用户进程在进行消息的收发和处理过程中结合多线程技术分别处理消息收发和处理的各个过程。
35、作为具有收发功能的主线程在调用消息收发过程后,立刻返回,主线程可以继续执行下面的其他程序,把消息的处理转交给事先编写好的消息处理线程,同时利用回调函数获取相应的收发处理情况,这种收发方式适合于比较大的消息传递。这种方式保障了主程序的效率,但开发难度比较高。2消息的传递方式(1同步方式所谓同步方式就是消息交互时,消息的接收者和发送者双方必须同时在线,把接收和收发过程统一为一个整体,一个接收需要与一个发送匹配,不然会发生消息传递错乱。(2异步方式所谓异步方式就是消息交互时,消息的收发双方不必同时在线,当发送方发送完数据后,数据进入到一个数据缓冲区,发送方可以继续自己的过程,而不必关心发送后具体的处
36、理过程。消息中间件通过将消息的发送和接收分离开来,并建立内部的消息缓冲区,使消息的发送和接收成为相对独立的过程。具体在发送方,只需将消息传入缓冲队列就可以,接收方设定一个定时器对消息队列进行轮询,如果队列中有消息,即做出相应的处理。3消息的转发传送消息在传输过程中可能需要经过多次转发,在使用消息中间件时,消息中间件与底层系统隔离了应用程序,因此对于应用程序来说消息的传递是透明的。消息在进行多次转发的过程中形成了一个消息路由,这种路由就像一个消息链。消息的开始发送端应用程序被称为消息源,消息链的每个结点被称为消息转发站,最后接收消息的应用程序被称为消息接收终端。但是消息在传送过程中出现了一个问题
37、,那就是消息在何时销毁,是在每个消息转发站传完消息后即消除还是等整个传递过程完成再消除,因此转发传送可分为两种:接力应答转发传送和循环应答转发传送。(1接力应答转发传送接力应答转发传送是指消息传送过程中每个参与消息传递的结点在收到消息时,主动向紧邻的发送方返回确认消息。当紧邻的发送方在收到确认消息后,就可以认为消息已经到达接收方,因而发送方可将此消息清除。通过这种方式,消息的传送结点就只需向前一个结点发送确认消息即可,接力应答转发传送其传递方式如图2.1所示。 图2.1 消息的接力应答转发传送消息的接力转发传送这种技术不能有效的保证消息在传递过程中不被篡改,而且要求每一级消息中转者保存消息的副
38、本,因此对中转者的性能要求高。(2循环应答转发传送循环应答转发传送跟接力应答转发传送方式在形式上的区别在于消息在传送过程中,每个消息转发消息结点无需向前一个发送结点返回确认消息。消息接收终端在接收到消息后,生成一个确认消息,经过消息链发送到消息的开始发送端,开始发送端在接收到确认消息后就将此消息进行清除。如果经过一定的时间还没收到确认消息,消息开始发送端将重发消息。其传递方式如图2.2所示。 图 2.2 消息的循环应答转发传送消息循环应答转发传送对消息中转者的要求不高,因为在这种传送过程的消息链中中间节点不需要保存消息的副本。但是,消息链中任意中转者一旦消息丢失,都将导致在一定时间内消息的重发
39、,在特殊情况下严重影响系统的性能,加大网络的负担。消息接收者在此时将需要处理比较复杂的消息重发程序。1客户服务器结构基于客户/服务器结构的消息中间件是由用户利用客户端进行通信,简单的过程为:客户将消息传送给服务器端,服务器端对消息进行路由和转发。微软的MSMQ(Microsoft Message Queue41即是一种客户服务器结构的消息中间件产品,MSMQ有四种不同的服务器安装:主企业控制器、主站点控制器、备用站点控制器、路由器17。(1主企业控制器主企业控制器是微软消息队列结构的底层,它可以使消息中间件实现基本的功能。对于每个企业内部网络来说,都必须包含一个主企业控制器。这个控制器往往安装
40、在公司的核心部门,这是由于所有其他的服务器都应该可以访问和注册主企业控制器。假设公司的内网只是建立在一个简单的局域网之上,那么需要的服务器仅是主企业控制器,而且它可以与IIS结合在一起使用。在大型企业中,主企业控制器用于其它MSMQ服务器的位置和用户信息的存储,并可以在各个服务器之间路由消息。(2主站点控制器公司城域网的远程分支或站点中往往存在一个主站点控制器。主站点控制器能与远程局域网上的本地客户通信,并将信息反馈给主企业控制器。每个分支或站点都分配一个主站点控制器,提供返回主企业控制器的单点通信。这对远程站点是重要的,在网速较慢的网络中,这种服务器有利于节省系统资源。(3备用站点控制器主站
41、点控制器中的只读信息副本就是使用备用站点控制器来存储的,往往每个分支站点都安装一个备用站点控制器。如果主站点控制器崩溃或者失效,它可以提供相应的支持。(4路由器路由器为消息的传递提供有效途径,服务器利用路由器可以使用不同的网络协议进行相互通信。MSMQ路由服务器并不会存储通信消息,它只能确定所需传送消息的最佳路径。这种路由服务器在网络断开时能够发挥很好的作用,它会尝试查找到达目的端的其他路径。各个分支站点都要求包含主站点服务器或者主企业站点服务器,所以路由器也就绑定在每个站点。独立客户和从属客户作为MSMQ中的两种客户,分别具有不同属性和用途。A 独立客户独立客户具备给其他消息队列中间件服务器
42、发送消息和从其他消息队列中间件服务器中读取消息的能力。此中间件的独立客户往往安装在应用程序服务器或网络服务器上。独立客户还可以存储本地消息,所以它们不会依赖于目标机器上的中间件服务。对于COM组件或网页脚本来说,中间件服务器不能使用,但需要发送消息的时候,独立客户就能够发挥其有效的作用。此时,独立客户能够在当前本地工作队列中存储消息,直到中间件服务器变为可用,才继续转发消息。独立客户能够利用文件和注册表等存放消息到本地队列。B 从属客户从属客户不能像独立客户那样可以存储本地消息,也不可以在其他服务器上组建队列和从消息队列中异步读取消息。当从属客户访问消息队列中间件服务器时,只能发送和读取消息。
43、终端用户对消息处理的响应处理需求不大,所以从属客户往往安装在终端用户平台中。2多级节点结构节点是指一种应用程序运行环境,由中间件支撑起来的虚拟计算机平台。一个节点能够相当于一个业务处理终端。不同节点也可以同时位于相同的一台计算机上运行。在分布式网络中应用消息中间件,与本地节点直接通信的上一层节点,即接收本地消息的节点叫做中心节点又被称为消息开始发送端的上级节点。当作为客户进程的一端请求消息,服务进程经过相应处理生成回复消息应答客户方。与本地节点直接通信的下一层节点,即发送消息到本地的节点被称作该本地节点的下级节点。对于大部分的实际应用,在处理相关细节和业务问题时,上级节点比下级节点发挥了更大的
44、作用。如图2.3更加明了的描述了多个节点中间的关系,其中设立三个节点,分别为X,Y,Z。在X节点上运行应用程序x,用于向相邻节点传递消息。Y节点上运行应用程序y,它用于从X节点上接收消息,再将消息转发到Z节点上。在Z节点上运行应用程序z用于传递与Y等节点交互的消息。发送消息发送消息 接收消息接收消息图 2.3节点间消息传递图下面设立当前三个节点的相关系数:X节点,上级节点Y;X节点,上级节点Z和下级节点X;Z节点,下级节点Y。TongLINK/Q就是国内东方通科技公司开发的一种多级节点结构的消息中间件产品。计算机在使用TongLINK/Q后能够组成支持的网络结构可以是总线型等。这样一来便简化了
45、实际网络复杂的拓扑结构。的队列。应用程序只管向相应队列中写入或读取消息即可,而不必关注消息发送方的具体位置等。 图2.4 程序间的传统通信 图2.5 使用消息队列通信消息中间件内部可保存有多个各种类型的消息队列,对消息根据其目的地进行路由,在网络中多个节点的队列中存储转发,如果节点之间的链路失败,消息将一直保留到链路恢复,或者等到操作员或程序重定向该消息。IBM MQSeries42是IBM公司的消息中间件产品,它给应用程序提供了一种基于消息队列的通信机制。作为存储消息的数据结构,MQSeries队列利用队列管理器或者是应用程序对队列实现放入或取出消息操作。队列与使用该队列的应用程序之间并不存
46、在联系。队列一般在主存储器、辅助存储器或者磁盘中存在,要么同时在其中两个地方存在。一个队列不能同时存在于两个队列管理器中,队列管理器主要负责所有队列的维护工作,并把新接收的消息置于合适的队列之中。虽然消息队列对应用逻辑进行了简化,带来了很多好处,但是利用消息队列对应用程序进行设计以及实现,中间件还必须考虑其他很多因素。恰如上文中一般应用流程中所述,基于消息队列的应用程序不是直接进行通讯的,并且也不记录任何有关状态信息,双方进行通讯时连接可能随时中断(并且应用程序也许对该情况的发生并不了解。因此设计应用程序时必须对各种可能发生的情况进行充分的考虑。与此同时,设计应用程序时,还要考虑很多其他方面的
47、因素,例如:当消息队列已满、应用程序的请求超时、需要传递的消息在规定期限内不能到达目的地等情况发生时系统怎样操作,到底是大量应用进程对同一消息队列进行访问还是为每一个应用进程指定专属的消息队列。很明显,使用消息队列有很多优点,但是也要付出一定的代价。消息中间件的一个重要功能就是消息路由功能17。当一个消息从开始结点发出后,消息在消息中间件当中按照自己的网络拓扑结构传输。数据包可能要经过许多中间结点才能够到达目标结点,中间结点中也可能有数条路径,因此必须对消息包进行路由,才能保证数据有效到达目标结点。路由是消息发送节点和消息接收节点之间的链接途径,这种途径分为两种方式:一种是只有两个节点的时候,
48、连接相对比较直接和单一,另一种就可以是多个消息发送和接收节点的联结,这些节点分布在比较复杂的网状应用系统中,并且这些节点不需要直接的物理连接,而实现消息的动态传输。在网络结构的环境下,两个节点之间的消息传递路径就会对整个消息系统的传递效率产生影响,所以如何设计合理的路径,使得网络消息的传递对路径的负载均衡,就成为了路由器的主要功能。1缺省路由协议缺省路由协议是消息传送中间件最基本的协议,其思想是当找不到一条明确的消息传送路径时,就将需要传送的消息交给上级节点。此时,如果上下级节点相连通,消息中间件就会认为路由是存在的17。2静态路由协议静态路由协议就是事先把路由信息表保存到文件当中,然后按照此
49、表进行消息的路由处理。静态其实就是一种固定的格式,如果没有网络管理员的重新设置,静态路由就不会改变。静态路由的缺点就是不能对网络的变化做出相应调整,所以一般用于拓扑结构比较固定,网络规模比较小的网络。在这种环境下就能够充分发挥其简单、高效、可靠的优点。3动态树型路由协议顾名思义,动态树型路由协议是应用于树型拓扑网络当中,它规定消息在两个不相邻的节点间传递路径是可以动态调整的。接收消息的上级节点可以通过这个动态协议接收到变化的下级节点路由信息,并维护下级节点传递给其的路由信息。这种情况可能发生在某个节点能够将消息通过多条路径传送给上层的目标节点的时候或者发送信息的节点在自己传送消息的路由发生改变
50、时。4子网路由协议在实际使用过程中,缺省路由协议和静态路由协议等在规模比较小的应用系统中具有不错的效果。但随着应用系统的扩大,业务需求也就随着增多,前面的这些路由协议已经不能满足需要。所以,子网路由协议产生了,所谓子网就是一个消息传输网络中的一部分,它由整个网络中的若干个相邻,而且相互具有某种直接或间接连接关系的节点组成,子网中还可以包含子网。子网的路由协议是通过节点的命名规则来将网络内的若干节点组织成子网络,个子网络内的所有节点使用相同的网关向网外发送消息。如果一个发送消息的节点属于多个层次的子网,在消息发送的时候,必须经过每个层次的子网网关,在一个子网中的节点,其地址(节点名具有某些相同的
51、特征,例如,子网中的某些部分相同,不同的子网这一特征必须不同。2.4 网络通信协议网络上的计算机之间如何交换信息,其实就像我们说话用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信。以下就对常见的通信中间件需要考虑到的协议:TCP协议、UDP协议等进行分析。在TCP/IP网络协议模型中,TCP是一种面向连接的、可靠的、基于字节流的传输层协议。两个使用TCP的应用在彼此交换信息之前必须先建立一个有效连接,这个连接需要使用到三次握手协议。如图2.6表达了三次握手过程。第一次握手,客户端发送SYN包到服务器,并进入同步发送状态,等
52、待服务器确认建立连接。第二次握手,服务器收到SYN包,必须确认客户的SYN(ACK=x+1,同时自己也送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手,客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入连接建立状态,完成三次握手。用这种方式建立连接,能够有效避免出现连接错误。当建立连接完成时,客户端与服务器的状态变换为收发数据,若收发数据完成则关闭该连接,当这种建立连接的方法可以防止产生错误的连接。在建立连接后,服务器和客户端进入收发数据状态,然后在收发完后该连接被关闭,若需要发送或接收数据,再次建立三次握手连接。分
53、析该连接发现,TCP提供的服务具有以下特点: 图 2.6 TCP的三次握手1、在发送数据之间,通信双方共经历三次握手,因此传输是面向连接的。2、非常严格的客户端服务器通信模型,通信方式是端到端的。3、具有较高的可靠性,可以保证数据传送时不发生丢失或乱序等现象。4、数据传输的方式为全双工方式,通信双方能够同时进行收发数据。5、数据传输方式为字节流,当字节流过长时,能够对其进行分段。与TCP相同,UDP网络协议模型中也使用了一种传输层协议。经过研究,UDP具有以下特点:1、UDP协议是无连接的,即源端与终端在数据传送前并不需要建立连接。当发送端需要传送数据时,不需要请求接收端建立连接,直接把应用程
54、序中的数据发送到网络中。因此只有传输带宽、应用程序中数据生成的速度以及计算机的性能对UDP发送端发送数据的速度造成影响,而UDP在队列中存放了各消息段,接收端的应用程序直接读取一个队列中的消息段。2、因为传输数据是面向无连接的,所以对连接状态(收发状态等不必进行维护,每台服务器能够将同一个消息同时传送给若干个客户端。3、与TCP信息包的标题包含20个字节不同,UDP的标题只有8字节,因此其额外开销比较小。4、拥挤控制算法不对吞吐量造成影响,后者仅受到下面几个因素的影响:传输带宽、应用程序中数据生成的速度、两端主机的性能。5、UDP采用尽最大努力而不保证完全可靠的方式进行交付,所以主机不必花费更
55、多的资源对链接状态表进行维护。6、UDP传输过程中是面向报文的,即发送端在接收到上层传下来的报文时,不必将报文进行任何处理只需将首部增加到报文中,然后直接交给下层。由于UDP 不对报文进行拆分或合并,所以应用程序事先选择报文大小必须适合UDP传输。第三章AFC系统通信中间件的分析与设计3.1 AFC系统简介AFC系统是一种基于计算机、网络、通信、自动控制等的技术,实现轨道交通的售票、检票、统计、计费、收费、清分、管理等一系列全过程的自动化系统46。对城市轨道交通的自动售检票系统(Automatic Fare Collection, 简称AFC结构进行层次划分,分为车站终端设备、车票、车站计算机
56、系统、线路中央计算机系统及清分系统这五个层次。层次结构的运行方式是全封闭,采用计程收费模式为基础,通过非接触式的IC卡为车票介质的组成原则,以各层次设备与子系统的各自的功能、管理职能以及所处的位置进行划分的。根据我国的基本国情与我国城市发展现状所采取的五层结构型式,是综合考虑到轨道交通建设的特点(如建设周期较长、线路多且复杂、多个业主与施工单位等而设置的,其结构具有较好的可伸缩性与稳定性。其系统结构如图3.1所示。AFC系统中的计算机和使用到的操作系统根据终端设备和需要的功能各有不同,有各式不同配置的工控机,操作系统有Windows XP、Window XP Enbeded和Linux等。 A
57、FC系统是一个具有分布式特性系统,主要由各层分工负责各自的业务、系统相互协作。其主要功能包括通信功能与业务管理功能。1业务管理功能各层次需要实现的功能和要求有如下规定:第一层:车票是乘客所持的一种乘车费用的支付媒介,其规定了单程票与储值卡二种类型的电气特性、物理特性、安全机制以及应用文件组织等技术支持第二层:在各车站的站厅中安装的车站终端设备,直接为乘客提供便捷的售检票服务设施,并规定了车站的终端设备与其运营管理等技术支持;第三层:车站计算机系统,其主要功能是对第二层车站终端设备进行状态监控、以及收集本站产生的交易和审计数据,规定了系统的数据管理、运营管理及系统维护管理的技术支持;第四层:线路中央计算机系统,主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 破产管理人如何应对复杂案件的工作计划
- 某年度电子金融相关设备产业分析报告
- 某年度水分保持剂竞争策略分析报告
- 中小学体育活动推广计划
- 2025-2030中国抗酸剂行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国成年猫粮行业市场现状供需分析及投资评估规划分析研究报告
- 房地产项目宣传片设计方案
- 基于模式分析的介质谐振器的逆设计研究
- 洗碗作文200字11篇范文
- 2025-2030中国干果行业市场现状供需分析及投资评估规划分析研究报告
- 精神科出院康复指导与随访
- 济南传统民居课件
- 医院感染预防与控制的基本概念和原则
- 2024年数字广西集团有限公司招聘笔试参考题库含答案解析
- 食堂钢丝球管理制度
- 住宅室内装饰装修工程施工合同
- 岩土工程中英文对照外文翻译文献
- 河南省职业技能等级认定试卷-证书-网络与信息安全管理员三级实操样卷评分记录表
- 2023年1月浙江省高考英语真题听力试题(附听力音频+答案+文本)
- ansys课程设计论文2
- 2022年学前教育生均公用经费项目绩效评价报告
评论
0/150
提交评论