首先,下面写的这东西其实跟OSGi有点关系,但是关系不大,就是说一下OSGi与web结合相关的一点感受,不具体谈实现。
在项目开始之前,我们也进行了一些调研,特意在烈日炎炎中下山进城里与经验者进行了交流,在需求的基础上,通过一些资料,敲定基于OSGi进行项目的展开,这样可以充分利用OSGi的特点,使各个模块能够实现组件化。而在与web结合这块,通过简短的调研,觉得还是把web与OSGi结合起来,用OSGi来管理web容器,这样所有的东西在OSGi的管理下,无论从组织结构上和开发上都非常顺手。到此,Perfect。
事实。OSGi与web的结合并不像盛传的那么好,最初的想把web作为一个bundle由OSGi来进行管理,一起就都美好了。事实并非如此。在每一个提到OSGi管理web的事例里,作者(不如说大部分是转载者)举例web服务器被OSGi管理的服服帖帖都拿jetty来说事儿。Tomcat,应用服务器WebLogic,WebSphere只字不提。最初的最初,没太在意,而且老G介绍OSGi时候说过,OSGi就是你把任何东西打成jar包,做成bundle然后往里放就行了。我问,“web服务器能放进去吗?”“能啊,jetty啊!”诚然,作为资深Eclipse插件开发者,他对这些确实信手拈来,不过当时我们并没有把需求放到更详细的角度考虑,一拍脑子,jetty,哦了,就是他。现在的考虑是,如果说tomcat是轻量级,那么jetty就是微量级了。更何况,之前确实没拿他做过什么东西。因为tomcat,WebLogic通吃很多东西了,在一般应用上很少考虑这种微量级的web服务器。万一,哪天我们有需求jetty达不到(可以说不是万一是肯定),那么这种将web放在OSGi环境下管理的设计就完蛋了,生命立即终止。所以,web放在OSGi管理,达妹╮(╯_╰)╭。解决办法,期待tomcat哪天能扔到OSGi里吧。
不把web放OSGi,那只好把OSGi放web里了,Equinox的bridge,Equinox 框架以及项目的 bundle 做成一个 War 文件部署到 Servlet 容器中,这个 servlet负责对你的OSGi容器进行初始化。每当接收到一个客户请求,它将查看是否存在一个OSGi插件可以处理该请求;如果存在,它将控制转发至该插件。虽说这样传统的常用web服务器就可以用上了,我们以前一直搞的东西又回来了,总觉得这种感觉有点别扭。
OSGi与web的结合,就两种方式,web插OSGi里,OSGi插web里,不恰当的比喻来一个,如果是春哥和小沈阳,肯定能分出谁搞谁来。现在OSGi和web就像春哥和曾哥,都很纯,目前看谁搞谁都不是很搞的很舒服。不过我相信至少OSGi的热度,会有大量的技术人员来参与解决这些问题,注定了不会存在两个爷们的不稳定局面。让我们翘首期待吧。
- 大小: 5.7 KB
分享到:
相关推荐
Spring-DM,即Spring Dynamic Modules,是Spring官方在2008年推出的项目,旨在将Spring框架与OSGi模块化平台相结合,为Java开发者提供了一套全面的工具和API,以支持在OSGi环境中开发、部署和管理Spring应用程序。...
"基于OSGi和Spring开发Web应用" OSGi(Open Service Gateway Initiative)是一种面向服务的框架,能够提供动态模块部署和管理的能力。Spring 是一个轻量级的J2EE开发框架,特点是面向接口编程和非侵入式的依赖注入...
2. **Web服务器适配器**: 这些适配器使OSGI容器能够与Web服务器协同工作,将OSGI的模块化概念与Web应用的部署和管理相结合。例如,Jetty OSGI或者Tomcat OSGI插件允许在OSGI环境中托管Web应用。 3. **Servlet API**...
本项目结合了Struts2和Felix1.4,构建了一个基于OSGI的Web基础设施,提供了灵活和可扩展的框架来开发Web应用。 在OSGI环境中,应用被分解为小型的、独立的模块,称为bundle。每个bundle包含一组相关的类和资源,...
本文深入浅出地解释了如何结合Felix和Struts2构建基于OSGi的Web应用,通过一个具体的时间服务示例展示了OSGi的动态部署和模块化特性。这种开发方式使得Web应用的维护和扩展更为灵活,适应性强,尤其适合需要长期运行...
Spring-DM(现在称为Spring OSGi)是Spring框架的一个扩展,旨在将Spring的功能与OSGi的模块化特性相结合,使开发者能够在OSGi环境中利用Spring的优势。 在本文中,作者通过一个简单的Web应用实例来展示如何利用...
**目标:** 通过本示例,读者可以了解如何利用OSGi和Spring框架结合的方式,来实现一个简单的Web应用。此外,还能学习到如何利用OSGi的动态部署能力来切换不同的服务实现。 #### 三、开发环境准备 为了成功运行本...
OSGi与Web服务的结合,可以让开发者利用OSGi的模块化特性来构建和部署Web服务,从而实现更加灵活的服务架构。 首先,了解OSGi的基础知识是至关重要的。OSGi的核心是其服务注册表,它允许模块之间通过发布和查找服务...
标题中的"OSGi, Spring, Web"代表了三个重要的IT技术领域。OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它允许开发者将大型应用分解为可独立更新和管理的小型服务单元。Spring框架是Java开发中...
在IT行业中,构建高效、可扩展的Web应用程序是至关重要的,而OSGi(Open Services Gateway Initiative)和Spring框架的结合提供了这样的解决方案。本篇将详细探讨如何基于OSGi和Spring来开发Web应用,并通过提供的...
**OSGi与Web服务的结合** OSGi和Web服务的结合使得开发者能够在模块化的环境中构建和提供Web服务。OSGi的优势在于它的动态性,可以实时地安装、卸载、启动和停止服务,这使得Web服务的生命周期管理变得更加灵活。而...
在"OSGI + Webservice 例子"中,新手可以学习如何将OSGI的模块化特性与Web服务的跨平台通信能力结合。下面将详细介绍这个例子中可能涉及的知识点: 1. **OSGI模块创建**:首先,你需要了解如何创建一个OSGI模块,这...
OSGi引入Web Bundle的概念,是为了将Web应用的模块化理念与OSGi的灵活性相结合。Web Bundle允许开发者将一个传统的WAR(Web Application Archive)文件打包成OSGi Bundle,从而在OSGi环境中运行。这使得Web应用可以...
在IT行业中,Spring OSGi(Open Service Gateway Initiative)是一种模块化开发的框架,它将Spring框架与OSGi服务架构相结合,为Web应用程序提供了一种更灵活、可扩展的开发方式。VirgoServer是Pivotal公司推出的一...
通过采用OSGi框架结合Apache CXF及其cxf-dosgi扩展,可以有效地开发和部署支持多版本的Web服务。这种方法不仅提高了服务的灵活性和可维护性,还简化了服务的生命周期管理。对于那些需要同时支持多个服务版本的场景来...
是一本适合新接触OSGI开发学习的一本很好的书,本书介绍了Equinox, Spring-DM和Felix这三个常用的OSGi容器的使用、开发、以及WebApplication的开发部署;介绍了OSGi的规范和Core Framework和Layer。包含书中的用例源...