OSGi的介绍我不在这里详细。OSGi是
Open Service Gateway initiative的简写,中文可以翻译为开放服务技术平台。OSGi也可以理解为OSGi联盟,目前IBM,NOKIA,BMW等公司成员。
现在一个比较好的BLOG关注的是 bluedvy,上面有OPENDOC做得非常好,强烈推荐。
好,开始正题,为什么用OSGi呢?
OSGi不是SUN,IBM或者BEA公司推出来的想统治JAVA市场的工具,现任主席也既创始人有自己的公司,专门用来培训客户使用OSGi和进行软件设计。也就是说,OSGi并没有很强的背景或者理论支持,而是基于现实软件和市场遇到的困难而产生的。
现在问题有:
1 便携设备的软件非常有限
2 异构软件系统日趋复杂
3 设备上管理软件生命周期
OSGi联盟提供标准的API用于设备管理!
翻译于 Why OSGi ppt by Peter Kriens
现在一个比较好的BLOG关注的是 bluedvy,上面有OPENDOC做得非常好,强烈推荐。
好,开始正题,为什么用OSGi呢?
OSGi不是SUN,IBM或者BEA公司推出来的想统治JAVA市场的工具,现任主席也既创始人有自己的公司,专门用来培训客户使用OSGi和进行软件设计。也就是说,OSGi并没有很强的背景或者理论支持,而是基于现实软件和市场遇到的困难而产生的。
现在问题有:
1 便携设备的软件非常有限
- 缺乏便携设备软件的原因: 由于这些设备数量和种类繁多,缺乏统一的运行平台,导致没有一个大的统一软件市场。一个软件如果只专注在特定的设备上,那么它的市场将非常小,这样就导致了软件的缺乏。
- 硬件和平台的约束:设备CPU的花费和性能有非常大的不相同,也导致部署软件出现困难。有时候Linux是个好选择,但是对于只需要一两种软件的设备来说,装个大而全的系统无疑是对资源的浪费。
- OSGi平台的好处: 只要有JAVA VM ,OSGi平台在任何机器上的运行都将一致!
2 异构软件系统日趋复杂
- 现实: Space Shuttle(苹果播放器) ~0.5百万行代码
- 一辆宝马汽车有50个联网的智能设备
- Eclipse有2.5百万行代码
- 一个普通的程序员每天写10++行代码(中国号称有“百万”程序员)
- 面向对象OO: OO是非常好的技术,但是当系统有一定复杂度很灵活度要求的时候,对象关联就同样复杂起来。因此我们需要使用插件体系 。
- 面向服务SOA
- 接口和实现分离,可以允许修改实现而不用管其他地方;
- 通过接口,动态发现和绑定实现;
- 实现组件可以重用;
- OSGi注册服务提供JAVA VM层的模块
- 可以根据接口或者属性定义发现服务,可以通过程序控制,默认规则或者配置绑定一个或多个实现。
- SOA通过网络绑定和发现服务,而OSGi在本地发现!
3 设备上管理软件生命周期
- 当软件离开网络后,不会自动停止;
- 更新和安装应用复杂;
- 连接网络设备协议多;
OSGi联盟提供标准的API用于设备管理!
- 能够管理众多设备;
- 对特定的问题提供优化的解决方案;
- 减少管理的成本;
翻译于 Why OSGi ppt by Peter Kriens
n
n
n
¨
¨
n