0

我正在规划的建筑

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

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

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

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

4

2 回答 2

3

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

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

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

于 2012-07-15T09:46:54.433 回答
3

我会使用 HTTP,在 Core 上公开一个 REST API,例如 Thilo 建议的。

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

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

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

于 2012-07-15T13:08:32.290 回答