星期二, 十月 05, 2004

网格让利润增加7倍
作者: 转载自《每周电脑报》
Wednesday, March 31 2004 9:50 AM

在两年时间内,Butterfly.net公司利用传统的集中式服务器模型部署的一个大众在线游戏在2400万美元预订收益中产生了160万美元利润,而在基于网格的基础设施上提供同样的游戏却能产生1280万美元利润,利润增加7倍。同时,该系统支持的同时在线游戏人数由4000名增加到100万名。

网格的另一个关键操作优势是自恢复能力,这是其核心构架中自管理特性的一个副产品。在传统在线游戏模型中,服务器掉线对游戏人员通常意味着在此服务器上的游戏已经结束了。而网格的固有自恢复特性能无缝隙地将所玩的游戏转到最近的可用服务器上。对于游戏玩家来说,这意味着更满意的体验,没有了故障停机的沮丧。

重新定义 Butterfly.net公司是一家游戏基础设施提供商,它通过PC机、操纵台和移动设备将游戏人员连接起来。该公司成立于2000年,位于西弗吉尼亚州的Martinsburg和加里弗尼亚州的洛杉矶市,其客户包括美国、欧洲和太平洋地区的在线游戏开发商、发行商和服务提供商。

一次偶然的机会使Butterfly.net公司总裁David Levine意识到传统娱乐公园和在线游戏之间的相似性,即娱乐体验的总体质量通常成为其自身成功的受害者,最吸引人的游览路线总是参与人数最多并导致等待时间最长的那个线路;而最好的在线游戏能吸引最多的游戏人员,由此通常会降低在线游戏的性能。两者实际上都依赖“固定的”平台容量。在在线游戏中,游戏基础设施不灵活,游戏人员被分配给游戏网络中的某一服务器(通常最多有4000个用户)。另外一个缺点是游戏基础设施缺乏自恢复能力,不论是故障还是定期软件升级造成的服务器停止工作。

传统在线游戏基础设施对在线游戏的提供商也有一些不足,其中最主要的是需要保养和维护服务器基础设施并确保其安全。在线游戏提供商需要为基础设施投入巨大的前期投资,同时,市场推动需要合理地降低用户价格??“大众市场”价格,更增加了传统在线游戏业务模型的内在固有风险。这些因素也妨碍了游戏提供商投资提供在线游戏峰值时段所要求的容量,使网络性能下降和增加了故障停机时间。

如何使网络游戏真正地成为“大众"游戏, Levine的大致计划是创建一个可扩展、自恢复的在线游戏基础设施,它可以被租借给游戏公司。从功能上说,他的想法是利用先进的监视和路由选择技术,将与游戏有关的处理动态地分配到大量分布式、低成本服务器中。通过提供一种方法,在随需应变的基础上,将处理负载透明地转移到空闲资源上,这种平台将能消除现有游戏基础设施普遍存在的瓶颈和自恢复能力问题。Livine 的计划中所隐含的是让游戏人员与专用服务器脱钩,这将使他们实际上能在更广泛的范围内互动。

开始行动在2000年年中,Levine开始将计划付诸实施。他组织了一个技术专家小组,他们成为Butterfly.net公司的第一批员工。没有用多长时间,该小组就提出了一个计划,叫做“组播网格(multicast mesh)”,它是一系列相互集成的专用服务器,随着游戏范围的扩展,它能随需应变扩展。难度更大的任务是如何连接系统和不同协议之间的转换。为了在这方面以及更大的开发过程中获得帮助,Levine及其小组开始向Worldcom、惠普和IBM全球服务部招标。

到2001年底,Levine和他的小组决定使用网格计算技术来提升他们的游戏网络,这是因为之前IBM对其的指导和咨询。Livine指出选择IBM有很多因素,其中信任名列前茅。“我们的想法是,如果我们准备把整个公司的安危系于仍在婴儿阶段的网格技术的话,那么,我们需要与这样一家公司结成合作伙伴,他们能组织、集中并动用一切努力在网格计算领域取得成功。”

