网络B/S三层分布式架构
三层分布式系统架构﹐同Client/Server相比,最大优点是将系统的工作任务进行分散处理。导入了Application应用程序服务器,整个ERP系统具有良好的稳定性和延展性,有效降低维护运营成本﹐当客户端在不同的地区时﹐可以直接通过INTERNET/INTRANET连线系统。
三层系统架构﹐从广义上讲隶属于分布式系统架构﹐也就是前面所说的分散处理。为了降低开发系统的成本和为了增加应用系统的重复使用性﹐发挥面向对象分析/面象对象设计的功能﹐因此在系统设计中导入了所谓的应用程序服务器。
应用程序服务器简单的说就是一个包含企业逻辑的应用程序﹐它由特定的企业对象封装而成。例如如果在应用程序服务器是已经有了能够提产品信息的企业对象﹐那么当客户需要开发一个更新产品信息MIS应用程序时﹐就可以直接使用应用程序服务器中的企业对象。此外如果还需让用户从INTERNET/INTRANET来访问系统时﹐也可以使用CGI或者ASP技术存取在应用程序服务器中的企业对象。而当客户需改变程序的处理流程或计算方法时﹐只需要在应用程序服务器中修改我们封装好的企业对象﹐终端客户就可以直接使用得到更新的处理流程。
采用的三层系统(或即分布式架构)包含了应用程序服务器的结构有许多好外﹐除了增加企业对象的可重复使用性之外﹐整个系统的开发和维护都立即得到了提升﹐系统开发人员的企业终端用户之间的关系就变得单纯了﹐不用再去花费大量的时间和精力进行沟通。开发者和使用者降低了经济上的成本和时间上的成本。一个典型的三层架构系统结构图
右图的结构就已经说明﹐在三层架构(或即分布式架构)中整个应用系统的执行是分成数个不同的部份并且执行在不同计算机之中﹐由于把系统不同的运作部分分布在独立的机器中﹐所以整个应用系统的延展性也大为提高。
以上我们从理论上简单地对三层架构作了一些说明﹐现在我们来看看在实际运用当中﹐三层架构给我们带来的种种好处。在以前的客户机/服务器(C/S)二层主从架构中﹐存在一些致命的缺点。首先﹐在客户机/服务器的架构下﹐前端的使用者越多﹐前﹑后端之间的连接(CONNECTION)就越多﹐后端数据库服务器的负担就越重﹐进而大幅度降低系统的效率。这种情况在短时间内涌进大量的数据读写及存取要求时更为严重。举例来说﹐假设某公司有1000个员工﹐而且与某家公餐厅约定﹐早上十点到十一点所有的员工都可以打电话到这家餐厅订便当﹐请想象一下﹐在短短一小时内﹐这家餐厅必须接听一千通电话﹐就算这家餐厅有十条专线﹐都可能应接不暇接造成员工电话接不通﹐这种现象就有如client/server服务器架构的系统﹐数据库服务器的负担过重﹐降低了整个应用系统的效率。
同样的道理﹐如果在一套应用系统中同时有太多的前端用户连上候端服务器﹐那么后端服务器将穷于应付,因为这个服务器除了要处理数据库的存取动作之外﹐还必须HANDLE每个前端连接的CONNECTION﹐从技术而言﹐伺务器将会不断地进行 DISK SWAP动作﹐系统还快得起来吗?Client/ Server架构最令人无法接受的就是前端应用程序的分发工作,当软件开发厂商把应用程序开发完后﹐除了要把生成的应用系统文件复制到每一台前端计算机之外﹐还必须将一些Client/Server之间的连接程序安装在前端计算机上(比如BDE,SQL LINK等)﹐假如某家公司的前端用户有好几百个﹐且分散在各个不同的地区甚至国外﹐如果应用程序更新版本﹐那就意味着所有的前端使用的计算机必须更新安装﹐这将大大增加系统的维护成本。另外还有一个非常重要的问题是﹐Client/Server主从架构下﹐公司运行的整套应用系统中往往只有单一的数据库服务器﹐若是此数据库服务器因为某种因素当机﹐那么是不是公司所有的运作都必须停下来﹐在现今许多公司对计算机依赖程度与日剧增﹐谁都不能接受因为计算机当机而使公司运作停止的现象。就算复制了一份一模一样的数据库服务器当作备份﹐也必须重新启动系统﹐而无法做到 24小时的运作模式。所有前端连入服务器,必会加重服务器负担,降低其运行速度由于以上的种种问题Client/Server的架构被三层分布式架构取代﹐就成为理所当然一种发展趋势。
为什么要使用三层分布式架构
三层分布式架构的出现是为了解决Client/Server结构在维护上需要非常在的成本﹐当客户端在不同的地区时﹐更为明显。此外也是为了改善Client/Server结构延展性的问题﹐因为Client/Server结构能够支持的客户端数目有一定的限度﹐当客户端数目超过200人的时候﹐客户机/服务器结构的效能便开始下降。对于INTERNET/INTRANET和电子商业等应用系统而言﹐这种客户端数目的限制﹐更是简直无法忍受的﹐所以需要使用更具延展性的分布式架构来克服这个问题。另外就是地区距离条件的原因﹐一个公司或企业分布在各个地区﹐甚至各个国家的子公司或生产工厂﹐需要使用一些相同的数据来协调完成工作﹐采用Client/Server的结构﹐在应用系统的架设的成本上会远远超过三层架构。
另外从使用的角度看﹐三层分布式架构也是优于Client/Server服务器的﹐在三层应用系统的开发当中﹐系统的结构就接近于强迫地决定了软件开发人员以企业对象的形态编写企业逻辑﹐进而允许其它的系统或是INTERNET/INTRANET系统结构也可以重复使用这些企业对象。这对于需要使用系统的客户和软件开发厂商以及客户端应用系统的维护都有正面的效益﹐同时也能够降低了系统的维护成本。当一套应用系统在使用过程中需要修正﹐需要结合新一代的信息系统的时候﹐使用三层分布式架构就可以将各种系统有效地整合在一起﹐这也是这种架构得到广泛使用的原因之一。此外﹐所有的软件开发工具厂商﹐数据库厂商﹐中介软件厂商﹐以及INTERNET/INTRANET工具厂商都加入了支持三层分布式架构﹐所以也造成这种架构系统应用开发的成熟阶段。从信息时代的发展来看﹐一套应用系统必须具备良好的稳定性﹐延展性﹐重复使用程度高以及较低的维护成本等特质﹐才能更好地满足使用者的需要﹐才能给我们的工作带来真正的方便提升我们的工作效率。