在我的硕士论文中,我正在开发一个用于销售大型活动门票的应用程序框架。我的主要要求是可修改性、可扩展性和性能。我的客户(活动组织者)应该能够在运行时轻松替换组件并添加功能。此类组件的一个示例是座位分配组件。
我的导师说看看 OSGi。松散耦合的捆绑包的想法当然很有吸引力。在寻找替代方案时,我发现了 Akka。这个框架承诺了很多东西,比如可扩展性和高性能。我想知道 Akka 的 actor 概念是否适合我的可修改性要求。 Akka 似乎比 OSGi 更有生产力,因此开发速度会更快。 Akka 似乎也更适合可扩展性。如果使用 OSGi,我的日子会更难过。
如果您有 OSGi 和 Akka 的经验,您会向我推荐哪一个?比较这两种技术的优缺点是什么?最后,OSGi 或 Akka 是否有任何好的替代方案可以满足我的要求?
EDIT
首先,感谢您到目前为止的回复,您给了我们很大的帮助。
如下所述,我试图比较苹果和梨。一个更合乎逻辑的问题是:OSGi 和 Akka 如何一起使用并相互受益?这是如何构造的?您的所有参与者是否都驻留在一个 OSGi 捆绑包中,他们是否每个人都获得一个单独的捆绑包,是否有混合解决方案,或者是否确实存在一种“正确”的方法来做到这一点?
EDIT bis
我发布了一个后续问题here https://stackoverflow.com/questions/20163507/how-can-osgi-and-akka-benefit-from-each-other-how-is-this-structured,询问如何结合OSGi和Akka。
正如彼得所说,它们没有直接可比性。事实上,您可以一起使用它们,并且它们应该是非常互补的。
Akka 提供了异步通信 API。 OSGi 提供了一个模块化的、面向服务的框架。例如,Akka 中没有任何东西可以解决隔离模块的问题,使它们无法看到彼此的内部结构。同样,OSGi 中也没有像 Akka 提供的异步通信那样的东西。因此,将它们一起使用,您将获得两全其美的效果......
OSGi 确实具有同步服务,这是单个 JVM 中模块之间通信的主要方法。 OSGi 还有一个远程服务层,可用于远程计算机之间的通信。我想这可能是 OSGi 和 Akka 最直接重叠的领域。但即使在这里我认为也有合作的潜力。例如,OSGi 远程服务有一个非常强大的发现机制,允许我们在网络上公布功能。您可以使用此发现来查找可供您交流的 Akka Actor。
我不知道目前有谁真正在研究这个问题,所以我认为探索和扩展这个想法将是硕士论文的一个很好的主题!
你就读哪所大学? OSGi 联盟对加强与学术界的联系非常感兴趣,也许我们可以与您和您的教授安排一次在线会议?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)