Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

基于OSGi的软件构件化方法

来源: 未知 分享至:

1 引言

当今软件系统复杂性不断增加并且对动态性提出了更高的要求,大型软件项目通常采用构件模型和构件化技术提高系统的可扩展性、易理解性和可重用性。 Java 技术通过 JAR 文件、包和命名空间以及类加载机制对基于构件模型的构件化设计开发提供支持,但存在着缺乏动态性、依赖声明、版本控制和信息隐藏等问题 [1] 。面向服务构件模型将服务计算引入到构件模型中,为构件模型提供了动态性,由此可见构建面向服务基于构件的系统是非常必要的。同时, OSGi 是 轻量级的面向服务基于构件的框架,用来部署和执行面向服务构件化的应用,并提供了服务注册和服务获取的机制。首先,提高动态性,当构件需要更新和重新部署 时无需重新启动系统,真正体现了热插拔和即插即用的特点。其次,提供对其他构件和资源依赖的显式声明,使构件划分清晰。再次,有效的进行版本控制,支持同 一系统中多个不同版本包被同时加载。最后,实现了信息隐藏,只对外部提供必要的调用接口,隐藏其他不必要的信息。因此,对现有大型 Java 工程进行构件化,通过 OSGi 使系统采用面向服务基于构件的框架,可以更有效的对系统进行开发、维护和管理。但对系统进行框架上的改动是一件艰巨而有挑战性的工作,我们通过对 OSGi 框架的分析,结合具体实践中遇到的问题,提出了一套切实可行的解决方案。

2 基于OSGi 的软件构件化方法

2.1 软件系统结构设计

基于分层思想提出了基于 OSGi 的构件化软件系统总体框架,如 1 所示系统大致分为以下四个层次。内核层,采用 OSGi 实现作为系统执行环境。基础层,包括公共服务、共享资源和第三方 JAR 等。其中,公共服务 Bundle 提供上层构件实现中可能会用到的服务;共享资源 Bundle 提供软件构件层各 Bundle 可能会用到的共享资源;第三方 JAR Bundle 是将原系统中 JAR 包统一管理,对外提供调用接口。软件构件层,根据高内聚低耦合的原则,对原来的系统进行构件划分,每个构件实现特定的功能,相互之间的功能相对独立。根据实现和接口相分离的原则,每个构件都是由构件的具体实现即软件构件 Bundle 和构件抽象出来的接口即构件 API Bundle 所构成。软件构件 Bundle 调用其他的构件 API Bundle 和基础层 Bundle 提供的功能,并且通过构件 API Bundle 对外提供调用接口。服务提供层,将软件构件层各个 Bundle 提供的服务接口进行统一管理,以供上层应用开发时使用,便于通过调用底层功能和服务对系统进行扩展。

\"\"

1 基于 OSGi 的构件化软件系统框架图

2.2 基于OSGi 的软件构件化方法

基于 OSGi 的软件构件化方法分为两个阶段,第一阶段为软件构件化,第二阶段为构件服务化,如 2 所 示。第一阶段分析遗留软件以确定构件划分,这一步骤需要领域知识或者已有的文档。根据分析结果,遗留软件被划分为若干低耦合、高内聚的块,它们随后被封装 成各个构件。分析各构件之间的依赖,依照这些依赖抽取出构件的接口,使构件之间的依赖都变成以依赖相应接口的形式体现。第二阶段是依照构件的接口构造各个 构件提供的服务,目标是提供运行时动态性,服务的注册、发现和绑定都交由底层框架实现,构件提供生命周期接口,供管理员启动、停止和更新服务。

\"\"

2 基于 OSGi 的软件构件化方法

2.2.1 软件构件化

1 )构件划分

构件是可以独立部署和卸载的单元,一个构件一般具有一项或几项功能,因此构件化的软件有较高的内聚性。同时,一个构件不需要关心其它构件的实现,它只需要了解其它构件的接口和相应的约定,因此构件化的软件是低耦合的。传统的 Java 软 件系统缺乏有效的信息隐藏机制,各构件之间的依赖是隐式的,经常会出现多个构件共同实现一项功能或者一个构件包含多项功能。我们需要做一些调整,将共同实 现一项功能的多个构件合并为一个构件,同时,一个实现多项功能的构件需要被划分为多个构件,并且良好地定义相互之间的依赖关系。 OSGi 是一种面向服务的体系结构,它不但提供了 Package 方式共享代码和资源,而且提供了一个定义良好的服务层,支持面向服务的编程。通过使用 OSGi 的服务层,可以实现系统的动态性,使系统具有较低的耦合性。基于 OSGi 平台的 Bundle 实现应该避免强依赖于其他 Bundle 的资源或服务,即程序不能认为其他 Bundle 中的资源或服务一定存在,这可以通过具体的编程实现来完成。

2 )接口抽取


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史