- 浏览: 104668 次
- 性别:
- 来自: 广州
博客专栏
-
Servicemix&Fu...
浏览量:0
最新评论
-
shishuwu:
求Sample,谢谢
OSGI企业应用与Aries开源项目(2) -
q862747954:
killko 写道q862747954 写道[b] 楼主按照等 ...
使用Apache ServiceMix轻松发布Web Service -
killko:
q862747954 写道[b] 楼主按照等你写了DEMO 结 ...
使用Apache ServiceMix轻松发布Web Service -
q862747954:
[b] 楼主按照等你写了DEMO 结果运行发现提示这个问题Bu ...
使用Apache ServiceMix轻松发布Web Service -
killko:
zhicheng5375123 写道为啥不用maven-bun ...
用Maven开发OSGI Bundle
文章列表
我个人对soa的看法:soa是一个比面向对象,面向组件更高层次,更粗粒度的复用技术。
当我们把算法,可固化的业务逻辑封装进对象和组件时,就不得不面对随需变化,不断修正的业务规则和流程。这些业务规则和流程不仅仅是纯粹技术性的东西,它遵循的不仅仅是物理逻辑和自然哲学,而更多的是综合性的逻辑,这种综合性逻辑涉及各方各面,所以每一方面的变化都可能我们需要去修正这些业务规则和流程。另一方面,业务规则和流程面对的不再是简单的机器,而是人和业务系统。它必须是“亲民”的,不能太复杂。
在OSGI规范里,定义了OSGI service,但这个service和SOA的service并不能 ...
Aries JPA container是一个持久化容器,但它不类似Hibernate,而只是相当于Hibernate的一部分,它还需要如OpenJPA之类的JPA实现的支持,才能真正地完成持久化的工作。
一个常见的OSGI JPA应用可以是这样的:若干个用JPA的规范编写的实体(Entity),集合在一个Bundle里,并用persistence.xml描述成一个持久化单元(persistence unit)。而persistence.xml里则通过JNDI将JDBC DataSource与该域绑定。最后,Aries JPA container就能将持久化单元的EntityMa ...
J2EE的企业应用十分地广泛和成熟,但在模块化方面还缺乏合适的解决方案,OSGI则正好可以弥补这方面的缺憾。但OSGI又偏偏是个底层的元素,如果要使J2EE和OSGI结合起来,就需要将J2EE应用从底层开始改造,就如你想将旧楼改造成更高的楼,需要重新将地基弄坚实点一样。
为了能让OSGI适应企业应用开发的需要,OSGI制定了一些企业开发规范,将J2EE己有的DI,持久化,事务等等好的东西都纳入其中。
Aries是Apache的一个开源项目,它分为很多子项目,都是实现了OSGI在企业应用方面的规范,例如:Aries blueprint container,Ari ...
OSGI context提供service register方法负责osgi服务的注册发布,服务发布时,可带上服务属性,这些服务属性可用于服务引用方查找服务时的filter。
一般来说,没有依赖的简单服务,可以直接在bundle的activator start方法里注册发布,但通常情况下,服务都会存在或多或少的依赖,由于osgi平台的动态性,被依赖的服务并不能确定在依赖它的服务所在的bundle启动前变为可用,所以,一般会借助service tracker来监听服务注册的事件,当被依赖的服务可用时,service tracker就能感知到,进而引用它,然后发布自己的服务,这样服务 ...
软件的复杂度总是越来越高,为了解决人有限的处理能力和它之间的矛盾,就要用到“内聚”,也就是说将“复杂度”封装起来,只暴露出少量必要的部分。
例如:高低电平信号->机器码->汇编指令->高级语言语句->函数(function或method)->类(class)->包(package) 就是一个复杂度封装的过程,就是一个“内聚”的过程。
模块化也是一种更高层面的“内聚”,从java和osgi的角度看,模块化是在包(package)的层面上,更进一步“封装”。
封装主要需要解决两个问题,一个是“隔离”,一个是“暴露”。
...