qqi*_*ihq 5 distributed osgi dosgi
我们正在开发基于OSGi的基础设施来处理基于流的数据流.具体的处理任务由各个OSGi组件执行.我们现在需要在不同的机器上分发这些组件的可能性,这意味着我们需要OSGi组件/容器之间的某种通信机制.
在我的研究中,我遇到了不同的潜在解决方案:R-OSGi,用于分布式OSGi的Apache CXF,Eclipse通信框架.
ECF似乎特别有趣,因为它支持不同的传输格式,并为服务发现等内容提供支持.
我的核心问题:
第一个问题——是否有使用 Felix 设置 ECF 的详细演练——我不知道答案,尽管人们可能会使用搜索引擎来查找这些术语的组合。
问题是 ECF 使用 Equinox 基础设施,并且有时会无意中通过传递依赖项依赖于非公开的包(特别是使用 Equinox 进行非公开调试的运行时 API)。反过来,这意味着 ECF 依赖于大量其他组件的可用,而这组组件通常在 Felix 运行时上没有很好的定义。
您错过了 Paremus 的 Service Fabric,它是一个商业 OSGi 云解决方案。我不确定您是否特别关注开源;但如果您包含商业许可证,那么它们具有非常强大的远程服务架构。
最后,关于 Apache CXF 与 ECF 的问题——如果您使用 Felix,我认为使用 Apache CXF 可能比使用 ECF 更容易。这主要是由于依赖项设置并使其正常工作,再加上 ECF 可能未在 Felix 上进行测试,因此可能会假设 Equinox 运行时的特定方面(其中包括,例如,运行时的父类加载器委托来获取启动类路径上的东西)。这实际上并不是 ECF 本身的错误,而是 Eclipse 生态系统工作方式的产物。
如果您想与非 OSGi 运行时通信,Apache CXF 的优势在于它们可以生成 WDSL 以便与其他语言交互。我相信您可以在 ECF 中做同样的事情,但需要做更多的工作。CXF 解决方案可能比相应的 ECF 解决方案更冗长(WSDL 始终如此),但如果您不使用大量请求,这不太可能产生显着差异。
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |