阅读更多

11顶
0踩

企业架构

转载新闻 OSGi V4.2 发布

2009-09-22 09:51 by 见习记者 rsonly 评论(2) 有5218人浏览
OSGi 联盟于2009年9月16日发布了OSGi Service Platform V4.2标准。在OSGi 企业专家组(EEG, Enterprise Expert Group)的大力推动下,新的标准里增强了对企业级应用的支持。比如,在Service Compendium V4.2中引入的以下新标准:
Blueprint Service
即RFC 124。从某种程度上说,这个新的标准可以理解为是对Spring DM的标准化。它引入了Spring框架的IOC和DI机制,使得你可以通过配置文件实例化一个POJO类。同时,你也可以在配置文件中发布和引用一个Service,在这一点上和已有的Declarative Service十分相似。但是,Blueprint Service提供了更为灵活的动态加载机制,当Service所在的Bundle是一个Lazy Bundle时,这个Service可以注册一个Placeholder来等待其它应用的发现和引用。以外,使用Blueprint service可以使你避免在你的应用中引入一些容器相关的代码,这使你的应用可以独立于OSGi框架而运行,从而更加方便进行单元测试。
Remote Service
即RFC 119,原来叫作Distributed OSGi。这个新标准使得OSGi的Service可以在不同的VM间通信。也就是说,它提供了一种机制来发布可供远程用户使用的Service,并且不需要这个Service实现一些特定的接口。
Bundle Tracker
即RFC 121。与在4.1版中引入的Service Tracker类似,Bundle Tracker可以用来观察和跟踪Bundle的状态变化。在以前,我们可以通过在我们的代码中实现BundleListener接口来达到这个目的。然而,使用Bundle Tracker,我们可以降低这种程序上的耦合性。

另外,在新的Core Specification V4.2中,还增加了以下新特性:
Framework launching
即RFC 132。以前,从一个Java应用中起动OSGi引擎的方式往往是不同的,这通常由实现这些引擎的厂商决定,如Felix和Equinox。在新的V4.2标准中,定义了统一的方式,这样当我们想在不同引擎上测试我们的程序时,只需要替换相应引擎的JAR文件就可以了。
Bundle License
即RFC 125。定义了Bundle-Icon和Bundle-License头。
Service Hooks
即RFC 126。提供了一组用于观察和操纵Service层事件的API,比如当一个Service产生了一个事件,如被请求,你可以使用Hooks来阻止一些未认证的Bundle来接收到这个事件。
Conditional Permission Admin
即RFC 120。用来取代现有的Permission Admin Service,虽然它们都同时存在于新的V4.2中,但是OSGi联盟在Permission Admin Service章节的第一句话就作了说明。似乎因为V4.2是一个仅仅是增加小数点位数字的新标准,所以为了保持对V4.x版本的兼容,仍然保留了这一章。相信在以后的V5版本中会清除干净。

