【发布时间】:2011-08-15 21:03:50
【问题描述】:
我想创建一个具有以下架构的 Web 应用程序:
有一些功能被封装在“业务逻辑”模块 (1) 中。它使用 MongoDB 作为数据存储 (5) 和外部(命令行)应用程序 (4)。
应用程序的功能通过两个渠道提供给最终用户:
- Web 应用程序本身 (2) 和
- 公共 API (3),允许第三方应用程序和移动设备访问业务逻辑功能。
Web 应用程序是用 Java 编写的,基于 Vaadin 平台。目前它运行在 Jetty 网络服务器中。
一个重要的要求:Web 应用程序应该是可扩展的,即。 e.必须能够通过添加新硬件来增加它可以服务的用户/事务的数量。
我对这个架构的技术实现有以下疑问:
-
可以用什么技术来实现业务逻辑部分?创建 SCALABLE 应用服务器的明智选择是什么?
-
我可以为 Web 界面部分 (2) 选择什么 Web 服务器以使其可扩展?有哪些选择?
-
在外部系统 (4) 中完成的计算可能会占用大量 CPU。因此,我想以异步方式执行它们,即。 e.
a) 用户发送此操作的请求(通过 Web 界面或公共 API,上图中的 2 和 3),即
b) 请求被放入队列中,然后
c) CPU 密集型计算已完成,并且
d) 在某个时间点将答案发送给用户。
有哪些技术选项可以实现这种排队(JMS 除外)?
提前致谢
德米特里
【问题讨论】:
-
这是我第一次尝试回答这个问题:dl.dropbox.com/u/11776689/pcc/2011_01_19_architecture.png
标签: web-services architecture jakarta-ee jms vaadin