设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 游戏开发 >> 基于分布式对象的网游程序结构设计(5)-SRP分布式对象的关键技术
精品推荐
游戏开发点击TOP10
·一个简单例子表示fixed functional VS/Assemble VS/HLSI VS的例子
·游戏引擎演化史
·Quake源代碼分析(草稿).1
·基于LOD的大规模真实感室外场景实时渲染技术的初步研究 part II&III
·一个有关扑克牌牌型分析的问题
·网络游戏外挂制作之我所见(5)
·DirectX SDK August 2007发布!全新3D图形接口
·《Windows游戏编程大师技巧》(第二版)第11章
·基于LOD的大规模真实感室外场景实时渲染技术的初步研究 PART I
·DirectX5.0最新游戏编程指南 DirectDraw教程篇 一、配置DirectX SDK
编程开发点击TOP10
·java笔试题
·给 OpenPOP.Net 加一个小功能,可用于收取邮件时监测数据流量!
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·MyEclipse 下开发JSF教程
·ASP.NET 程序中常用的三十三种代码
·真正的公农历转换类for VB
·ASP.NET2.0下含有CheckBox的GridView删除选定记录实例
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·Java基础:Date和Calendar类的使用方法
·邮箱签名图标 E-Mail Icon Generator
精选专题

基于分布式对象的网游程序结构设计(5)-SRP分布式对象的关键技术

作者: 来源: 时间:2007-11-24 11:33:36

基于分布式对象的网游程序结构设计(5)-SRP分布式对象的关键技术(1)

该系列文章发表的观点和讨论的内容,或许偏向概念一些;距离实际的编程技术,技巧有些差距。但是这里提及的概念,都是很普通的,略为思考就能够明了的概念。相信很多同行能够理解本文所讨论的内容。目前现有的分布式对象的概念,都不是很完善,这也给了我们一个机会。
基于前面的论述,SRP分布式对象具有以下特点:
1. 对象分布在服务器和客户端,两者通过唯一的标识进行对应。
2. 对象的执行代码(脚本),需要分布到客户端。
3. 对象的属性,需要分布到客户端。
4. 对象象管的数据,需要分布到客户端。
分布式对象管理功能,完成上述对象执行代码(脚本),属性和数据的分布,并为其上的应用,提供基于对象的标准接口。
对象包含属性,方法和数据三部分,其方法通过执行代码(脚本)来体现。为什么说数据是对象的一部分呢?举一个简单的例子能够很好的说明,比如图片对象,其属性有宽度,高度,编码格式,位宽等。很少认为图片实际的数据也是属性,因此将对象数据单独列出来,与属性和方法并列在一起,作为描述对象的一项,更加符合实际。纵观目前分布式对象的概念,不管是DCOM,COBRA等,都没有如此完善的定义,基于现有概念的实现,或多或少都受到一些限制。
其实,SRP分布式对象的概念,在目前的应用中,都有实际的对应。例如,在HTML网页中,如下一段描述图像的脚本:
< IMG height = 10 src = “..\images\***” width = 10 border = 0 >
描述中包含有图像对象的属性(宽度,高度,显示边界,图像文件名称),实际的图像文件为图像对象的数据。还可以定义Jscript脚本作为图像对象的代码。与这里谈到的SRP分布式对象的概念完全对应。该图像对象的内容,随着HTML文件,在HTTP响应消息中传递给客户端。也即,图像对象的属性,方法和数据,通过HTTP协议分布到客户端。但是HTML格式虽然包含全了对象的内容(属性,方法和数据),但是并没有对象的概念,因此基于HTML的应用没有层次结构,其应用扩展受到限制,如前文所述。
SRP分布式对象这些特点的实现,将会遇到一系列新的问题,也会引出对应的关键技术:
1.对象的唯一标识

服务器端和客户端一般分布在不同的物理实体上,其对象之间对应关系,需要唯一一个标识来确定,这里认为采用UUID是一个不错的选择,不同计算机上产生的UUID不重复,并且范围足够大,可以唯一在网络环境中标识一个对象。

2.对象和对象属性的分类

对象的属性,方法和数据为什么分布到客户端,进一步研究这个问题,就会发现,其目的是为了构造在客户端的运行环境,对象操作进行在客户端本地实现,以提高客户端应用的友好性和体验性。这点也可以从HTML,Jscript,AJAX的发展历程中总结得到。为了构造本地运行环境,对象的属性需要有本地属性,记录本地运行对象相关的状态;对象的运行也可能依赖于其它对象,这些被依赖的对象可能是本地创建的,因此对象也分为全局对象和本地对象;对于全局对象,可以进一步分为与一个客户端相关的对象和与所有客户端相关的对象;与一个客户端相关的对象,称为客户对象。与所有客户端相关的对象,称为全局对象。
总结起来,对象分为三类:全局对象,客户对象和本地对象;每个对象的属性分为两类:本地属性和全局属性。

3.对象执行代码(脚本)同步

在需要考虑效率的分布式饮用场景下,需要使用C/C++进行对象执行代码的编写,需要编译成二进制文件;分布式对象管理功能,必须支持将执行代码分布到客户端,以便客户端对象能够正常执行其功能。
在同步过程中,不能够,也不假设对象的属性不变化,对象可能增加属性,可能删除属性,执行代码可能升级,这些情况,分布式对象管理模块必须能够正确地处理。

4.对象数据的下载

对象数据作为对象的一项内容,其特点与属性不同。在客户端运行环境中,某一时刻,可能不需要对象的所有数据,因此要根据需要进行下载。对象数据的更新,需要触发新的下载过程。分布式对象管理功能,需要支持对象数据的这些功能。

5.对象的分组

在复杂的应用中,客户端不可能同时需要所有的对象,因此可以根据需要,下载需要的对象,以便降低网络的传输。为此,对象需要分为不同的组,客户端根据执行的场景,选择下载不同的对象组。分布式对象管理功能需要包含对象组的管理,对象组在SRP平台中称为服务项目。

共2页 9 7 [1] [28 :>

基于分布式对象的网游程序结构设计(5)-SRP分布式对象的关键技术 相关文章:
基于分布式对象的网游程序结构设计(5)-SRP分布式对象的关键技术 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com