看了下BlueDavy的OSGi实战这篇OpenDoc,很感谢BlueDavy同学!
例子举的是一个User Login的Case,例子很简单,让我们从中领略了OSGi的风情。这个Doc中的例子都是围绕Equinox展开的,它是Eclipse 3.1以后的核心实现,也就是说现在的Eclipse是个OSGi架构。
从架构上来说OSGi和SOA如出一辙,都强调面向服务,而OSGi似乎对热切换和契约管理比较着重,也就是说OSGi更现实,它强调的是一种实际的合约标准。产生的结果是差不多的,就是系统模块之间的高度解藕。
可以看OSGi的Core Framework,最内层是L0:运行环境(就是语言平台或者解释平台一类的环境),然后是OSGI的L1:模块,L2:生命周期管理,L3:服务注册。
我认为这种架构也基本上是一个SOA需要关注的几个问题。
L1是实现OSGi的基础,在Java下提供了类加载机制,使系统能够模块化。个人感觉类似原来Eclipse中的微内核。
L2是解决模块之间依赖关系的最基本工作单位,负责初始化、停止、更新等操作,这样模块能够活起来,同时在这些过程中可以手动维护依赖关系,也是模块协作的基础。
L3则是协作的合同签署场所,应该是L2的扩展,使模块之间能够按照契约工作。我觉得更形象地说就是路由器,模块间的动态依赖可以很好地通过它来解决,让OSGi可以动起来。
拥有了这几层,我想我们完全可以理解为一个SOA的实现,当然更细化。应该是一种新的组合应用的方式。
白嘴说肯定没有BlueDavy的文章好,大家还是去看看那篇文档。
说说遗憾:
1、OSGi在B/S架构中还不好应用。虽然例子是B/S的,可是居然是Servlet模型,里面解释了目前Equinox项目也在扩展应用服务器支持和JSP支持等,可是起码目前还不成熟。
2、模块的粒度很成问题。目前OSGi的契约机制与java interface机制对比一下。OSGi不可能完全取代本地的interface式的解藕,当然人家也没这么说。只使我担心过渡设计后,过细的Bundle肯定会得不偿失,所以需要有人设计/计划这个粒度。这个可能与基于Web services的SOA架构面临类似的问题,需要好的架构师。
3、文档不友好么?说实话,很感谢BlueDavy和OSGi观察者那些大牛的贡献。但是感觉production的样例工程还是很难搞到(其实Eclipse plugins的例子满多哈,可惜没啥文档,需要硬着头皮看),对应的指导文档还没出现。BlueDavy提供的servlet实现我们不可能跟上,毕竟简单也是一种需求。(那谁说过度设计比设计不足更可怕,那个我不是唱反调,我希望我们都能找到那个sweet point,有个好的参照那最好不过了)。
4、由于思想先进,在某些人看来是阳春白雪。估计不少人还是埋头下里巴人。观望态度。
结束,又是流水账,大家拍砖。
分享到:
相关推荐
《 OSGi实战》是学习OSGi的全面指导,利用与架构和开发人员相关的示例清楚地讲解OSGi概念,同时探讨了很多实践场景和技术,阐述了开发人员有多需要OSGi,怎么将OSGi嵌入其他容器中,将遗留系统移入OSGi的最佳实践,...
### OSGi实战读书笔记知识点总结 #### 一、Bundle的类型及特点 - **RequireBundles**: 使用了`Require-Bundle`头字段的Bundle能够访问该依赖Bundle中所有的资源文件和导出的包。这意味着如果一个Bundle声明了对另...
在OSGI实战教程中,首先需要了解OSGI(Open Services Gateway Initiative)是一个由众多IT公司共同制定的Java模块化标准规范,旨在实现软件组件的热插拔和服务动态管理。OSGI技术允许应用程序通过动态地安装、启动、...
资源名称:OSGi实战内容简介:为了弥补OSGi规范在应用指导方面的不足,... 《OSGi实战》面向OSGi规范的使用者,通过精彩的讲解和贴近实战的丰富示例,帮助读资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
为了弥补OSGi规范在应用指导方面的不足,四位活跃在OSGi开发第一线的技术专家联手打造了《OSGi实战》。《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其使用方法。《OSGi实战》还介绍了...
林昊所著的《OSGI实战》与《OSGI进阶》是深入理解OSGI技术的重要参考资料,适合对Java模块化系统感兴趣的初学者和有经验的开发者。 在《OSGI实战》中,作者林昊可能会详细讲解以下几个核心知识点: 1. **OSGI基础*...
"OSGI实战"和"OSGI进阶"两份文档提供了深入理解OSGI的理论和实践指导,涵盖基础概念、核心API、实战案例以及高级特性,是学习OSGI的宝贵资料。其中,"OSGI实战.pdf"着重于实践操作,而"osgiopendoc2.pdf"可能包含了...
**OSGI实战中文版** OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它允许开发者将应用程序分解为独立的、可热插拔的模块,称为服务。这些服务可以互相发现并交互,提供了灵活的组件化开发环境。...
OSGI实战这本书是面向对OSGI技术感兴趣的Java开发者的入门资料,旨在提供全面的OSGI知识体系,帮助读者理解和应用OSGI框架。 在OSGI中,每个bundle都是一个独立的运行单元,有自己的类加载器,可以加载自己的类和...
本资源《OSGI实战及源码》主要面向Java开发者,提供了一种深入理解并实践OSGI技术的途径。通过实际操作和源码分析,读者可以掌握如何构建、部署和管理OSGI模块化的应用。 OSGI实战部分可能会涵盖以下关键知识点: ...
《OSGi实战》一书由BlueDavy撰写,是一份详尽的OSGi入门与实战指南,适合初学者和有经验的开发者深入了解OSGi框架及其应用。以下是对该书籍核心知识点的总结: ### OSGi简介 OSGi(Open Service Gateway Initiative...
《OSGI实战》这本书主要涵盖了OSGI(Open Service Gateway Initiative)技术在实际开发中的应用与实践,它是一种Java模块化系统,旨在解决大型软件系统的复杂性问题。以下将详细阐述OSGI的核心概念、优势以及其在...
在"OSGI实战"中,你将学习到如何使用OSGI来开发模块化的Java应用。实战部分通常会涵盖以下几个关键知识点: 1. **模块系统**:OSGI的基础是模块化,每个模块称为一个Bundle,它们有自己的类路径和生命周期。理解...
**实战篇** 1. **构建OSGi应用**:使用Maven或Gradle的OSGi插件,可以方便地构建符合OSGi规范的模块化项目。 2. **Spring与OSGi集成**:Spring Dynamic Modules (SDM) 提供了将Spring应用与OSGi环境结合的工具,使...
在“OSGI实战”文档中,作者深入浅出地介绍了如何在实际开发环境中应用OSGI技术。 一. 序 这部分可能涵盖了OSGI的基本概念和历史背景,解释了为什么在Java开发中引入OSGI模块系统的重要性,以及它如何解决了传统...
网上收集的OSGI资料. 包括: OSGi原理与最佳实践(精选版).pdf OSGI实战和源码.rar osgi进阶.pdf Introduce.OSGi.ppt OSGi.in.action.ppt r4.cmpn.pdf r4.core.pdf r4.enterprise.pdf
本资料集合涵盖了OSGI的入门、进阶以及实战应用,特别是与Spring框架的整合。 《OSGI进阶》着重介绍了OSGI的核心概念和技术细节,包括: 1. **模块系统**:OSGI基于JAR文件作为模块的基本单位,每个模块都有自己的...
在“OSGi实战”这部作品中,作者林昊,一位经验丰富的淘宝架构部架构师,为我们提供了一个深入浅出的学习OSGi的平台,特别是对于初学者来说,这是一个极好的入门资料。这部书分为基础和进阶两部分,旨在帮助读者全面...