浏览 10526 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-26
解决方案一: 部署OSGi/Equinox在Servlet容器中具体实现: 把OSGi/equinox打包在WAR中,当Servlet容器加载WAR时,启动OSGi框架。WEB-INF的目录结构大致如下(大致如此):
部署结构如下图(转载): 个人感觉这个解决方案使用价值不大。 解决方案二: Web服务器与Servlet容器嵌入在OSGi/Equinox具体实现: 把Jetty当作一个插件嵌入到OSGi/Equinox中,并基于Jetty实现OSGi标准中的HTTP服务,其他插件可以通过该服务注册Servlet和静态页面。OSGi标准中的HTTP服务接口如下:
部署结构图(转载): 因为OSGi是最早为嵌入式系统设计,所以OSGi标准中的HTTP服务只提供了有限的Servlet与静态资源的发布功能,没有一个完整的WEB容器概念,这种模式更适合通过WEB方式暴露(Export)服务,不太适合开发展现层的WEB应用。 通过Equinox提供的扩展/扩展点功能可以简化这种方式WEB应用的开发,就是通过plugin.xml来配置Servlet和静态页面的注册。 解决方案三: 设计适合OSGi环境的Servlet容器,构建纯插件体系结构的WEB层具体实现:"插件"与我们通常所说软件"模块"的一个区别是:插件能自我描述,加载运行在插件容器中。那么,我们可以分层扩展一个插件的自我描述,用类似Decorator的模式为插件增加“特征”描述。 所以,我们在OpenCore中定义了三种特征的插件,如下图:这三种插件类型间关系类似Decorator模式,从内到外增加"特征"描述:
这样我们可以把一个应用的WEB层像业务层一样,分割为多个插件,部署在OSGi/Equinox的框架中. 部署结构图: 我 们觉得这种方式以合适的力度将WEB层分割为插件部署在OSGi框架上,充分的发挥了OSGi体系结构的强大之处,也提高了WEB层开发部署的灵活性。目 前,业界好像也有很多项目是采用这中方式部署。这种部署方式的缺点是,不得不修改Jetty容器的实现,以使其适应OSGi的环境,我们希望Jetty以 后能支持这个功能:) Google Code上发布了一个基于OpenCore的示例项目linktalk,一个基于GWT、Equinox、OpenCore的Ajax聊天室。 项目地址: http://code.google.com/p/lintkalk 源码下载: svn checkout https://linktalk.googlecode.com/svn/trunk/project 程序下载: svn checkout https://linktalk.googlecode.com/svn/trunk/release 相关资源:http://www.eclipse.org/equinox/server/http_quickstart.php声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-29
项目地址应该是
http://code.google.com/p/linktalk/ |
|
返回顶楼 | |
发表时间:2007-01-29
学习一下
|
|
返回顶楼 | |
发表时间:2007-01-29
前两天还在跟女友讨论这个问题, 得出的结论是, OSGi至少要在OS之上, 应用服务器之下的, 也就是第二种方案; 当然, 第三种方案是最好的, 但是目前还看不到实现.
目前想的还不够透彻, 有机会与楼主多交流, |
|
返回顶楼 | |
发表时间:2007-01-29
楼上的真幸福。。。
|
|
返回顶楼 | |