JMX 本来设计的用途就只为了管理,我们不该把他拿来 (over use) 作为开发应用程序的组件 (那是 EJB 或 JavaBeans 该做的事)。但 OSGi 却可以!
JMX 多数用于 server 系统中,而 OSGi 却不限于所开发的应用程序。你可以用它开发 embedded 系统、desktop 程序,甚至是 server 程序。
OSGi 不但提供了与 JMX 相似的容器管理能力,甚至它本身就是一套精密的 Framework。OSGi 采用Micro-Kernel 的架构,可以提供无限延伸的功能。OSGi 的 Bundles 在线更新功能、以及应用程序之微量内存执行能力,都是开发应用程序的利基。
行文至此,又觉得 OSGi 与 JCA、JNDI 都有一些功能重迭及互补之处。只是 JMX、JCA、EJB、JNDI都经 JCP 标准,都属于 J2EE 家族成员,但 OSGi 过去屈居于 Embedded System,声名就不若前述标准响亮...。我觉得这完全是两种思维模式:J2EE 的思维是 build on large scale,OSGi 的思维是 build on dynamic scale。OSGi 以小搏大。
为什么要用osgi,我认为主要是因为java至今没有出现一个方便易用的组件配置模型。过去,JMX、ClassLoader、reflect都似乎可以做这个事情。但是,JMX太麻烦了,况且原本为J2EE准备的JMX,确实不太易用,走专用的协议,需要专门的客户端,需要adapter来访问等等....
而ClassLoader,单独用ClassLoader,需要自己在其上构建一层包装,否则用起来很麻烦。Reflect的配置方式和ClassLoader一样的问题 。
但是,所有java的组件配置方式,包括使用classloader的osgi在内共有的一个问题就是,被替换组件的回收时间无法控制。
JMX 与 OSGi 在功能上的许多重迭之处,在国外已经有人讨论过 (例如 Eclipse Embeds OSGi Based MicroKernel 及 JMX vs. OSGi - The New Flavor of the Eclipse Runtime)。
分享到:
相关推荐
通过分析和运行这个示例,开发者可以更深入地理解JMX与OSGi的集成,并将其应用于自己的项目中,以实现更灵活、可扩展的系统管理。 总之,JMX和OSGi的结合为Java应用程序提供了强大的管理和模块化能力。通过这个实例...
3. **JMX与OSGi**:OSGi(Open Service Gateway Initiative)是一个Java模块化系统,允许在单个JVM上动态部署和管理模块。JMX可以与OSGi结合,提供对OSGi服务的监控和管理。例如,通过JMX,你可以获取关于OSGi框架的...
JMX(Java Management Extensions)在OSGI中用于监控和管理系统资源,如性能指标或配置。JMX问题可能表现为"MalformedObjectNameException",这是因为创建MBean对象名时格式不正确。还可能遇到权限问题,如...
**OSGi企业版本的技术规范**是OSGi联盟为满足企业级应用的需求而制定的一套详细的技术标准与指导原则。该规范旨在提供一个灵活且可扩展的框架,支持复杂的企业级应用开发与部署。 #### 二、OSGi核心框架解析 #####...
6. **监控和诊断**:使用像JMX这样的工具进行实时监控,以便及时发现和解决问题。 通过上述步骤,你可以在OSGi环境中成功配置Jetty 9.3.10,创建并注册Servlet,同时对Jetty进行性能优化。这将使你的Web应用程序...
OSGi在实践中有广泛的应用,例如在企业级Java平台(Java EE)、Jini网络技术、NetBeans开发环境、Java管理扩展(JMX)、轻量级容器、Java业务集成(JBI)、Java标准提案(JSR)等环境中都有所体现。它被用于创建可...
JMX(Java Management Extensions)是一种用于管理Java应用程序的标准框架,而Blueprint API则是Apache Aries中的一个组件,它提供了基于XML的依赖注入容器,用于在OSGi环境中管理服务和配置。 描述中提到的...
Eclipse Jetty provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations. These components are open source and available ...
这些服务包括Web容器、数据库访问、蓝图服务、JMX集成、JNDI集成和JPA集成等等。这些项目共同组成了Eclipse Runtime(RT)项目。其中,Gemini JPA项目专注于提供OSGi环境中的JPA服务。 4. EclipseLink项目是提供JPA...
karaf标签表示这个资源与Apache Karaf相关,而osgi标签则表明它是关于OSGi技术的。这暗示了压缩包中可能包含的是Apache Karaf 4.0.0的源代码,这对于理解、定制或扩展Karaf功能的开发者来说非常宝贵。 压缩包中的...
设计并实现了一种构件级集群动态管理系统,支持在...它基于OSGi框架组织管理系统构件,并通过构件管理代理支持基于JMX的远程管理。最后通过实验展示了系统效果,最终验证了构件级管理在应对动态需求变化时的有效性。
4. **多后端支持**:支持多种日志后端,包括文件、数据库、syslog、JMX等,方便日志数据的收集和分析。 5. **过滤和格式化**:可以定义日志记录的过滤规则,以及自定义日志输出格式,便于日志管理和分析。 在实际...
来救援Jetty 提供了一个 Web 服务器和 javax.servlet 容器,此外还支持 SPDY、Web Sockets、OSGi、JMX、JNDI、JASPI、AJP 和许多其他集成。 这些组件是开源的,可用于商业用途和分发。 Jetty 用于各种项目和产品。 ...
这包括支持 WebSockets、OSGi、JMX、JNDI、JASPI 和 AJP 等技术。 - **构建结果展示**:构建结果通常存储在 `webapps/buildresult` 目录下,并通过 JSP 页面展示在 Web 控制台上。 - **日志记录**:所有构建相关的...
Jolokia是一种远程访问JMX MBean的新方法。 它与JSR-160连接器的不同之处在于它是一种基于代理的方法,该方法使用REST风格的HTTP上的JSON进行通信。 为不同的环境提供了多个代理: 用于在Java EE Server中作为Web...
5. 企业级功能:Karaf针对企业级应用做了优化,比如支持JMX(Java Management Extensions)管理和监控,以及与Spring、Pax Web等流行框架的集成。此外,它还提供了SSH访问和Jaas认证等安全功能。 6. 社区与生态系统...
1. **模块化**:OSGi规范允许Karaf将软件分解为独立的模块,每个模块都有自己的生命周期和依赖关系。这种模块化架构使得系统更加灵活,易于维护和更新。 2. **命令行接口**:Karaf提供了一个强大的命令行界面,用户...
5. **远程管理:** 支持SSH和JMX等协议,使得远程管理和监控变得可能。 6. **热部署:** OSGi的特性使得Karaf支持bundle的热部署,即在不中断服务的情况下安装、更新或移除模块。 **Apache Karaf 2.3.4 版本:** 这...
Apache Karaf 是一个轻量级、可嵌入式的Java企业服务 Bus(ESB)和运行时,基于OSGi规范。它被广泛用于构建模块化的Java应用程序和服务,特别适合微服务和云计算环境。这本书《Learning Apache Karaf》显然是为了...