【问题标题】:Which common communication protocol to use for communicating with a java layer in a web architecuture使用哪种通用通信协议与 Web 架构中的 java 层进行通信
【发布时间】:2012-07-14 12:12:17
【问题描述】:

我正计划为我的网站设计这样的架构,如上图所示。我正在用 Java 构建一个核心平台,用于与 DB 和其他高处理任务进行通信,模块可以通过定义的接口与核心连接。

模块可以是任何东西,例如前端网站、邮箱、管理控制台等,并且可以构建在任何技术上,例如 PHP、Java、ruby on rails 等。

现在告诉我应该使用哪种通信协议来进行模块和核心之间的通信。协议必须是大多数语言都能理解的东西,并且可以在双向通信中轻松处理。

如果有人发现这种架构有任何缺陷,那么请推荐一种更好的架构,它可以提供出色的可扩展性和灵活性。

【问题讨论】:

  • HTTP API,也许是 REST,也许是 JSON。
  • @Thilo 在这样的设计中最好使用它们?在处理要求和复杂性方面?

标签: java php architecture protocols communication


【解决方案1】:

所以基本上这是一个类似 SOA 的架构。 JavaEE 和 EJB (3+) 或 Spring 框架立即浮现在脑海中。

组件(您的“模块”)通常通过 SOAP 服务与前端、后端和复合服务之间的可选企业服务总线 (ESB) 耦合。

这是否适合您的情况或只是过大...没有人,但您可以说...

【讨论】:

  • 是的,我正在寻找 SOA,您能否详细说明实现此目标的方式,尤其是我没有明白您在第二段中所说的内容?或者给我一些这方面的知识来源?
【解决方案2】:

我会使用 HTTP,在 Core 上公开一个 REST API,就像 Thilo 建议的那样。

复杂性在于传统 Web 服务的 RPC(过程模型)和资源模型之间的权衡,后者更适合使用 http 请求(URI 上的动词 GET、POST、PUT 和 DELETE,辅以一些标头和一个身体)。

然而,这使得分发变得柔软、易于维护和便携。每个单独的客户端模块都可能建立在完全不同的技术上,这使您可以使用“最适合工作的工具”。

更不用说 HTTP 在缓存、重写、负载平衡、ssl 等方面的优势了。

【讨论】:

  • 而且HTTP对所有平台和语言都有很好的支持。
  • @user1526281 以及您认为哪种 rest api 最适合 java 端的这种环境。由于我是新手,所以我必须先通过它,所以告诉我我应该去哪个。
  • 我不知道 Java 平台上的选项。我在 .Net 中使用 OpenRasta 或 Nancy,并且我知道 Ruby 平台上的 Sinatra(Nancy 是基于该平台)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 1970-01-01
相关资源
最近更新 更多