osgi.net是一个动态的模块化框架。它向用户提供了模块化与插件化、面向服务构架和模块扩展支持等功能。该平台是OSGi联盟定义的服务平台规范移植到.NET的实现。

简介

尤埃开放服务平台是一个基于.NET平台的动态的模块化中间件,它主要向用户提供了模块化与插件化、面向服务架构和模块扩展三大功能,适用于控制台、WinForm、Windows服务、WPF、ASP.NET和移动平台等各种.NET环境。

该平台是一个基于.NET的OSGi-Like的服务平台,它是OSGi服务平台规范移植到.NET的实现。OSGi一方面它指OSGi Alliance组织;另一方面指该组织制定的一个基于Java语言的服务规范——OSGi服务平台(Service Platform)。目前,OSGi已经得到广泛的应用,比如:

  • IBM的Eclipse、WebSphere;
  • Oracle的Weblogic;
  • Paramus的Infiniflow Service Fabric;
  • ProSyst的ModuleFusion;
  • Red Hat的JBoss;
  • SpringSource的SpringSource应用平台;
  • Sun Microsystem的GlassFish企业服务器;
  • BWM车载系统等。

OSGi.NET是OSGi规范移植到.NET平台的服务规范。尤埃开放服务平台是OSGi.NET规范的实现,由西安尤埃信息技术有限公司提供。UIOSP完整实现了OSGi规范的移植,提供了模块化与插件化、面向服务架构支持、模块可扩展支持三大功能。UIOSP完善支持控制台应用程序、Windows服务应用程序、Windows窗体应用程序、WPF应用程序和ASP.NET应用程序等各种运行环境,并且支持Windows Mobile。

功能

尤埃开放服务平台提供了以下功能。

模块化与插件化支持

  • 物理隔离:基于UIOSP开发的模块是一个物理隔离的可单独部署的模块,每一个模块拥有独立的文件夹、类型空间、资源和类加载器。模块间互相独立、互相隔离且互不影响。
  • 高度可重用:模块的重用不需要再更改任何代码,只需要将模块拷贝到UIOSP指定的插件目录下,它的功能便向其它模块暴露。
  • 规范化:模块具有统一的标准,每一个模块的目录结构、模块配置都是统一的,开发方法也完全一致。
  • 快速集成:仅需要将模块都拷贝到指定的插件目录就能够实现模块功能的快速集成,无需再更改任何的代码。
  • 易部署和升级:通过拷贝即可实现部署和升级。

热插拔与动态支持

  • 热插拔:所有的模块都可以被动态的添加和卸载。
  • 生命周期:模块生命周期状态由“已安装、已解析、正在启动、已激活、正在停止、已停止、已卸载”组成,每一个生命周期状态下,模块提供的功能都可能不同。
  • 动态:当模块执行任何生命周期操作时,模块会动态的想外界暴露或者隐藏它提供的功能,比如动态提供服务、扩展或者其它功能。
  • 远程部署:支持模块远程部署,比如远程安装、启动、停止和卸载模块,或者订阅模块仓库中模块变更并同步。

面向服务架构支持

  • 服务绑定模型:支持典型的“服务注册 – 服务搜索 – 服务绑定”的服务绑定模型。服务提供商想服务注册表注册服务,服务消费者搜索服务注册表并绑定需要的服务。
  • 接口与实现隔离:每一个服务由“接口 + 实现”组成,接口相当于服务契约,而实现则是实现服务接口的具体类的实例。

模块扩展性支持

  • 扩展点:通过标准XML节点<ExtensionPoint>来定义一个模块向其它模块暴露的扩展点。暴露扩展点的模块会监听并处理其它模块对其的扩展。
  • 扩展:通过标准XML节点<Extension>来定义一个模块对暴露扩展点的模块的扩展。这个XML节点会通过扩展点变更事件传递到暴露扩展点的模块。
  • 动态扩展:模块在启动和停止时,会分别想平台注册和卸载相应的扩展点及扩展,该平台通过模块上下文暴露扩展点变更事件来处理动态的扩展信息。
  • 零耦合:模块的扩展没有任何的耦合,仅通过标准XML来配置。

多环境支持

  • 支持控制台应用程序。
  • 支持Windows窗体应用程序。
  • 支持WPF应用程序。
  • 支持Windows服务应用程序。
  • 支持ASP.NET应用程序。
  • 支持Windows Mobile应用程序。
  • 支持UIOSP平台嵌套。

