在计算机技术领域,有一条“摩尔定律”,由英特尔名誉董事长戈登.摩尔经过长期观察发现得之,是指集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍。在软件领域内何尝不是如此?从某种程度上尤甚。92年刚上大学的时候面对的是8088机,程序开发则是使用命令行界面的Turbo C2.0,Foxbase数据库等“土枪土炮”,什么网络化编程、并发处理、事务控制等概念还闻所未闻。96年大四临毕业做毕业设计的时候我们一位姓藤的老师带毕业设计,向我们介绍了客户机/服务器模式的程序开发,使用的工具是Sybase/PowerBuilder,现在连当初PowerBuilder的版本都忘记了,客户机/服务器模式的开发理念还没等理解的了就离开校门。毕业到了国税局,看到了局域网方式的征收软件,用的是NetWare文件服务器和Foxpro2.5,程序里为了解决并发处理存在着大量的为表或记录加锁并解锁的代码,为了某个表到底是独占打开还是共享打开程序员绞尽脑汁。90年代末期大量C/S的应用出现在工作岗位上,VB+SQL Server模式、PowerBuilder Sybase模式、Delphi+MS SqlServer模式等等,在C/S的方式下,程序员就已经得到了很大的解脱,不用去费力地考虑数据库的加锁与解锁问题,但要考虑事务处理、两阶段提交与回滚、数据一致性等问题。之后伴随着互联网的热潮出现了B/S架构的应用系统,CGI、PHP、ASP、JSP技术逐渐流行起来。但不论是Client/Server还是Browser/Server架构,都有一个致命的缺点,就是各自为阵,无法摆脱“信息孤岛”的厄运,无法实现分布式系统的整合,举一个最简单的例子,委托某软件公司开发了一套进销存管理和库存管理的系统,又买了一套财务软件,都是C/S结构的,两个系统没有办法通讯,记账凭证还需要手工录入。技术人员为了解决这种问题,通常使用交换数据文件的方式,如使用等宽的标准化的TXT文件,针对数据输出系统编写数据输入系统能认可的数据导出文件,再由数据输入系统手工导入。这种方式实时性差,数据容易在交换过程中丢失等。有的干脆编写了通讯的Socket程序[Figure 1],如金税工程发票交叉稽核系统总局、省局、市局稽核系统之间的通讯与整合就是采用了这种方式。
展开