- 浏览: 1157612 次
- 性别:
- 来自: 火星郊区
-
博客专栏
-
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
一、引言
OSGI ( Open Service Gateway Initiative )联盟成立于 1999 年,是一个非盈利的国际组织,旨在建立一个开放的服务规范,为通过网络向设备提供服务建立开放的标准,是开放业务网关的发起者。
OSGI联盟的初始目标是构建一个连接在广域网和局域网上的设备开展业务的基础平台,对 OSGi 的最早设计也是针对嵌入式应用的,诸如机顶盒、服务网关、手机、汽车等都是其应用的主要环境。
由于OSGi 的诸多优秀特性(可动态改变系统行为、热插拔的插件体系结构、高可复用性和高效性等等),它被应用于许多 PC 上的应用开发,并逐步为开发者所熟知和钟爱。现在人们对 OSGi 的理解已经远远超出它字面和初衷所涵盖的范围,称其为一个轻巧的、松耦合的、面向服务的应用程序开发框架更为确切一些。
二、OSGi技术概述
OSGi 服务平台标准的核心是提供一个通用、安全并且可管理的 Java 框架,称之为 OSGi 框架( OSGi Framework )。该框架为应用程序(称之为 bundle ,即 OSGi 框架的构件)提供了一个标准环境。
OSGi 框架可以下载和安装 bundle ,并且可以在不需要的时候将其移除,在一个 OSGi 环境中, bundle 的安装、更新由框架统一动态管理,为此,需要框架对服务和 bundle 之间的依赖细节进行管理。
OSGi框架体系结构:
图 1 OSGi框架体系结构
框架从功能上分为下面几个层次:
- 执行环境层 Execution Environment Layer
- 模块层 Module Layer
- 生命周期层 Life Cycle Layer
- 服务层 Services Layer
- 安全层 Security Layer
执行环境,即Java 运行环境。 OSGi 基于基础框架和运行 OSGi bundles 所需的最小需求定义了标准的运行环境。
模块层定义了一个模块化的Java 模型,它针对 Java 部署模式的一些缺点进行了改进,对 bundles 之间共享包或者隐藏包有严格规定,模块层独立于生命周期层和服务层,使用时可以不需要生命周期层和服务层支持。
生命周期层为bundles 提供了生命周期管理的 API ,也为其提供了运行时模型。该层定义了一个 bundle 如何启动、停止、安装、更新、卸载等,另外,生命周期层也提供全面的事件 API ,允许管理 bundle 去控制和操作服务平台。生命周期层需要模块层的支持。
服务层为Java bundle 开发者提供了一个灵活、简单并且一致的编程模型,简化服务 bundle 的开发和部署,并通过解耦服务规范( Java 接口)和实现的方式来实现。这个模型允许 bundle 开发者使用接口规范来绑定服务。这样就可以在运行时根据具体情况选择接口的不同的实现。
在框架中,bundle 可以在运行时通过框架服务注册中心选择一个可用的实现, bundle 可以注册新服务、接受关于服务状态的通知或者查找适合当前设备的服务等。框架可以支持动态安装新的 bundle ,支持对一个已经部署后的 bundle 进行更改、更新而不需要重新启动系统。
安全层基于Java2 的安全机制,但是增加了一些限制,并且弥补了 Java 标准的一些不足,它定义了一种安全的打包格式同时支持与 Java2 安全层的互操作。安全层渗透到 OSGi 框架的所有层次。
三、Loong基础平台简介
在国家“核高基”重大专项“国产中间件参考实现及平台”课题中,提出了“微内核+ 构 件”的平台架构,微内核集成框架作为平台架构的底层运行支撑平台,支持通信服务、公共服务、构件容器和业务引擎等以构件的方式部署在集成框架上,同时构建 一个一体化的管理框架来对集成到集成框架上的构件进行统一的管理。最终通过对构件进行有机集成,形成网络应用服务支撑运行平台。
由中创软件研发的微内核集成框架参考实现和一体化管理框架参考实现,合称为Loong 基础平台。 Loong 基础平台基于 OSGi 框架,并提供了一系列扩展能力,以支撑网络应用服务支撑运行平台中通信服务、公共服务、构件容器、业务引擎等模块的集成需求。
Loong基础平台符合 OSGi 规范,并符合课题组制定的“微内核集成框架规范”和“一体化管理框架规范”。下面简单介绍 Loong 基础平台的两个组成部分。
(一)、微内核集成框架
针对网络应用服务支撑运行平台中通信服务、公共服务、构件容器、业务引擎等模块的集成需求,研究开发了一个构件化的基于 OSGi 的微内核集成框架,该微内核框架基于符合 OSGi 标准规范的内核,提供一系列核心扩展能力和基本支撑能力。其中,扩展支持能力包括:部署框架、日志框架、命令框架、方面框架、配置管理、健康检查器、安全框架等;基本支撑能力包括仓库管理、部署器服务、微内核集成框架命令、声明式OSGi 服务容器、声明式 MBean 容器、事件管理、依赖管理等,从而降低不同类型和不同应用层次的模块集成的复杂度。
微内核集成框架的体系结构如图2 所示,框架包括两个组成部分:核心扩展能力部分和基本支撑能力部分。
图 2 微内核集成框架体系结构
微内核集成框架包括如下子框架及特性:
部署框架:部署框架是针对 Loong 平台可能面对的不断扩展的构件部署需求,在符合 OSGi 标准规范的内核之上开发的一个用于构件部署的框架,通过 OSGi 服务的方式支持对不同构件的部署器服务进行扩展。部署框架提供了热部署、命令部署、管理工具部署等部署领域的核心能力,并提供一组逻辑相关的 Bundle 或构件整体部署的能力。支持对 JavaEE 构件和自定义构件进行部署、卸载、启动、停止、重部署等操作。
日志框架:遵循OSGi 的日志规范,在符合 OSGi 标准规范的内核之上开发一个日志框架,为运行平台提供一种通用的日志读写方式。
命令框架:为支持用户通过命令的方式与系统交互、支持各模块提供自定义的命令,命令框架提供了命令扩展机制,定义了命令扩展接口,开发者可以根据模块的需求开发命令。
方 面框架:针对微内核框架以及各集成模块在开发过程中面对的功能复用和功能扩展问题,从面向服务的角度出发,以构件化的理念实现一个方面框架,通过方面管理 器解决通用的管理和控制逻辑,并提供方面处理器开发的接口,使开发者可以很容易的在对功能关注点分离的基础上进行开发、定制和复用。
配 置管理:部署在微内核集成框架中的模块在启动和运行时需要进行属性参数的设置以保证运行期的动态性。每个模块都会面对配置数据的创建、销毁、变更、持久 化、性能、同步等问题,配置管理服务提供了统一的接口和相应的机制来处理这些问题,提供了设置配置数据、跟踪配置数据的能力。
健 康检查器:为监测网络应用服务支撑运行平台中的各个模块和运行环境的健康状态,并支持根据策略进行报警和处理的需求,健康检查器定义了健康检查探针接口, 并实现策略服务。健康检查探针接口负责采集数据,用户可以通过实现此接口将需要被监测的模块纳入到健康检查器的检测范畴。策略服务负责解析并执行策略,用 户可以通过对策略的修改改变当系统发生异常时报警和异常处理的逻辑。
安全框架:建立在Java 安全模型之上,对 Java 的安全模型进行了扩充,对代码执行权限提供了功能强大的许可管理服务和条件许可管理服务。
仓库管理:为了解决构件在部署过程中对其它构件的依赖以及构件的更新管理问题,微内核集成框架提供了仓库管理能力,被管理的仓库包括了本地仓库和远程仓库。仓库管理具备解析 Bundle 的能力,能够查找并部署所依赖的B undle 。
部署器服务:依据部署框架定义的部署器扩展接口规范,实现针对特定组件开发的部署器,并通过服务方式将部署器注册到符合OSGi 标准的内核之中。
微内核集成框架命令:提供的一组微内核集成框架命令,通过命令的方式对微内核框架以及部署在框架上的模块进行管理,充分利用微内核提供的交互能力,供用户使用这些命令与微内核框架进行交互。
声明式 OSGi 服务容器:提供了通过声明式的方式为 POJO 构件引入、发布 OSGi 服务、接收配置管理、管理生命周期的能力。
声明式 MBean 容器:提供了通过声明式的方式注册、发布 MBean 的能力,开发者通过在元数据文件中定义 POJO 构件的 MBean 方面,实现其管理能力的暴露,管理者通过一体化管理框架调用 MBean 代理进行管理。
事件管理: OSGI 框架在运行过程中会产生多种类型的事件,需要建立一套有效的发布、过滤和处理这些事件的通用机制,事件管理服务提供了一个基于主题的发布 - 订阅机制,方便各集成模块对事件进行处理。事件管理服务引入了黑名单,将处理时间超长的处理者放入黑名单,同时采用并行处理同步事件和串行处理异步事件机制来提高事件管理服务的处理能力。
依赖管理:针对Bundle 和服务因依赖不满足导致系统无法正常运行甚至崩溃的问题,微内核集成框架提供了依赖管理服务,用于对 Bundle 之间的依赖和服务之间的依赖进行分析和管理。
(二)、一体化管理框架
网络应用服务支撑运行平台提供了众多的公共服务和扩展服务,支持多种异构技术体系的构件容器,带来了高度复杂的可管理性问题。为了对网络应用服务支撑运行平台进行有效的监测与管理,为用户提供方便易用的管理界面,研发了基于OSGi 的一体化管理框架,提供基础管理设施,设计管理互操作接口,制定一体化管理技术规范,简化配置、部署、监控、优化等管理任务。
一体化管理框架的体系结构如图3 所示,框架包括三个组成部分:界面集成框架、管理工具接入框架、管理代理接入框架。
图 3 一体化管理框架体系结构
体系结构图中的主要部分简述如下:
界面集成框架:为管理工具提供了界面集成模型和界面扩展接口,定义了管理工具用户界面的整体风格。
管理工具接入框架:定义了管理工具的组成内容、部署形态、配置规格和扩展接口。
管理代理接入框架:为管理代理开发者提供了一个灵活、简单并一致的编程模型,简化了管理代理的开发和部署,允许管理代理开发者以声明式的方式将管理接口暴露为内部接口和远程接口。以使管理工具可以在运行时根据具体情况选择管理接口的不同实现。
四、结束语
Loong基础平台的参考实现紧跟当今计算机软件技术潮流,并针对中国中间件特点进行创新。在“国产中间件参考实现及平台”中,基于 Loong 基础平台,我们成功集成了和构建了网络应用服务支撑运行平台的三个主流运行平台: JEE 运行平台、 WEB 服务运行平台和 CORBA 运行平台。
发表评论
-
关于Felix Log Service
2012-12-07 16:44 1584OSGi服务纲要规范中定义了服务于OSGi平台的通用日志服 ... -
Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)
2012-10-18 10:24 20514.1.开发环境搭建 4.2开发工具 Maven 3 F ... -
【绝对路径】OSGi环境中获取Plugin/Bundle中文件资源的绝对路径
2012-10-08 10:53 2524摘要:在进行Eclipse RCP开发的过程中,需要使用一 ... -
OpenCore:基于OSGi开发纯插件体系结构的WEB应用程序
2012-09-21 17:46 1433随着OSGi/Equinox逐渐成为Java EE服务端的基础 ... -
OSGi技术在Java Web开发中的应用
2012-09-20 11:26 1424随着 Java SE 对模块化功能原生支持的一再推迟(据最 ... -
OSGI典型的应用案例
2012-09-20 11:26 1647OSGI典型的应用案例主要有两个:分别是Eclipse和BMW ... -
OSGi特点
2012-09-20 11:26 12601、JRE版本无关性。虽然Java一直被人们认为是“Write ... -
OSGI与JMX 的关系
2012-09-19 17:09 1071不过重点是: JMX 本来设计的用途就只为了管理,我们不 ... -
在equinox环境开发web应用的"利器" -- registerResources()方法 详解
2012-09-19 17:07 1246registerResources()方法详解 1、简介 ... -
在equinox环境开发web应用的"利器" -- 序
2012-09-19 17:05 1376在equinox环境中开发web应用必须要借助一些工具包提供的 ... -
equinox环境下web应用资源的部署
2012-09-19 17:04 1316osgi的equinox实现环境下,web服务器和web应用都 ... -
OSGi产生的背景--在繁荣的混乱之中走出困惑
2012-09-19 16:58 1184软件的复杂性正在以惊 ... -
将web容器置于OSGi框架下进行web应用的开发
2012-09-16 14:26 3551将web容器置于OSGi框架下,其实就是将web容器做成OSG ... -
在Eclipse中开发OSGi Bundle
2012-09-16 14:26 1341Eclipse为开发OSGI Bundle提供了良好的支持,它 ... -
【第一代服务注册形式】 - 将一个Bundle注册为服务
2012-09-14 10:09 11611、创建业务接口类及其实现类 Java代码 ... -
Declarative Services规范简介及应用
2012-09-14 10:08 1436Declarative Services 是一 ... -
用FileInstall管理Bundle的动态安装、启动、卸载
2012-09-14 10:07 13421、文件目录如下: F:\study_osgi ... -
服务工厂 - Bundle消费者返回不同的服务对象
2012-09-14 10:03 1214一般情况下,服务对象在注册后,任何其它的Bundle在请求 ... -
服务跟踪(ServiceTracker)
2012-09-14 09:58 1170当多个Bundle使用同一 ... -
OSGi容器中Bundle之间Synchronous Communication
2012-09-11 17:07 1575OSGi Core定义了一个服务层,提供了一个Bundl ...
相关推荐
Loong SSO(单点登录)开源代码正式发布 rc1.0 Loong SSO是一款用C 写的 SSO服务端,可以运行在 linux(2.6内核) 和 FreeBSD系统上,使用HTTP协议 进行交互. 这款SSO产品,在运行机制上 吸取了国内门户的 passport一些...
loong环境配置.xlsx
08年老无线网卡E-loong,E6型号的驱动。支持XP支持WIN7
wordpress社交媒体图标插件JZP Social Media(Loong),悬浮显示社交媒体图标,可在后台设置账号和显示状态。 /* * Plugin Name: JZP Social Media(Loong) * Plugin URI: https://www.jianzhanpress.com/?p=8383 *...
XML Schema官方教程(9loong中文版)修正版2009[1]
以下是对这个项目的详细介绍。 1. **虚拟线程与传统线程** 在当前的Java环境中,线程是操作系统级别的资源,创建和销毁成本较高。Project Loom 提出的虚拟线程,旨在降低线程创建和管理的开销,允许开发者更自由地...
go 1.23.3 linux
①tinyxml_2.6.2官方源码②基于VC6.0生成的动态库③已经测试通过,简单方便读写xml文件④同时提供了将xml格式的字符串转化为xml文档的接口⑤使用过程无需要安装其他辅助软件,只需要导入tinyxml.lib 、tinyxml.h,...
在本代码中,给出了PCA的升级模式:2D2DPCA。良好地压缩了时间,并使用欧式距离来衡量相对性。 在orl下表现非常好
tkinter介绍 tkinter是python自带的GUI库,是对图形库TK的封装 tkinter是一个跨平台的GUI库,开发的程序可以在win,linux或者mac下运行 # !/user/bin/env Python3 # -*- coding:utf-8 -*- file:window.py.py ...
因此,有学者提出将"龙"译为"Loong",这一提议旨在保留"龙"的中国特色,避免将其与西方文化中的负面形象混淆。"Loong"的音译既保留了"龙"的音节,也突出了其独特的东方特质,使得非中文背景的读者更容易理解和接受。...
本文将深入探讨MIG焊接的基础知识,分析其在实际操作中的关键影响因素,并强调安全规范的重要性。 MIG焊接,也称为气体金属弧焊(Gas Metal Arc Welding, GMAW),是一种采用连续送进的焊丝作为电极,同时使用保护...
Qt5开发串口助手+自定义报文回复 ,window/ubuntu可执行文件,详见博客https://blog.csdn.net/white_loong/article/details/102779465 。源码https://download.csdn.net/download/white_loong/11933343
博文链接:https://loong-lang.iteye.com/blog/175689
博文链接:https://loong-lang.iteye.com/blog/177699
Toon Boom Animate Pro 2 汉化 1.1 注意:复制文件之前注意备份原始英文文件(复制原始英文 etc 和 resources 文件夹到别的路径作为备份,然后再复制汉化文件直接覆盖到软件...QQ:117174223 Loong 2011 年 3 月 1 日
Addison Wesley - JDBC API Tutorial and Reference 3rd Edition (2003)....XML+Schema官方教程(9loong中文版)修正版2009.04.chm XmlSchema标准参考手册.chm XPathTutorial.chm 样式表中文手册.chm 英语资料大全.chm
潮牌字体在设计领域中扮演着重要的角色,它们通常具有独特的风格和强烈的视觉冲击力,为品牌赋予个性化的标识。2021最新潮牌字体安装包是一个集合了当年流行和创新字体资源的压缩文件,旨在帮助设计师们快速获取并...