OSGI是什么】的更多相关文章

这是大约在3-4年前完成的一个C#实现的OSGi框架,实现的过程参照了OSGi规范与与一些实现思路(感谢当时的那些资料与项目),此框架虽然仅在几个小型项目有过实际的应用,但OSGi的规范实现还是相对比较完整的,包涵了一些基本的要素,由于个人的项目重心已经转移,现在打算把它公开出来,供大家参考: OSGi.NET框架是一个参照了OSGi规范的模块化管理框架.框架为应用程序扩展(组件(bundle))提供了一个标准环境.整个框架可以划分为一些层次: 1.运行环境 2.模块(Bundle) 3.生命周…
在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. 1 设计思路 首先,我来说明一下设计思路.我们先来看看目前OSGi.NET插件框架的服务.在这里,服务不是远程服务,它是轻量级的服务,由接口和实现类组成,如下图所示.服务契约插件定义了服务接口,服务实现插件向服务总线注册服务,服务调用插件利用服务契约(接口)从服务总线获取实现的服务并调用,服务实现…
定义 OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统. 这个框架实现了一个优雅.完整和动态地组价模型.应用程序(称为bundle)无序重新引导可以被远程安装.启动.升级和卸载. OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能. 为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方. OSGi联盟已经开发了例如像HTTP服务器.配置.日志.安全.用户管理.XML等很多公…
上周五部门开会讨论新一代产品(基于.net Winform)的设计规范,从设计规范慢慢讨论到体系结构等架构存在的问题,诸如菜单.工具条.状态条.界面布局等不能实现配置化和自动化,子系统之间拥有强依赖,甚至产生强依赖等等,最后我提出通过OSGi 框架来解决界面和模块之间的问题,并立下军令状一周内把核心框架Beta搭建完毕,第二周进行一次培训. 基于项目的特点,结合贞宝兄的OSGi.Net 和Mono.Addins 进行了重新诠释,在两天半的时间里通过Mono.Addins  和NLite 的依赖注…
前言 OSGi是目前动态模块系统的事实上的工业标准,它适用于任何需要模块化.面向服务.面向组件的应用程序.Eclipse如此庞大和复杂的插件体系,就是基于OSGi.Liferay也是基于OSGi.OSGi是模块化设计的一种标准,适用于大中型项目.在一些小型项目中,开发者也可以自己设计私有的classLoader机制来实现插件开发环境,比如openfire OSGi是在Java平台上开发模块化应用程序的一种方式.它允许你构建模块(称之为bundle),它们彼此之间是隔离的,具备明确的和可管理的依赖…
本文介绍开源的协议. LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNU Library General Public License (GNU 库通用公共许可证),译为:更加宽松的通用公共许可证. 例如mq的5.4版本没有解决Investigate and resolve LGPL dependency via camel-web,所以被撤销. 资料:http://www.oschina.net/questio…
一.环境 eclipse版本:eclipse-luna 4.4 jre版本:1.8 二.Equinox OSGi应用嵌入Jersey框架搭建REST服务 1.新建插件工程HelloWebOSGI a. b. c. d.在新建的工程中新建文件夹lib,其中放入附件中的jar包(见文末),全部添加到工程Build Path中. 2.配置运行环境 a.配置引入包.依赖插件 b.选择Run->Run Configuration,new一个环境 保留图中TargetPlatform中的16个Bundle.…
OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文介绍模块层的一些基础知识,以及OSGi联盟在设计模块层时所做的一些考虑.OSGi标准走到今天,并不是凭空想出来的,它的产生恰恰是为了弥补之前一些技术的缺陷. 模块化其实就是计算机科学中常见的一个概念: “将一个大型系统分解为多个较小的互相协作的逻辑单元,通过强制设定模块之间的逻辑边界来改善系统的维护…
OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或者两者的结合),并且给了应用本身很大的动态性. 这一章里,我们介绍生命周期层的基本特性和如何有效的使用这些特性.当然按照惯例,我们依然会先讲清楚什么是生命周期管理以及OSGi需要生命周期管理的原因,然后再讲解生命周期层的一些基本内容. 1 什么是生命周期管理 一般来说,程序(或者程序的一部分)都一定…
Bundle-Classpath可以实现内嵌jar. 一个Bundle的Activator不需要进行Export 一个Package中的类被两个ClassLoader加载,包中的Private class对于两个ClassLoader之间是相互不可见的. Manifest语法: name: value,我们称之为一个条目,Manifest文件有不受限制的条目个数,其中name是不区分大小写,可以包含字母数字,下划线,中划线,Value可以包含除子\r, \n之后的所有字符,name和value之…