`
snoopy7713
  • 浏览: 1140435 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

OSGi——面向服务架构规范简述

    博客分类:
  • OSGi
阅读更多

去年我们组要开发一个新的产品,在讨论产品架构路线的时候,美国的架构师向大家征集了架构设计思想(我推荐了SCSF),有一位工程师向他推荐了OSGi。以前我还没有听过OSGi这玩意,虽然我参加工作后,现学了Java和Flex,但非常菜。在工作之前我用了4年的.NET。接触了OSGi后,发现它是一个面向Java的服务规范,还没有一个像样的面向.NET的框架(有个EgeyeAddIn,据说兼容OSGi,我看了源代码了,觉得它离OSGi较远http://www.codeplex.com/EgeyeAddIn)。随着对其概念的模糊了解,我觉得这玩意不错,于是我准备自己做个基于.NET的OSGi框架(因为我在业余的时候在设计一个UI框架,原先准备采用SCSF,接触了OSGi后,我决定将二者合并,重新设计OSGi+CAB的框架)。于是,我在互联网找了很多次关于OSGi的资料,但很失望,没有得到多少需要的东西。因此,我只好自己翻译了OSGi规范前6章,边翻译,边理解(当我翻译完第6章的时候,发现网上已经有OSGi规范中文版了,给自己省了点事),期间我翻译了SCSF英文指南,看了EgeyeAddIn、SharpDeveloper Core和Eclipse OSGi的源代码,最终设计了基于.NET的OSGi规范和OSGi.NET概要图,目前OSGi.NET测试版已经完成,预计年底可以发布。因此,对OSGi和SOA有了更深一步的了解。

在我理解中(对于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专家体会的深,欢迎批评指正。

 

  • 大小: 24.4 KB
分享到:
评论

相关推荐

    OSGI教程_面向SOA的架构

    本教程主要针对面向服务架构(Service-Oriented Architecture, SOA)的开发者,旨在帮助他们更好地理解和应用OSGI技术。 **OSGI核心概念** 1. **模块系统**:OSGI的核心是它的模块系统,称为“Bundle”。每个...

    基于 OSGi 的面向服务的组件编程

    基于 OSGi 的面向服务的组件编程呆呆呆呆呆呆地

    基于OSGi的面向服务的组件编程.pdf

    OSGi(Open Services Gateway Initiative)是一种开放的服务规范,自1999年由OSGi联盟提出,最初目标是为嵌入式设备提供一个通用的软件运行平台,以屏蔽硬件和操作系统的差异,实现软件的动态部署和更新。...

    osgi进阶——11111

    OSGi(Open Service Gateway Initiative)是一项由OSGi联盟发起的技术标准,它定义了一个动态的模块化网络,可以在Java应用程序中安装、启动、停止和卸载服务。OSGi技术主要用于构建动态化、模块化的应用程序和服务...

    基于OSGi的RFID服务架构的研究

    ### 基于OSGi的RFID服务架构的研究 #### 一、RFID固定阅读器的软硬件实现 **背景介绍** 在RFID(Radio Frequency Identification,无线射频识别)系统中,阅读器扮演着核心角色。特别是固定式阅读器,因其通常...

    osgi重要文档--osgi核心规范文档,osgi服务文档,osgi-最佳原理与实践(王昊编著,共79页)

    这个压缩包包含了关于OSGI的重要文档,分别是“OSGi R4核心规范文档”、“OSGi服务文档”以及“OSGi-最佳原理与实践”(王昊编著)。下面将详细介绍这些文档所涵盖的关键知识点。 首先,"OSGi R4核心规范文档"是...

    OSGi R4服务平台核心规范

    OSGi(Open Service Gateway Initiative)服务平台规范,简称OSGi规范,是一项开放式的通用架构标准,旨在为包括服务提供商、开发者、软件提供商、网关运营商以及设备提供商在内的各种参与者提供一个统一的服务开发...

    OSGi R4 服务平台核心规范

    ### OSGi R4 服务平台核心规范解析 #### 一、引言 OSGi(Open Service Gateway Initiative)作为一项开源项目和技术规范,旨在提供一种模块化的解决方案,使得开发者能够构建可扩展的应用程序和服务。OSGi R4 规范...

    OSGi服务平台规范中文版.docx

    OSGi(Open Service Gateway Initiative)是基于Java的服务平台规范,旨在提供一个基于服务的架构,允许开发者创建模块化、可扩展、可重用的应用程序。OSGi规范定义了一组API和服务,用于实现模块化、动态加载和卸载...

    osgi规范_R4_zh.pdf

    《深入解析OSGi R4服务平台核心规范》 一、引言 OSGi(Open Service Gateway Initiative)是一个模块化系统和动态模块化环境的规范,它为构建和部署可复用的软件组件提供了一套标准框架。《OSGi R4服务平台核心规范...

    OSGi R4规范,中文版

    综上所述,虽然给定内容的具体细节难以解析,但从整体来看,这部分内容似乎是在试图展示OSGi R4规范中的一些关键概念和技术细节,如服务注册、权限管理、依赖解析等。 #### 五、总结 OSGi R4规范是一个强大的模块...

    OSGi实战(OSGi规范制定者亲自撰写,汇集Apache项目技术实战经验),完整扫描版

    《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其使用方法。《OSGi实战》还介绍了某些技术的低层实现细节,引领读者畅游OSGi的世界。 《OSGi实战》面向OSGi规范的使用者,通过精彩的...

    OSGI企业技术规范

    ### OSGi企业技术规范详解 #### 一、概述 **OSGi企业版本的技术规范**是OSGi联盟为满足企业级应用的需求而制定的一套详细的技术标准与指导原则。该规范旨在提供一个灵活且可扩展的框架,支持复杂的企业级应用开发...

    java高手真经 (UML建模+设计模式+面向服务架构) 卷6

    soa/SCAWSClient.zip //19.SCA客户端实例——HelloWorld实例 soa/OSGiHelloWorld.zip.zip //21.OSGi实例——HelloWorld实例 soa/demo.sql //24.SOA服务架构实战——企业信息管理系统数据库脚本 soa/ssh2.zip //24....

    Java应用架构设计 模块化模式与OSGi.zip

    Java应用架构设计中,模块化模式与OSGi是两个关键概念,它们对于构建大型、可扩展且易于维护的系统至关重要。模块化模式使得代码组织更加有序,而OSGi(Open Services Gateway Initiative)则是一种实现模块化的动态...

    java高手真经 (UML建模+设计模式+面向服务架构) 卷3

    (1)UML样例源文件(8个样例文件) uml/uml.mdl //01.UML快速入门 uml/usecase.mdl //02.用例图 uml/class.mdl //03....soa/EmisService.zip //24.SOA服务架构实战——企业信息管理系统Web端

    《OSGi实战》完整中文版

    《 OSGi实战》是学习OSGi的全面指导,利用与架构和开发人员相关...《OSGi实战》面向OSGi规范的使用者,系统、全面、深入地阐述OSGi的重要特性及其使用方法,还介绍了某些技术的低层实现细节,引领读者畅游OSGi的世界。

    【BluePrint】使用 Blueprint Container 规范构建 OSGi 应用程序

    Blueprint是OSGi联盟为简化在OSGi环境中创建和管理服务提供的一种规范,尤其适合于企业级Java应用程序。本文将深入探讨如何使用Blueprint Container规范来构建OSGi应用程序。 首先,Blueprint Container是OSGi ...

Global site tag (gtag.js) - Google Analytics