使用WebSphere Application Server OSGi Feature Pack开发和部署OSGi Blueprint Service
引言
众所周知,OSGi 最初是 Open Service Gateway Initiative 的缩写,应用于家庭网络和移动嵌入式设备。而后,得益于遵循了 OSGi 规范来重构其插件机制的 eclipse 的迅猛发展和庞大的用户群,OSGi 也迅速的发展成为 Java 动态模块化系统的事实上的工业标准。另一方面,在企业应用领域,伴随着 OSGi R4.2 所引入的 Blueprint Service 规范以及 OSGi 联盟的企业专家组所制定的一系列企业级标准,OSGi 正在成为该领域的焦点甚至未来的发展方向,作为 OSGi 联盟最重要的成员之一的 IBM 也迅速得在其 WebSphere Application Server V7 中提供了对企业级 OSGi 应用编程模型的支持。本文旨在介绍 OSGi 的核心概念及其在企业级应用领域的发展,并展示如何使用 WebSphere Application Server V7 Feature Pack for OSGi Applications 来开发,部署和运行企业级 OSGi 应用。
OSGi 的相关概念
OSGi 为我们所带来的是一个规范化的,动态的,优雅的组件模型,它改变了 Java 传统的扁平类加载结构,可以有效的解决 Java 软件的版本冲突问题,为 Java 向模块化发展铺平了道路,JCP 也借由 JSR-291 将 OSGi Core Spec R4.1 规范带入了 JavaSE 的大家庭。
OSGi 的国际标准化组织 OSGi Alliance 成立于 1999 年,如今已有包括像 IBM,Ericsson,ProSyst,Makewave,SAP,Oracle 等在内的 100 多个成员。除了 eclipse 所带来的 equinox 外,常用的开源 OSGi 框架还有 Knopflerfish 和 Apache Felix 等。OSGi 在商业领域的应用也越来越广泛,包括应用服务器领域的 Websphere,Weblogic,JBoss,以及 BMW 的车载系统,Adobe 的 CS2 等。
OSGi 的系统架构如 图 1 所示,其架构主要分为如下 4 个层次:
模块层
生命周期层
服务层
安全层。
图 1. OSGi 系统架构
architect.jpg