`
snoopy7713
  • 浏览: 1149371 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

OSGI学习手册

    博客分类:
  • OSGi
阅读更多

1 概述

本文是关于 OSGI 学习的一些资源介绍 , 基本的脉络是按照自己的学习进程来的 , 希望对进入 OSGI 学习的人有所启发。 本人具备的学习基础有 :

1.       Java RCP 开发经验 , 这个并不是必须 , 实质上学习的顺序反而是先 OSGI ,后 RCP

2.       Eclipse 使用经历 .

 

除此之外 , 应该无需任何先决条件 , 因此该教程适合零基础的人学习 OSGI .

 

2 文章的组织结构

学习的思路大致是 :

1.       OSGI 解决方案解决了什么问题

2.       HelloWorld 入门

3.       HelloWorld 进阶

4.       一个有意思的 Demo

5.       产品发布

6.       OSGI 的大框架和核心组成

7.       OSGI 基本使用方式和开发原则

8.       OSGI 的自动编译和持续集成

9.       白皮书,红皮书,蓝皮书以及无皮书 .

 

OK, 把他们作为目录吧 ! 下面就是推荐 + 点评

 

2.1 OSGI 的基础

[1] OSGI解决了什么问题

点评 : 来自 stackOverflow 的一个讨论, OSGI 领域里面,得分最高 , 实质上对受众更好的问题是 :OSGI 不能解决什么 ? 这个留待各位成为 OSGI 领域高手之后 , 再回答不迟。

 

[2] 如何利用架构一个 C/S 框架

点评 : 本文来自 stackoverflow 的讨论 , 似乎也没有讨论出个所以然 , 但可以带来一点提示 , 个人的偏好是将所有的架构设计成 C/S 架构 . 因为移动的应用 , Web 部署已经成为一个难题 . 还不如都为终端开发一套应用程序吧! 我理解的终端 , 只有命令的收发 , 数据的展示 , 一个非常瘦小的终端 . 归结起来的模式是 : OSGI-Cloud  结合 Open API 的方案

 

[3] OSGI与人们当初的期待相距甚远

点评 : OSGI 本来是想一统江湖的 , 当年的期待是嵌入式客户端 ,难道是 Eclipse IDE 的盛行让大家真的以为这玩意可以无休止的实现跨平台?今天 , 我们忘掉跨平台 , 尤其是嵌入式领域 . 如果有云端的支撑 , 何必强求跨平台 ? 云端不用跨平台,那么我们将其功能做充足 , 任何东西都交给云端处理,而嵌入式端呢 , 我们简化,简化再简化 , 因此变成了一个 Open API 的方式,事实是,这篇文章的思路跟本人有相通的地方。只是文中的“ 60% Java 虚拟机上部署 OSGi 的目标并不是遥不可及。”今天证明跨平台的虚拟机已死。

 

[4] 分布式 OSGI

点评 : 这篇文章我还没有看 , 似乎很多人认为只有 HTTP 协议对分布式的支持才是比较优良的 . 不如看看这里面提及到的两个链接 .

2.2 HelloWorld 入门

[1] 第一个 OSGI例子 HelloWorld

点评 : 够简单和直接 , 有图有真相

 

[2] 你好, OSGi OSGi 入门必读系列

点评 : 可以让你深入一点 . 程度自己掌握 .

 

2.3 HelloWorld 进阶

[1] 利用 Eclipse 开发基于 OSGi Bundle 应用

点评 : 关键词 , IBM, 教程 , 其它的就无需解释 , IBM 的教程 , 永远是教科书中的典范 . 小提醒 , 注意框架和 Bundle 的生命周期 . 这个是整个 OSGI 的核心 .

 

[2] Dictionary OSGi Service模板 Custom端使用

点评 : 使用模板创建 OSGI 工程的时候,可以创建一个字典 , 不过那个是服务提供方的代码 , 这里来一个客户端的代码 , 这个值得研读。

 

[3]   OSGi尝试

点评 : 某人的一些使用体会 , 很不错的参考 , 别人走过的路 , 可以验证 , 也可以越过 , 也可以直接拿来 , 好吧 , 你还是验证一下 .

 

[4] OSGi with Eclipse Equinox - Tutorial

点评 : 这些例子很全 , 但我试了一下午 , 貌似 Declare Service 始终做不来 , 这个教程提供了代码下载 , 但采用的是链接的方式 , 所以,我就一段一段的 copy, 吐血若干杯之后,做完了 , 发现不是需要的效果 . 我还是相信自己的人品产生了问题 . 诸位不妨试试里面的例子。

 

[5] OSGI Tutorial and Running Example

点评 : 这个比 [4] 要直观很多 , 所以我决定写完这篇博客之后 , 立马去跑一遍这里的所有例子 , 因为源码的下载实在太方便了。

 

[6] OSGI资源汇集贴

点评 : 似乎专业性不及本人 , 但可以很好的和本篇提供的资源互补一下。亮点 : Bundle Tool 中文使用手册。进去需要好好研究这个。

2.4 自制的 Demo

[1] 服务端架构技术 —— 基于 OSGI 服务端的架构设计和实现

 

点评 : 自己写的一个 Demo, Server 分发各类服务的例子 , 代码都已经提供了 , 欢迎试用 .

2.5 产品发布

推荐看看我自己总结的文档[4]

[1] OSGI bundle 的打包方法及注意事项

点评 : 没看到亮点 , 甚至没看懂 , 先留在这里 .

 

[2]  OSGI的发布

点评 : 本文总结了 OSGI 应用程序的发布方式 . 还算通俗 .

 

[3] 解决 OSGI环境第三方包的 NoClassDefFoundError

点评 : 这个 Error 追踪了半天 , 这里阐述了一个解决方案 , 但原理性的解释 , 还需要自己进一步探讨 , 可以确定的是 : 这个解决方案很凑效 . 问题是这么解决的—— 1. 将第三方包作为 Bundle 2. 在改 bundle 中的 Manifest.MF 文件中加入上文所说的 .DynamicImport-Package

 

[4] OSGI项目发布总结

 

这个是本人做的总结, 有手动发布, 我脚本的方式发布, 自己看来还是比较全面的.

2.6 OSGI 的大框架和核心组成

[1]  OSGI大饼图

点评 : 其实里面并没有图 , 作为图的爱好者 , 我一直青睐于有图的文档,工具书 , 以及博文 , 但这个确实被忽悠了,它里面没有一张图 , 所以 , 有必要的话 , 可以按照作者的思路 , 补全这些图 , 等你心中有图,必然对 OSGI 了然于心。对了,四层的提法很重要 .

2.7 OSGI 潜规则

每种语言和框架都有自己的游戏规则,顺其者昌 , 逆其者思路一条 , 当前功力尚未修炼到这个级别 .

2.8 OSGI 的自动编译和持续集成

[1]  Bnd - Bundle Tool中文使用手册

点评 : 持续集成 , 还得靠 ANT 还得靠命令行 . 这里就是一个工具包的使用 . 为项目管理添上翅膀 . 建议彻底废弃这个, BND这玩意机会没什么优点。文档支撑也不够。 持续集成无需用到这个, 这篇文章才是更好的方式

 

2.9 白皮书,红皮书,蓝皮书以及无皮书

[1] OSGI in practice

[2] OSGI 实战》

[3] OSGI 进阶》

[4] OSGI 原理与最佳实践》

[5] OSGI Service Platform Core Specification Release   4

分享到:
评论

相关推荐

    OSGI学习手册及实践

    ### OSGI学习手册及实践知识点总结 #### 1. OSGI简介与背景 - **OSGI**(Open Service Gateway Initiative)是一种用于构建模块化应用程序和服务的框架,旨在提高软件系统的灵活性、可扩展性和可维护性。它最初是...

    spring-osgi 入门手册和代码

    Spring OSGi 是一个将 Spring 框架与 OSGi(Open Service Gateway Initiative)容器相结合的开源项目,旨在提供一种在 ...提供的压缩包文件可能包含了入门手册和示例代码,这些资源将有助于你快速上手 Spring OSGi。

    OSGI R4规范,学习必读手册

    通过学习本规范,开发者可以深入了解OSGi平台的设计理念和技术细节,从而更好地利用其模块化特性构建高效、可扩展的应用程序和服务。无论是对于初学者还是高级开发者而言,《OSGi R4规范》都是必读的经典之作。

    OSGI 进阶源码和中文文档

    在学习OSGI的过程中,阅读源码是非常重要的一步,因为源码能直观展示OSGI如何在实际项目中运作。结合"OSGI进阶.pdf",你可以更深入地了解OSGI的高级特性和实践技巧,例如bundle间的协作、服务的高级用法以及如何优化...

    virgo编程手册.pdf

    手册涵盖了从环境搭建到应用程序部署的全过程,是一份不可多得的学习资料。 ### 核心知识点 #### 1. **Virgo Web Server(VWS)概述** - **定义与特性**:Virgo Web Server(VWS)是基于OSGi规范构建的,旨在...

    OSGI 实践 资料 pdf中文

    1. "Spring-Reference_zh_CN.chm":这是Spring框架的中文参考手册,Spring是Java领域最流行的框架之一,它与OSGi有很好的集成,可以在OSGi环境中运行Spring应用。 2. "Think In Java.chm":这是《Thinking in Java》...

    OSGI&spring;&hibernate;

    标题中的"OSGI&spring;&hibernate;"表明我们将探讨三个关键的Java技术:OSGI(Open Services Gateway ...通过对这份手册的深入学习,开发者将能够掌握在OSGI环境下使用Spring和Hibernate进行高效、灵活的Java应用开发。

    OSGI实战教程

    《OSGI实战教程》不仅是一份技术手册,更是一本启发思维、促进创新的指南,适合所有希望深入了解和掌握OSGI框架的开发者阅读。通过本教程的学习,读者将能够掌握OSGI的核心概念,了解其在不同领域和场景下的应用,...

    enterprise_osgi_in_action

    整体而言,《Enterprise OSGi in Action》是一本结合理论与实践的手册,旨在指导Java EE开发者使用OSGi技术构建模块化、动态化、可扩展的企业级Java应用。无论读者是初学者还是有经验的开发者,这本书都能提供实用的...

    osig资料合集

    第二本开发手册可能更深入地探讨了OSGI在实际项目中的应用,包括如何使用OSGI进行组件化开发,实现服务注册和发现,以及如何处理版本冲突。此外,手册可能还会涵盖OSGI与其他Java技术(如Spring框架)的集成,以及...

    Glass Fish帮助手册 Glass Fish帮助手册

    11. **扩展与插件**:了解GlassFish的插件生态系统,如何集成第三方模块,例如使用GlassFish的OSGi支持添加自定义功能。 这份手册不仅适合初学者入门,也对有经验的开发者和系统管理员提供了深入的技术指导,帮助...

    apache karaf 2.3 用户手册(中文版)

    在《Apache Karaf 2.3 用户手册(中文版)》中,你将学习到以下关键知识点: 1. **OSGi基础**:Karaf是建立在OSGi(Open Services Gateway Initiative)框架之上,因此了解OSGi的基本概念和模块化机制至关重要。...

    Liferay 使用手册

    Liferay 采用Maven作为构建工具,遵循OSGi标准,使得模块化开发和依赖管理变得简单。 工具方面,Liferay 提供了Liferay Developer Studio,这是一个基于Eclipse的集成开发环境,为开发者提供了便捷的portlet开发和...

    Eclipse与JDK完全手册

    通过学习这份【Eclipse与JDK完全手册】,初学者不仅可以掌握Java编程的基本技能,还能了解到Eclipse的强大功能和如何利用其进行软件开发。无论是个人项目还是商业应用,Eclipse都是一个值得信赖的开发伙伴,其插件化...

    SDN开源工具基础使用手册.pdf

    ODL 控制器采用 OSGI 框架,实现了一个优雅、完整和动态的组件模型,应用程序(Bundle)无需重新引导可以被远程安装、启动、升级和卸载,通过 OSGI 捆绑可以灵活地加载代码与功能,实现功能隔离,解决了功能模块可...

    Struts2中文手册PDF

    Struts2中文手册PDF为学习者提供了详细的指南,涵盖框架的基本概念、核心组件、配置、拦截器、结果类型、插件等各个方面。 一、基础概念 1. MVC模式:Struts2遵循MVC设计模式,将业务逻辑、数据和用户界面分离,...

    elipse 插件开发手册

    - **插件概念**:Eclipse 插件是基于OSGi(Open Service Gateway Initiative)框架的,它们是可独立部署、可组合的软件模块,提供了Eclipse平台的功能扩展。 - **Plugin.xml**:每个插件的核心配置文件,定义了...

    spring DM英文版

    学习Spring DM,你需要了解OSGi的基本概念,理解模块化开发的优势,掌握Spring框架的核心特性,以及如何编写和解析Spring DM的元数据配置。此外,实践是提高技能的关键,通过分析提供的示例和自己动手创建项目,你会...

Global site tag (gtag.js) - Google Analytics