对现有软件架构的思考

    分布式软件的开发架构经历了C/S架构和B/S架构两个大的阶段,传统的两层结构的C/S架构由于存在并发访问的瓶颈、安装维护困难等等缺陷逐渐被B/S架构所取代,但是B/S架构并不是终极解决方案,因为它同样也有不足之处。

    在B/S结构的系统中,每次请求都需要将UI信息从服务器端传递到客户端,增加了数据传输量,降低了响应速度;随着硬件技术的飞速发展,客户端机器的性能已经得到了巨大的提升,而在B/S架构中大部分的业务计算都由服务器完成,客户端机器成了一个简单的输入输出终端,几乎与486、586时代的机器所做的工作没有什么区别,这是对资源的极大浪费;另外,由于HTML语言的限制,网页只能为用户提供可怜的几个控件,不能利用操作系统提供的丰富的、功能强大的UI控件;用户对鼠标越来越依赖,而无法使用快捷键等很多提高工作效率的功能;对专业的票据打印不能提供很好的支持;无法很好的访问客户端机器的本地资源(文件、硬件设备等);开发人员得学习多种技术(如:HTML、JavaScript、CSS)。

    当我们还在以做B/S开发而感到骄傲的时候,其实B/S已经是一种过时的技术了。虽然某些机构提供了一些解决方案来增强网页的功能,如微软的ActiveX技术、Sun的Java Applet等,但实践证明都是失败的,根本原因是因为浏览器具有双重使命。一是访问公共网络,如门户网站、论坛、博客等;一是访问专有网络,如企业内部办公系统等。专有网络对用户来说是可信的,但公共网络却存在极大的安全风险,所以浏览器必须考虑安全因素,对ActiveX控件和Java Applet等进行限制,用户要使用这些东西必须进行设置,加上各种杀毒软件和防火墙的进一步封杀,要把这些东西用起来对一部分用户来说很困难。

    当然,B/S技术在发展,不断有新的技术涌现,如Ajax技术,能减少客户端与服务器端的数据传输量,提高响应速度。但要根本解决B/S结构的种种缺陷,首先必须对HTML语言进行扩展,如微软的XAML技术,这涉及到整个软件行业的调整,包括标准的制定、浏览器的支持、开发人员的培训等等,应该是若干年之后的事了。

    那么,对于我们这些做应用软件开发的人来说,目前有没有更好的解决方案呢?答案是肯定的。因为C/S技术并没有止步,从当初的两层结构发展到了现在的三层或多层结构,技术上不断有新的概念提出,如智能客户端技术等。引入中间件和应用服务器,解决了并发访问的瓶颈;通过免安装技术和自动更新解决了安装和维护的问题。

    在多层结构的C/S应该软件中有一个关键的技术就是分布式数据访问技术,目前最流行的就是Web Service技术,它的优点就是跨平台,不管客户端和服务器端用的是不是一种开发语言都能进行交互。缺点是性能较低,数据在传输的过程中要按照SOAP协议进行序列化和反序列化;在不同的技术平台之间传递自定义的对象或者数据集比较困难;每次增加、删除或者修改方法的参数定义时都需要在服务器端重新发布,在客户端需要重新导入定义,给开发带来不便。微软的.Net Remoting、Sun的Java RMI和Borland的Midas等技术能提供更好的传输性能,因为数据可以直接通过TCP协议以二进制的形式传输,不过这些种技术都要求客户端和服务器端基于同一个技术平台。微软的.Net框架虽然提供了强大的客户端开发功能,但需要安装运行时环境,给安装部署带来了困难,等将来大家都换成新的带.Net运行时的Windows操作系统之后这种技术也许是一个比较好的解决方案。Java RMI的缺陷更严重,不仅因为要装Java虚拟机为安装部署带来了困难,而且用Java开发应用软件的客户端程序目前来说很困难,鲜有成功案例。Borland的Midas基于老掉牙的com技术,开发维护困难,目前几乎没有人用了。

    针对这种现状,我研发了一个名为RDAS(远程数据访问服务)的框架,能够很好的解决目前主流的分布式数据访问技术存在的问题,提供一个比较完善的分布式数据通信解决方案。具体的介绍请看后续的文章。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值