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(面向服务架构)——踩坑后反思:这样值得吗?
随机推荐
- 关于datatable linq的转换
关于datatable datarow DataTable paraval = GetParaVal(DateCondition, strUrl, Page, RowPage, iYearMonthN ...
- 自然语言21_Wordnet
QQ:231469242 欢迎喜欢nltk朋友交流 http://baike.baidu.com/link?url=YFVbJFMkZO9A5CAvtCoKbI609HxXXSFd8flFG_Lg ...
- 自然语言7_NLTK中文语料库sinica_treebank
http://www.hankcs.com/program/python/nltk-chinese-corpus-sinica_treebank.html NLTK包含Sinica (中央研究院)提供 ...
- Java——jar命令
把*.class压缩成一个文件,这样的文件就称为jar文件. 如果想要生成jar文件,直接使用JDK中bin目录里的jar.exe就可以将所有的类文件进行压缩. 当用户得到一个jar文件后,即可通过设 ...
- yourphp读取分类名称{$Categorys[$r[catid]]['catname']}
页面代码: product_list.html 提供分类的id,找出分类的名称 {$Categorys[$r[catid]]['catname']}
- mono中显示debug信息(filename/lineno)
一直发现 mono 的 traceback 没有 fliename.lineno,很奇怪.研究了下,原来编译和运行时要加参数的. dmcs -debug /r:xunit.dll /t:library ...
- OwinStartupAttribute
尝试加载应用时出现了以下错误.- 找不到包含 OwinStartupAttribute 的程序集.- 找不到包含 Startup 或 [AssemblyName].Startup 类的程序集.若要禁用 ...
- Java中设置classpath、path、JAVA_HOME的作用
Thinking in Java对classpath作用的解释 Java 解释器的工作程序如下: 首先,它找到环境变量CLASSPATH(将Java 或者具有Java 解释能力的工具——如浏览器——安 ...
- SQL JOINS
- Nginx反向代理模板
nginx反向代理模板,修改nginx.conf #Basic reverse proxy server # upstream wcf{ server localhost:8080; #wcf1 ...