osgi - 考虑可扩展性的基于组件的应用程序 : OSGi or Akka?

标签 osgi akka

为了完成我的硕士论文,我正在开发一个用于销售大型事件门票的应用程序框架。我的主要要求是可修改性、可扩展性和性能。我的客户(事件组织者)应该能够在运行时轻松替换组件并添加功能。此类组件的一个示例可以是座位分配组件。

我的导师说要看看 OSGi。松耦合捆绑的想法当然很有吸引力。在寻找替代品时,我发现了 Akka。这个框架 promise 了很多东西,比如可伸缩性和高性能。我想知道 Akka 的 Actor 概念是否适合我的可修改性要求。 Akka 似乎比 OSGi 更有效率,所以开发会更快。 Akka 似乎也更适合可扩展性。使用 OSGi,我的日子会更难过。

如果您对 OSGi 和 Akka 都有经验,您会为我推荐哪个?比较这两种技术时,它们的优缺点是什么?最后,是否有满足我要求的 OSGi 或 Akka 的替代品?

编辑

首先,感谢您到目前为止的回复,您帮了大忙。 如下所述,我正在尝试比较苹果和梨。一个更合乎逻辑的问题是:OSGi 和 Akka 如何一起使用并相互受益?这是如何构建的?您的所有参与者是否都驻留在一个 OSGi 包中,他们是否每个人都有一个单独的包,是否存在混合解决方案,或者是否真的没有“正确”的方法来做到这一点?

编辑之二

我发布了一个跟进问题 here , 询问如何结合 OSGi 和 Akka。

最佳答案

正如彼得所说,它们不能直接比较。事实上,您可以将它们一起使用,它们应该是非常互补的。

Akka 提供异步通信 API。 OSGi 提供了一个模块化的、面向服务的框架。例如,Akka 中没有任何东西可以解决隔离模块的问题,这样它们就无法看到彼此的内部结构。同样,在 OSGi 中也没有什么能像 Akka 提供的异步通信那样。因此,将它们结合使用,您将获得两全其美...

OSGi 确实有同步服务,这是单个 JVM 中模块之间通信的主要方法。 OSGi 还有一个远程服务层,可用于远程机器之间的通信。我想这可能是 OSGi 和 Akka 最直接重叠的领域。但即使在这里,我认为也有合作的潜力。例如,OSGi 远程服务有一个非常强大的发现机制,允许我们在网络上发布功能。您可能会使用此发现来找到可供您与之通信的 Akka actors。

我不知道目前有任何人实际从事此工作,所以我认为探索和扩展这个想法将是硕士论文的一个很好的主题!

你在哪所大学上学? OSGi 联盟对促进与学术界的联系非常感兴趣,也许我们可以安排一次与您和您的教授的在线 session ?

关于osgi - 考虑可扩展性的基于组件的应用程序 : OSGi or Akka?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20122538/

相关文章:

osgi - Apache Sling的46行博客教程怎么跑?

java - 执行 java.io.File 或 FileInputStream 时如何引用 OSGi 包中包含的文件

java - AKKA 在一段时间后停止记录堆栈跟踪

scala - Play Framework : How to modify the response body without blocking?

java - 在 JDK 11 中使用 OSGi 和 Apache Felix iPOJO

osgi - OSGi NP-Complete 中的分辨率问题吗?

java - JasperException - 即使存在标记也找不到文件

java - Akka的事件总线是否保证消息顺序?

java - 检索一个 Akka actor 或如果它不存在则创建它

playframework-2.0 - Akka actor 外部化部署配置