常见的web应用结构有哪两种

2023-05-25 综合 25阅读
1. 单机应用系统(Standalone)
准确地讲,单机应用伏让系统是最简单的软件结构,是指运行在一台物理机器上的独立应用程序。当然,该应用可以是多进程或多线程的。
在信息系统普及之前的时代丛厅姿,大多数软件系统其实都是单机应用系统。这并不意味着它们简单,实际情况是,这样的系统有时更加复杂。这是因为软件技术最初普及时,多数行业只是将软件技术当做辅助手段来解决自己专业领域的问题,其中大多都是较深入的数学问题或图形图像处理算法的实现。
有些系统非常庞大:笔者早年曾经参与的一个大型纯软件系统开发,多达160万行程序!要知道,这些程序当时可都是一行行写出来的。这应该算是一个超大型的软件系统了,共有十多个子系统集成在一个图形界面上执行,并可在多行UNIX/DOS平台下运行,其中很多算法的复杂困难程度,可以说,如果讲给今天这些所谓的架构高手与计算机高手听,他们会感觉如听“天书”一般深奥;有些系统则算法非常复杂:我的一个同学,在他们专业领域内编制的软件程序,在当时最高级的专业工作站上(应该要比今天的最快的微机性能还好些),一敲回车键运行,就往往要等待一个星期的时间才能得到结果。
而这些软件系统,从今天的软件架构上来讲,却很简单,是标准的单机系统。即便是今天,复杂的单机系统也有很多,它们大多都是专业领域的产品,如CAD/CAM领域的CATIA、ProEngineer,Autodesk的AutoCAD,还有我们熟悉的Photoshop、CoralDraw,渗绝等等(这些系统的高级版本可能提供了一些网络化的功能,但改变不了其单机系统的实质)。
所以这里笔者要说的是,软件架构复杂并不代表软件系统复杂,其实,软件架构设计较为重要的领域只有一个,那就是信息系统领域,即以数据处理(数据存储,传输,安全,查询,展示等)为核心的软件系统。其他行业的软件应用对该概念其实并不是那么强调。
所以,读者应该明白,后面几节介绍的所谓流行软件架构,都是指在信息系统的领域内。
2. 客户机/服务器(Client/Server)结构
客户机/服务器结构是软件系统中最常见的一种。笔者认为该概念应该来源于基于TCP/IP协议的进程间通信IPC编程的“发送”与“反射”程序结构,即Client方向Server方发送一个TCP或UDP包,然后Server方根据接收到的请求向Client方回送TCP或UDP数据包(这里是指建立TCP/IP连接以后的应用程序逻辑,不涉及如TCP建立连接的三方握手过程),IPC编程的客户端/服务器概念图如图6-2所示。

诚然,上述IPC编程中的客户与服务,在过去只是一个再普通、传统不过的标准程序结构与编程方法,不会有人将其提高到软件架构的高度。但其实,现代流行的各种C/S架构,其本质却正是如此:即TCP/IP IPC编程中的客户机/服务器。目前为止,还没有任何一种客户机/服务器架构的软件超出了这个范围。
所以,准确地讲,现代各种客户机/服务器模式的软件架构实际上是对IPC编程中客户/服务程序结构更加产品化与成熟化的结果。
让我们来看看几种常见的客户机/服务器的软件结构。
● 两层C/S
两层C/S,其实完全是IPC客户端/服务器结构的应用系统体现。两层C/S其实就是人们所说的“胖客户端”模式。
在实际的系统设计中,该类结构主要是指前台客户端+后台数据库管理系统,如图6-3所示。

在两层C/S结构中,图6-3前台界面+后台数据库服务的模式最为典型,前文所说的很多数据库前端开发工具(如PowerBuilder、Delphi、VB)等都是用来专门制作这种结构的软件系统的。
有人也许要问,上述典型的两层C/S模式应该没有你所说的TCP/IP通信呀?怎么你前面讲所有的C/S模式都脱离不了这个范围呢?其实,每一种数据库都提供了其专用的访问API或通用的ODBC/JDBC接口,如果这个数据库的开发支持从不同的机器上以网络方式连接,则笔者相信其在客户端与数据库后台的通信大多情况下是TCP/IP的客户机/服务器模式!如果这个数据库不支持网络连接方式(如以前基于FoxBase的开发,或现在基于MS Access的开发),则我们不能称这个软件是C/S模式。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com