阅读更多

11顶
0踩

企业架构

转载新闻 OSGi V4.2 发布

2009-09-22 09:51 by 见习记者 rsonly 评论(2) 有5255人浏览
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

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

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

  • 访问冲突怎么办,求解

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

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

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

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

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

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

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

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

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

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

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

  • 如何有效解决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`,进行了解决。

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

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

  • Cheat Engine 修改器获取内存数据心路历程, THREADSTACK0 C# .NET VB 获取基址 CE修改器

    第一次使用CE写项目,熬了几个大夜终于搞定了。使用CE修改器获取基址,使用C++编译函数获取基址,THREADSTACK0

  • 解决:读取访问权限冲突:“xxx” 是0XCDCDCD、nullptr、0X1FA0112(内存地址)等等

    文章目录前言1. 可能的原因2. 解决办法 前言 我遇到这个问题也是纠结了半天,最后发现是给一个指针数组赋值后,传递到另一端(以字节传递的)的长度是指针数组的内容长度(没有包含指针本身长度),结果导致再次遍历时,一部分正常,后一部分直接乱码加报错访问冲突。然后修改,传递的长度乘4(我是int*),再按正常遍历就可以了。 1. 可能的原因 这一类错误都是跟内存有关: ①访问数组越界 ②空指针异常(指针未初始化或指向不确定的值) 2. 解决办法 检查你报错的地方,你的数据结构相关的代码,操作指针,一要确认定义并

  • VS2019报错写入/读入访问权限冲突

    VS2019报错写入/读入访问权限冲突 如下图:当我们在使用指针的时候,会出现写入或者读入权限冲突的情况 情景一:写入访问权限冲突 解决方案: 在使用指针的时候,最好是对其进行初始化,哪怕是将指针指向空也可以; 情景二:读入访问权限冲突 在添加链表数据的时候没有将最后一个链表的next域置空 当我们利用辅助指针remove遍历这个链表的时候会出现读入访问权限冲突 解决方案: 就是将链表最后一个元素置空,也就是对链表的最后一个节点的next进行初始化,初始化的值为空; ***以上问题解析: 拿上面的图

Global site tag (gtag.js) - Google Analytics