我们当前的Web应用程序架构包括以下内容:
Java 6,JBOss 5,MySQL 5.6
表示层(ZK框架)
委托+服务+ DAO图层(Spring& Hibernate)
打包:包含所有上述图层的单个战争文件
业务要求:
使用HTML5和Native iOS库为上述Web应用程序的少数模块创建移动应用程序。移动应用程序将能够执行CRUD,下载/上传文件和发送电子邮件。
问题:
我们正在确定上述业务需求的架构。请记住以下属性
数据逻辑共享(使用Hibernate在DAO层实现)
业务逻辑共享(使用Spring在服务层实现)
QoS - 性能,可扩展性
我们的一些想法:
在Web应用程序中创建单独的委托层,并将其作为REST API公开。底层的服务对象和DAO层可以按原样使用。
为常用功能创建一个通用项目(Jar),并与2个不同的项目共享,一个用于Web应用程序,另一个用于移动应用程序。
我真的很感激有关上述内容的任何建议/意见。
由于
答案 0 :(得分:0)
在我看来,你应该使用MQ系统(例如RabbitMQ)并将你的应用程序拆分为3层:
这是您在第二个选项中描述的内容。但我认为最好有中间层(MQ)来避免耦合。
我认为Hibernate需要配置分布式二级缓存(例如EhCache),以使后端可扩展。
使用此体系结构,您可以通过添加后端服务器并在MQ中的队列中订阅它来简单地扩展应用程序的吞吐量。