Loong基础平台介绍

一、引言

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 运行平台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值