优点

  • 开放、规范、统一:符合规范的模块均可被UIOSP加载。
  • 快速集成:将模块放在插件模块即实现功能集成。
  • 高度可重用:仅通过拷贝即可实现重用,无需修改任何代码。
  • 热插拔与动态:每一个模块都可被动态安装、启动、停止和卸载。
  • 标准模块化与模块物理隔离:模块具有统一规范且互相独立。
  • 面向服务编程支持:提供基于面向服务架构编程模型以支持模块通讯。
  • 动态可扩展:通过暴露扩展点实现动态扩展。
  • 多环境支持:支持各种.NET应用环境

osgi.net框架的更多相关文章

  1. OSGI.NET 框架浅析

    关于osgi.net ,想必大家也听说过,以下是自己在学习osgi.net 过程中整理出来的内容,供大家学习参与使用. 1.  UIOSP 开放工厂框架架构 开放工厂所有插件基于OSGi.NET面向服 ...

  2. osgi.net框架简介

    osgi.net是一个动态的模块化框架.它向用户提供了模块化与插件化.面向服务构架和模块扩展支持等功能.该平台是OSGi联盟定义的服务平台规范移植到.NET的实现. 简介 尤埃开放服务平台是一个基于. ...

  3. 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法

    在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...

  4. OSGI框架学习

    OSGI框架三个重要概念 OSGi框架是根据OSGi规范中定义的三个概念层设计的:模块.模块生命周期.服务. 模块层定义了OSGi模块的概念(bundle,即包含一个元数据MANIFEST.MF的JA ...

  5. OSGi规范的C#实现开源

    这是大约在3-4年前完成的一个C#实现的OSGi框架,实现的过程参照了OSGi规范与与一些实现思路(感谢当时的那些资料与项目),此框架虽然仅在几个小型项目有过实际的应用,但OSGi的规范实现还是相对比 ...

  6. 【源码分享】WPF漂亮界面框架实现原理分析及源码分享

    1 源码下载 2 OSGi.NET插件应用架构概述 3 漂亮界面框架原理概述 4 漂亮界面框架实现  4.1 主程序  4.2 主程序与插件的通讯   4.2.1 主程序获取插件注册的服务   4.2 ...

  7. 分享一个漂亮WPF界面框架创作过程及其源码

    本文会作为一个系列,分为以下部分来介绍: (1)见识一下这个界面框架: (2)界面框架如何进行开发: (3)辅助开发支持:Demo.模板.VsPackage制作. 框架源码如下所示. 本文介绍第(1) ...

  8. osgi dm

    看了http://developer.51cto.com/art/200909/154863.htm 真心感到,最强大最有组织的技术网站还是 51cto,牛人应该也是最多的. 以前逛51cto的比较少 ...

  9. 分享一个漂亮WPF界面框架创作过程及其源码(转)

    本文会作为一个系列,分为以下部分来介绍: (1)见识一下这个界面框架: (2)界面框架如何进行开发: (3)辅助开发支持:Demo.模板.VsPackage制作. 框架源码如下所示. 本文介绍第(1) ...

随机推荐

  1. python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库

    前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 “test-mysql”. Python 操作 MySQL 我们使用 ...

  2. POJ 2777-题解

    一.题意 给你一排N个格子,M种颜色,P个操作.有两种操作:(1)C A B D:把[A, B]区间内的所有格子涂成颜色D.(2)P A B:输出[A, B]区间内的颜色的种类数.注意,初始颜色为1. ...

  3. 如何优化Java垃圾回收-zz

    为什么需要优化GC 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或 ...

  4. [代码][deque容器练习]打分案例

    案例要求: //打分案例(sort算法排序)//创建5个选手(姓名.得分),十个评委对五个选手进行打分//得分规则:去除最高分,去除最低分,取出平均分//按得分对5个选手进行排名 源代码: //打分案 ...

  5. 其他标签a实现提交功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Nginx Linux yum安装

    -- 安装>yum install nginx -y -- 查看>whereis nginx >目录>/usr/sbin/nginx 执行命令>/etc/nginx 配置 ...

  7. ArrayList原理(一)

    需要使用到动态数组的时候用的最多的就是ArrayList了,底层其实是Object数组,以下demo基于JDK1.8: List<Integer> list  = new ArrayLis ...

  8. delphi 工具

    http://blog.csdn.net/maxwoods/article/category/1285993

  9. MVC-READ2

    框架设计模式 契约式设计.元编程.元数据驱动设计.管道模型.远程代理模式.提供程序模型:

  10. Davinci-DM6467板子-外围器件的I2C地址的疑惑解答

    这篇文即调试标清视频或者说调试TVP5147和ADV7343所使用的程序名称为video_sd_playback_480i_composite 我们用的是合众达公司(SEED)的SEED-DVSD64 ...