我打算为我的网站设计这样的架构,如上图所示。我正在构建一个Java核心平台,与DB和其他高处理任务进行通信,模块可以通过定义的接口与核心连接。
模块可以是前端网站,电子邮箱,管理控制台等,可以构建在任何技术上,如PHP,Java,ruby on rails等。
现在告诉我应该使用哪种通信协议进行模块和核心之间的通信。协议必须是大多数语言理解的东西,并且可以通过双向通信轻松处理。
如果有人发现这种架构有任何缺陷,那么请提出一个更好的可扩展性和灵活性。
答案 0 :(得分:3)
所以基本上这是一个类似SOA的架构。立即想到JavaEE和EJB(3+)或Spring框架。
组件(您的“模块”)通常通过SOAP服务与前端,后端和组合服务之间的可选企业服务总线(ESB)耦合。
这是否适合您的情况或只是超大......没有人,但您可以说...
答案 1 :(得分:3)
我会使用HTTP,在Core上公开REST API,例如Thilo建议。
复杂性取决于传统Web服务的RPC(程序模型)和资源模型之间的权衡,资源模型在使用http请求时更合适(在URI上使用动词GET,POST,PUT和DELETE,并补充一些标题和一个身体)。
然而,这使得柔软,易于保养和便携的分配。每个客户端模块都可以构建在完全不同的技术上,这使您可以使用“最适合工作的工具”。
更不用说缓存,重写,负载平衡,ssl等的HTTP优势。