SHOW上个人作品, 基于Comet变体技术的WEB应用服务器BEINGX

SHOW下个人作品, 基于Comet变体技术的WEB应用服务器BEINGX
大家好,刚刚参加完天津市大学生计算机创新应用竞赛。BEINGX是我的参赛作品。今天拿来给大家SHOW一下。通过了几个月的通宵苦战,终于完成了一款从HTTP解析开始都有自己完全制作的WebService。

  先说说我为什么要做这个,大家知道旧式的B/S结构已经不能满足人们对WEB应用的需求了。而现在WEB2.0时期对WEB应用的需求大部分转向了用户体验,即时性,云计算等一些新的特性。为了满足这一系列的特性,你做一个WEB应用必须引入大量的框架技术和应用服务器。而本次这个服务器的设计呢,总结了以往在WEB应用中的一些经验和如何开发与服务器交互度高的服务器推技术而诞生。

  随着这个比赛项目的结束。我也完美告别了我的大学学生生活。也是我大学中最后一个参加的比赛了。

  服务器特点:

  基于Comet变体技术作为根本。接受HTTP请求,封装成一个特有的Comet对象放入线程池,从而实现服务器推技术。

  基于JSONP实现数据跨域调用,可方便与JQuery结合。

  开放的程序API,更适合编写长连接服务。底层已经完全被服务组件托管。

  基于IOC+AOP的设计理念,XML动态配置引用和实现对象。没有基于任何第三方框架技术。完全自己实现基于IOC容器的服务器组件。

  为了体现服务器的及时性,我制作了一个基于HTML5+CSS3的网页游戏,支持多人在线。

  展示视频如下:
 
31 楼 beingchou 2009-11-26  
xiaozhen57520 写道
我也比较喜欢html5+css3。不过看楼主怎么规划自己的技术之路,如果比较喜欢ui,那就多学习这些, 喜欢后台,就多学些,构架,优化,数据库方面。

都在学,感觉前后台结合实在太紧密了。虽然有很多解耦的服务组件。但是缺乏哪方面的知识都不行呢。
32 楼 zt122583 2009-11-26  
only_java 写道
comet技术本身不难,但是不太实用。高并发下只有死路一条


QQ游戏用了多少台服务器,基于comet的web应用就能用多少台服务器。一个socket连接能比一个http长连接消耗的系统资源少多少?我想知道。
33 楼 xinyuexiaodi 2009-11-26  
你强,我汗颜
34 楼 startfromheart 2009-11-26  
历害,没想到用用HTML5和CSS3能有这么好效果,我要好好研究下。
35 楼 yry20063229 2009-11-27  
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?
36 楼 beingchou 2009-11-27  
yry20063229 写道
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?

我也不知道,只是知道理论,自己做的。
37 楼 linhong_1001 2009-11-27  
什么是Comet变体技术
38 楼 redwave 2009-11-27  
beingchou 写道
yry20063229 写道
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?

我也不知道,只是知道理论,自己做的。


这句话说的有点装X,看不管
39 楼 xiaozhen57520 2009-11-27  
redwave 写道
beingchou 写道
yry20063229 写道
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?

我也不知道,只是知道理论,自己做的。


这句话说的有点装X,看不管

客户端请求,服务端线程挂起,简单的实现,不是很复杂。
40 楼 beingchou 2009-11-27  
xiaozhen57520 写道
redwave 写道
beingchou 写道
yry20063229 写道
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?

我也不知道,只是知道理论,自己做的。


这句话说的有点装X,看不管

客户端请求,服务端线程挂起,简单的实现,不是很复杂。


对,参考资料很少的,我也不好说。我做的主要是大并发实现控制和HTTP解析。等等COMET方面就是做了一个COMET容器和长连接池。也不好说。之后成熟了我会公布的。。我从不装X。。请大家理解。
41 楼 treblesoftware 2009-11-27  
beingchou 写道
xiaozhen57520 写道
redwave 写道
beingchou 写道
yry20063229 写道
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?

我也不知道,只是知道理论,自己做的。


这句话说的有点装X,看不管

客户端请求,服务端线程挂起,简单的实现,不是很复杂。


