OSGi——面向服务架构规范简述
OSGi——面向服务架构规范简述
在我理解中(对于SOA,我不专业,如果有误,大家批评),目前大部分应用的SOA中的S,已经不是传统意义的Web Service或者远程Service类似的Heavy Service,而更偏向于暴露出一个接口,向其它模块提供通用功能的服务(或类)。在分层应用,上层类将调用下层的类,这种依赖是层与层之间的依赖,相比没有分层的混沌状态的类间依赖要好很多;在SOA应用,模块间通过服务依赖,这种依赖是可以管理的,非常清晰,每一个模块也很容易被重用。下图是我理解的分层和SOA的比较。
OSGi规范是一个服务框架的规范,在OSGi中,(1)每一个模块叫Bundle,即服务包,每个服务包向其它服务包暴露其服务,服务包间服务的引用是可以管理的;(2)每一个服务包类似一个模块,其实更是一个插件,可以被动态的加载到OSGi框架,动态注册、引用、回收和卸载服务,也可以被动态的卸载;(3)服务包在运行时的依赖是通过可管理的服务来体现,在设计时,从功能复用的角度,即一个服务包会使用另一个服务包的类,服务包之间在设计时有一种依赖,这种依赖在服务包清单配置文件中定义,由Export、Import、Require、DynamicImport配置节组成。Export即这个服务包暴露出的可被别的包使用的类型集合定义,Import是服务包引用其他服务包Export的定义,Require则是引用了另一个服务包的所有Export定义。因此,OSGi还定义了类型加载模型,用于实现一个服务包从OSGi系统加载其依赖的类型。
OSGi内核在实现上,有点复杂,在此不过说,估计关心的人会少一点,能把OSGi的SOA思想和应用用好就Very Good了。OSGi.NET是我们团队利用业余时间开发的,从2008年10月份开始,借鉴了SharpDevelop、EgeyeAddin和Eclipse OSGi设计,用分层方式,划分成配置成、解析元数据层、解析层、运行时加载层、Bundle层、Core层和Adapter层,当然最重要的是面向最终用户的公共接口层了,第一个版本的设计是大部分兼容OSGi规范,把认为复杂的需求给去掉了,也简化了Service的设计。由于接触SOA时间比较晚,对SOA的理解没有SOA专家体会的深,欢迎批评指正。
有任何技术问题,可以加入iOpenWorks插件仓库平台QQ交流群: 121369588。
本文基于Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名道法自然(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
OSGi——面向服务架构规范简述的更多相关文章
- SOA面向服务架构简述
在上篇中我们简单谈了下架构设计中服务层的简单理解,在这里我们将继续服务层的架构,在本节我们将重点在于分布式服务.在分布式系统中表现层和业务逻辑层 并不处于同一物理部署,所以我们必须存在分布式服务,以契 ...
- 面向服务架构(SOA)和企业服务总线(ESB)
http://www.cnblogs.com/shanyou/archive/2008/04/19/1161452.html 学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点 ...
- MicroService 微服务架构模式简述
开源地址: https://github.com/TheCodeCleaner/MicroService4Net 本文内容 微服务 微服务风格的特性 组件化(Componentization )与服务 ...
- 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训
[编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...
- [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店
一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这 ...
- (转)漫谈SOA(面向服务架构)
http://blog.csdn.net/luohuacanyue/article/details/12521699 面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单的认为服务化是模 ...
- [置顶] 漫谈SOA(面向服务架构)
面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单的认为服务化是模块化的延伸,所以服务化有着和模块化类似的优点和缺点.这里不再讨论这些服务定义服务与服务之间的通信协议(像WSDL等等) ...
- SOA面向服务架构
SOA面向服务架构 风尘浪子 只要肯努力,梦想总有一天会实现 随笔分类 - SOA面向服务架构 结合领域驱动设计的SOA分布式软件架构 摘要: 领域驱动设计DDD的总体结构,Repository层使用 ...
- SOA(面向服务架构)——踩坑后反思:这样值得吗?
SOA(面向服务架构)——踩坑后反思:这样值得吗?
随机推荐
- 9.13 JS循环
循环:循环操作某一个功能(执行某段代码) 四要素: 循环初始值 循环条件 状态改变 循环体 for 穷举 迭代 i++;等价于i=i+1; ++I;等价于 ...
- electron-Node.js Error: Module version mismatch. Expected
本来以为是nodejs的版本问题,后来才发现是electron用本地包的问题 Installing modules and rebuilding for Electron You can also c ...
- UIProgressView(进度条控件)
UIProgressView *pr=[[UIProgressView alloc]init]; pr.frame=CGRectMake(150.0, 190.0, 130.0, 30.0);//进度 ...
- Java数据结构——哈希表
- VC----Class Style类风格和窗口风格
CS_BYTEALIGNCLIENT:以字节边界来对齐窗口客户区,这个风格会影响 窗口 的宽度和水平位置.实际上没有看到效果. CS_BYTEALIGNWINDOW:以字节边界来对齐窗口,这个风格会影 ...
- ecshop if标签,超过N条,就输出记录 elseif、库存显示方式
<!--商品详情右侧 相关商品推荐--> <!-- {if $related_goods} --> <!--{foreach from=$related_goods it ...
- ajax传输 基础一
一个简单页面的传输 index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- EasyDarwin
1.EasyDarwin多媒体点播实现 新版本EasyDarwin都加入了中心管理服务EasyCMS, 对于点播系统,EasyCMS不是必须的. MP4点播,需要将mp4文件hint之后才行,MP4 ...
- C- 流程控制(顺序结构,选择结构,循环结构)
一.选择结构 1.if 特点: 同一时刻,只有一个大括号里面的代码会被执行 2,switch 特点 默认情况下,只有一个case后面的代码会被执行 如果一个case后面没有break,而且这个case ...
- 安装RabbitMQ遇到的问题
消息队列RabbitMQ在安装的时候出现了问题.. 我这里是参考的 .NET 环境中使用RabbitMQ 进行安装的..首先声明 这篇博文没有问题.. 但是在我安装的时候发现..ErLang环境装完 ...