osgi.net框架
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框架的更多相关文章
- OSGI.NET 框架浅析
关于osgi.net ,想必大家也听说过,以下是自己在学习osgi.net 过程中整理出来的内容,供大家学习参与使用. 1. UIOSP 开放工厂框架架构 开放工厂所有插件基于OSGi.NET面向服 ...
- osgi.net框架简介
osgi.net是一个动态的模块化框架.它向用户提供了模块化与插件化.面向服务构架和模块扩展支持等功能.该平台是OSGi联盟定义的服务平台规范移植到.NET的实现. 简介 尤埃开放服务平台是一个基于. ...
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...
- OSGI框架学习
OSGI框架三个重要概念 OSGi框架是根据OSGi规范中定义的三个概念层设计的:模块.模块生命周期.服务. 模块层定义了OSGi模块的概念(bundle,即包含一个元数据MANIFEST.MF的JA ...
- OSGi规范的C#实现开源
这是大约在3-4年前完成的一个C#实现的OSGi框架,实现的过程参照了OSGi规范与与一些实现思路(感谢当时的那些资料与项目),此框架虽然仅在几个小型项目有过实际的应用,但OSGi的规范实现还是相对比 ...
- 【源码分享】WPF漂亮界面框架实现原理分析及源码分享
1 源码下载 2 OSGi.NET插件应用架构概述 3 漂亮界面框架原理概述 4 漂亮界面框架实现 4.1 主程序 4.2 主程序与插件的通讯 4.2.1 主程序获取插件注册的服务 4.2 ...
- 分享一个漂亮WPF界面框架创作过程及其源码
本文会作为一个系列,分为以下部分来介绍: (1)见识一下这个界面框架: (2)界面框架如何进行开发: (3)辅助开发支持:Demo.模板.VsPackage制作. 框架源码如下所示. 本文介绍第(1) ...
- osgi dm
看了http://developer.51cto.com/art/200909/154863.htm 真心感到,最强大最有组织的技术网站还是 51cto,牛人应该也是最多的. 以前逛51cto的比较少 ...
- 分享一个漂亮WPF界面框架创作过程及其源码(转)
本文会作为一个系列,分为以下部分来介绍: (1)见识一下这个界面框架: (2)界面框架如何进行开发: (3)辅助开发支持:Demo.模板.VsPackage制作. 框架源码如下所示. 本文介绍第(1) ...
随机推荐
- H.265:高清视频的最佳选择
H.265技术经过2年发展,我们认为H.265高清监控产品市场化才真正开始.那么H.265的到来,大家又对该技术真正了解多少呢?下面就让我们一起来了解该技术.... HEVC/H.265标准于2013 ...
- 利用MessageFormat实现短信模板的匹配
其实没什么技术含量,因为老是想不起来,所以在此文做下记录. 通常我们的应用系统中都会有很多短信的发送,或者是信息邮件等的推送,而这些信息却有着相同的共性,比如只是用户名换了下. 像下面这条,除了红色字 ...
- Hadoop 2.7.3 安装配置及测试
1.概述 Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.hadoop三种安装模式:单机模式,伪分布式,真正分布式.因在实际生 ...
- fast-dfs
转http://www.cnblogs.com/jym-sunshine/p/6397470.html FastDFS安装全过程记录 1.安装准备 HA虚拟IP:192.168.1.208 HA软件: ...
- clr相关名词
程序集:一个或多个类型定义文件和资源文件的集合 Native Code(本机代码): 已被编译为特定于处理器的机器码的代码. 本地代码(native code)是计算机编程(代码),编译用来运行一个特 ...
- how to deal with EINTR fault
[how to deal with EINTR fault] EINTR:interupted error.是指一个调用被信号给中断,对于同步的耗时调用来说,这个操作常见,譬如select.read. ...
- linux sudo 系统环境变量 用户环境变量
1. sudo就是普通用户临时拥有root的权限.好处在于,大多数时候使用用户自定义的配置,少数情况可以通过sudo实现root权限做事. 故而,需要注意的一点是,在你使用了sudo后,你临时不再是原 ...
- 79. Word Search (Array; DFS,Back-Track)
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- ROS标定IDS相机
参考 ROS 相机标定http://blog.csdn.net/ArtistA/article/details/51125560 ROS里的标定程序只要使用了OPNCV的标定程序: opencv 相机 ...
- 使用mybatis开发Dao的原始方法,实现根据用户id查询一个用户信息 、根据用户名称模糊查询用户信息列表 、添加用户信息等功能
1.需求 将下边的功能实现Dao: 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户信息 2. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类 3.User.xml映 ...