- 积分
- 23
- UID
- 6857
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
各位好:
我们业余时间设计了一个平台软件,不知能否方便大家的分布式程序的开发,我们的目的是自己的成果不要烂在自己的手上,大家能用起来,使它能发展壮大,同时,根据不同的需求,我们也可以不断的完善的我们平台,这个平台花了近5年的时间做的,开始是针对网游做的一个开发、运行平台,去年把它改造了一下,适合于更通用的分布式计算,大家别误会,我们现在不是商业团队,目前还是在工作之余做的,欢迎大家试用!我把平台介绍贴给大家,感兴趣的email联系:[email protected]
Corba、DCom主要针对服务器端而提供的技术,对于客户端,可以通过Corba接口和DCom接口访问不同的服务器,形象的可以说是多个服务器对一个客户端;与之相比较,SRP分布式对象模型中,一个对象分布在服务器和多个客户端,是真正意义上的分布式对象技术,而Cobra/DCom更加接近客户服务器技术。
SRP分布式对象支持面向对象的概念,支持对象的继承、重载等特性。各个应用服务之间,可以实现对象的重用。由于对象的粒度小,增加了可执行代码之间的重用度,提高了软件的可重用性。
SRP对象同时分布在服务器和客户端,并且是多个服务器和多个客户端,可以根据对象处理的负荷,将对象的处理分布在不同的实体上执行,因此基于SPR分布式对象模型,很容易实现负载均衡。
1.2.1 SRP分布式对象
在SRP分布式运行环境下,对象有三种存在方式:存在于本地的本地对象(客户端或者服务器);存在于特定的客户端-服务器的客户对象;存在于服务器和所有的客户端全局对象。这三类对象的特点如下:
1.本地对象
在程序运行时,根据需要动态产生,仅仅在本地有效,在其它(服务器或者客户端)运行实体上,对象无效。对象的属性数值本地维护,不涉及动态数据同步。
2.客户对象
服务于特定的客户端-服务器,一般是在客户端接入之后动态生成。在服务器端和特定的客户端有效。在其它(客户端)运行实体上无效。支持对象的全局属性数值的动态数据同步,服务器对对象属性数值的修改,由SRP平台自动同步到特定的客户端。客户端对对象属性数值的修改,由SRP平台自动同步到服务器。
3.全局对象
一般静态创建(定义于对象的描述文件中),也可以动态创建。该对象所有(客户端和服务器)的运行实体上有效。支持对象全局属性的动态数据同步,服务器对对象属性数值的修改,由SRP平台自动同步到所有的客户端。任何一个客户端对对象属性的修改,由SRP平台自动同步到所有的客户端。当新的客户接入时,由SRP平台负责全局对象的自动创建和初始属性数值的同步。
1.2.2 SRP对象的属性
传统上,对象由对象的属性和对象的操作方法组成,对象的属性可以有不同的访问权限,public、protect、private。在分布式运行环境下,不同于传统的面向对象技术,SRP分布式对象的属性在传统对象的属性特征的基础上,增加了新的特征,SRP对象的属性分为两种模式:本地属性和全局属性。其特点为:
1.本地属性
任何实体(客户端或者服务器)对该属性的修改,仅仅在本地有效,属性数值不会同步到其它实体。
2.全局属性
任何实体(客户端或者服务器)对该属性的修改,如果是客户对象,则进行特定客户端和服务器端的更新。如果是全局对象,则同步到所有的服务器和客户端。
1.2.3 SRP对象的特点
在SRP平台中,为了支持对象的重载,和对象粒度上的系统、应用的升级,把对象进行了拆分,对象属性数值和对象的方法分离。客户端连接到服务器后,服务器端的执行代码同步到客户端本地运行。
1.3 SRP分布式服务
把一组分布式对象组织起来,使其为用户提供某种或者某些功能,称为SRP分布式服务。也可以说,SRP分布式服务是具有某种功能的对象的集合。SRP分布式服务有以下特点:
1.松散对象耦合
对象之间耦合关系是松散的是指:构成分布式服务的对象的执行体,可以编译在不同的文件中,一个对象在装载运行之前,不知道另外一个对象的属性和方法的地址。对象在其执行过程中,必须能够容忍其它对象的删除,执行代码失效等异常,并在不同的情况下予以不同的处理。
2.可管理的服务
由于对象之间的松散耦合关系,每个对象都可以动态进行管理(增删改操作),因此SRP分布式服务是可管理的。可以通过工具,动态获得对象属性数值,动态进行对象的增加、删除操作。
3.服务的初始化
SRP分布式服务由分布式对象构成,与传统的应用程序不同,没有入口函数。但是作为一个完整的服务,需要对服务中涉及的相关对象进行初始化。完成初始化任务的对象,称为服务的初始化对象。每个服务都有一个初始化对象,该初始化对象在服务加载完成之后运行,完成对整个服务的初始化。
3.服务的客户端和服务器端同步
分布式对象在服务器和客户端需要保持属性的一致。同步包括初始同步和运行中的同步。在客户端与服务器端建立连接之后,需要进行初始同步。初始同步完成之后,对象属性的动态变化,需要同步到服务器和客户端。
4.服务项目
分布式服务由服务项目组成,每个服务项目包含一些分布式对象,提供分布式服务的某些子功能。服务项目作为客户和服务器端同步的单元,这样设置的目的主要考虑同步传输的通信量。在一个服务项目内,可以将对象分为若干组,客户端通过激活集设置,说明与哪些组保持同步状态,进一步减少同步的通信量。支持每个客户连接的流控。
1.4 SRP分布式对象模型
基于以上分类,SRP提出的分布式对象模型如下:
1. 对象管理器
对象的创建、删除、查询、属性修改,每个对象分配有一个在服务内唯一的标识符。
2. 事件调度器
对SRP平台产生的事件(对象的创建、销毁、属性变化、激活状态变化)和对象字定义的事件进行调度。
3. 同步数据控制层
负责对象的定义在服务器、客户、和调试器之间的同步。包括客户/调试器连接的初始数据同步,和运行过程中的动态同步。
4. 同步过程控制层
处理服务器/客户、服务器/调试器之间初始对象定义同步。
5. 通信网络层
负责服务器/客户、服务器/调试器之间连接的建立和数据传输。
客户端和服务器端的应用,通过本地访问接口与SRP平台进行交互,而不需要关心对象属性数据在服务器和各个客户端之间的同步。
1.5 SRP平台
SRP平台实现了SRP分布式对象模型。
1.5.1 对象与SRP平台之间的交互
 通过调用SRP平台输出的接口函数
 通过处理SRP平台产生的事件