Levine还希望这家厂商能在一个解决方案中提供硬件、软件和服务等所有要素:在硬件方面,能提供包括专门的游戏服务器以及数据库服务器。同样,该系统也需要强大的数据库引擎来处理大量实时交易量。尽管系统在很大程度上将是自动的,它仍需要一种方法让“游戏主人”来跟踪和控制游戏领域的关键数据,如性格表现等。这一功能将由基于Java的应用服务器完成,它需要强大的现成能力并与解决方案的数据库密切紧密集成。另外一个关键因素是在所有产品中需要强大的 Linux支持。Butterfly.net决定采用Linux是由非常实际的考虑推动的,其中最重要的是Linux在游戏开发商中的强大吸引力。 Levine还指出:Linux稳定性的良好记录以及低成本也是决定其选择的关键因素。“光是考虑到在此构架中预计的机箱数量,我们就需要限制软件成本,并尽量提高平台的稳定性和性能,”Levine解释说:“我们看到满足所有这些的惟一实际选择是Linux。”

形成方案 Butterfly.net的解决方案叫做Butterfly网格,它由2个集群组成,每个集群由大约50台IBM eServer x系列服务器,服务器在弗吉尼亚州的Sterling和加里弗尼亚州的洛杉矶的托管设施上运行。根据它们在网格中的作用,这些服务器被分为游戏服务器、网关服务器、 精灵(Demon)控制器和数据库服务器4类。

Butterfly网格构架的特点是:服务器全部是网格状的,每个服务器通过高速光纤连接到所有其他服务器上。在游戏期间,各服务器将与(两个托管中心之间的)网格中的所有其他服务器实时通信,即组播。在这种等同联网方法中,游戏人员被透明地传输到网格中的最佳服务器上,这样,服务器资源将被分配给最普及的游戏上。这种网状拓扑和智能路由选择能力是网格自恢复能力、可扩展性和性能的核心。

软件实现在高层,网格的主要软件部件分为游戏专用软件(客户机级和服务器级)和基础设施软件(数据库)。这些部件通过Globus工具集中的一系列实用程序集成到网格机构中,Globus工具集完成对网格环境操作非常重要的3个基本功能。

资源管理功能 包含分配网格所提供的资源。关键实用程序包括Globus资源分配管理器(GRAM)和Globus访问辅助存储器(GASS),前者将游戏资源分配到特定服务器上,后者简化移植和运行应用(如游戏等)。

信息服务功能 它提供有关网格资源的信息。关键实用程序包括元计算目录服务(MDS),它作为目录系统,记录哪个游戏资源在哪个服务器上,并提供服务器配置、能力和状态信息。根据轻型路由访问协议(LDAP),MDS是根据基础系统优化应用程序性能的关键。

数据管理功能 包括在网格环境中访问和管理数据。网格的最终软件要素是支持游戏管理员(如:游戏主人)所需的应用服务器软件。如前面所述,游戏主人的关键功能是给某一游戏引入新的要素或改变游戏中现有角色的行为。为了做到这一点。游戏主人需要一种有效的方法来在网格服务器上跟踪和修改必要的数据库要素。Butterfly网格通过WebSphere应用服务器servlet完成这一功能,后者在后台运行,按不同时间间隔自动读取服务器日志文件和活动。要想改变游戏要素,游戏主人通过Java远程程序调用操纵数据库,调用命令是通过在WebSphere应用服务器上运行的管理门户发出的。

Butterfly网格定义的网络安全特性是使用网络边缘防火墙后的专用操作系统。为了在网络中实现安全鉴别和通信,Butterfly网格采用了新出现的开放网格服务构架的核心安全特性,这一构架嵌入在Globus工具集中,统称为网格基础设施(GSI)。在Butterfly网格中,在路线优化过程中或用户玩游戏过程中,当游戏人员在服务器之间移动时,鉴别问题非常重要。为了方便这一点,Butterfly网格利用了GSI的通用安全服务,这是一个基于令牌环的公钥加密系统。网络安全基础设施的另一个关键方面是它使用了网络地址翻译,网络在其自己的专用IP地址空间内工作。它将内部地址对外隐藏起来,这实际上是提供了一道防火墙。Butterfly网格还使用了GSI的单一登录能力,考虑到用户需要访问网格中的多个资源,这一点是非常重要的。

