问题描述
前端:全部html+ajax展示层:基于mvc封一层浅浅页面处理(webservice不好返回页面,本来想把这层整个去掉的 ???继续看)服务层:只知道spring 主要负责业务逻辑(定制化时好用到,偏向产品时可向下拆出来)持久层:常规框架的webservice,服务层调的都是webservice(可为其他系统提供接口啊,方便,安全性变得更重要了),当然该层是分模块的,每个模块一套服务器,当然也是独立的一套数据库问题1:当服务层的业务变得越来越复杂,调用很多的webservice,事务如何控制?问题2:持久层写成webservice到底行不行?主要担忧是安全吗?读写分开,分表分裤等等方案,能不能做到高安全性?顺便问个简单问题:请求常规的mvc这种action的servlet处理流程,和请求用java开发的webservice(servlet),请求两者时到底后台处理有什么不同,只是第一支返回页面更方便吗 问题补充:重要问题 先说说可行吗?过来人请指点
解决方案
1.针对问题一,业务服务应该具有原子性,即跨业务服务不会进行事务控制。每个业务服务的事务在内部保证。2.持久层不推荐使用webservice作为交换协议。首先是从性能方面,webservice调用速度太慢,推荐使用更轻量级和底层的协议模式。可以参考MySQL的JDBC实现。读写分开,分表分裤等等方案和访问协议无关,是持久层内部实现的问题。另外,安全性不应该是主要考虑点,业务服务和web服务可能对外公开,在数据服务不应该向其他应用开放。这里考虑网络隔离+普通的令牌校验即可。持久层速度优先。不是特别需要,不推荐独立部署,集成部署在应用内部,也可以完成分库分表路由,读写分离等职责。3.servlet和mvc本质上没区别,只是减少开发量,职责更明确,更模块化。希望对你有帮助。
解决方案二:
JAVA模块化jigsaw已逐渐流行,JAVA标准中将推出。目前模块化方面OSGi为实事标准,也相当不错,考虑到架构的前詹性,可对构架进行模块化,这方面可以参考开源开发平台JXADF,做得相当不错。
解决方案三:
缺少需求背景和架构的细节,可行性无法判断。