6.客户机/服务器模式
客户机/服务器( Client/Server,c/s)模式是基于资源不对等,为实现共享而提出的。
C/S模式将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。C/S模式具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
图3-9是客户机/服务器模式的示意图,由两部分构成:前端是客户机,通常是PC:后端是服务器,运行数据库管理系统,提供数据库的查询和管理。
C/S模式的优点如下。
(1)客户机与服务器分离,允许网络分布操作:二者的开发也可分开同时进行。
(2) -个服务器可以服务于多个客户机。
随着企业规模的日益扩大,软件的复杂程度不断提高,传统的二层c/s模式的缺点日益突出。
(1)客户机与服务器的通讯依赖于网络,可能成为整个系统运作的瓶颈;客户机的
负荷过重,难以管理大量的客户机,系统的性能受到很大影响。
(2)如果服务器及其界面定义有改变,则客户机也要做相应改变。
(3)二层c/s模式采用单一服务器且以局域网为中心,难以扩展至广域网或Intemet.
(4)数据安全性不好。客户端程序可以直接访问数据库服务器,使数据库的安全性受到威胁。
c/s模式适用于分布式系统,得到了广泛的应用。为了解决as模式中客户端的问题,发展形成了浏览器朋显务器( Browser/Server,B/S)模式;为了解决as模式中服务器端的问题,发展形成了三层(多层)c/s模式,即多层应用架构。
软件架构模式为粗粒度的软件重用提供了可能。但是,由于考虑问题的角度不同,
对于架构模式的选择会有很大的不同。为系统选择或设计架构时,需要根据特定项目的具体特点,进行分析比较后再确定。同时应注意:各种架构模式并不是互斥的,某些应用系统中可以综合使用多神架构模式。
提供了一些设计决策的基本原则。需要注意如下几点。
(1)软件架构是一个程序或系统的构件的结构、构件间的关系以及控制构件设计演化的原则和方针。
(2)一个系统的软件架构由一组构件、构件间的连接件、构件和连接件的配置以及如何结合在一起的约束限制的描述组成。
(3)在计算的算法和数据结构之外,设计并确定系统整体结构成了新的问题。结构问题包括总体组织结构和全局控制结构、通信、同步和数据访问的协议、设计元素的功能分配、物理分布、设计元素的组成、可扩展性与性能、备选设计的选择等。
(4)软件架构所关心的是软件构件及软件构件间的组织结构、约束和关系,是对系统的组成、系统结构及系统如何工作的较为宏观的描述。