【发布时间】:2017-09-19 06:01:01
【问题描述】:
Apple 的SMF 包括:
- XPC(一种进程间通信形式,面向服务)
- 与launchd 集成(系统范围、操作系统耦合的恶魔和服务生命周期管理)
- 队列调度 - 支持多核的异步并发
- 每个进程的安全/特权级别
AFAIK,它是多任务、面向服务、操作系统级恶魔和服务的非常一致的封装。
我正在寻找 Java 轻量级 等价物,但我还没有找到现成的解决方案。到目前为止,我最好的选择是:
- Apache Karaf 或 AIOLOS(提供 SOA 骨骼)
- 任何对 Java 友好的 IPC 协议(XPC 的替代品)
- Java fork/join Executors(用于异步并发和负载平衡)
- Java 安全性(针对特权级别)
但我很确定在一个不错的基于 Java 的框架中必须有一些东西至少集成了上述三个。具有开箱即用并发性的 OSGI 已经成为了一些东西。
有什么建议吗?
【问题讨论】:
-
这里推荐 Apache Karaf 和一些附加组件。但我不确定是否满足并发和负载平衡要求。 stackoverflow.com/questions/24625030/…
-
“具有开箱即用并发的 OSGi”是什么意思? OSGi 是一个线程安全的平台,Java 支持开箱即用的并发。
-
嗨,尼尔!我觉得很荣幸能与 Neil Bartlett 谈论 OSGi! :) 好吧,我的意思是一些现成的解决方案,可以将 OSGi 服务作为并发工作单元进行管理——为我处理这些问题。将 OSGi 服务实现为 Java Executors 的框架将在运行时范围内执行它,并允许并发策略、服务特定执行优先级等的声明性规范。但所有这些都预先打包在 OSGi 运行时之上。
-
您可以查看 OSGi 异步服务——请参阅 OSGi 第 6 版规范的第 138 章。 Apache Aries 中提供了此规范的实现。对于您正在寻找的其他内容,这些都是可以构建在 OSGi 之上的东西,但我不知道有一个产品可以将它们全部打包。
-
嗯,Apache Aries 是我研究过的东西,但并不深入。我的第一印象是它太多了我正在寻找的东西,而且没有我需要的轻量级。但我会回来做更认真的检查。坦率地说,我不需要太多 - 基本上将 OSGi 服务桥接到 Java fork/join 执行器和一些并发策略的声明性配置,我就完成了。如果 Apache Aries 对于这个目标变得过于臃肿,我会听从你的建议并自己实现它。我只是讨厌重新发明轮子。
标签: java asynchronous osgi soa xpc