除了上述重要改变,新的标准中还有很多小的变化和提升,在此就不赘述,您可以从OSGi联盟的网站上(http://www.osgi.org/Release4/Download)下载到最新版的标准。同时,EEG仍然在致力于更多针对企业级应用的标准的制定,如JPA Integration,JNDI Integration,Transactions,Web Container等等,让我们拭目以待。
11
0
评论 共 2 条 请登录后发表评论
2 楼 xy117 2009-09-23 10:40
Great~ 期待Draft中的RFC 139也能尽快release.
1 楼 simplechinese 2009-09-22 11:35

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Access Violation(非法访问)问题解析

    1、Access Violation(非bai法访问),General Protection Fault(一般保护性错误du)或者Invalid Page Fault(无效页面错误),虽然说法不zhi一样,但本质上总是由同一种dao错误引起的。 Access Violation常常在计算机用户运行的程序试图存取未被指定使用的存储区时遇到。 Access violation at address <十六进制值> in module <应用程序名> Read of address &l

  • Delphi Access violations 问题的解决之道

    Delphi Access violations 问题的解决之道Delphi Access violations 问题的解决之道

  • Cheat Engine 新手教程

    Cheat EngineCheat Engine 新手教程Step - 1 - 怎样通关【简介】Step - 2 - 数值搜索Step - 3 - 未知数值step - 4 - 浮点类型Step - 5 - 代码查找器Step - 6 - 指针Step -7- 代码注入UML 图表FLowchart流程图导出与导入导出导入 Cheat Engine 新手教程 大家好~这是 Pudd 第一篇博文~前五步较容易上手,后几步耐着性子其实也不难,欢迎交流!~ Step - 1 - 怎样通关【简介】 只要满足某

  • violations:获取违反验证和断言的参数

    违规行为 描述 获取违反验证和断言的参数。 这有助于design by contract原则design by contract发布 API。 用法 1、编写你的函数,并决定一个参数类型。 /** * @param { string } name * @param { number } age */ function login ( name , age ) { // logic } 2、为参数写一个规则,并创建验证器。 let Violate = require ( 'violations' ) . Violate ; let rule = { name : ( val ) => { if ( val === undefined ) { return 'name is required' ; } } , age : ( val

  • nyc-moving-violations

    nyc-moving-violations NYPD 对移动违规传票逐区细分。 如果你想要数据,有一个非常基本的 api 可以调用: 所有辖区,所有违规行为。 http://uturn.wolvesintheserverroom.com/api/precincts/ 单个区域按 ID 按月所有违规。 http://uturn.wolvesintheserverroom.com/api/precinct/:id/ 您还可以按年份和/或违规过滤区域。 http://uturn.wolvesintheserverroom.com/api/precinct/:id?year=year&violation=violation 示例: http://uturn.wolvesintheserverroom.com/api/precinct/083?year=2013&violation=Sp

  • c语言中关于“访问冲突”的问题

           最近的两次数据结构实验,在调试过程中都出现了如“0xC0000005:写入位置0x00000000 时发生访问冲突”类似的问题,所以想归纳一下出现这种问题的可能原因,便于以后程序的调试。        一般出现这种访问冲突的问题最常见的可能原因就是数组越界、未正确初始化指针(导致出现空指针、野指针等)以及堆栈出现问题,所以,当出现这种问题时首先应检查指针等是否正确初始化、是否越界

  • 什么是Access Violation?我该如何调试它

    什么是AV错误?我该如何调试它? 当你运行程式得到了一个AV(Access Violation)错误的时候,这意味着你的程式正在试图访问一块不再有效的内存,请注意我所提到的“不再”有效。大多数的情况下,出现这个错误要么是因为你试图访问一块已经被释放的内存,要么是想使用一个还未创建对象的指针。幸运的是:Win32的内存体系在不同的进程(Process)间使用了独立的地址空间。所以我们可以

  • 出现“发生访问冲突”类型错误的解决方法

    若出现“***exe中的0x***处未处理的异常:0x***读取位置0x***时发生访问冲突”这样的错误,则说明访问了不属于自己的内存空间,可按照下列顺序查明原因

  • 三步快速解决dll冲突问题

    最近在推广应用我们的分布式服务网关(Web Api):业务组大部分对外的业务逻辑以HSF服务或者自定义扩展插件的方式,注册并发布到分布式服务网关中,统一对外提供WebApi服务。临时介绍下我们的分布式服务网关: 1. 一键注册、发布WebApi服务, 2. 统一管理发布WebApi服务,实现WebApi的服务化治理 3. 集成安全认证、加解密、监控、日志等Aspect 4.

  • 运行程序提示access violation at address的解决方法

    打开EXE程序提示时,提示:access violation at address xxxxxxxxx 后边一大堆,这种情况下应该怎么解决呢?百度了一下,原来很简单 现在把解决方法公布出来:    右击“我的电脑”。单击“属性”。    在“系统属性”中单击“高级”。    在“性能”中单击“设置”。    在“性能选项”中单击“数据执行保护”。    单击“添加”。选择要运行的程序。

  • Copyright Violations

    Copyright Violations

  • Access violation at address故障的解决方法 win7图文解决方案

    Access violation at address故障的解决方法,图文说明,帮您轻松解决^_^

  • Delphi Access violations

    Delphi Access violations 问题的解决之道 -

  • problem-violations-0.24.0.jar

    java运行依赖jar包

  • 访问冲突怎么办,求解

    欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作...

  • 如何有效解决windows无法访问指定设备

    大多数的电脑用户都喜欢将重要的资料存放在硬盘分区当中,但是近期不少用户反映打开硬盘分区中文件夹的时候提示“windows无法访问指定设备、路径或文件.您可能没有合适的权限访问这个项目”,遇见这样的情况有没有什么好的方法可以解决呢?下面就一起来看看解决文件夹没有访问权限的方法。 1.右键该文件夹,点击打开该文件夹属性窗口,在文件夹属性窗口中切换到“安全”栏,点击打开“编辑(...

  • Visual Studio 2019程序运行出现‘Access violation reading location‘的问题

    在Visual Studio 2019的C++程序调试运行中出现'Access violation reading location'的问题,`Unhandled exception at 0xxxxxxxxx (xxxx.dll) in xxxx.exe: 0xxxxxxxxx: Access violation reading location 0xxxxxxxxxx`,进行了解决。

  • vs 最可能的异常: 0xC0000005: Access violation

    原来在win7 32位系统建的MFC程序,在win7 64位系统编译出现很多问题。其中最耗时间的是:最可能的异常: 0xC0000005: Access violation。上网查,大多是关于内存和指针的说法。都没能解决我的问题。后来改了工程设置里的,链接器,高级,数据执行保护为“否”,问题解决了。但是还是不太明白这个属性的意义,希望高手解答。也希望跟我遇到同样的问题的同仁一个借鉴。

  • 体系结构笔记------流水线冲突处理

    体系结构笔记------流水线冲突处理

  • 0xC0000005: 读取位置 xxx时发生访问冲突

    1.指针为空指针:nullptr 错误提示: 引发了异常: 读取访问权限冲突。 a 是 nullptr。 2.野指针:访问delete或free后的指针变量 错误提示: 引发了异常: 读取访问权限冲突。 a 是 0x8123。 3.数组越界: malloc一个100内存的空间用于读入文件,当文件的大小超过100时,并且程序中再使用100之后的内存时,就会产生“0xC0000005: 读取位置 xxx时发生访问冲突”这样的错误。 ...

Global site tag (gtag.js) - Google Analytics