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. oracle实例侦听

    在oracle服务器端命令行中执行 C:\>lsnrctl进入到 LISNRCTL>界面 键入help字符会回显相关的帮助命令

  2. Spring Cloud Eureka高可用落地实战

    一.原理 如图所示,多台Server端之间相互注册(这里以两台Server为例),Client端向所有的Server端注册. 二.Server端配置 1. 添加依赖 <dependency> ...

  3. 在Spring使用junit注解进行单元测试

    在Spring中可以使用junit配合注解进行单元测试 一.常用注解 1.@RunWith(SpringJUnit4ClassRunner.class),让测试运行于spring测试环境2.@Cont ...

  4. 第七章 二叉搜索树(b1)BST:查找

  5. 62. Unique Paths (Graph; DP)

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  6. mysql 一次性插入上万条数据测试专用

    无聊期间 记录下 mysql 一次性插入上万条数据 测试的时候可以用 首先 创建一个表 t3 create table t3(id int)ENGINE = MyISAM; \d //    表示吧m ...

  7. 安卓开发解决android.os.NetworkOnMainThreadException异常方法(主线程不能直接调用webservice)

    安卓开发解决android.os.NetworkOnMainThreadException异常方法 2013-01-07 14:01:04|  分类: 技术 |  标签:安卓  技术  java  | ...

  8. js的prototype(2)

    1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javasc ...

  9. 获取iOS设备唯一标识

    [获取iOS设备唯一标识] 1.已禁用-[UIDevice uniqueIdentifier] 苹果总是把用户的隐私看的很重要.-[UIDevice uniqueIdentifier]在iOS5实际在 ...

  10. CoreText

    [CoreText]  Core Text is designed for development of higher-level text-handling frameworks. General ...