一个基于Winform+Java WebService的实现

假如有这样一种需求:面向固定客户的网上购物系统,你会怎样设计这样的系统呢?
很显然,B/S结构已经不适用了。只要是通过浏览器访问的网页,只要知道URL,任何人都可以访问,就没有固定客户的限制了。
那么,C/S结构呢?C/S结构确实很适合局域网,但是,不要忘了,我们的客户可能会走遍地球的各个角落。(当然,不能连接Internet的地方我们不予考虑)
那我们考虑这样的结构:Winform.Net+WebServiceJava)。
WebService的协议.NetJava都是支持的,但是有一个问题:这两者之间可以传递基本类型,但是不能传递引用类型。
没有关系,只要可以传递字符串,那就代表一切都可以传递,最终的解决方案如下:
客户端发送请求的时候,先把对象序列化为XML文件,将内容发送到服务器端,然后服务器端将XML文件反序列化为一个对象。服务器端返回相应的过程也是如此。

到了这里,最大障碍都已经解决了,先画出大概的流程图:

 1)可以看出来,客户端和服务器交互利用的是XML,对象和XML相互转换利用的是一个开源的组件,可以参考http://java-cs-bridge.sourceforge.net/

2)服务器端发布WebService利用的是Axis,但是我们对其进行了封装,所有的客户端请求都只会调用一个Service,传递到这个Service的数据包括它的对象以及具体需要执行的Service

3)服务器端的设计模仿了Struts,每个Service Action都只调用Logic,由Logic执行业务逻辑。

4)数据库访问我们封装了dbutils,虽然不是ORM,但是却可以有很灵活的SQL语句。

5)还有,整个系统运行过程中只有查询,只是在用户最后进行完成或者提交操作的时候,统一对数据库进行更新操作,这样做保持了数据的统一性,但同时也带来了一些隐患:如果运行到最后,网络断了的话,之前的操作都会没有被保存到数据库中。

这个设计无论是服务器,还是数据库,都是分布式、可插拔的,非常灵活。

我所能想到的也就这样子了,各位有什么建议,或者还有什么可以改进的,也希望不吝赐教。

转载于:https://www.cnblogs.com/game-over/archive/2007/10/09/917914.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值