我想在核心上设计一个核心和多个模块的应用程序。核心将有责任从网络接收消息,解析传入的消息并将消息分发给已注册的模块。
有多种类型的消息,某些模块可能只对某些类型感兴趣。这些模块可以并行执行,也可以按顺序执行(例如,当模块与定义良好的执行顺序相互依赖时)。
此外,即使核心已启动,如果可以部署/取消部署模块也会很棒。
这对我来说是全新的,我曾经编写模块化应用程序,但静态连接多个部分。
我应该采用哪种方向(即框架,模式......)进行此类设计?我不知道它是否与我的问题有关,但我确切地说我会使用Java。
由于
答案 0 :(得分:0)
architecture level
你有一个非常好的方法。但只有当您的应用程序layers/tire
位于不同的实例时才有用,这样您就可以关闭一个module/server
,而其他部分仍然会运行。 Point是否会在不同的实例上运行模块?
其次,我建议您使用Web-Service REST / SOAP构建应用程序核心架构,因为它会自动实现您的思考{{3 }}。这将是producer - consumer
关系,您可以在单独的实例上运行。在部署/取消部署时,您仍然可以运行服务部分来支持其他客户端实例。
使用Web服务还将为您提供一个全局信息交换系统,该系统可能与多个应用程序视图/前端进行通信。