




已阅读5页,还剩56页未读, 继续免费阅读
【硕士论文】基于OMA标准的移动游戏服务器系统的设计和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 移动游戏是移动终端上增长最快的业务类型 容易成为3 G 网络的杀手级应 用 移动服务器平台是移动游戏的后端服务器系统 通过该平台 可以实现针对 网络游戏的移动终端接入 以及游戏数据的处理 移动服务器平台作为网络移动 游戏的支撑平台 性能直接影响到游戏的质量 O M A 标准针对游戏服务器的开发 提出了规范的服务器和移动终端层次划 分 服务器端的通用A P I 接口以及服务器侧所应该包含的功能模块 使用以O M A 标准为基础的规范 创建游戏服务器平台 可以使游戏服务器平台的开发更加规 范 扩展性更大 开发效率更高 本论文正是针对上述问题 以O M A 标准为基础 游戏服务器平台的开发为 主要的研究对象 在深入分析O M A 标准的基础上 对服务器平台的开发和其使用 的诸多技术作了创新性和探索性研究 为提高服务器性能 还需要研究无线网络 特点 负载均衡技术 线程池和连接池 并根据对他们的研究 搭建出了移动服 务器平台的构架 利用j a v a 语言编写了整个服务器系统 主要内容为 1 详细研究了O M A 标准 特别是其对服务器平台的结构框架定义 并将其 对游戏服务器的规范定义 创造性的应用到了移动游戏服务器平台上 利用O M A 标准定义了移动服务器平台的接口 以及移动服务器平台的软件层次 最后在面 向对象的设计原理下 利用j a v a 语言实现了整个移动服务器平台功能 2 详细研究了无线网络的特点 并根据这些特点制定了游戏平台以及具体游 戏开发的网络传输细节 实现了通过自定义协议 在无线网络中传输数据 以及 针对无线网络特点的数据存储和恢复功能 3 研究了负载均衡技术 并把它成功纳入到游戏服务器平台中应用 使用负 载均衡技术 实现了介入平台的实时监控 以及对移动终端连接的分配和控制 4 研究了线程池 对它的理论和实际应用作了较为深刻的分析 并成功利用 该技术 提高了游戏服务器平台的性能 5 研究了连接池 对它的理论和实际应用作了较为深刻的分析 并成功利用 该技术 提高了访问数据库的性能 6 利用上面的技术 编写了服务器平台的需求 并根据需求设计出系统框架 然后再逐步对网络系统结构 软件分层结构 软件模块结构 软件具体逐层分析 摘要 接口标准化设计以及软件实现等进行讲解 7 在移动游戏平台开发后 又开发了网络拳击游戏 通过游戏平台系统的通 用接口 成功将该游戏的服务器端程序加入到整个平台中 完成了整个系统的开 发 关键词 O M A 标准 服务器平台 移动游戏 无线网络 负载均衡 线程池 连接池 I I 第一章引言 第一章引言 目前移动游戏的整体发展趋势主要有两个特点 计算机化和网络化 计算机 化就是移动游戏紧随计算机游戏进行发展 由于移动终端的处理能力低 各种技 术大部分来源于计算机游戏的技术 那么其发展趋势可以从计算机游戏以往的发 展过程推测出来 但是要比计算机游戏发展迅速 制约移动游戏发展的因素是移 动终端硬件设备的处理能力 如果硬件处理能够得到保证 其发展水平会与计算 机游戏保持一致 从发展上看 下一阶段移动游戏的方向是移动网络游戏 只要 3 G 推出 移动网络游戏会迅速在市场出现 同时 由于现有无线网络的限制 数 据传输有一定的延时 使用J 2 M E 开发移动游戏目前还只能停留在单机类型 移动 网络游戏也只能基于回合制的游戏 开发实时游戏还比较困难 安全性方面 加 密和签名技术已经比较成熟 技术本身在移动游戏中的应用不会有太大发展 只 是存储形式趋向硬件化 就是加密模块不再是软件实现 而是由硬件来完成 目 前这种产品已经出现 移动游戏的大致现状如上所说 针对网络移动游戏 需要开发后端的服务器 系统 通过该系统 可以实现针对网络游戏的移动终端接入 以及游戏数据的处 理 这个系统就是移动游戏服务器平台系统 移动服务器平台作为网络移动游戏 的支撑平台 性能直接影响到游戏的质量 从移动游戏平台的角度来看 移动游戏平台集成范围越来越广泛 功能越来 越多 各种移动游戏平台非常多 不同公司的使用的标准也不同 不利于移动游 戏平台的发展 但是各个公司提出的技术优势在实际应用中逐渐体现出来 未来 发展将集中各家优势向统一的标准迈进 移动游戏是移动终端上增长最快的业务类型 作为移动游戏的后端服务器系 统 移动游戏服务器平台的需求也在逐步增大 特别是利用已开发的移动游戏服 务器平台 加入新的游戏处理逻辑 这样 具有标准游戏接口 扩展性更大的游 戏服务器平台的研究具有了很大的市场价值 在统一的国际通信标准方面 世界上有多个标准化组织 比如移动产业处理 器界面联盟 M I P I 开放移动联盟 O M A 流媒体联盟0 S M A 国际电信联盟 I T U 等 其中 开放移动联盟 O M A 提出过很多标准 包括 用于设备管理的 电子科技大学硕士学位论文 O M A D e v i c eM a n a g e m e n t D M 协议 针对下载的O M AD o w n l o a df o rG e n e t i c C o n t e n t 协议 适用于固件更新的O M A D MF i r m w a r eO v e 卜T h e A i rf F O T A 等 当 然 0 M A 还率先提出了关于游戏服务器系统开发的多项标准 包括 游戏客户端 和服务器端接口O M A G a m e S e r v i c e s C l i e n t S e r v e r I n t e r f a c e 协议 游戏服务器需求 O M A R DG a m e S e r v i c e 协议 游戏服务器体系O M A G a m e s S e r v i c e s A r c h i t e c t u r e 协议等 使用以O M A 标准关于游戏服务器系统开发的规范为基础 创建游戏服务器平 台 可以使游戏服务器平台的开发更加规范 扩展性更大 开发效率更高 基于上面的原因 本文将从O M A 入手 研究其对移动游戏服务器系统技术的 规范 并在此基础上设计出符合O M A 标准的游戏服务器系统 同时将涉及到无线 网络 负载均衡 线程池和连接池等技术的研究和实现 整个项目最后需要开发 出一个标准的游戏服务器平台系统和网络拳击游戏逻辑 并将网络拳击游戏加入 到 现在这个项目的第一阶段开发基本已经结束 完成了所有基类的代码编写 并利用通用基类搭建起了游戏服务器平台 网络拳击游戏逻辑开发完毕 并且顺 利加入到服务器平台系统中 网络拳击游戏也可以正常运行 项目现在刚处于测 试阶段 测试人员正在编写测试用例 并根据测试用例进行单元测试以及整个系 统的压力测试等工作 在这个项目中 我参与了所有框架的设计 并且独立完成 了服务器端所有代码编写 本论文主要分为三个部分 第一部分是对整个移动游戏服务器系统的技术综述 分别对O M A 标准 无线 网络特点 负载均衡 线程池 连接池等技术进行分析和讲解 第二部分是服务器系统的设计和实现 该部分首先是说明整个项目的需求 分别是功能需求 性能需求和外部接口需求 然后介绍整个系统的框架 包括网 络系统结构 软件分层结构 软件模块结构 软件具体逐层分析和接口标准化设 计 最后将介绍软件实现的一写内容 包括使用的语言 多线程的实现 i d b c 连 接池的实现 w e b 网页以及部分效果图片 第三部分是最后的结论 包括整个系统未来的改进和扩展 第二章移动游戏服务器系统技术综述 第二章移动游戏服务器系统技术综述 整个移动游戏服务器系统是以O M A 标准为基础设计的 移动游戏服务器采用 的无线网络 为提高服务器的性能 设计过程中 还需要考虑负载均衡 线程池 连接池等技术 下面首先对这些技术进行一下综述 2 1O M A 标准 O M A 始创于2 0 0 2 年6 月 W A P 论坛 w 久PF o r u m 和开放式移动体系结构 O p e nM o b i l eA r c h i t e c t u r e 两个标准化组织通过合并成立最初的O M A 随后 区域互用性论坛 L o c a t i o nI n t e r o p e r a b i l i t yF o r u m L I F S y n c M L M M S 互用性研 究组 M M SI n t e r o p e r a b i l i t yG r o u p M M S l O P 和无线协会 W i r e l e s sV i l l a g e 这 些致力于推进移动业务规范工作的组织又相继加入O M A 此外 移动博弈互用性 论坛 M o b i l eG a m i n gI n t e r o p e r a b i l i t yF o r u m M G I F 和移动无线因特网论坛 M o b i l e W i r e l e s s I n t e m e t F o r u m M w I F 都表明了自己想加入O M A 的意图 截 至成立当年1 1 月份 O A M 就已发展成员公司约3 0 0 家 其成员公司包括了世界 主要的移动运营商 设备和网络供应商 信息技术公司 应用发展商和内容提供 商 整个价值链上的成员共同协作 以确保为全世界的终端用户提供无缝的移动 业务 O M A 的形成标志着移动业务的发展向前迈出了重要的一步 避免了由于分散 的个体而容易导致的技术上的孤立 几个规范组织的合并 有利于信息和资源的 共享 促进了工作的流程化 减少了不必要的重复劳动 一个统一的合法框架确 保了技术和标准的真正意义上的互用性测试 这将使市场运作更加快捷并减少了 工业总成本和复杂性 开放式移动联盟的任务是为全球的用户消除不同系统间的 屏障 确保无缝的互用性业务 促进整个移动工业市场的发展 O M A 意识到了反托拉斯法案的重要性 严格遵守这些法则是O M A 的原则 2 1 1O M A 的宗旨 O M A 的宗旨是寻求一种与系统无关的 开放的 使各种应用和业务能够在全 球范围内的各种终端上实现互联互通的标准 通过让客户在不同的市场 运营商 电子科技大学硕士学位论文 移动终端之间使用可互用的移动业务来促进整个移动工业市场的增长 这是通过 定义一个基于开放式标准的框架来实现的 该框架允许在多供应方的环境中安全 有效地建立 配置和管理各种应用和业务 2 1 2O M A 的目标 第一 通过使用户轻松使用不同地点 运营商 移动终端间可互用的移动业 务来促进整个移动通信工业的增长 第二 定义一个基于开放式标准的框架 该框架允许在多供应方的环境中安 全有效地建立 配置和管理各种应用和业务 第三 建立移动工业标准论坛一开放式移动联盟 行使实现业务级互用性的 驱动职能 第四 推动开放式业务和接口标准的实现 通过以用户为中心的方式来实现 移动业务的快速广泛采用 2 1 3O M A 的原则 O M A 是建立在4 个主要原则的基础上的 这些原则在保证整个价值链移动业 务实现互用性的同时 鼓励通过创新参与竞争 a 产品和服务是基于开放式的全球标准协议和接口之上 并不限定于专有技 术 b 应用层的集合信道不确定 例如 G S M G P R S E D G E C D M A U M T S C 结构框架和业务启动与操作系统 o s 无关 d 应用和平台可以互用 提供异地和代间无缝漫游 2 1 4O M A 的优势 O M A 面向于通过提供移动业务的端到端和多重标准互用性来提高对终端用 户的服务 这将推动移动工业的增长 对所有的参与者都是有利的 可互用的多 供应商环境使得所有参与者都有更多的机会可以选择 对于移动运营商和业务提供商来说 由于不同的国家 业务 网络 终端和 运营商都享有共同的标准 即具有互用性 因此可以更快地吸收终端用户 同时 为他们在移动业务和互连网领域提供无缝的业务 同时使他们可以自由地选择可 互用技术的解决方案 4 第二章移动游戏服务器系统技术综述 对于信息科技公司 可以扩大投资 沟通互连网和移动业务领域 缩短传输 的环节 对于无线供应商来说 由于不同的终端 网络 业务都基于统一的开放式的 互用性标准 可以扩大市场的范围 促进市场增长 减低开发成本 减少流通的 时间 对于应用开发商来说 减少开发成本 扩大经济规模 通过吸收用户来扩展 全球市场的机遇 对于内容供应商和媒体公司来说 可以促进通用移动分配形式 使数字权限 内容多样化 促进面向更多全球大众的具有吸引力的内容的开发和传递 2 1 5O M A 的远景和发展战略 O M A 的远景目标是为整个无线价值链的共同协作提供一个论坛 以确保为全 球商业用户和消费者提供无缝的移动业务 O M A 面向于通过使用实例 公共结构 框架 启动技术的开放标准和端到端的互用性来定义市场需求 2 1 6 关于游戏服务器的O M A 标准 O M A 标准中 关于游戏服务器的规范 较为主要的标准是 游戏客户端和服 务器端接口O M A G a m e S e r v i c e s C l i e n t S e r v e r I n t e r f a c e 协议 游戏服务器需求 O M A R D G a m e S e r v i c e 协议 游戏服务器体系O M A G a m e s S e r v i c e s A r c h i t e c t u r e 协议等 2 1 6 1O M A G a m e S e r v i c e s C l i e n t S e r v e r I n t e r f a c e 协议 该协议指定了游戏服务器系统中 客户端和服务器端应该具有的通用接口 服务器端包含的被调用的操作方法 1 登陆和注册的方法 L o g i na n d R e g i s t r a t i o n 登陆和注册中包含三个方法 分别是 登陆方法 L o g i n A p p I D U s e m a m e P a s s w o r d 登出方法 L o g o u t S I D 注册方法 R e g i s t e r S I D U s e m a m e P a s s w o r d 2 游戏持久性的方法 G a m e P e r s i s t e n c e 关于持续游戏包含了五个方法 分别是 得到游戏会话相关信息的方法 G e t A S S I D 电子科技大学硕士学位论文 得到游戏会话中所有玩家信息的方法 G e t l n v S l D 激活一个游戏会话的方法 A c t i v a t e S l D A S I D 暂时使一个游戏会话不处于活动期的方法 D e a c t i v a t e S I D A S I D 命名一个游戏会话的方法 N a m e S I D A S I D N a m e 3 游戏创建和比赛的方法 G a m eC r e a t i o na n dM a t c h m a k i n g 关于游戏创建和比赛包含了三个方法 分别是 创建公共游戏的方法C r e a t e A I S I D M i n A S M a x A S 创建私人游戏的方法C r e a t e A I P r i v a t e S I D A c t o r s M i n A S M a x A S 加入游戏的方法J o i n A I R n d S l D 4 游戏比赛的方法 G a m e p l a y 关于游戏比赛 包含了五个方法 分别是 开始游戏的方法 S t a r t S I D A S l D 结束游戏的方法 E n d S l D A S I D 离开游戏的方法 Q u i t S l D A S I D 数据转发的方法 H a n d o v e r T u m S I D A S I D D a t a 发送数据的方法 S e n d D a t a S I D A S I D D a t a 5 聊天的方法 M e s s a g i n g 关于聊天 仅定义了一个方法 发送聊天数据的方法 S e n d T x t M s g S I D A S I D M s 曲 6 分数管理的方法 H i g h s c o r e 关于分数 包含五个方法 分别是 设置分数的方法 S e t S c o r e S I D S c o r e T a b l e I D S c o r e 得到分数排名的方法 G e t S c o r e P o s S I D S c o r e l D T i m e F r a m e 通过位置得到分数的方法 G e t S c o r e s B y P o s S I D S c o r e T a b l e l D P o s C o u n t F i l t e r T i m e F r a m e 通过i d 得到分数的方法 G e t S c o r e s B y I D S I D S c o r e l D C o u n t O f f s e t F i l t e r T i m e F r a m e 通过用户得到分数的方法G e t S c o r e s B y U s e r S I D S c o r e T a b l e l D U s e r n a m e C o u n t O f f s e t F i l t e r T i m e F r a m e 7 其他方法 包括 返回p i n g 的时间的方法 P i n g S I D 得到当前服务器时间和数据的方法 D a t e T i m e S I D 6 第二章移动游戏服务器系统技术综述 2 1 6 2O M A G a m e s S e r v i c e s A r c h i t e c t u r e 协议 该协议是针对真个游戏服务器体系的协议 主要包括一些用例和需求 1 用例 U s eC a s e s a 通过D R M 收费下载游戏 D o w n l o a dG a m ew i t hD R Ma n dC h a r g i n g 下图就是j a v a 游戏下载的一个用例分析图 G a m e C i e n t G a m e S e r v e f G a m eD o w n l o a d P o r t a lS e r v e 盯D R M C h a r g i n g S y s t e m 图2 1下载游戏用例图 b 客户端和服务器端功能 C l i e n ta n dS e r v e rF u n c t i o n s 在此功能中 O M A 标准分析了登陆和注册用例 随机游戏用例以及分数系统 用例等 c 连接模型的用例 如下图所示 为O M A 提出的连接模型的用例 电子科技大学硕士学位论文 图2 2 连接模型图 2 需求 这里 O M A 标准提出了游戏平台应该覆盖的需求 较为重要的是 a 用户可以通过浏览器付费下载游戏 b 能反应游戏在终端中被激活的次数 c 能监控时间和日期 d 能在游戏开始后开始计费 e 能提供不同形式的收费服务 f 能使用户找到其他玩家开始游戏 g 用户可以连接到游戏服务器 h 能够从服务器得到高分排行榜 i 能够得到分数排行榜的入口 j 能够提供游戏中其他玩家离开游戏的情况 如果可能 提供原因 关于安全方面 a 游戏服务器间的联系应该尽量安全 2 1 6 3O M A R DG a m e S e r v i c e 协议 该协议主要是从创建游戏 用户管理 玩家比赛 比赛过程 读取数据 发 送数据 断线处理以及聊天等发面 阐述了游戏服务器的需求 2 1 6 4 游戏平台服务器侧系统结构 按照O M A 标准 移动游戏平台本身分为两部分 服务器侧和终端侧 服务器 侧提供对游戏运行的统一管理和控制 终端侧提供移动游戏客户端运行的支撑平 台 第二章移动游戏服务器系统技术综述 按照O M A 标准 编写游戏服务器的A P I 接口 一般需要包括会话管理 S e s s i o n M a n a g e m e n t 连接性管理 C o n n e c t i v i t yM a n a g e m e n t 计量 M e t e r i n g 积分 和竞赛管理 S c o r e sa n dC o m p e t i t i o nM a n a g e m e n t 登录管理 L o g i nM a n a g e m e n t 系统管理 S y s t e m A d m i n 定时器服务 T i m e rS e r v i c e 日志 L o g g i n g 服务器侧同时提供A P I 给游戏应用服务器和手机终端 且其移动游戏平台服 务器侧系统结构图如下 图2 3 游戏平台服务器侧系统结构图 游戏平台服务器侧系统包括3 D 引擎 网络通信 Q o S 保证 输入输出等模块 2 2 无线网络特点 整个移动服务器系统和客户端之间的通信 是以无线网络为传输载体的 无 线网络的传输特点 将直接影响到系统的实现 2 2 1 传输方式 传输方式涉及无线网采用的传输媒体 选择的频段及调制方式 目前无线网 采用的传输媒体主要有两种 即无线电波与红外线 在采用无线电波做为传输媒 体的无线网依调制方式不同 又可分为扩展频谱方式与窄带调制方式 电子科技大学硕士学位论文 l 扩展频谱方式 在扩展频谱方式展频谱方式中 数据基带信号的频谱被扩展至几倍一几十倍后 再被搬移至射频发射出去 这一作法虽然牺牲了频带带宽 却提高了通信系统的 抗干扰能力和安全性 由于单位频带内的功率降低 对其它电子设备的干扰也减 小了 采用扩展频谱方式的无线局域网一般选择所谓I S M 频段 这里I S M 分别取于 I n d u s t r i a l S c i e n t i f i c 及M e d i c a l 的第一个字母 许多工业 科研和医疗设备辐射的 能量集中于该频段 例如美国I S M 频段由9 0 2 M H z 一9 2 8 M H z 2 4 G H z 一2 4 8 G H z 5 7 2 5 G H z 一5 8 5 0 G H z 三个频段组成 如果发射功率及带宽辐射满足美国联邦通信委 员会 F C C 的要求 则无须向F C C 提出专门的申请即可使用I S M 频段 2 窄带调制方式 在窄带调制方式中 数据基带信号的频谱不做任何扩展即被直接搬移到射频 发射出去 与扩展频谱方式相比 窄带调制方式占用频带少 频带利用率高 采 用窄带调制方式的无线局域网一般选用专用频段 需要经过国家无线电管理部门 的许可方可使用 当然 也可选用I S M 频段 这样可免去向无线电管理委员会申 请 但带来的问题是 当临近的仪器设备或通信设备也在使用这一频段时 会严 重影响通信质量 通信的可靠性无法得到保障 3 红外线方式基于红外线的传输技术最近几年有了很大发展 目前广泛使 用的家电遥控器几乎都是采用红外线传输技术 作为无线局域网的传输方式 红 外线的最大优点是这种传输方式不受无线电干扰 且红外线的使用不受国家无线 电管理委员会的限制 然而 红外线对非透明物体的透过性极差 这导致传输距 离受限 2 2 2网络拓扑 无线局域网的扩扑结构可归结为两类 无中心或对等式 P e e rt oP e e r 拓扑 和有中心 H U B B a s e d 拓扑 1 无中心拓扑 无中心拓扑的网络要求网中任意两个站点均可直接通信 采用这种拓扑结构的网络一般是用公用广播信道 各站点都可竞争公用信道 而信道接入控制 M A C 协议大多采用C S M A 载波监测多址接入 类型的多址 接入协议 这种结构的优点是网络抗毁性好 建网容易 且费用较低 但当网中用户数 第二章移动游戏服务器系统技术综述 站点数 过多时 信道竞争成为限制网络性能的要害 并且为了满足任意两个 站点可直接通信 网络中站点布局受环境限制较大 因此这种拓扑结构适用于用 户相对减少的工作群网络规模 2 有中心拓扑 在中心拓扑结构中 要求一个无线站点充当中心站 所有站点对网络的访问 均由其控制 这样 当网络业务量增大时网络吞吐性能及网络时延性能的而恶化 并不剧烈 由于每个站点只需在中心站覆盖范围之内就可与其它站点通信 故网 络中点站布局受环境眼制亦小 此外 中心站为接入有线主干网提供了一个逻辑 接入点 有中心网络拓扑结构的弱点是抗毁性差 中心点的故障容易导致整个网络瘫 痪 并且中心站点的引入增加了网络成本 在实际应用中 无线网往往与有线主干网络结合起来使用 这时 中心站点 充当无线网与有线主干网的转接器 2 2 3 网络接口 这涉及无线网中站点从哪一层接入网络系统 一般来讲 网络接口可以选择 在O S I 参考模型的物理层或数据链路层 所谓物理层接口指使用无线信道替代通常的有线信道 而物理层以上各层不 变 这样做的最大优点是上层的网络操作系统及相应的驱动程序可不做任何修改 这种接口放式在使用时一般做为有线网的集线器和无线转发器以实现有线局域网 间互连或扩大有线局域网的覆盖面积 另一种接口方法是从数据链路层接入网络 这种接口方法并不沿用有线局域 网的M C A 协议 而采用更适合无线传输环境的M A C 协议 在实现时 M A C 层 及其以下层对上层是透明的 配置相应的驱动程序来完成域上层的接口 这样可保 证现有的有线局域网操作系统或应用软件可在无线局域网上正常运转 目前 大部分无线局域网厂商都采用数据链路层接口方法 2 2 4 无线网络中的t c p i p 传输 随着计算机和通信技术的发展 人们能够越来越方便的实现信息的共享 T C P I P 协议使得世界上不同体系结构的计算机网络互连在一起形成一个全球性的 广域网络I n t e r n e t 这为各种信息的共享提供了便捷的途径 在I n t e m e t 中的每一 电子科技大学硕士学位论文 台计算机可以访问I n t e r n e t 上的其他任意一台计算机 好像它们在一个局域网内用 双绞线或同轴电缆直接连接起来 样 不同之处是速度比局域网的慢 现在 T C P I P 协议已经非常流行并已经成为网络通信协议的事实上的标准 之所以会这 样 关键在于T C P I P 能够适应不同的网络体系结构和不同的传输链路 并且为客 户端一服务器模式提供了很好的支持 这已经成为网络应用程序的标准模式 这给 人的感觉好象T C P I P 是完美无缺的 但事实正好相反 T C P I P 在性能和安全方面 都有很大的缺点 尤其当它应用于无线通信和要求安全性很高的领域时 这些缺 点就显得非常明显 近来T C P I P 在无线通信中的应用日益增加 而且将来会有非常多的移动主机 连接到I n t e r n e t 中 包括卫星链路在内的无线链路会越来越多 这使得我们需要深 入研究T C P I P 在无线通信中存在的问题 另外在涉及到高度机密的领域 安全是 特别重要的 因而T C P I P 的安全问题也要严肃审视 无线链路的特点是易受干扰 多径衰减的影响 信道通信行为会随时间和地 理位置而变化 链路层差错控制对包一级的Q o S Q u a l i t yo f S e r v i c e 的影响也是 随时间变化的 因而为固定网络开发的T C P 无法很好的应用于移动通信和卫星等 无线链路中 它的缺点就是缺乏网络自适应性 在有线网络中 流量控制和资源分配策略都假定 底层的物理媒质是高度可 靠的 但这对无线网不成立 所以在无线网中 这种策略不是有效的 在无线网 上进行T C P 传输 T C P 认为包的丢失是由拥塞引起的 而实际上这样的包丢失可 能是由于信道错误引起的包丢弃或网络延时而引发的 这导致T C P 超时并启动拥 塞控制算法 这显然不必要的减少了无线信道的吞吐率 在无线信道上的传输性能可以通过使用链路层差错控制的新方法 A R Q A u t o m a t i cR e p e a tR e q u e s t 和前向错误纠正F E C F o r w a r dE r r o rC o r r e c t i o n 来 改善 A R Q 用于传输要求高可靠性的数据 F E C 用于传输时延敏感的数据流 变 种的A R Q F E C 方案更适合于宽带无线网的传输 特别是在传输的数据流表现出不 同的特色和Q o S 要求时 在无线通信中还有一个问题就是当主机不断移动时 它可能离开其I P 地址标 识的那个区域 从而无法连接到网络中 解决主机移动性问题有一个最基本的难 题是 主机的I P 地址有双重意义 它既是对主机的唯一标识 又指示它所在位置 而移动主机的位置要经常变化 这意味着I P 地址也应改变 因而目前的T C P I P 实现是无法解决该问题的 M o b i l eI P 作为一种移动主机协议解决了这个问题 它 解决这个问题的办法是 在主机标识到位置的最近映象可利用时 把I P 地址的这 第二章移动游戏服务器系统技术综述 两个意义分开 移动主机协议的主要设计目标是不需要用户重新配置就可以改变访问点 这 被称作操作透明性 移动主机协议设计的另一个目标是支持h a n d o f f 在连接保持 时改变访问点叫h a n d o f f 但不会严重扰乱正在进行的数据传输 许多建议的移动主机协议都有 t w ot i e ra d d r s s i n g 结构 即一个移动主机在逻 辑上关联两个I P 地址 一个是本地地址 用作不变的主机标识 另一个地址反应 它当前连接到I n t e m e t 的点 这种结构由三个基本成分组成 本地目录 一个数据库 可以是分布式的 它包含最新的两个地址空间之间 的映像 地址翻译代理 完成主机标识到实际目标地址的翻译 这涉及到查询本地目 录或本地缓存 转发代理 确保到达移动主机的包的目的地址字段有它恒定的本地地址 M o b i l eI P 解决方案满足操作透明目标而且也支持h a n d o f f 但是它只是对慢速 移动的主机是优化的 若主机经常移动 它就变的效率极其低下 M o b i l eI P 要求 移动主机无论在什么时候移动到一个新的外部代理 F o r e i g nA g e n t 都应该通知 给本地代理 在修改信息阶段 包被转发到旧的位置 因而不会扰乱活动的数据 传输 类似的 在路由优化阶段 尽管相应的主机已经获得一个新的绑定 数据 传输也不会被打断 这些延迟的影响会随着h a n d o f f 出现的频率的增加而增加 修 改信息是由I n t e r n e t 和本地代理负责的 这个负担与移动主机的数量成比例而与产 生的流量无关 随着移动主机越来越普遍 蜂窝越来越小 这可能是一个问题 C e l l u l a rI P 不同于它 C e l l u l a rI P 提供了一个跟蜂窝电话差不多的框架 该框 架能够把操作从小的办公系统扩展到大的校园网和区域网 每一个都使用同样的 C e l l u l a rI P 只是有不同的本地管理设备环境 C e l l u l a rI P 协议有一个有效的本地 管理和搜索方案 这可以避免对闲着的用户的跟踪 因而可以降低无线访问网络 的负载 2 3 负载均衡 移动游戏服务器系统 作为所有成千上万客户端连接的终端 其能承受多少 连接并发量 如何降低由多并发带来的服务器压力 将是对服务器系统性能的考 验 在这种可能出现大并发量的系统中 负载均衡技术是必不可少的 电子科技大学硕士学位论文 2 3 1 负载均衡的定义 负载均衡是由多台服务器以对称的方式组成一个服务器集合 每台服务器都 具有等价的地位 都可以单独对外提供服务而无须其他服务器的辅助 通过某种 负载分担技术 将外部发送来的请求均匀分配到对称结构中的某一台服务器上 而接收到请求的服务器独立地回应客户的请求 2 3 2 负载均衡的作用 如果你发现你的w e b 站点负载量非常大时 应当考虑使用负载均衡技术来将 负载平均分摊到多个内部服务器上 如果有多个服务器同时执行某一个任务时 这些服务器就构成一个集群 c l u s t e r i n g 使用集群技术可以用最少的投资获得接 近于大型主机的性能 2 3 3 类型 目前比较常用的负载均衡技术主要有 1 基于D N S 的负载均衡 通过D N S 服务中的随机名字解析来实现负载均衡 在D N S 服务器中 可以 为多个不同的地址配置同一个名字 而最终查询这个名字的客户机将在解析这个 名字时得到其中一个地址 因此 对于同一个名字 不同的客户机会得到不同的 地址 他们也就访问不同地址上的W e b 服务器 从而达到负载均衡的目的 2 反向代理负载均衡 使用代理服务器可以将请求转发给内部的W e b 服务器 让代理服务器将请求 均匀地转发给多台内部W e b 服务器之一上 从而达到负载均衡的目的 这种代理 方式与普通的代理方式有所不同 标准代理方式是客户使用代理访问多个外部W e b 服务器 而这种代理方式是多个客户使用它访问内部W e b 服务器 因此也被称为 反向代理模式 A p u s i c 负载均衡器就属于这种类型的 3 基于N A T 的负载均衡技术 网络地址转换为在内部地址和外部地址之间进行转换 以便具备内部地址的 计算机能访问外部网络 而当外部网络中的计算机访问地址转换网关拥有的某一 外部地址时 地址转换网关能将其转发到一个映射的内部地址上 因此如果地址 转换网关能将每个连接均匀转换为不同的内部服务器地址 此后外部网络中的计 算机就各自与自己转换得到的地址上服务器进行通信 从而达到负载分担的目的 第二章移动游戏服务器系统技术综述 2 4 线程池 诸如W e b 服务器 数据库服务器 文件服务器或邮件服务器之类的许多服务 器应用程序都面向处理来自某些远程来源的大量短小的任务 请求以某种方式到 达服务器 这种方式可能是通过网络协议 例如H T T P F T P 或P O P 通过J M S 队列或者可能通过轮询数据库 不管请求如何到达 服务器应用程序中经常出现 的情况是 单个任务处理的时间很短而请求的数目却是巨大的 2 4 1 使用线程池的原因 构建服务器应用程序的一个过于简单的模型应该是 每当一个请求到达就创 建一个新线程 然后在新线程中为请求服务 实际上 对于原型开发这种方法工 作得很好 但如果试图部署以这种方式运行的服务器应用程序 那么这种方法的 严重不足就很明显 每个请求对应一个线程 t h r e a d p e r r e q u e s t 方法的不足之一 是 为每个请求创建一个新线程的开销很大 为每个请求创建新线程的服务器在 创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求的 时间和资源更多 除了创建和销毁线程的开销之外 活动的线程也消耗系统资源 在一个J V M 里创建太多的线程可能会导致系统由于过度消耗内存而用完内存或 切换过度 为了防止资源不足 服务器应用程序需要一些办法来限制任何给定时刻处理的请 求数目 线程池为线程生命周期开销问题和资源不足问题提供了解决方案 通过对多 个任务重用线程 线程创建的开销被分摊到了多个任务上 其好处是 因为在请 求到达时线程已经存在 所以无意中也消除了线程创建所带来的延迟 这样 就 可以立即为请求服务 使应用程序响应更快 而且 通过适当地调整线程池中的 线程数目 也就是当请求的数目超过某个闽值时 就强制其它任何新到的请求一 直等待 直到获得一个线程来处理为止 从而可以防止资源不足 2 4 2 使用线程池的风险 虽然线程池是构建多线程应用程序的强大机制 但使用它并不是没有风险的 用线程池构建的应用程序容易遭受任何其它多线程应用程序容易遭受的所有并发 风险 诸如同步错误和死锁 它还容易遭受特定于线程池的少数其它风险 诸如 与池有关的死锁 资源不足和线程泄漏 电子科技大学硕士学位论文 a 死锁 任何多线程应用程序都有死锁风险 当一组进程或线程中的每一个都在等待 一个只有该组中另一个进程才能引起的事件时 我们就说这组进程或线程死锁 了 死锁的最简单情形是 线程A 持有对象x 的独占锁 并且在等待对象Y 的 锁 而线程B 持有对象Y 的独占锁 却在等待对象x 的锁 除非有某种方法 来打破对锁的等待 J a v a 锁定不支持这种方法 否则死锁的线程将永远等下去 虽然任何多线程程序中都有死锁的风险 但线程池却引入了另一种死锁可能 在那种情况下 所有池线程都在执行己阻塞的等待队列中另一任务的执行结果的 任务 但这一任务却因为没有未被占用的线程而不能运行 当线程池被用来实现 涉及许多交互对象的模拟 被模拟的对象可以相互发送查询 这些查询接下来作 为排队的任务执行 查询对象又同步等待着响应时 会发生这种情况 b 资源不足 线程池的一个优点在于 相对于其它替代调度机制 有些我们已经讨论过 而言 它们通常执行得很好 但只有恰当地调整了线程池大小时才是这样的 线 程消耗包括内存和其它系统资源在内的大量资源 除了T h r e a d 对象所需的内存之 外 每个线程都需要两个可能很大的执行调用堆栈 除此以外 J V M 可能会为每 个J a v a 线程创建一个本机线程 这些本机线程将消耗额外的系统资源 最后 虽 然线程之间切换的调度开销很小 但如果有很多线程 环境切换也可能严重地影 响程序的性能 如果线程池太大 那么被那些线程消耗的资源可能严重地影响系统性能 在 线程之间进行切换将会浪费时间 而且使用超出比您实际需要的线程可能会引起 资源匮乏问题 因为池线程正在消耗一些资源 而这些资源可能会被其它任务更 有效地利用 除了线程自身所使用的资源以外 服务请求时所做的工作可能需要 其它资源 例如J D B C 连接 套接字或文件 这些也都是有限资源 有太多的并 发请求也可能引起失效 例如不能分配J D B C 连接 c 并发错误 线程池和其它排队机制依靠使用w a i t O 和n o t i f y 0 方法 这两个方法都难于 使用 如果编码不正确 那么可能丢失通知 导致线程保持空闲状态 尽管队列 中有工作要处理 使用这些方法时 必须格外小心 即便是专家也可能在它们上 面出错 而最好使用现有的 已经知道能工作的实现 例如在下面的无须编写您 自己的池中讨论的u t i l c o n c u r r e n t 包 d 线程泄漏 第二章移动游戏服务器系统技术综述 各种类型的线程池中一个严重的风险是线程泄漏 当从池中除去一个线程以 执行一项任务 而在任务完成后该线程却没有返回池时 会发生这种情况 发生 线程泄漏的一种情形出现在任务抛出一个R u n t i m e E x c e p t i o n 或一个E r r o r 时 如 果池类没有捕捉到它们 那么线程只会退出而线程池的大小将会永久减少一个 当这种情况发生的次数足够多时 线程池最终就为空 而且系统将停止 因为没 有可用的线程来处理任务 有些任务可能会永远等待某些资源或来自用户的输入 而这些资源又不能保 证变得可用 用户可能也已经回家了 诸如此类的任务会永久停止 而这些停止 的任务也会引起和线程泄漏同样的问题 如果某个线程被这样一个任务永久地消 耗着 那么它实际上就被从池除去了 对于这样的任务 应该要么只给予它们自 己的线程 要么只让它们等待有限的时间 e 请求过载 仅仅是请求就压垮了服务器 这种情况是可能的 在这种情形下 我们可能 不想将每个到来的请求都排队到我们的工作队列 因为排在队列中等待执行的任 务可能会消耗太多的系统资源并引起资源缺乏 在这种情形下决定如何做取决于 您自己 在某些情况下 您可以简单地抛弃请求 依靠更高级别的协议稍后重试 请求 您也可以用一个指出服务器暂时很忙的响应来拒绝请求 2 4 3 有效使用线程池的准则 只要您遵循几条简单的准则 线程池可以成为构建服务器应用程序的极其有 效的方法 不要对那些同步等待其它任务结果的任务排队 这可能会导致上面所描述的 那种形式的死锁 在那种死锁中 所有线程都被一些任务所占用 这些任务依次 等待排队任务的结果 而这些任务又无法执行 因为所有的线程都很忙 在为时间可能很长的操作使用合用的线程时要小心 如果程序必须等待诸如 Y O 完成这样的某个资源 那么请指定最长的等待时间 以及随后是失效还是将任 务重新排队以便稍后执行 这样作保证了 通过将某个线程释放给某个可能成功 完成的任务 从而将最终取得某些进展 要有效地调整线程池大小 您需要理解正在排队的任务以及它们正在做什么 它们是C P U 限制的 C P U b o u n d 吗 它们是I O 限制的 I O b o u n d 吗 您 的答案将影响您如何调整应用程序 如果您有不同的任务类 这些类有着截然不 同的特征 那么为不同任务类设置多个工作队列可能会有意义 这样可以相应地 电子科技大学硕士学位论文 调整每个池 2 4 4 调整池的大小 调整线程池的大小基本上就是避免两类错误 线程太少或线程太多 幸运的 是 对于大多数应用程序来说 太多和太少之间的余地相当宽 在应用程序中使用线程有两个主要优点 尽管在等待诸如1 7 0 的慢操作 但 允许继续进行处理 并且可以利用多处理器 在运行于具有N 个处理器机器上的 计算限制的应用程序中 在线程数目接近N 时添加额外的线程可能会改善总处理 能力 而在线程数目超过N 时添加额外的线程将不起作用 事实上 太多的线程 甚至会降低性能 因为它会导致额外的环境切换开销 线程池的最佳大小取决于可用处理器的数目以及工作队列中的任务的性质 若在一个具有N 个处理器的系统上只有一个工作队列 其中全部是计算性质的任 务 在线程池具有N 或N 1 个线程时一般会获得最大的C P U 利用率 对于那些可能需要等待Y O 完成的任务 例如 从套接字读取H T T P 请求的 任务 需要让池的大小超过可用处理器的数目 因为并不是所有线程都一直在工 作 通过使用概要分析 您可以估计某个典型请求的等待时间 w T 与服务时间 S T 之间的比例 如果我们将这一比例称之为w T S T 那么对于一个具有N 个 处理器的系统 需要设置大约N I W T S T 个线程来保持处理器得到充分利用 处理器利用率不是调整线程池大小过程中的唯一考虑事项 随着线程池的增 长 您可能会碰到调度程序 可用内存方面的限制 或者其它系统资源方面的限 制 例如套接字 打开的文件句柄或数据库连接等的数目 2 5 连接池 在基于J D B C 的数据库应用开发中 数据库连接的管理是一个难点 因为它 是决定该应用性能的一个重要因素 在对数据库连接进行透彻分析的基础上 实 现了一个高效的连接管理策略 使得开发高性能的数据库应用变得相对容易 在使用J a v a 语言进行和数据库有关的应用开发中 一般都使用J D B c 来进行 和数据库的交互 其中有一个关键的概念就是C o n n e c t i o n 连接 它在J a v a 中是 一个类 代表了一个通道 通过它 使用数据的应用就可以从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保产业园区场承包经营合作协议范本
- 餐饮外卖服务合作协议范本
- 高层财务人员保密协议及非竞争约束合同
- 餐饮技术入股与市场推广权益共享合同范本
- 商业地产摊位租赁与商业街区建设合同
- CEO任期制聘任合同范本与绩效考核指标
- 高端海鲜餐厅门面房租赁合同及食材供应协议
- 创业园入园协议书
- 蔬菜大棚搭建包工合同
- 腐蚀性气溶胶防护-洞察及研究
- 医院检验科实验室生物安全程序文件SOP
- 马铃薯脱毒种薯繁育技术
- 帕金森病患者的睡眠障碍课件
- 公司质量目标过程绩效评价表
- 埋针治疗评分标准
- 2022 年湖南省长沙市雨花区金海中学小升初数学试卷
- 行业标准:GB∕T 9254.2-2021 信息技术设备、多媒体设备和接收机 电磁兼容 第2部分:抗扰度要求
- 公文格式及公文处理(讲稿)ppt课件
- 合伙公司管理制度规定办法
- 环境工程原理课程设计清水吸收二氧化硫过程填料吸收塔设计
- 混凝土护栏技术交底
评论
0/150
提交评论