论坛首页 Java版 企业应用

B/S、C/S混合结构如何应对?

浏览 5008 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-04-08
fight_bird 写道
一个税务项目,可能出现海量数据,平均数据增加量大概2G/月,基于weblogic实现,要求实现B/S、C/S混合编程,B/S结构没有问题,但C/S结构的实现方式是个问题。

目前的想法是B/S、C/S基于共同的业务层和持久层,只是客户端的表现方式不同,但C/S结构的客户端如何和业务层通讯?业务层如何实现还没有成熟的思路,各位有何高见?

c/s客户端可以通过webservice的方式和服务器端进行业务层的通讯
   
0 请登录后投票
最后更新时间:2007-04-08
我觉得也是webservice的方式
   
0 请登录后投票
最后更新时间:2007-04-09
我们是用RCP+httpinvoker来完成的。本来是用webservice,在大量数据传输的时候,java和xml之间的互相转化会耗掉不少时间。
   
0 请登录后投票
最后更新时间:2007-04-14
fight_bird 写道
clark 写道
可以用 spring 封装的 Hessian 远程调用协议同传统客户端通讯,这样B/S、C/S能基于共同的业务层和持久层。


这个思路可行!你实现过没有?


我没实现过,但看到有的公司这么做,支持Delphi、C/C++、JAVA、PB和WEB等客户端
   
0 请登录后投票
最后更新时间:2007-04-14
rmi+spring多层数据库存取模式!!
   
0 请登录后投票
最后更新时间:2007-04-15
不知道lz的C/S客户端环境是什么。如果是dot net,恐怕只能用Web Services。但Web Services性能非常成问题,像你们海量数据,恐怕几乎不怎么现实。我们以前项目这么做过,最后也因为性能问题,做到中途给废弃了,2、用Web Services,服务端的Java 对象和客户端还是会有不兼容,譬如List,复杂的model对象。3、还有Web Service本身的跨平台问题,如RPC和Document,用Axis引擎时,只能用RPC和dot net通信,但RPC从理论上说又不是很好跨平台,不知道WL的axis引擎如何解决这个问题。4、CS客户端在传对象时,如果用hibernate,还会出现lazing loading的问题,但在BS架构下可能不会出现,最好在Sevices层上加了一个facade层。 以上是我们开发项目组做开发时面临的实实在在的问题。我觉得,Web Services方案,对于你们可能并不可取,主要是源于性能,xml对象序列化和反序列化很耗时。Spring remote那套,恐怕也有这个问题。

如果你们可以用JAVA客户端,我认为最好还是用EJB方案,它的性能比WS可能高一个级别,注意,我建议只用EJB做个controller,也就是说系统可能只有一个Session EJB,就如同Struts里面的RequestProcesser,其它都用普通JavaBean,sun 的petstore可以参考一下。
   
0 请登录后投票
最后更新时间:2007-05-05
我做过类似的,服务器是struts+hiberante,客户端是用delphi和XMLRequest,服务器和客户端通过xml来通讯
   
0 请登录后投票
最后更新时间:2007-05-08
如果是页面,表比较多的话,用ws会有较大风险的。虽然WS是把好锤子,不过别动不动就拿这把锤子出来。跨语言交互问题,WS可以解决,但决不是可简单解决。如果必须要这样通信,那就这样做吧。只是给予这个问题足够重视就是了。
   
0 请登录后投票
最后更新时间:2007-05-07
xiaoyu 写道
如果C/S与B/S不是很紧密相连的话,不妨用数据库来做中间的介质(存交换的数据),各开发各的。 只要定义好交换的数据结构就行了。

关于业务逻辑共享,这个也比较简单,每个地方都COPY一分业务逻辑的源代码就行了(意思就是,布署的时候,把业务逻辑的部分分别布置到C/S,B/S就行了,那就成了本地访问了)。这样也是开发一次业务逻辑,到处共享(就是改一下布置脚本).

想想是不是有必要一定要取用所谓的那些远程访问?

感觉这种方式很不好,我们公司里有个项目就是这么做的,如果业务逻辑作了一点小修改,那么客户端的代码也必须重新部署,部署时很麻烦,因为需要部署到不同的服务器上,更不用说C/S结构的项目了。
另外,如果你的业务逻辑需要访问数据库,那意味着Client也能通过业务逻辑代码直接访问数据库了,好像安全性有问题吧。

你要暴露的是服务接口,而不是具体实现的代码。
   
0 请登录后投票
最后更新时间:2007-05-07
dot net可以很轻松的调用ejb啊
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