构建RESTful应用程序...... Java Web应用程序

时间:2014-11-28 18:53:23

标签: java spring hibernate architecture restful-architecture

我们当前的Web应用程序架构包括以下内容:

Java 6,JBOss 5,MySQL 5.6

表示层(ZK框架)

委托+服务+ DAO图层(Spring& Hibernate)

打包:包含所有上述图层的单个战争文件

业务要求:

使用HTML5和Native iOS库为上述Web应用程序的少数模块创建移动应用程序。移动应用程序将能够执行CRUD,下载/上传文件和发送电子邮件。

问题:

我们正在确定上述业务需求的架构。请记住以下属性

  • 数据逻辑共享(使用Hibernate在DAO层实现)

  • 业务逻辑共享(使用Spring在服务层实现)

  • QoS - 性能,可扩展性

我们的一些想法:

  1. 在Web应用程序中创建单独的委托层,并将其作为REST API公开。底层的服务对象和DAO层可以按原样使用。

    • 需要扩展应用程序,以处理Web应用程序和移动应用程序的负载!
  2. 为常用功能创建一个通用项目(Jar),并与2个不同的项目共享,一个用于Web应用程序,另一个用于移动应用程序。

    • Hibernate会没问题,与2个应用程序共享同一个数据库,没有任何并发​​问题?
  3. 我真的很感激有关上述内容的任何建议/意见。

    由于

1 个答案:

答案 0 :(得分:0)

在我看来,你应该使用MQ系统(例如RabbitMQ)并将你的应用程序拆分为3层:

  1. 前端 - 接受客户端请求(一个用于浏览器,第二个用于移动应用程序等)并将它们传输到MQ。
  2. 中间(传输) - MQ系统。传送信息。
  3. 后端 - 接受来自MQ的入站消息,处理请求并给出答案。
  4. 这是您在第二个选项中描述的内容。但我认为最好有中间层(MQ)来避免耦合。

    我认为Hibernate需要配置分布式二级缓存(例如EhCache),以使后端可扩展。
    使用此体系结构,您可以通过添加后端服务器并在MQ中的队列中订阅它来简单地扩展应用程序的吞吐量。