游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3780|回复: 1

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

[复制链接]

17

主题

22

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2007-11-19 22:22:00 | 显示全部楼层 |阅读模式
该系列文章发表的观点和讨论的内容,或许偏向概念一些;距离实际的编程技术,技巧有些差距。但是这里提及的概念,都是很普通的,略为思考就能够明了的概念。相信很多同行能够理解本文所讨论的内容。目前现有的分布式对象的概念,都不是很完善,这也给了我们一个机会。
基于前面的论述,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平台中称为服务项目。
       
        这些问题的解决和实现,就构成了完善的分布式对象管理平台,在此平台上开发的应用,将更加方便,高效和灵活;同时具有类似BS浏览器免安装的特性。

0

主题

8

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2007-12-5 15:55:00 | 显示全部楼层

Re: 基于分布式对象的网游程序结构设计(5)-SRP分布式对象

网络游戏里面使用分布式对象是大势所趋,不仅可以降低开发的难度,同时也可以提高产品的质量,但是网络游戏中使用分布式对象,需要解决两个关键问题:1.一致性模型,2.负载均衡算法。这两个问题不解决,基本上游戏里面使用分布式系统就没有希望。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 19:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表