OSGI框架常用概念主要涉及以下两个:
组件(Bundle):OSGI框架下的一种程序组织方式,每个组件是一个独立的功能模块,它能在OSGI框架里独立部署和起停。组件之间通过服务来传递数据。
服务(Service):是OSGI框架下组件之间交互的方式,它通过接口实现。一个组件如果想为其它组件提供服务,它可声明并实现一个接口,其它组件就可以通过这个服务接口获得这个组件提供的服务。
组件(Bundle)服务接口从服务方式来区分有四种实现形式:
1,Java Local Service形式,一个实现了固定接口的Java类,通过OSGI框架或框架二次包装成的Framework,自动发布成Service,主要给同一JVM的Java模块或Service进行调用;
2,Web Service形式,主要给c#,java,python,flash/flex, php进行远程调用;
3,REST形式(RESTful),主要给如门户这类的第三方系统直接在Html页面上进行marshup时调用,也可给其他语言如perl、c/c++进行服务端之间的集成调用;
4,AJAX形式,主要给Web页面上的Javacript代码提供方便的调用方式。
注:
[1]实际使用时,通过封装过后的Web Service调用端,可以直接传递对应语言的对象,返回也是对象(参数对象、返回对象和SOAP/Hessian Message之间的转换由封装层自动完成)。
[2]KEV,指Key/Encoded-Value
[3]XML, 可以通过实现自定义风格的Java对象与XML的映射来方便接口调用。




