- 1. OSGI 及其WEB开发郭斌
guobin@baidu.com
- 2. 一、OSGI是什么
二、OSGI为什么
三、OSGI有什么
四、OSGI怎么用
五、OSGI秀一个
六、OSGI去何方内容
- 3. OSGI是什么 OSGI:Open Service Gateway Initiative
OSGI:The Dynamic Module System for Java平台?容器?框架?架构?标准?
- 4. OSGI是什么 成绩
Eclispe
Application Server: WebSphere, Weblogic, Spring DM Server, GlassFish, Jboss
Java规范: JSR277宣告放弃
BMW汽车的应用控制系统
实现
Equinox
Apache Felix
其他: Oscar, Knopflerfish
- 5. OSGI为什么 你痛苦吗?
因为需求的原因,我的项目已经需要广泛的使用ClassLoader并控制类的载入了
我的项目使用的两个包,都基于另一个包,但他们无法兼容
我能获得很多很有价值的包,但是他们都是按早自己的风格实现的,为了使用他们,我往往需要再编写一些代码封装他们,能拿过来就用吗?
我想让自己的项目支持插件,有现成的轮子吗?有经过了考研靠谱一点的轮子吗?
- 6. OSGI有什么 OSGI特性
模块化
动态性
规范性
稳定性
OSGI概念
Bundle: 按特定要求提供了MANIFEST.MF的jar
Service: Bundle中注册为外部提供服务的java类
输出包和引用包
Bundle的生命周期
OSGI其实是某种限制,遵循这种限制,获得额外的好处
- 7. OSGI有什么 Demo1
时间服务
Demo2
用Equinox运行
Demo3
用Apache Felix运行
- 8. OSGI怎么用 用的更好
Spring DM
结合OSGI框架和Spring框架
Demo4
用于所需
桌面应用, Web应用, 嵌入式BeanService in Bundle
- 9. OSGI怎么用 OSGi Plugin for Struts2
Bundled with Struts from 2.1.7 on
This plugin provides support for starting an instance of Apache Felix inside a web application, and scanning installed bundles for Struts configuration. An admin bundle is also provided.
This plugin is only experimental and can change in the future.
https://cwiki.apache.org/confluence/display/WW/OSGi%20Plugin
- 10. OSGI怎么用 Web应用
方式一: Http Service as a Bundle
Demo5
方式二: OSGI embedded in a web application
Demo6
- 11. OSGI秀一个 一个查询系统
可扩展
热插拔
动态性
Demo7动态化、模块化、扩展性、插拔性,这一切还需要靠自己,但OSGI让我们更有方向感
- 12. OSGI去何方 更好的Web支持
RFC66
更好的分布式支持
RFC119
丰富的Bundle Repository
- 13. Thanks!