这一讲中,我们先来了解下什么是osgi,为什么使用osgi,osgi的开发工具有哪些等基本内容。


1、什么是osgi ?

OSGI的英文全称是 Open Service Gateway Initiative ,直接翻译是 开放式的服务网关协议 。OSGI强调的是服务的概念。OSGI是一个服务平台,为JAVA开发环境提供各种服务(根据自己的业务逻辑,对java web来说,可能有用户登录服务,用户验证服务,数据库查询服务等等等等)。OSGi规范的核心组件是OSGi框架。这个框架为应用程序(被叫做组件(bundle))提供了一个标准环境。


2、OSGI能做什么,为什么用OSGI?

说到为什么使用OSGI,这里我总结大概有以下几点:

1)OSGI有强大的公司支持,包括有IBM,诺基亚(现在好像有点落寞咯,呵呵),BMW等等。它并没有很强的背景或者理论支持,而是基于现实软件和市场遇到的困难而产生的。

2)只要有JAVA VM ,OSGi平台在任何机器上的运行都将一致的。

3)OSGi是一个基于Java的模块系统(module system for Java)的框架。模块定义的主要功能之一是单元部署,意味着你能够使用这些模块建设或者下载或者安装扩展到你的应用中去。

4)osgi支持模块化,热部署。就是在不停止服务运行时动态更新其服务内容,最终达到100%在线率的目标。而Java中,由于类加载机制的原因,导致一个类一旦加载进去就再也无法释放,因此,OSGi引入了基于插件的类加载机制。目前eclipse的插件就是基于OSGI开发的。

当然,第三,第四点中,才是osgi最最重要的一点。


3、OSGI的开发工具是什么?支持OSGI框架的web容器有哪些?

开发工具一般是用spring STS,它是spring社区基于eclipse开发的一个插件。下载地址是

http://www.springsource.com/downloads/sts

目前支持osgi的web容器已经有很多了,不过现在一般用的是eclipse virgo,下载地址是http://www.eclipse.org/virgo/ ,virgo是有spring社区 把 spring dm server 捐献给了eclipse,最终转化成了 virgo。


下一节,我们来讲如何使用 spring tst 和 eclipse来开发我们的第一个osgi的web程序。做第一个osgi helloword。