XCOM 篇一
XCOM:重返地球的最后一战
XCOM(Extraterrestrial Combat Unit)是一款由Firaxis Games开发的策略类游戏,玩家在游戏中将扮演指挥官,领导XCOM小队抵抗外星入侵。游戏中,玩家需要建立基地、招募士兵、研究科技、战略部署等,与外星生物展开激烈的战斗。
在游戏中,玩家将面临各种挑战,需要合理分配资源,制定战术,保护地球免受外星侵略。每一个决定都可能影响到整个战局的走向,因此玩家需要谨慎考虑每一步的行动。
游戏中的战斗系统设计紧凑,玩家需要考虑地形、敌人位置、士兵技能等因素,制定最佳的作战计划。同时,游戏还有丰富的装备和科技升级系统,玩家可以根据实际情况选择最适合的装备和技能,提高战斗效率。
XCOM不仅是一款策略游戏,更是一部关于人类意志与勇气的史诗。在抵御外星入侵的过程中,玩家将体验到团结、拯救和胜利的喜悦,也将感受到牺牲、挫折和绝望的痛苦。每一场战斗都是一次考验,每一次胜利都是一次荣耀,每一次失败都是一次教训。
XCOM让玩家重新审视人类的勇气和智慧,让我们意识到在面对未知和危险时,团结和勇气是我们最强大的武器。在XCOM的世界里,我们不仅是地球的守护者,更是人类的英雄。
XCOM 篇二
XCOM:科技与人性的较量
XCOM是一款融合了策略、战术、科技元素的游戏,玩家在游戏中需要不断升级装备、研究科技,以抵御外星入侵。在游戏中,科技的作用不仅体现在武器装备的升级上,还体现在对敌人的了解和对战术的规划上。
科技在XCOM中扮演着重要的角色,它为玩家提供了更多的选择和可能性。通过研究外星技术,玩家可以解锁新的武器、装备和能力,从而提高战斗的效率和胜率。科技的发展也使玩家能够更好地了解敌人的弱点和战术,制定更为合理的作战计划。
然而,在XCOM中,科技并不是万能的。除了科技的发展,玩家还需要考虑士兵的训练、地形的利弊、敌人的战术等因素,才能取得胜利。在现实世界中,科技的发展也需要与人性相辅相成,科技的进步不能取代人类的智慧和勇气。
XCOM让玩家思考科技与人性的关系,科技的进步给我们带来了更多的便利和可能,但同时也带来了更多的挑战和责任。在面对未知和危险时,我们需要的不仅是科技的支持,更需要的是人类的团结和勇气。在XCOM的世界里,科技和人性共同构成了抵御外星入侵的最后一道防线。
XCOM 篇三
XCOM
创建XCOM共享空间,众人拾柴火焰高,让我们在此空间种子、浇水、开花、结果
iXcom技术白皮书
1. 前言... 1
2. iXcom简介... 2
3. iXcom的功能... 3
4. iXcom的特点... 4
5. 基本概念... 5
5.1. 应用... 5
5.2. 节点... 5
5.3. 电文... 6
5.4. 电文号... 7
5.4.1. 映射电文号... 7
5.5. 回线... 7
5.6. 主机名... 8
5.7. 主机代号... 8
5.8. 电文实时传输... 8
5.9. 电文可靠传输... 8
5.10. 静态连接... 9
5.11. 动态连接... 9
5.12. 队列... 10
5.12.1. 发送队列... 10
5.12.2. 接收队列... 11
5.13. 分组发送... 11
5.14. 分组接收... 11
6. 体系结构... 11
6.1. 系统核心... 12
6.1.1. 基础平台构件层... 12
6.1.2. 数据处理构件层... 13
6.2. 通信管理... 14
6.3. 应用适配器层... 15
1. 前言本文档介绍宝信软件的中间件产品iXcom。iXcom属于消息通信中间件,它的主要功能是在应用程序间传递消息,这些消息可以在不同的通信协议(基于TCP/IP Socket)、不同的主机系统和不同的应系统。
iXcom提供简单易用、高效可靠的分布式应用开发和通信平台,利用它可以快速方便地开发可靠、高效的分布式应用。
iXcom提供远程监控和控制功能,可以方便的控制通信线路和得知通信运行状况。
iXcom提供对多种主流数据库的支持,支持Oracle,SQLServer等数据库。
iXcom提供对多种开发语言的支持,支持C/C++ , Java, .NET, VB , Delphi等语言。
2. iXcom简介iXcom 是面向分布式应用的消息中间件,它为网络环境下客户机/服务器(C/S)结构的应用系统的开发和运行,提供了灵活和易用的基础平台。
iXcom提供两种通讯模式,实时传输模式和可靠传输模式。在实时传输模式上,iXcom提供快速地数据发送能力,但在通信出现异常时不能保证数据地可靠到
达。在可靠传输模式下,iXcom提供可靠的数据发送能力,严格按照应用发送电文的先后顺序进行电文发送,保证电文的可靠传输。一个iXcom 的基本工作示意图如图1 所示。应用程序分布在网络上的两个结点上,当应用程序之间要传送消息时,应用程序只需将消息电文号和消息的内容通过iXcom提供的接口传给iXcom。iXcom 便会利用网络结点上的各个iXcom运行系统组成的虚拟网,将消息输送到消息接收者所在的结点上,然后提交给消息的接收者。
图1
3. iXcom的功能iXcom的主要功能如下:
提供端到端的实时通信服务。应用不必关心网络通信和其它的网络细节,应用只需关注应用业务层,减少学习和使用的难度。
提供端到端的可靠通信服务。适用于分布式环境下各种不同类型的应用开发,特别是对通信的可靠性要求较高的应用,提供多层次的异步通信机制。通信的应用双方在处理时间上可以互不相关,发送方在发送数据时接收方应用可以还未启动。
提供对发送电文的并发传输(通信规约必须是动态连接的)和接收电文的并发处理,适用于对效率要求比较高的业务领域。
提供简单易用、快速、高效可靠的分布式应用系统的开发平台,应用编程接口(API)简单且易学易用。网络异构环境和细节对用户完全透明并且支持多种网络底层环境,并提供了跨操作系统的C/C++/Java接口;
iXcom可以和具有不同通信规约的节点进行通信。
提供WebService,XML-RPC接口,可以和J2EE和.NET进行集成。
支持工业通信协议Modbus、3964R等协议。
通过iXcom提供的协议框架,可以对通信协议进行扩展。
可靠传输方式下,支持电文的广播和多播发送。
提供对多种消息格式(ASCII和二进制)传输的支持;提供快速可靠的面向事务处理的数据递送功能,保证数据的完整性和可靠性;
提供分布式(C/S和B/S)的管理平台,通过DNS服务和应用管理等方式,提供对iXcom的管理和监控。
4. iXcom的特点iXcom有以下特点:
支持多种操作系统,如IBMAIX、HP-UX 、Linux、Windows 2000/NT/XP/2003 等。
支持多种开发工具。iXcom在所有平台上都支持C、C++、Fortran和JAVA;在Windows 系列平台上,提供VB/Delphi/C# 等接口。
网络节点数的支持量大:网络节点数的支持可从数十个到上千个,具体上限的多少与主机的性能有关。
基于TCP/IP Socket 。
支持客户/服务器(Client/Server)方式。
5. 基本概念5.1.应用
与具体业务有关的程序,包括客户端处理输入输出的客户程序(Client)、服务端负责业务逻辑的服务程序(Server)。
5.2.节点
节点就是通信程序的宿主主机。一个iXcom可以和多个节点通信。一个节点主要有五个属性:IP地址、Port号、通信规约、主机名称和主机代号。
IP地址
节点的IP地址,可以有备用IP地。
Port号
节点通信程序的监听端口号
通信规约(Protocol)
iXcom和外部主机互相通信的规约
主机名称(HostName)
标识节点名称,不大于8个ascii字符
主机代号(HostDC)
标识节点代号,用做发送电文时的目的地,用2个ascii字符表示。
注:在本文章,没有特殊指名的话,节点和主机是同一概念。
5.3.电文
在通信中间件之间传送的数据包,一般由电文头、电文体(数据块)和结束符组成。
其中电文头长度an>1-2个字符,对于特定的通信规约而言,结束符是确定不变的。
数据电文(Data Message)
用于传送应用系统的数据块,iXcom不对该类型电文进行拆分,但该电文有可能被底层的TCP协议进行拆分和重组。
应答电文(ACK Message)
由通信的接收方发送,用于告知发送方电文是否已被正确接收。
心跳电文(Heartbeat message)
用于监视回线和对方通信程序的状态,用作状态检测,双方可根据实际需要决定是否发送心跳电文。
注:
1. 应答电文是用于保证通信的可靠传输。
2. 控制电文、心跳电文是通信相关的电文,应用不用关心此类电文。
5.4.电文号
用于标识一条电文的类型和目的,一般在电文头部中有电文号字
段。电文号是通信双方按业务划分共通制定的,它一般用长度不大于6位的ASCII字符表示。
5.4.1. 映射电文号
用于历史问题等原因,可能在同一项目中出现电文号重复的现
象。为了便于应用方便处理电文,iXcom提供映射电文号的功能,应用可以根据需对每个电文号定义它的映射电文号,该映射电文号必须是全局唯一的,也就是说在同一项目中虽然电文号可以重复,但映射电文号必须是唯一的。
注:若项目中有重复电文号,iXcom和应用之间的接口有如下约定:
1) 应用发送电文时,提供的电文号必须是映射电文号。当iXcom发送电文时,iXcom会把映射电文号转化成实际的电文号进行发送。
2) iXcom收到电文后,将把收到电文的映射电文号发送给应用,而不是原有电文号。
5.5.回线
在通信程序双方之间建立的一条TCP 连接,一条回线既可以接收也可以发送数据。一般来说,通信双方通信程序之间需要建立两条回线。
一般情况下,在iXcom中采用的回线模式如下:
5.6.通信模式
通常来说,XCOM间通信,双方都有一个客户端和服务端。甲方要发数据给乙方,甲方XCOM的客户端把数据发给乙方的服务端。反之,乙方发数据给甲方,是乙方的客户端把数据发给甲方的服务端。
Socket类型
<></>对应值
<></>说明
<></>WRITE
<></>C
<></>客户端session读写:本方作为客户端,主动连接对方,连接建立后,该Socket连接可以发送电文。
<></>READ
<></>S
<></>服务器端session读写:本方作为服务器端,等待对方主动连接,连接建立后,该Socket连接上可以接收电文并且发送底层应答(按规约情况而定)。
<></>READ_WRITE
<></>CS
<></>客户端和服务端两个session都读写,融合以上两个session的功能。
<></>5.7.主机名
用于在通信时标识通信节点的主机名字。
5.8.主机代号
用于在电文收发时标识发送方和接收方,一般在电文头部中有主机代号的字段,用2个大写ascii码字母表示。
5.9.电文实时传输
电文实时传输指电文必须在规定的时间内必须传递到目标节点。iXcom在规定时间内提供快速可靠的传输机制,保证消息传递的实时性和可靠性,但在异常(网络设备异常或对等机进程异常)时不保证消息的可靠传输。在异常情况下,应用发送给iXcom的电文数据将被丢弃,iXcom将给应用误返回值,应用必须考虑电文重发或其它处理机制。
5.10. 电文可靠传输
电文可靠传输指电文的`传递在时间上无特殊的要求,在网络连通的情况下必须保证消息可靠的传递到目标节点。电文发送时,在遇到可恢复的故障(包括机器故障或网络故障)情况下,通过后续重发电文能够保证消息的可靠传输。
5.11. 静态连接
指通信双方建立的TCP/IP连接一直保持,直到停止通信程序或异常终止。当通信出现异常时,客户端必须具备重新连接服务端功能,保证通信的可靠性。静态连接示意图如下:
注:若通信规约不存在应答电文,等待应答阶段将不存在。
5.12. 动态连接
动态socket通信是指计算机之间的TCP/IP连接方式是动态的,当一次通信结束后,计算机之间的连接随之关闭,下一次传送电文时,需要重新建立socket连接。如下图所示:
(注:发送方在收到应答电文后必须关闭socket连接。)
5.13. 队列
在可靠传输模式下,队列是消息存储的地方。消息在收发过程中将存储于队列中,可靠队列中的消息存储于数据库中,不可靠队列中的消息存储于内存缓冲区中。队列结构由消息索引和数据存储区等部分组成。iXcom 系统提供的队列基本类型为发送队列和接收队列。
5.13.1. 发送队列
发往目的地的电文存储在发送队列中,电文根据发送目的地(即主机代号)分别被放到不同的逻辑发送队列中,iXcom核心从发送队列中取出电文进行网络发送。
5.13.2. 接收队列
iXcom收到电文后,将根据发送方的设置(即主代号)将电文放到相应的逻辑接收队列中。
5.14. 分组发送
应用可以根据业务的需求把发往某一主机的电文号按业务进行分组。每个组看作一个队列,每一组电文有对应的组号(整数)。对应于每一个队列,iXcom有一个且同一时刻只有一个进程对该队列进行操作发送,队列与队列之间的电文是互不影响的,一个队列中的电文堵塞,不会影响其他队列的电文。
注:分组发送仅限于动态连接方式,不能用于静态连接方式。
5.15. 分组接收
应用可以根据业务的需要把来自同一主机的电文按业务进行分组。每个组看作一个队列,每一组电文有对应的组号(整数)。对应于每一个队列,iXcom有一个且同一时刻只有一个进程对该队列进行操作发送(发送给应用,如Tuxedo),队列与队列之间的电文是互不影响的,一个队列中的电文堵塞,不会影响其他队列的电文。
6. 体系结构本节描述iXcom的基本组成和运行方式。
在应用系统进行数据通讯时,应用进程通过iXcom接口函数,将电文放入队列中。iXcom 核心进程从队列中取出消息,根椐电文中的电文号,通过iXcom 之间(或与其它通信程序)建立的数据通道,将该电文传送到接收者所在iXcom(或其它通信程序)。接收者所在的iXcom 核心收到电文后将电文写入接收队列中,接收应用进程通过调用iXcom的接口函数,从接收队列中取出电文。至此,一个电文传递完毕。
6.1.系统核心
系统核心由两大部分组成,即基础平台构件层和数据处理构件层。
6.1.1. 基础平台构件层
基础平台构件层由以下几部分组成,包括事件分派、socket传输、进程管理、数据库连接池和线程池。
事件分派
事件分派主要工作是建立socket连接、维护监控通信链路;从通信链路中读取数据并分派给协议插件。
Socket传输
应用电文发送和处理。
进程管理
进程管理主要工作是管理和维护iXcom的各进程。
数据库连接池
数据库连接池主要工作是在电文可靠传输模式下,提高数据库访问速度的效率。
线程池
线程池主要工作在于提高在并发处理电文时的处理效率。
6.1.2. 数据处理构件层
数据处理构件层由以下几部分组成,包括电文交换、
电文时序控制、数据转换、协议插件和异常处理。
电文存储
电文存储包括电文的写入和读取。当收到一条电文时,iXcom要把它写入数据库,以便后续的应用处理;当有待发数据时,iXcom要从数据库中读取相应的数据,然后通过基础平台层发送给目的地。
电文时序控制
若应用电文存在业务关系,iXcom发送电文是严格按照应用写入电文的先后顺序进行电文发送。
数据转换
当电文中存在二进制数据时,iXcom可以通过该电文号所对应的转换格式把该电文内容全部转换成ascii码电文,方便应用的处理。
协议插件
异常处理
当iXcom收到异常数据时(如电文号不对等),会给对方发送底层负应答电文。
6.2.通信管理
通信管理主要由几部分组成,包括运行管理、平台监控、配置管理和日志管理。
运行管理
通过运行管理功能,可以启动和关闭回线,可以置回线开启和关闭状态。
平台监控
通过平台监控,可以实时获取当前通信状态(在线或离线)。
配置管理
通过配置管理:
可以查看当前主机配置信息,可以查看当前电文号配置信息。
可以修改原有主机信息(比如IP地址或port号),可以增加电文号,可以新增回线。
日志管理
通过日志管理,可以查看各条回线的通信状态信息,从而进行通信跟踪维护和排障。
6.3.应用适配器层
应用适配器是应用和iXcom进行沟通的桥梁,应用通过适配器
把待发数据发送给iXcom进行处理;iXcom通过适配器把待处理数据发送给应用进行处理。