昨天在sourceforge.net上申请了一个开源项目,Xcesium-Viwow。
Xcesium是徐昊创建的一个开源项目的小组名,Viwow是项目名。
这个项目是为了编写一个JAVA下的高效率高可配置性的服务器基础框架而创建的。类似的项目有Cindy和Netty2,以及早我一天(天!就一天)在SourceForge上创建的RaindDrop。Netty2已经被作者给废弃掉了,不过规模已经颇为可观了。Cindy是国内一位大牛写的,代码质量不错的,不过使用的模型和最终的目标和我的不一样,他瞄准的是简单易用,我瞄准的是高效通用。
具体使用了NIO做输入输出。然后用SEDA的架构,用Stage来组织整个服务器的网络处理。对于Stage的管理,我的目标是通过OSGI和JMX能够动态插拔。而Stage的具体编写,只是实现一个基本的异步Socket,对NIO进行一些封装。具体的上层应用可以写一些简单的sample,不过不作大型的应用,因为只是写一个基础框架。
NIO的主要好处就是能够多路复用,不用一个线程对应一个客户端。
SEDA的主要好处是并发模式灵活,当某个Stage特别忙碌的时候,可以把它的线程池扩大。而且SEDA把你的应用明确的分解为STAGE了,特别适合网络应用的特性。
OSGI的主要好处是提供了JAVA的类加载层次,给JAVA提供了类似.NET的Assembly层面的功能。是一个轻量级的微内核容器。如果使用一些增强的bundle还能提供依赖配置管理。
JMX是标准的管理API,最终的动态管理应该需要依赖这个来实现。
整体的目标有三个:
1、SEDA抽象模型的实现
2、基于SEDA模型的异步SOCKET包装库
3、STAGE动态配置管理框架
posted on 2005-03-23 02:10  taowen  阅读(2246)  评论(2编辑  收藏  举报