论文部分内容阅读
随着互联网和虚拟环境技术的发展,以大型多人在线游戏(MMOG,MassiveMulti-player Online Game)为代表的网络游戏产业迎来了新世纪的空前繁荣。它对社会经济的发展起着巨大的推动作用。然而,传统MMOG主要采用集中式服务器集群技术来处理大规模的资源行为和用户请求。这种方法不仅运营费用昂贵,在伸缩性和稳定性方面也不能满足日益增大的用户需求。因此,与对等网络(P2P,Peer-to-Peer)相结合的技术成为了MMOG研究的新方向。通过将负载分布到网络中的所有节点进行处理是提高系统伸缩性的最佳途径。但是,分布式环境缺乏统一的中心控制机制,依靠多个节点之间的协作来维持整个游戏世界的逻辑运行面临着许多挑战,主要包括:1)精确的发现资源和节点,以便它们之间能够进行交互;2)当多个节点同时访问同一资源时,该资源状态如何保证一致;3)尽量实现节点间的负载均衡,避免局部节点因负载过重而影响游戏的实时性;4)尽量减少节点间交互的传输延迟和带宽消耗;5)节点间的关系频繁变化时,如何保证系统的稳定性;6)为了让游戏世界向前发展,无论是用户数据还是资源状态都要进行持久保存,如何实现这些状态的分布式存储;7)分布式环境下的节点更容易产生欺骗行为,系统需要实现更加有效的安全机制来保证游戏的公平性。
本文结合以上问题分析了国内外已有的研究成果,总结出这些方法存在的缺陷,并在区域内单协作者模型的基础上提出了一种结构化多代理节点(SMA,Structured Multi-Agent)的P2P MMOG模型。本文的主要创新点如下:
⑴建立P2P MMOG模型的关键任务是实现有效的兴趣管理机制。兴趣管理是通过将节点和资源进行合理的组织,并以最有效的方式把与节点相关的信息反馈给它。为了精确的发现资源,本文采用静态划分区域的方法,每个区域通过资源定位算法映射给网络中的一个管理节点。区域内的节点和资源由该管理节点进行组织。由于管理节点成为了整个区域的控制中心,因此,任意节点通过资源定位算法定位到其所在区域的管理节点后,可以获得区域内所有节点和资源的信息。同时,为了与相邻区域的节点和资源交互,管理节点还要负责定位到邻居区域的管理节点,进而获得邻居区域的所有节点和资源信息。
⑵为了让系统具备更好的伸缩性,本文提出了一种基于资源处理权的分配算法。算法规定,管理节点只负责组织区域内的节点,并缓存区域内的所有状态。它不负责处理节点发生的任何事件。所有加入该区域的普通节点都被称为代理节点。代理节点负责处理节点和资源间的交互事件。为了实现代理节点间的负载均衡,并保证资源状态的一致性,算法充分考虑了区域内资源的消耗指数和节点的性能指数,所有资源被分配给具备相应处理能力的代理节点维护。分配策略采用最先匹配的方式。任意时刻,资源的状态都只能由唯一的代理节点进行修改和更新。由于状态更新由区域内的所有节点承担,消息的传输方式可采用高效的单播方式而不是延迟较大的应用层多播树。
⑶本文采用了三种同步技术:节点更新同步,事件处理同步和安全管理同步。采用节点更新同步的原因是,当区域内的节点关系变动时,需要重新分配资源的处理权,这时节点相互间需要短暂的时间来转移处理权。如果在转移过程中出现了多个节点同时拥有一个资源的处理权。那么,资源状态就会不一致。因此,必须保证在处理权分配算法执行完成后进行事件的处理。事件处理同步技术主要用于处理复杂(具有多个影响对象)事件。由于资源的状态只能由一个节点进行更新,而具有多个对象的事件不能分配给唯一节点处理,因此,本文规定所有的事件都必须是原子事件。即该事件只影响一个资源的状态。复杂事件必须分解成原子事件,并通过多个节点间的同步计算来达到一致性。安全管理同步主要针对分布式环境中最主要的8种欺骗行为进行设计。它采用管理节点进行协作检测的方式,一定程度上保证了游戏的公平性。
⑷对于用户数据和资源状态的持久性保存,本文暂时引入数据服务器来承担。数据服务器具有一定的辅助功能。包括用户登录验证,用户状态保存,资源状态维持,节点定位等。为了测试SMA模型的各项性能。本文实现了一个可视化仿真工具。通过分析服务器模式,区域内单协作者模型与SMA模型各项性能指数的差异,充分说明了SMA模型的优势。