日期:2014-05-20  浏览次数:20621 次

框架设计疑问
整个系统采用技术Hibernate3 Ejb3 Struts2 jsp 
最终部署结构 持久层以及Service层在应用服务器,表现层和控制层放在web服务器,web服务器和应用服务器采用会话Bean进行通信,整个系统有着与外部系统大量的接口,因此把与外部系统的所有接口统一放在一台接口服务器上,接口服务器再与外部系统进行交互。而接口服务器与整个内部系统之间的通信是业务层调用接口服务器,即应用服务器与接口服务器通信,协议HTTP,不知这样设计是否合理?业务层在与接口服务器进行交互时传递的参数每次可能不一样,接口服务器接受到请求后根据不同的请求参数调用不同的外部系统,最后返回结果给业务层。接口服务器端的代码该如何设计?之所以把所有的接口进行分离到一块,本着以后便于扩展,维护,希望各位给点意见!

------解决方案--------------------
类似的问题我们以前也做个,

应用系统----接口服务器----系统1,系统2,系统3。。。。。

对于这种可以预见的接口的不确定性,一般建议使用配置文件的方式,比如xml.



------解决方案--------------------
建议加入spring框架
------解决方案--------------------
表示层 SessionFacade + 业务层 接口层
| RMI/IIOP——> | HTTP——> | 
Web服务器 应用服务器 应用服务器


是你的结构吗?问几个问题:
1.为什么用HTTP协议?
2.业务中调用接口,有没有事务协调的需求?


如果接口比较多,又对事务要求较低可以考虑apache camel, spring integration这样的框架将你的接口封装,统一调用。
注意:统一服务提供、模块化、新接口插入等等。

如果非要为接口构造并部署一个单独的系统,要是觉得HTTP简单,直接使用HTTP倒也是可以的,但为了以后理想还是web service比较好,可以通过spring的webservice暴露你的POJO实现。