1.5.2 对象之间的交互
 使用对象提供的功能函数
 产生事件,由其它对象处理该事件
 处理其它对象产生的事件
1.5.3 SRP平台的功能
SRP平台分为三部分:SRP服务器(SRPServer)、SRP客户端(SRPClient)、SRP调试器(SRPDebug)。
1.5.3.1 SRP平台的功能
SRP平台提供分布式服务的运行环境,具有以下功能:
● 对象属性初始同步:服务器和客户端,服务器和调试器之间的对象属性初始同步
● 对象属性的动态同步:对象属性的修改,由SRP平台自动同步到其它实体。
● 对象执行体版本同步:服务器和客户端,服务器和调试器之间的对象执行体版本同步
● 对象执行体的加载和初始化。
● 对象产生事件的调度:依据对象的父子关系,自动对事件进行调度。
● 静态数据的管理:对象包含的静态数据,根据设计单独存储成文件,在客户端/调试器需要时,由SRP平台自动从服务器端下载。
● 对象管理:对象创建,销毁,激活等变化,由SRP平台产生事件,通知对象的执行体进行处理。
● 对象消息传输:对象在其客户端和服务器端,可以通过SRP平台相互发送消息。
● 客户接入管理:当服务器端由客户接入时,自动调度客户接入管理对象进行处理。
● 脚本安全管理:分布式服务和对象的定义存储为脚本文件,支持用户和密码保护,用户可以分别具有读、写、执行和导出的权限。
一:SRPDebug
● 服务和对象编辑:完成对分布式服务和分布式对象的编辑。设置服务属性,定义服务项目。
● 对象属性编辑:内置属性值编辑器,可以对SRP服务的任何对象进行属性的编辑。
● 支持本地编辑(SRPDebug装载服务)和在线动态编辑(SRPDebug连接到SRPServer,对正在运行的服务中的分布式对象进行增删改操作。
● 支持外挂编辑器:对于复杂对象的数据,支持外部编辑器模块,外部编辑器可以使用SRP平台提供的接口,实现对象的可视化编辑。
● 生成对象模板:生成对象实现代码的框架和头文件定义。
● 导入XML文件:SRP服务支持XML定义,可以将XML文件格式定义的服务导入到SRP平台,文件可以定义某些分布式对象,也可以是完整的服务。
二:SRPServer
● 分布式对象服务器端运行环境:加载SRP服务,自动调用SRP服务的初始化对象,完成服务初始化。
● 支持客户端接入管理:客户端建立连接之后,调用客户管理对象,实现客户的接入过程。
三:SRPClient
● 分布式对象客户端运行环境:连接服务器,根据服务器指令,动态加载SRP服务,自动调用SRP服务的初始化对象,完成服务初始化。
● 提供统一的运行环境,采用SRP客户端平台,可以连接到任何SRPServer,执行不同的服务。
● 漫游:客户端正在运行的服务,可以启动另外一个服务连接。 |
|