- 浏览: 2868919 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
近期,InfoQ针对Java模块化(基于OSGi)这一热点技术问题连续做了四篇深度报道:
其中对OSGi的基本概念和现状以及模块化技术细节做了详细描述:
OSGi 是Java领域里无可辩驳的最成熟的模块系统,它与Java几乎是如影相随,最早出现于JSR 8 ,但是最新规范是JSR 291 。 OSGi在JAR的MANIFEST.MF文件中定义了额外的元数据,用来指明每个包所要求的依赖。这就让模块能够(在运行时)检查其依赖是否满足要求, 另外,可以让每个模块有自己的私有 classpath(因为每个模块都有一个ClassLoader)。这可以让dependency hell尽早被发现,但是不能完全避免。和JDBC一样,OSGi也是规范(目前是4.2版 ),有多个开源(及商业)实现。因为模块不需要依赖任何OSGi的特定代码,许多开源类库现在都将其元信息嵌入到manifest中,以便OSGi运行时使用。有些程序包没有这么做,也可以用bnd 这样的工具,它可以处理一个已有的JAR文件并为其产生合适的默认元信息。自2004年Eclipse 3.0 从专有plugin系统切换到OSGi 之后,许多其他专有内核系统(JBoss、WebSphere、Weblogic)也都随之将其运行时转向基于OSGi内核。
.......
不过,Java社区领袖Adam Bien最近在其博客 中认为,从技术角度讲,OSGi的确是实现模块化的可行办法,但OSGi的主要挑战不是技术,而是模块和bundle的管理。他建议在决定采用OSGi框架开发项目之前,考虑以下问题:
- 针对模块(bundle),采取何种版本控制方案?大、小版本如何定义?
- 采用何种软件配置管理策略?允许开放和维护模块所有版本的分支吗?预计要维护多少个分支?通过SVN吗?
- 在生产环境中,同时存在多少不同版本的模块?
- 针对模块和模块组合,如何进行测试?每一个版本都会显著增加复杂度。
- 采用何种发布管理策略?提供客户专属的模块组合吗?缺陷修补/补丁策略是什么?
- 需要在系统运行中替换模块吗?如何处理正在进行的事务?
- 对于Eclipse RCP应用,是否应该开放插件给最终用户?
- 采用何种软件分发系统?很多公司已经有了一套软件分发系统。应用和JVM经常打包到一个二进制文件中整体安装。增量更新几乎是不可能的。
- 模块之间如何交互?只通过Java接口吗?如果是,那么JPA实体的直接关联如何处理?
- 是否采用Maven描述模块和OSGi?Maven模块版本会在OSGi bundle版本中得到体现吗?
发表评论
-
spring mvc @controller unit test
2013-11-20 14:14 38861. spring mvc controller imple ... -
Tomcat 生产服务器性能优化
2013-07-23 06:45 1007试想以下这个情景:你已经开发好了一个程序,这个程序的排版很不 ... -
Loading Multiple Spring Application Contexts with their own ClassLoader
2013-07-11 20:45 1072package de.incompleteco.spring ... -
ActiveMQ JMS的测试
2011-04-06 18:15 3917有二种方式可以测试。 1. 透过testng, 在测试类中完 ... -
Maven系列2--pom.xml 配置详解
2011-01-06 18:00 3175<project xmlns="http ... -
fisheye2.3.6 安装笔记
2010-09-16 20:25 2234一. 准备工作 1. 下载fisheye ... -
服务器端编程的十大性能问题
2010-09-15 12:01 1233今年5 月底,瑞士计算 ... -
JMX in spring 配置
2010-09-07 12:00 3050JConsole中的连接:简单的localhost:1099 ... -
Ehcache 2.0:后写式缓存和JTA支持
2010-05-22 11:13 1854开源缓存框架Ehcache 最 ... -
Twitter系统运维经验
2010-04-12 22:24 1551最近看到的另外一个 ... -
IBM和Eclipse加大对OSGi的支持
2010-03-21 18:05 1271为Java提供模块性的OSGi,正在受到IBM和Eclipse ... -
Castor功能与应用参考
2010-03-12 12:48 36261. 项目简介Castor是一个开源的Java项目 ... -
hibernate之 DetachedCriteria实现多表查询
2009-07-25 17:13 13092DetachedCriteria detachedCriter ... -
spring AOP 理论知识点总结
2009-07-24 17:47 21741.1 AOP 的概念 ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2009-07-02 16:14 4122在项目中总会遇到一些 ... -
maven笔记
2009-06-22 22:14 1529mvn package : 项目打包 mvn help:ef ... -
利用maven构建多模块项目
2009-06-17 14:28 53601. 先单独构建各模块为一个独立的项目。 jar项目: m ... -
Maven基础
2009-06-17 12:58 1858下载Maven安装文件。 定义环境变量M2_HOME到pat ... -
安装M2eclipse步骤
2009-06-15 14:45 38211.下载下列所需文件 eclipse3.4.2 ... -
用 Maven 做项目管理
2009-06-08 18:01 2638在Java 世界中我们很多的开发人员选择用Ant 来构 ...
相关推荐
SSM(Spring、SpringMVC、MyBatis)框架是Java Web开发中常见的技术栈,而OSGi(Open Service Gateway Initiative)则是一种模块化系统,主要用于解决Java应用程序的动态性、可扩展性和版本管理问题。将SSM框架与...
3. **系统稳定性**:采用微核机制,即使Bundle出现问题,也不会影响到整个系统的稳定运行,确保系统不会因单个组件崩溃而整体崩溃。 4. **模块化开发**:OSGI提供了一套规范的模块化开发和部署方式,有助于软件公司...
1. **模块化提升**:通过采用OSGi框架,企业可以将复杂的业务逻辑拆分成可管理的小模块,每个模块都有明确的责任边界,易于维护和扩展。 2. **生态系统的支持**:目前,几乎所有主流的企业应用服务器都支持OSGi,...
Spring-DM,即Spring Dynamic Modules,是Spring官方在2008年推出的项目,旨在将Spring框架与OSGi模块化平台相结合,为Java开发者提供了一套全面的工具和API,以支持在OSGi环境中开发、部署和管理Spring应用程序。...
Equinox是Eclipse项目使用的OSGi框架,它是Eclipse插件体系的基础,确保了Eclipse平台的稳定性和可扩展性。由于IBM的强力支持,Equinox不仅具有良好的文档和社区资源,也成为开发者进行OSGi应用开发的首选框架。 ...
本书通过一系列章节详细介绍了OSGi框架的核心理念和技术细节,并提供了多个实际案例来帮助读者更好地理解和应用这些技术。 **1.1 什么是模块?** 在软件工程领域,模块化是指将大型软件系统分解为独立且可重用的...
采用OSGi框架后,可以通过以下步骤改进: 1. **模块化设计**:将每一个命令功能封装成独立的Bundle。 2. **动态加载**:根据用户的输入动态加载相应的Bundle,而不是静态编译时确定。 3. **服务注册与查找**:通过...
在Eclipse集成开发环境中,OSGI扮演着核心角色,从Eclipse 3.0开始,它便采用了OSGI作为其插件体系结构的基础。 OSGI的核心概念是 Bundle,每个Bundle都相当于一个独立的Java应用程序,拥有自己的类加载器,可以在...
- 涵盖了如何使用OSGi框架开发基础的Web应用程序。 - 可能包含了创建OSGi模块和组件、配置Web容器以及部署的步骤。 3. 持久化的价值 - 探讨在OSGi环境中如何有效地进行数据持久化。 - 分析企业应用中数据管理的...
9. **案例研究**:分析实际项目中采用OSGI的案例,展示其在大型分布式系统、企业级应用和物联网等领域的应用。 通过阅读这本书,你可以获得对OSGI的全面认识,从理论到实践,从而在你的项目中更好地利用OSGI的优势...
通过采用OSGi框架结合Apache CXF及其cxf-dosgi扩展,可以有效地开发和部署支持多版本的Web服务。这种方法不仅提高了服务的灵活性和可维护性,还简化了服务的生命周期管理。对于那些需要同时支持多个服务版本的场景来...
**基于OSGi的Web应用开发**是现代软件开发中的一种技术实践,它允许开发者构建模块化、可扩展和可维护的Web应用。OSGi(Open Service Gateway Initiative)是一种开放的标准,提供了一种服务导向的、模块化的Java...
2. 依赖管理:通过Import-Package声明所需的其他模块,OSGI框架会自动处理依赖关系,解决类加载问题。 3. 动态部署:在运行时可以添加、移除或更新Bundle,无需重启整个系统,提高软件的可维护性。 三、OSGI进阶 1....
OSGi(Open Services Gateway Initiative)框架是一个用于Java平台的动态...随着更多企业采用OSGi,这一技术的影响力和重要性将持续增长,对于理解和掌握OSGi,将对提升开发者在现代软件开发中的竞争力具有重要意义。
描述中提到"OSGI的源码实现,采用JAVA书写,其框架很有借鉴意义",这意味着这个压缩包包含的是Apache Felix Oscar项目的源代码,对于学习和理解OSGI框架的运作机制,以及如何在Java中实现模块化系统具有很高的价值。...