如下面例子: 游戏机 万 方数据 http://www.cafesgame.com/ 第2期 ’public 郑子彬等:基于Sen,Iet的手机联网游戏服务器通用架构研究 cl蝴GameData{ intIng呦euserNu“; getlng枷euserNum(){ IIlg砌eU即把Num; int 157 (上接第116页) //游戏中的用户数量 一 private try{if(conn!=nuU)conn.close();} catch(Exception e){l} ?’ public喜ynch功nized r眦um Sy8tem.out.一ntln(”ejbhad()called.key=”+accountID+” } public void //aIl } public synchmnized balance=”+balance); void鸵tIngameU∞rNum(int n){ Ing哪eU解reNum:n; } 2…… ejbSto”(){.…一} are ejb methods粕d bu8ine鹪methods t11e same舾in figIll-e } 2.3在客户端EJB对象的持久化 3 实例 为了验证这个手机联网游戏服务器通用架构的可行性,在 前面讲到在服务器端容器通过EJB标准回调方法保持客 户状态信息。如果在客户端应用软件需要暂时切断与Bean实 例的连接,一段时间后又恢复使用,且希望从客户断开时的状态 重新连接,这就需要在客户端保持状态信息。但任何Bean实例 都是在容器内,不被客户看见,而客户的调用都是通过EJB对 象转发到容器中的Bean实例,所以客户仅能持久化EJB对象。 J2EE定义了EJB对象手柄,它可长期在客户端代理EJB对象, 使用它可再次连接到EJB对象。不会丢失EJB的会话信息,下 列用Java详细说明了怎样使用EJB对象手柄。因为彤B对象 手柄与客户环境有关,所以有EJB对象手柄的客户应用不能在 机器间移植。 Ha|ldle 它的基础上设计了两款游戏:泡泡龙和俄罗斯方块。利用sen,一 let编程技术实现了服务器端,服务器端一共包含了三个Servlet 应用程序:bbbyserver、PaoPaoserver和KetricServero使用 SQLsenrer2000作为数据库服务器,并基于J2ME平台针对Nokia 6600手机开发了这两个游戏的客户端。 游戏的界面图如图4所示。 myH蛐dle=myEJB0bject.getH卸dle();. //1.Get cjb Objecth卸dle f而m ejb object //2.Seriali∞my h蛐dle蛐dtIlen鲢veitjIl 图4 pen啪ent storage 0bjectOutputSt卦哪outStre姗 outputStrem(”t,tmp“)); outStreⅢ.clo∞(); myEJBObject.mr∞ve(); //3.Disconnect = nw 0bjectoutputStre锄(new File- 在测试过程中,利用两部N0ⅪA6600的手机通过中国移动的 GPRs移动网络与服务器进行联网游戏测试,服务器能够迅速 地处理各种请求并返回正确的应答信息。接着利用Pc机上的 加tStream.wfiteObject(myH扑dle); NOKI姗手机模拟器模拟多人同时联网的情况,在不同Pc 确地处理多线程访问,没有出现数据出错的现象。 本文设计的服务器取得了一定的效果。 4 the client or u辩myHomec崎ect.remove() 机上同时启动20个客户端进行长时间的连续游戏,服务器能正 //4.De鸵riali研the EJB object in山e”咖anent st鲫唔e FileIIlput. ObjectInputstre锄instream=new Strem(”t.tInptf)); inS“℃锄.close(); ObjectInpu鼬锄(new myHandle=(H跚dle)inSt陀锄.readObject(); 结语 本文对可伸缩的手机联网游戏服务器体系架构进行了具 myEJBObject=(AccoIInt)java】c.枷.PortableRemoteObject.narrow (myH∞dle.getEJB0bject(),Accoum.class); //5.call 体的阐述,并设计了一个手机联网游戏服务器通用架构,此通 用架构结构对不同游戏服务器的共同点进行了抽象,利用它 可以很方便、快速地实现具体游戏的服务器,提高开发效率, 减少重复劳动。期望对于手机联网游戏服务器的开发有所 帮助。 3 tho孵business methodB oIl ejb object船u8ual 总结 本文详细讨论了J2EE平台上对会话BeaIl的状态维护和 BMP实体Be粕的持久管理,也介绍了在客户端状态保存的概 参考文献 [1]se蟛o caltagim∞,Matth州Keye,Bry∞sclllief,Mary Jane willshim. 念,并给出了Java源码,以便更好地理解EJB的各种理论。这 些知识和源码都是在J2EEl.4的平台上实现的。 A陀hit鳅u地f醅a 118l of m鸪sively multiplayer伽line mle playing g蜘【le.Jour- C咖puting sci哪瑚in Colle静,2002,18(2):105一116. R 参考文献 [1]Rom肌Ed.Mastering Enterprise [2]E血cmnin,An‰ny cient Kurc,Bumn Filstmp,sugih JaInin.An眺一 JavaBe粕.Third Edition. synchroTlizati伽Mechanism for Mirrored Game Archjtectur∞. [2]htIp://jgm.m.col叫2e∥1.4/doc&/ap∥参考最新的J2EE编程接口. [3]hnp://java.sun.con川2se/1.5.O/doc∥卵∥参考最新的JAVA程 序语言. 1(1uwer Academic PubliBhen.2003,1. [3]陈粤,李志蜀,罗奕.基于J2ME平台的手机通讯程序分析与实现。 计算机应用,2003,23(5):107—109, [4]KaJl M∞8.Java Servlet开发人员指南.北京:清华大学出版 社.2003. [4]http://java.5un.co∥.i2ee/tutoriaL/l一4?fcs/index.htIIll参考J2EE 详细说明. [5]sue spielnm.J2EE 1.4编程指南.电子工业出版社.瑚N 7一12l一0l慨撕. 万 方数据 基于Servlet的手机联网游戏服务器通用架构研究 作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 被引用次数: 郑子彬, 王建民, 袁辉, 郭庆唐, Zheng Zibin, Wang Jianmin, Yuan Hui, Guo Qingtang 中山大学计算机应用研究所,广东,广州,510275 计算机应用与软件 COMPUTER APPLICATIONS AND SOFTWARE 2008,25(2) 0次 参考文献(4条) 1.Sergio Caltagirone.Matthew Keys.Bryan Schlief.Mary Jane Willshire Architecture for a massively multiplayer online role playing game 2002(02) 2.Eric Cronin.Anthony R Kurc.Burton Filstrup.Sugih Jamin An Efficient Synchronization Mechanism for Mirrored Game Architectures 2003 3.陈粤.李志蜀.罗奕 基于J2ME平台的手机通讯程序分析与实现[期刊论文]-计算机应用 2003(05) 4.Karl Moss Java Servlet开发人员指南 2003 本文链接:http://d.g.wanfangdata.com.cn/Periodical_jsjyyyrj200802057.aspx 授权使用:吕先竟(wfxhdx),授权号:19d596ce-568a-4765-935a-9e5800c87bb2 下载时间:2010年12月26日 游戏机 http://www.cafesgame.com/