Union Platform -- 多用户应用程序开发平台

Union Platform是一个多用户互动开发平台. 他的主要目的就是让用户可以使用Adobe 的Flash 客户端能够互相协作,同步数据,从而编写高效的多人互动应用程序。Union Platform 包括了

  • The Union Server : 一个连接多客户端,并且组织,协调同步数据的服务器。
  • Union Client SDKs: 一个用于编写Flash 客户端的 API以及工具包
  • The UPC Protocol: Union平台的交流协议


     其发起人之一 Colin Moock 同时也是大名鼎鼎的写过Essential Actionscript 3的作者,近期接受了InsideRIA的一个访谈。具体内容可以参见http://www.insideria.com/2009/06/union-platform---interview-wit.html

在Union 平台上,或者说所有的多人同步游戏中都有如下几个概念:

  • Clients :客户端其实就是一个一个连接到服务器的程序。其一般都由一个具体的用户来操控。客户端可以由开发人员随意定制。每个客户端都有一个唯一标示其身份的id,这个id可以在多次的连接中唯一标示此客户端。客户端可以保存持久化信息,这意味着你可以在多次连接和断开后重新获取到其上次连接时的一些信息和数据,甚至在客户端下线的时候也能够获取用户的相应信息。
     
  • The Server: 服务器是多用户应用程序的控制器。他是一直运行的并且监听客户端的连接。 客户端通过一个网关(Gateway)来连接服务器,这里,这个网关通常是一个TCP/IP的套接字连接,但是在某种情况下,也可以是通过UDP协议或者HTTP Polling(也就是循环刷新)的方式连接到服务器。 客户端无法互相直接交互信息,他们依靠将所有信息发送到服务器,再由服务器转发给各个客户端。
     
  • Messages: 消息是一个带有名字(name),参数(arguments),源地址(Source),目标地址(Desination)的简单的指令。举例来说,在一个聊天室里,一个消息从客户A到客户B可能会使用 CHAT 做为其消息名(name), 参数则是 hello, 源地址是 clientA, 目标地址是 clientB。 你可以过滤消息,所以,你可以给某一组用户发送消息。 你可以把消息认为是你的多用户程序的一种方法调用。
     
  • Rooms:房间则是一个客户端和其他客户端进行同组交流的概念。 客户加入一个房间的时候,他就成为这个房间的一个接受单位。 当我们发送消息给某个组的时候,我们是给这个房间发送消息,而不是给所有的客户端单独发消息。
    一个用户可以加入多个房间,比如在一个游戏中,一个用户可以再游戏信息的同步房间中,而也可以同时在聊天信息同步的房间中。
    用户可以不加入一个房间,而是观察(Observe),监听这个房间。这种情况下,客户不被称为房间占有者(room’s occupants),也不会显示在其列表中,但是,客户端会接收到所有关于这个房间的更新。
    房间本身也有一定功能,这里这个概念被称为room modules。 这个概念则是指你可以给房间本身编写一定逻辑,让房间具备某种逻辑处理能力。 比如说,当在游戏中获胜的用户产生后,房间可以自己的逻辑可以自动给这个客户发送一个邮件。
  • Attributes: 如果我们把消息(Messages)理解为一个多用户程序的方法调用,那么属性(Attributes)则是其变量。属性可以用来跟踪某个数据,并且可以被在多个连接中共享。请注意,属性有两种,一种是被Clients定义的,一种是被Room定义的。
    Room Attributes:这个概念则是由房间创建一些属性,每次这些属性被创建,赋值,或者删除的时候,客户端就会得到相应的更新。(当然客户端可以选择忽略),举例来说,如果一个房间的的属性是temperature ,其值是32. 那么所有房间中的客户端会接受到一个更新。
    Client Attributes: 客户端属性有两种,一种是全局的,一种是房间域。 当一个客户创建,赋值或者删除一个全局属性的时候,在任何房间中的任何个客户端都会接受到这个变量的更新(有的客户端可以选择过滤掉)。当客户端创建,赋值,或者删除一个房间域的属性时,这个房间中的所有客户都会收到这个更新。

 

目前,Union的版本是1.0 alpha2

Union提服务器代码下载,你可以部署在你想要的任意服务器上,也可以选择以使用服务的方式来使用Union,即使用其设置好的在线服务器编写你的应用程序。

riadevID: 
您给予的分值: None 平均分: 9 ( 5 票)

在Client客户端的介绍

在Client客户端的介绍里,有错字:“这几位着你” should be “这意味着”

多谢指正,已修改,

多谢指正,已修改,还请大家继续监督我们的文章质量

不错,很感谢Bill,希

不错,很感谢Bill,希望可以有更系统的文章出来。

这篇文章分析出了完成多用户应用的各个要素

看后获益匪浅,首先了解了完成一个多用户应用的各个要素(服务器,客户端,Room,消息,变量),然后也了解到了Union或许是个不错的制作同步的选择,偶将下载试用

发表新评论

  • 网页地址和电子邮件地址将会被自动转换为链接。
  • 行和段被自动切分。
  • 您可以使用下面的标签来高亮显示您的评论内容: <code>, <blockcode>. 可以使用"[foo]".旁边显示标签样式 "<foo>" PHP代码可以用这样的区块来包含<?php ... ?> or <% ... %>

更多格式化选项信息

验证区域
系统验证:请回答下面的问题