军事仿真训练系统中服务器端程序的研究与分析
2024-02-14
来源:步旅网
军事仿真训练系统中服务器端程序的研究与分析 郭华王群辉 闫炜王志成赵兴锋(66440部队) 摘要:本文简要介绍作战模拟、仿真训练的概念;对仿真训练系 端应用程序应具有如下功能:监听客户端的连接请求、为 统中服务器端程序各模块设计与分析进行了说明。 客户端连接请求建立SOCHET队列、处理各客户端发送 来的数据并发送应答消息。所用到得模块包括:通讯联络、 1概述 线程管理、消息传递、场景分配、训练规则等。 信息化跨越式发展,推动了军事战略、战术和指挥控 3.1通讯模块通讯模块主要实现与客户端的通讯功 制手段的变革,作战模拟、仿真训练在军事发展中成了不 能,是对套结字Socket的封装。Socket是UNIX下的网络 可或缺得地步。采用计算机进行作战仿真模拟训练,简便 通讯基础,对于一个Socket我们可以对其进行读写操作, 易行,可有效减少装备损伤,有非常高的实用价值和军事 读入的数据来自客户端,写入的数据可供客户端读取。 效益。 Socket主要有阻塞套接字和无阻塞套接字两种,系统开 关键词:仿真训练系统服务器端程序设计 发上大多采用阻塞模式,因无阻塞套结字,在网络环境不 军事仿真训练系统开发技术含量相当的高,如不能构 好时很难控制传输,容易使网络传输变得很不稳定。 思出一个贴切实际得训练环境,必将导致开发失败。它对 但此模式,在不合适的时候从阻塞套接字读入数据, 设计人员策划能力要求也颇高,在编程知识中涉及网络编 线程很可能将被阻塞,所以采用了select——多路复用技 程、操作系统进程、线程编程、图形图像编程、WlN32 API 术,对socket进行监视,如果socket上有读事件发生,将 编程及各种算法和数据结构等内容。 调用消息模块发送消息给socket的携带对象,对其进行 要使在仿真训练系统中控制行为更加精确,就需要高 读写。通过对socket的封装,可完成通讯模块的基本任 效的服务器系统,服务器端得程序设计就显得至关重要。 务。要做到传输网络上的消息,需要对Socket继续封装, 3仿真训练系统中服务器端程序设计 应先定义一个消息结构体,再读写消息,消息结构可根据 服务端程序是就是为客户端提供服务的程序,服务器 仿真训练系统具体设定。 (上接第274页) 2军事仿真训练系统 际电信联盟(1TU)在1985年提出的工作在2000MHz频 立集中的业务控制点和数据库,进而进~步建立集中的业 段的系统。与第一代模拟移动通信和第二代数字移动通信 务管理系统和业务生成环境来达到上述目标。通过智能 系统相比,第三代的最主要特征是可提供移动多媒体业 网,运营公司可以最优地利用其网络,加快新业务的生成; 可以根据客户的需要来设计业务,向其他业务提供者开放 务。 2009年1月,中国的3G牌照正式发放,中国移动获 网络,增加收益。 4结束语 得TD—SCDMA牌照,中国电信获得CDMA2000牌照,中 综上所述,移动通信的发展前景非常诱人。随着新问 国联通获得W—CDMA牌照。在这之前,2008年4月1日 中国移动通信集团公司在北京、上海、天津、沈阳、广州、深 题、新要求的不断出现,第四代移动通信技术将会相应地 圳、厦门和秦皇岛8个城市,启动第三代移动通信(3G) 调整、完善和进一步发展。纵观移动通信技术的发展规律 “中国标准”TD—SCDMA社会化业务测试和试商用,其号 和第四代通信技术的优点,我们相信,不远的将来,人们将 段为157。标志着我国第三代移动通信(3G)标准TD的商 不受时间、地点限制,可以自由自在地利用移动网络获取 业化应用正式起航。首批社会化业务测试邀请2万名不同 和传递信息。从而人们的学习、工作、生活将会发生更深刻 行业和部门的用户,免费提供2000元至4000元的手机 的变化。和数据卡终端,并给予测试用户每月800元的话费补贴。 从中移动公开的资费标准看,普通通话费用TD比2G还 要便宜。 参考文献: [1】裘晓峰.等译《移动IP)机械工业出版社. 【2】李承恕.第3代移动通信中的卫星移动通信 .中兴新通讯, 1998,(06). 3移动通信的发展趋势 【3】鲁春丛,郭良,闰丽,白春霞冲国卫星通信发展战略若干问题 移动通信需求的不断增长以及新技术在移动通信中 研究【J】l电信科学,2004,(12). 的广泛应用,促使移动网络得到了迅速发展。移动网络由 【4】刘林森.卫星通信将风靡全球【J]启动化博览,1999,{02) .单纯地传递和交换信息,逐步向存储和处理信息的智能化 【5】《信号与系统(第二版)》A.V.Oppenheim西安交通大学出版社 【6】《数字与模拟通信系统}Leon W.Couch,ll电子工业出版社. 发展,移动智能网由此而生。移动智能网是在移动网络中 2000年.引人智能网功能实体,以完成对移动呼叫的智能控制的一 【7】《现代通信原理》曹志刚清华大学出版社 种网络,是一种开放性的智能平台,它使电信业务经营者 【8】《无线局域网的安全性及其攻击方法研究》李雄伟,赵彦然: 能够方便、快速、经济、有效地提供客户所需的各类电信新 2005年. 业务,使客户对网络有更强的控制功能,能够方便灵活地 【9 先涛,张俊峰,莫易敏.嵌入式TCP/IP协议在网络通信中的 获取所需的信息。移动智能网通过把交换与业务分离,建 应用【J】l武汉理工大学学报,信息与管理工程版,2004,26(3):18—20 275 3.2线程管理模块采用阻塞模式,就必须为各个 socket创建单独的线程,否则可能会引起服务器端停工。 封装线程内容包括:线程函数地址、线程开始时间、线程上 次阻塞时间、线程最大阻塞时间、线程start方法、线程 stop方法。线程stop方法可以通过发送信号给线程来杀 死线程。线程类封装完成后,就可以编写管理模块代码了。 管理模块是一个线程,其第一功能就是监视各个线程是否 阻塞超时,通过察看线程上次阻塞时间和最大阻塞时间来 完成。一旦发现当前时间超过线程最大阻塞时间加上线程 上次阻塞时间,既可断定线程阻塞超时,此时就需要k…该 线程。另外,其他一些根线程有关的管理方法都有此模块 负责。 图1仿真训练世界模块 在仿真训练系统中,以上两个模块是合在一起的,统 3.3消息传递模块对象、模块之间如何传递消息,也 称为仿真训练世界模块,如图1。从图上可以看出,两个模 是服务器端设计的重点。封装消息模块,第一步就是做~ 块之间不需要消息传递,游戏规则模块和游戏管理模块被 个MessageBox类,它是一个堆栈,用来装消息,由pop 合并在一起了,他们是函数调用关系。 和push方法,应先实现一个存储消息数据结构。第二步封 4架构局限 装就是HandleMessage类,这就是消息模块的主要实现。 仿真训练系统中的网络端有其固有局限,系统设计中 服务器端是一个被动驱动的模型,应有一个WaitMes— 存在矛盾和不足。首先,是服务器的管理,应分析它的设计 sage方法(如没有消息来驱动,服务器端就不会运行下 目标是应对很多的连接还是很大的数据传送量;其次,就 去),调用此方法,线程将被阻塞,直到有消息到达。在此可 是对客户端情况的检测,但如不注意,就可能造成服务器 通过无名信号量来实现(也就是UNIX下的sem),它可以 资源持续消耗而最终崩溃,使得服务器重启;再次,这样的 增加或减少信号量来实现互斥。 系统架构,如不在小型机上运行,在多对象要处理对保持 实现以上封装,在两个对象之间发消息用SendMes— 高速得响应有影响。 sage方法就可以,SendMessage的实现,是调用Mes— 这种架构得系统,对硬件环境和软件配置有一定得要 sageBox里Push方法向里边放消息,之后把sem加一, 求:( 采用unix开发,需要训练系统在小型机之类的服务 这样接受这就可以收到消息了。 器上运行。( 没有封装TCP确认机制,采用默认TCP进行 3.4训练场景管理模块本模块专门管理训练场景里 网络传输,不具有UDP高传输性能。⑧客户端有什么发什 的数据模型,仿真训练系统里的对象基本上都由他来管理。 么,控制发送的间隔时间,对客户端得电脑得性能统一性 此模块极为复杂,在大型系统里,可以把它再划分成很多子 有要求,可能会因同步问题出象卡屏。④为每个连接分配 模块来协同工作。此模块封装:首先,需要一个消息处理类, 一个线程,有可能有浪费,为节约系统资源,可以采用连接 因为训练场景分配管理模块同样是需要消息驱动的,每收 池技术,虽然它会使通讯模块复杂化,但可以在配置时根 到一个消息后,就察看消息类型。是转发类型,就将消息转 据不同的系统,采用不同的配置方案,选择是否使用连接 发给消息目的地模块:是管理类型,就察看管理的目标及管 池技术。 理方法,然后执行管理方法。因此,此处需要的就是一个辨 5结论 别消息的方法,以及一些数据及操作数据的方法。 在本文中给出了一种仿真训练系统的服务端的设计 3.5训练规则模块本模块按照具体得装备训练细则 方法,在这里我们要的是真正能实现的方法。网络编程最 制定的规则来进行业务逻辑处理。同样,首先需要封装消 困难和有成就的地方,并不是服务器用了什么模式,而是 息处理类,然后就是辨别消息。按照消息提示进行规则处 真正深入设计的时候碰到的众多问题。正是那些没有标准 理,随后将处理结果封装成消息,发给管理模块,基本上与 答案的问题,值得我们去研究和解决。 训练场景管理模块模式相同。 参考文献: 训练场景管理模块和训练规则模块不是分开运用的, [1]Dawson Bruce.Micr0一Threads for Game Object AI. 都是与训练息息相关得,他们是两个更为复杂的模块,根 Game PrOgramming Gems 2.Charles River Media,2001. 据要编写的仿真系统的不同,这两个模块实现也不同。规 [2]Rabin Steve.Strategies for Optimizing AI.Game Pro— 则模块实际上是专门处理训练业务逻辑的,主要工作就是 gramming Gems 2.Charles River Media,2001. 辨别消息,把我们的消息翻译成对对象的处理方式;场景 [3]Tozour Pau1.Building an AI Diagnostic Toolset.AI Game PrOgramming Wisdom.Charles River Media,2002. 分配管理模块是专门处理训练对象的,仿真环境由很多对 [4]Liden Lars.The Integration of Autonomous and Scripted 象构成,一个对象可以携带多个对象,对象可以不断增加、 Behavior through Task Management.Artificial Intelligence and 扩充。每当添加或扩充一个新对象,可以把它include进 Interactive Entertainment:Papers frOm the 2000 AAAI Spring 来,再在规则模块里加入对他的方法调用。 Symposium,Technical Report SS一00—02,51—55,2000. 276