架构:技术问题

时间:2011-01-18 14:29:48

标签: web-services architecture java-ee jms vaadin

我想创建一个具有以下架构的Web应用程序:

Architecture of my app

有一些功能,它们被封装在“业务逻辑”模块(1)中。它使用MongoDB作为数据存储(5)和外部(命令行)应用程序(4)。

应用程序的功能通过两个渠道提供给最终用户:

  1. Web应用程序本身(2)和
  2. 公共API(3),允许第三方应用程序和移动设备访问业务逻辑功能。
  3. Web应用程序是用Java编写的,基于Vaadin平台。目前它在Jetty Web服务器上运行。

    一个重要的要求:Web应用程序应该是可扩展的,i。即必须可以通过添加新硬件来增加它可以服务的用户/事务的数量。

    我对此架构的技术实施有以下问题:

    1. 可以使用哪些技术来实现业务逻辑部分?创建SCALABLE应用服务器的明智选择是什么?

    2. 我可以为Web界面部分(2)选择哪种Web服务器来使其可扩展?有什么选择?

    3. 在外部系统(4)中完成的计算可能是CPU密集型的。因此我想以异步方式完成它们,i。即

    4. a)用户发送此操作的请求(通过上图中的Web界面或公共API,2和3),

      b)将请求放入队列,然后

      c)完成CPU密集型计算并

      d)在某个时间点,答案会发送给用户。

      实现此排队有哪些技术选项(除了JMS)?

      提前致谢

      的Dmitri

2 个答案:

答案 0 :(得分:1)

为了扩展互动,你看看Drools网格,Akka还是JPPF? 为了使网络应用程序可扩展,你看看Terracotta或Glassfish集群功能(如果我记得很清楚,Vaadin是一个玻璃鱼合作伙伴)?

答案 1 :(得分:0)

由于没有人回答我的问题,我会自己做。

从其他资源我了解到可以使用以下技术来实现此架构:

1)Spring for Business logic(1)

2)GridGain或Apache Hadoop用于扩展与外部系统的交互(4)

3)Hazelcast使网络应用程序可扩展(2,服务器端会话)。

相关问题