国庆假期有点了空闲,得以有时间搞点新东西.
这几天把OSGI好好地考察了一下,因为年初Spring DM Server被SpringSource捐献给Eclipse基金会,最近在spring主页上看到Virgo项目的踪迹,我才后知后觉.
这其实意味着Spring对OSGI进行研究和探索的终结:OSGI还无法成为企业级JAVA的主流
,曙光尚远,让开源社区去解决吧.
Spring的blog
: http://blog.springsource.com/2010/01/12/dm-server-project-moves-to-eclipse-org/
Theserverside讨论
: http://www.theserverside.com/discussions/thread.tss?thread_id=59183
这里的争论非常多,大部分都对OSGI持否定态度,认为是下一个Corba,EJB1\2,DCE之流,太复杂.IBM的websphere小组来也露了露脸(被后面的人k),jdon的老彭也来贴link :)!
也有一些人在实践OSGI,并持很认可的态度.
公认的是:OSGI的学习曲线非常陡峭!
对我来说OSGI这个名词出现已经很久了,原先在99bill工作时,他们已经开始动态模块的探索,在项目拆分上有意识地向这此靠拢.从那时候起我开始注意OSGI能不能实际应用.经过一段时间的阅读和理解,我觉得OSGI有以下特点:
1,动态,通过Activator接口实现LifeCycle管理.
2,模块,通过bundle和独立的classloader实现类隔离,用export,service,share实现模块间共享.
3,依赖,处理类库依赖.
4,管理,提供模块的管理能力.
5,单JVM,这个很重要,却没人提到.
我归纳OSGI的作用是:在单个JVM上共存多个能热切换的module,实现application的模块化.
这决定了OSGI适合干什么呢?就是像eclipse这种应用:单机应用,非分布式,内部设计精耕细作,模块化插件化需求迫切,软件生命周期长.
OSGI想要解决的问题其实在各个领域都有解决方案,尤其在互联网行业,目前正处于分布式时代,通过ESB,SOA,http,socket rpc进行系统架构是行之有效的大规模集成方案,模块的粒度是服务器,既能满足扩展性需求,也能满足热插拔模块化(譬如切换JDNI,Queue,DNS,IP...等等),这些层次OSGI无能为力.
OSGI立足于单个JVM,大规模java应用不需要它,小规模开发呢?太繁了!处理多个模块的规划,依赖和启动顺序就需要个架构师.
两头不着落,在目前的时代,OSGI是尴尬的,它注定不是时代风向标,但确实是构建模块化软件体系的指导思想,即便是设计分布式应用也有很强的借鉴意义.
今天是抗美援朝战争爆发60周年,我们接着解放思想,
跳出Java的框框,哪里需要什么OSGI,script language才是天然的热插拔王者...呵呵,做网站,还是得php之流.
分享到:
相关推荐
而OsgiDemo则可能包含了可执行文件,用户可以直接运行以观察OSGi环境中的服务交互和运行效果。 在OSGi中,每个模块称为一个Bundle,它包含类、资源和元数据,可以理解为Java的增强版JAR文件。这些Bundle可以通过...
7. **OSGI实战.pdf**:这本书可能是关于OSGI实际应用的指南,可能涵盖了从基础概念到高级特性的讲解,包括如何创建bundle、配置服务、处理依赖关系等。 8. **dist.rar和code.rar**:这两个文件可能包含示例代码或者...
### 关于OSGI的详细资料 #### OSGI概述与SpringDM关系 OSGi(Open Service Gateway Initiative)是一个模块化平台标准,它提供了一种将应用程序和服务分解为小的、可重用组件的方法。这些组件被称为bundles,它们...
OSGI(Open Services Gateway Initiative)是一种Java模块化系统,它允许开发者将应用程序分解为一系列可独立部署、更新和交互的服务。林昊所著的《OSGI实战》与《OSGI进阶》是深入理解OSGI技术的重要参考资料,适合...
OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建模块化和动态的Java应用程序。它提供了模块化的类加载系统,使得不同的模块(称为bundles)可以独立地存在和更新,而不会影响其他模块。这种特性...
以下是一些关于如何在OSGI环境中配置和使用数据库连接的知识点: 1. **服务注册与发现**:在OSGI框架中,数据库连接通常通过服务注册来实现。你可以创建一个提供数据库连接的模块(bundle),并在该模块中注册一个...
### OSGI原理和实现深度解析 #### 一、OSGI概述 OSGi(Open Service Gateway Initiative)是一种Java平台上的模块化系统和动态模块化能力的实现,它为开发复杂的应用程序提供了一种灵活的框架。OSGi允许将应用程序...
在“OSGI开发文档中文的”这个资源中,你可以找到关于OSGI技术的详细指导。这份文档可能涵盖了以下几个关键知识点: 1. **OSGI基本概念**:包括bundle、服务、生命周期(启动、停止、暂停、更新和卸载)以及类加载...
总的来说,OSGi的动态部署特性与观察者模式相结合,为Java应用程序提供了强大的灵活性和适应性,使得开发者能够应对复杂、变化的业务需求,同时保持系统的稳定性和可靠性。在开发过程中,结合OSGi的生命周期管理和...
"基于OSGi和Spring开发Web应用" OSGi(Open Service Gateway Initiative)是一种面向服务的框架,能够提供动态模块部署和管理的能力。Spring 是一个轻量级的J2EE开发框架,特点是面向接口编程和非侵入式的依赖注入...
OSGI(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许应用程序由一系列可独立更新和替换的模块组成,这些模块称为“bundle”。在本实例中,我们将探讨如何利用OSGI技术来开发Eclipse...
综上所述,Spring OSGi 结合了 Spring 的强大功能和 OSGi 的模块化优势,为开发可扩展、动态和灵活的应用提供了强大工具。通过学习和实践,你可以构建更健壮、更易于维护的 Java 应用。提供的压缩包文件可能包含了...
在OSGi中,应用程序被分解为称为“bundle”的独立单元,这些bundle可以相互依赖并独立地加载、启动、更新和卸载,而无需重启整个系统。OSGi的核心理念是促进组件化开发,提高软件的可维护性、可扩展性和可重用性。 ...
其中,"OSGI实战.pdf"着重于实践操作,而"osgiopendoc2.pdf"可能包含了更多关于OSGI的进阶话题和技术细节。 总之,掌握OSGI技术对于提升Java开发的灵活性和可维护性具有重要意义。通过深入学习和实践,开发者能够...
OSGI(Open Services Gateway Initiative)是一种开放标准的Java模块化系统,它允许开发人员将应用程序分解为一组可独立更新和管理的模块。这些模块被称为服务,它们之间通过接口进行交互,使得OSGI环境下的组件化...
OSGi(Open Services Gateway Initiative)是一种在Java平台上进行模块化编程的规范,它为Java应用提供了动态化、服务化和模块化的运行环境。OSGi规范定义了一组核心的Java包和Java类的框架,允许一个应用程序或组件...
OSGI组件编程是一种在Java平台上构建模块化应用程序的方法,它由OSGi联盟制定标准,并被广泛应用于企业级软件开发,尤其是对于需要高度可扩展性和动态性的系统。在本教程中,我们将深入探讨如何使用Eclipse和Equinox...
OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建模块化和动态的Java应用程序。它为Java开发人员提供了一个框架,使他们能够构建可热插拔的组件,从而实现更灵活、可扩展和可维护的软件系统。在本...