我正在尝试为我正在开发的分布式平台定义规范数据模型,该模型基于以下架构:
我们的想法是让façade层将传入的请求转换为公共信息模型,该模型具有带头和有效负载的自定义消息的形式:
简而言之,我正在尝试为中间件定义业务数据模型,该模型仅包含Camel处理传入请求并将其路由到业务服务所需的相关信息。此数据被建模为Java bean,并作为有效负载附加到消息中,其标头包含对Camel有意义的路由详细信息。
您如何改进上述解决方案?你会说这是一个很好的方法并且足够灵活吗?非常感谢你。
答案 0 :(得分:0)
如果您使用Camel作为(轻量级)ESB,我认为没有太多事情需要担心。在camel路由中你可以保持最适合这种情况的格式,你甚至可以为一些解决方案并行运行多种格式(例如,你可以使用Java Bean来做一些业务逻辑,但你也可以使用XSTL将消息转换为XML和XPath以获得更好的解耦并执行一些CBR处理。
如果您需要对Java Bean模型进行大量工作,我建议您创建一个可以从JSON中提取模型的项目,这样您就可以控制此工件的版本(例如,使用Maven)这可能是Java应用程序的规范模型(如果JSON请求发生了很大变化,您需要更新此项目)。由于OSGi可以为不同的应用程序使用不同版本的模型,因此创建Java数据模型项目并使用OSGi容器将为您提供更多解耦的好处。
此致 栾