对,参考资料很少的,我也不好说。我做的主要是大并发实现控制和HTTP解析。等等COMET方面就是做了一个COMET容器和长连接池。也不好说。之后成熟了我会公布的。。我从不装X。。请大家理解。


大并发?不会就是写几个ThreadLocal<ServerSoect> server吧?SHOW上个人作品, 基于Comet变体技术的WEB应用服务器BEINGX

42 楼 treblesoftware 2009-11-27  
xiaozhen57520 写道
redwave 写道
beingchou 写道
yry20063229 写道
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?

我也不知道,只是知道理论,自己做的。


这句话说的有点装X,看不管

客户端请求,服务端线程挂起,简单的实现,不是很复杂。



但是要想撑的住大量访问,需要点水平啊,不实现强大的长连接池,短连接池是不行的啊。
43 楼 beingchou 2009-11-27  
treblesoftware 写道
xiaozhen57520 写道
redwave 写道
beingchou 写道
yry20063229 写道
楼主COMET这方面的资料在什么地方找的啊?我也想学习一下啊。。。可以告诉一下吗?

我也不知道,只是知道理论,自己做的。


这句话说的有点装X,看不管

客户端请求,服务端线程挂起,简单的实现,不是很复杂。



但是要想撑的住大量访问,需要点水平啊,不实现强大的长连接池,短连接池是不行的啊。


我也是初学者。。。在慢慢优化。。。没有简单的做几个线程等待,还有关于线程等待的时候多余资源怎么释放,等待控件组件的初始化。释放等待线程后等待控制组件资源的释放等等。。
44 楼 Curapica 2009-11-28  
beingchou 写道
magicyyao 写道
beingchou 写道
SeanHe 写道
如果做这种游戏我觉得FLASH是较好的选择,没必要一定要用COMET和JS来实现。FLASH更加成熟一点

FLASH不行。

楼主认为FLASH不行的原因是?

某些系统下输入法兼容性问题。无线程处理。高级渲染太依赖DX。当HTML5+CSS3(就是本制作的这个3D游戏)普及的话,FALSH将会完全被封杀。多线程的JAVASCRIPT。CANVAS标签,视频,浏览器P2P等等新功能。我们将不再需要FALSH。。
如果你装了火狐,或其他浏览器。他是不自带FLASH的。必须在下载安装。如果一个不懂电脑的人去装了新的浏览器。。比如女生。她不会去按装FALSH的。导致您的应用无法被使用。而正统的HTML+CSS+JAVASCRIPT则不同。W3C的发展我很看好,GOOGLE路线也是我以后要走的RIA路线。

flash的高级渲染是依赖dx的?
45 楼 JavaLanguageFun 2009-11-30  
对这个方面不是太了解 ,不过还是很佩服LZ的 , 学习下! 那天开源了 ,通知一声 , 看看实现如何!
46 楼 cosina 2009-12-01  
关于大并发 性能之类的技术都是各方面技术积累起来的  楼主你觉得这种车轮靠学习能造的出来的吗!  赞扬你在技术方面的学习态度, 但主攻方向不可取
47 楼 zjhlht 2009-12-02  
支持楼主,很厉害啊,楼主,榜样!
48 楼 RonQi 2010-10-15  
偶然搜到这个帖子,不知楼主的2版怎么样了,还开源吗...

还有,如果得奖了说一声,大家也乐呵乐呵
49 楼 RonQi 2010-10-18  
楼主给我留言说此项目获奖了,现用于游戏开发,不能开源了

在此恭喜楼主,技术确实很厉害

不过楼主自己实现了一个服务器,真的很厉害啊,如果能开源应该是很好的一件事,哈
50 楼 gh_aiyz 2010-10-19  
LZ,作为一个大学生,能写出这样的东西实属不易。但是说FLASH不行就有点不知深浅,FLASH实际覆盖了98%以上的电脑,而且是统一平台,没有浏览器兼容的问题。多了解一下实际情况——大多主流的webgame,都是基于Flash(或者Flex)技术。
HTML5的普及还早得很,现在flash仍然是开发webgame的首选。