`
vipcowrie
  • 浏览: 352280 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
1167aa84-228b-38f8-88a0-4733613efdef
让Java跑起来
浏览量:64806
文章分类
社区版块
存档分类
最新评论

OSGi vs Jigsaw:Kirk Knoernschild访谈

阅读更多
OSGi vs Jigsaw:Kirk Knoernschild访谈

Kirk Knoernschild是OSGi领域的专家,DZone最近有机会对他做了一次关于2012年模块开发思想的访谈,kirk最近出了一本书《java应用架构:使用osgi模块化模式》,这本书介绍了18中模式,帮助你开发模块化的软件。


问题:模块化为何很重要,有什么好处?
Kirk:模块化的软件很容易扩展,重用、维护和使用,也很容易理解修改的影响范围。所以,当你修改一些有大量依赖的代码的时候,你会非常确切的知道会发生什么。从大的方面说,模块化能够帮助你快速响应需求,因为你会很容易知道变更会有哪些影响。但是模块化开发并不是当前软件设计的主流,你还是可以按照以前的方式设计软件,但是你也应该抬头看看早晨即将升起的太阳,我们需要知道未来将要发生什么,很明显,模块化开发将是未来软件发展的方向。

原来的基于分层的软件架构,即开发一个视图层,一个业务层,一个接口层等,然后打包发布为一个软件。这种架构将不再适合当今的软件环境,因为我们面临的是一个多渠道的世界,一个软件将不再仅仅采用一种方式使用,它会有WEB界面,也会有手机界面,也会有平板电脑的界面等等。这个对软件的模块的可复用提出了很大的要求。模块化是一个未来架构模型,我们必须使用它来开发软件。现在主流的软件开发商已经认识到这一点,OpenJDK也知道这一点,企业开发人员也需要认识这一点。

模块化开发最典型的例子就是IBM提供的Eclipse平台,其中的插件架构完全基于模块化开发,另外一个比较新的例子也是IBM提供的,即Liberty Profile,他很酷,因为其实现了本地环境对应用提供合适的响应的能力。他们大部分都是基于OSGi框架实现的。

问题:
OSGi是一个实现模块化的框架,另外一个就是java 8即将提供的Jigsaw,还有其他的方式实现模块化么?


kirk:我觉得有几种方式实现模块化并不重要,重要的是他们都是互相兼容的。我关注的是,即使你不使用其中任何一种框架,你开发的模块也能运行。我推荐的开发模式能够帮助你快速迁移到osgi或者jigsaw.

问题:你自己对osgi和Jigsaw有什么看法?
kirk:osgi最大的优势就是它存在很久了,且是一个已经被证明可用的框架,成熟的框架。而jigsaw却还在开发阶段,将在2013年随着Java8发布,但是jigsaw也有一个优点,就是他是JAVA平台支持的模块化方法,伴随JAVA SE发布,不用安装新的包。

但是最重要的还是两者能够兼容,你开发的模块能够在两个框架中运行。

问题:现在osgi到底有多流行,当jigsaw发布后,会有什么变化?
Kirk:很好的问题,现在几乎每个软件开发人员都是osgi的消费者,因为几乎所有的IDE都是用osgi来构建。目前主流的平台提供者包括IBM,ORACLE,RED HAT等都是用OSGi来构建平台。但是有趣的是,目前企业软件开发这块还没有被OSGi渗透。至少,OSGi还没有成为主流软件设计方式,一些人抱怨其太复杂,或许因为设计一个模块化的软件真的比较难吧,确实是。

总之,我不能预研未来会发生什么。OSGi是一个成熟的框架,而Jigsaw将会成为标准。接下来的数年在java平台上将会有一个有趣的竞争,很多事情将会发生变化。
0
2
分享到:
评论
1 楼 lyndon.lin 2012-07-19  
现在在市面上已经有《java应用架构:使用osgi模块化模式》这本书了吗?

相关推荐

    OSGi and Equinox:Creating Highly Modular Java Systems

    ### OSGi:模块化标准 OSGi(Open Service Gateway Initiative)最初是为了满足嵌入式设备如家庭网关和机顶盒的需求而设计的。随着时间的推移,其模块化理念和架构被证明对于任何规模的Java应用都是有益的。OSGi...

    Osgi in Action: Creating Modular Applications in Java Jun 2010

    ### OSGi in Action: 创建模块化的Java应用 #### 一、OSGi揭示:模块化的重要性与挑战 在《OSGi in Action》这本书的第一章“OSGi Revealed”中,作者深入探讨了Java平台虽然取得了巨大的成功,但在构建模块化系统...

    OSGi与Spring:Spring DM开发

    ### OSGi与Spring:Spring DM开发环境配置详解 #### 一、引言 随着软件架构的不断发展,模块化和微服务化的趋势日益明显。在Java领域,OSGi(Open Service Gateway Initiative)作为一套成熟的技术标准,为实现模块...

    OSGi入门篇:模块层(by 静默虚空)

    在OSGi入门篇:模块层这篇文章中,作者静默虚空深入探讨了OSGi框架中模块层的基础知识以及设计模块层时OSGi联盟所做的考虑。OSGi模块层是框架中最基础的部分,它实现了Java的模块化特性,但又与Java现有的模块化特性...

    OSGi入门篇:生命周期层

    OSGi(Open Services Gateway Initiative)是一个基于Java语言的服务平台,提供了一种动态化、模块化的应用程序架构。在OSGi架构中,整个生命周期管理是十分重要的组成部分,它保证了应用能够动态地进行安装、启动、...

    OSGi入门篇:服务层

    OSGi(Open Service Gateway Initiative)是一个Java社区定义的模块化服务平台,它允许在同一个运行环境中部署多个版本的同一个组件,而不会相互冲突,从而提供了一个动态的、模块化的运行时环境。OSGi规范定义了...

    simple-osgi-launcher:一个从OSGi捆绑包maven项目创建可执行jar的Maven插件

    简单的OSGi启动器 我讨厌复杂的发射器。 我只想运行OSGi项目,而无需进行配置和部署。 该项目提供了一个maven插件,该插件允许从OSGi捆绑包maven项目创建可执行的jar文件。 只需将所需的包指定为项目的运行时依赖...

    blueprint-osgi-bundle:OSGi 示例

    **标题解析:** "blueprint-osgi-bundle:OSGi 示例" 指的是一个基于OSGi(Open Service Gateway Initiative)框架的示例项目,它使用了Blueprint服务容器来管理服务组件。Blueprint是Apache Felix项目中的一个子项目...

    cayenne-osgi-example:一个简单的 OSGi 包,展示了如何在 OSGi 下使用 Apache Cayenne

    cayenne-osgi-示例 一个简单的 OSGi 包,展示了如何在 OSGi 下使用 。 先决条件 Cayenne 4.0.M2 或更新。 一个 OSGi 容器。 (此示例的所有测试均使用 4.2.1 完成) 配置 OSGi 容器 安装一堆包。 您可以从 Maven ...

    tomcat嵌入OSGI容器

    标题中的“tomcat嵌入OSGI容器”是指在Apache Tomcat服务器中集成OSGI(Open Service Gateway Initiative)框架,使得Tomcat能够支持模块化的应用程序部署和管理。OSGI是一种Java平台上的服务导向架构,它允许动态地...

    OSGI-Felix:OSGI费利克斯

    凡人的OSGi 这是我在 NA 2011,EU 2012和EU 2014上的“ OSGi的凡人”演示文稿的代码。 这是使用OSGi Declarative Services从头开始构建的最小的独立RESTful服务器,旨在证明OSGi不仅适用于超人大师。 该示例演示了...

    spring osgi相关资源

    Spring OSGi是Spring框架与OSGi(Open Service Gateway Initiative)规范相结合的一种技术,它允许在OSGi容器中运行和管理Spring应用。OSGi是一种模块化系统,为Java应用程序提供了动态部署、版本控制和依赖管理的...

    org.jbundle.util.osgi.wrapped.org.apache.http.client-4.1.2.jar

    org.jbundle.util.osgi.wrapped.org.apache.http.client-4.1.2.jar

    biz.aQute.osgi.util:包含OSGi实用程序

    《biz.aQute.osgi.util:深入理解OSGi实用程序库》 在Java开发领域,OSGi(Open Service Gateway Initiative)框架已经成为模块化系统设计的重要工具,它为Java应用程序提供了动态服务发现、模块化加载和依赖管理的...

    深入理解OSGi:Equinox原理、应用与最佳实践.pdf

    OSGi(Open Service Gateway Initiative)是一个定义了Java应用程序如何组织和模块化以及如何动态发现、启动、停止、更新这些模块化组件的规范。Equinox是OSGi规范的一个实现,它是由Eclipse基金会开发的。本文将...

    osgi-manifest:用于解析和解释 OSGi 清单文件的小型轻量级库

    OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许开发人员将应用程序分解为一组可独立更新和管理的小型组件,称为服务或bundle。标题提到的"osgi-manifest"是一个专门用于解析和...

    org.osgi.core-1.4.0.jar

    java运行依赖jar包

    tutorial-osgi-jsf:包含来自 OSGi-JSF 教程的代码的存储库

    标题中的“OSGi”代表了Open Service Gateway Initiative,它是一个为Java平台提供模块化系统和服务的标准。JSF,全称JavaServer Faces,是Java EE中用于构建用户界面的MVC框架。这个“tutorial-osgi-jsf”项目显然...

Global site tag (gtag.js) - Google Analytics