Butterfly网格的基本构架
构架层次 解决方案要素
最终用户 游戏人员在DVD、CD-ROM通过下载购买"大众多用户" 游戏。该游戏包括Butterfly网格客户机软件。
管理门户 要想改变游戏要素,游戏主人通过在WebSphere应用服务器上运行的管理门户来操纵数据库。
网关服务器 网关服务器在IBM x系列x330服务器上运行,网关服务器 执行协议转换并将游戏人员连接选通到游戏服务器上。
精灵控制器 精灵控制器是控制不是直接由游戏人员动作所控制出的游戏 要素的服务器。精灵控制器与网格的网关服务器交互。
游戏服务器 游戏服务器负责在网格中运行游戏。决定游戏人员何时转到新服务器的智能常驻在游戏和网关服务器中。当游戏服务器 使用过度或故障时,该游戏服务器向网关服务器发出一个控制消息,网关服务器将最终将游戏人员重新指到新的游戏服务器上
数据库服务器 数据库服务器负责存储保持游戏连续所需的所有信息(物理、地理、游戏规则等)。

在服务器之间无缝隙地移植的能力使网格成为真正自主计算的典范??并使它最明显地区别于标准“单服务器”在线游戏配置。

如何使用Butterfly网格
在玩游戏前,某一游戏的所有要素??艺术资源、游戏逻辑和世界地理等??需要存储到配置管理系统中并进行测试。一旦测试完毕,Butterfly网格将这些要素自动提供到服务器上,服务器将开始支持游戏。在购买游戏后,游戏人员通过视频游戏操纵台、PC、机顶盒或运行Butterfly网格客户机软件的移动设备登录到网格上。游戏人员一旦登录到新的游戏中,通过查看存储在网格的DB2数据库中的所有有关用户数据,网格将需要从他以前的会话中恢复该游戏人员的游戏参数??即“具体化”。这一轮询过程由网关服务器发起(用户的第一个入口点)。网关服务器联络游戏服务器,游戏服务器反过来又联络常驻用户数据的数据库服务器。

在获取了游戏人员的数据后,通过在游戏服务器上将该游戏人员的数据表示为某一对象,游戏服务器将在游戏世界中重新确认该游戏人员。游戏人员在游戏世界中正是以临时对象这种形式存在的。与这一游戏人员有关的每个行动都涉及从数据库服务器读数据或向其写数据。

在游戏期间,Butterfly网格将世界分为一系列相互排斥的地区,叫作“地点”,每个地点被分配给某一特定服务器。在游戏期间,游戏人员可能会遇到在某一地点有过多活动的情况??这是由于游戏的内部因素产生的(如:人工智能系统触发的战斗)或者有大量用户??这增加了这一地点的服务器的利用率。在这种情况下,网格的“心跳检测”特性(Globus工具集的元计算目录服务)将把服务器标记为使用过度,并将高活动地点移到网格中利用率降低的服务器上。同样,在服务器故障时,利用同样的资源监视特性,游戏将被自动、无缝隙地转到网格中最近的最佳服务器上.

在游戏人员从一个地点(与服务器A相关)转到另一个地点(与服务器B相关)的例子中也可以看出Butterfly网格的内在活力。当游戏人员接近分开两个地点的边界时,网格启动一个叫做“哨兵”(Sentinel)的消息传递通道。哨兵的功能是访问DB2数据库上的游戏人员的有关游戏数据,并在新服务器上创建游戏人员的数据“快照”(即形成一个新对象)并删除原对象。一旦某一游戏人员被分配给新地点的新游戏服务器,那么就将从新地点的数据库服务器读数据或向它写数据。在此,Globus工具集实用程序??即GASS和GRAM??将起关键作用,它自动将游戏脚本导入到新的服务器。(责任编辑:刘燕之)

0 Comments:

发表评论

<< Home