2.3计算机软件系统
软件是在解决具体问题过程中与计算机系统操作有关的程序、数据与文档。计算机软件按性质和功能划分为系统软件与应用软件两大类。
2.3.1计算机软件的发展
1.计算机编程语言的发展
时至今日,计算机软件的发展经历了如下阶段:
(1)机器语言
第一代软件编写语言是用机器语言,机器语言是计算机机器指令的集合。机器语言具有规则简单、执行速度快等特点。但采用二进制编码,编写过程繁琐且可读性差,对计算机系统的依赖性强,移植性差。
(2)汇编语言
第二代软件编写语言是汇编语言,汇编语言需要通过汇编程序翻译成机器语言才能被计算机执行,汇编语言程序通常被称为源代码,翻译后的程序汇编语言称为目标代码。。
(3)高级语言
第三代软件编写语言是高级语言,高级语言也称算法语言,是一种与自然语言接近、面向用户的语言,也是当前软件编写的常用语言。
(4)非过程化语言
第四代语言(简称4GL)是非过程化语言,20世纪90年代,出现以数据库管理系统功能为核心的面向问题的非过程化语言—第四代语言。
(5)人工智能语言
人工智能语言,是软件开发的第五代语言,或称知识库语言,是未来计算机语言发展的目标。
2.软件服务产业的发展
我国的软件服务产业起步于在20世纪80年代初期,在20世纪90年代中期逐步形成。软件服务产业主要包括软件产品行业、信息系统集成服务行业、信息技术咨询服务行业、数据处理和运营服务行业、嵌入式系统软件行业、集成电路研发(IC)设计行业。
2.3.2系统软件
软件按性质和功能划分为系统软件与应用软件两大类。系统软件为计算机提供管理、控制维护等最基本的功能的软件,它可以使计算机硬件协调工作,如操作系统、语言处理程序、数据库管理以及辅助程序等。
(1)操作系统
操作系统(Operating System,OS)是控制和管理计算机系统,合理组织计算机工作流程,为用户提供高效服务的计算机软硬件资源的程序。主流的操作系统有Windows、Unix、Linux、Mac OS、iOS、Android、WP(Windows Phone)、Chrome OS操作系统等。
(2)语言处理程序
应用软件是采用高级语言编写的,它不能直接在计算机上运行,只有机器语言级二进制机器指令能够直接被硬件识别和执行,高级语言编写的程序必须通过翻译程序翻译为直接在计算机上执行的机器指令。
(3)数据库管理
数据库管理软件是一种具有数据库控制和管理功能并能保证数据安全性和完整性的软件系统,主要包含数据库建立、数据库操控和数据库维护三个功能。
(4)辅助程序
辅助程序是为特定目的而开发的,用于协调操作系统与应用软件使用的程序。主要有测试程序、连接程序、调试程序等。
2.3.3 应用软件
应用软件是根据用户自身需求开发的、能够解决特定问题的软件。如办公软件、商务软件、多媒体软件、分析软件、游戏软件等。
(1)办公软件
办公软件是指具备文字、表格、图像信息处理和阅读、翻译等功能的办公自动化软件。目前常见的办公软件有微软的Office系列办公软件、金山的WPS系列办公软件、Adobe的PDF阅读器等。
(2)多媒体软件
多媒体软件是指编辑、管理和展示图形图像、视频、动画、音频等素材的多媒体工具。主要包括图形绘制、图像加工、音频编辑、动画制作等软件。如Photoshop、Premier、Flash、Dreamweaver、Maya等。
(3)分析软件
分析软件是指进行各种统计数据分析、管理、数据挖掘与预测的软件。如Minitab、SAS、S-Plus、SPSS、Stata、DPS(国产)等。
(4)游戏软件
游戏软件是指采用动画制作与程序设计结合设计出来的虚拟现实软件。主要包括动作类游戏、模拟类游戏、策略类游戏、竞赛类游戏、休闲游戏等。经典的如魔兽世界、反恐精英(CS)、传奇、石器时代、英雄联盟(LOL)、剑灵、穿越火线等。
(5)商务软件
商务软件是指帮助企业完成财务统计、企业规划、资源管理等功能的软件。如用友软件、金蝶软件、思爱普(SAP)软件、赛捷软件、FineBI商业智能软件等。
其他的常用应用软件还包括多媒体软件、聊天工具软件、浏览器软件、游戏软件、下载软件、系统工具软件、安全杀毒软件等。
2.3.4计算机操作系统
操作系统是计算机系统的核心,它直接监管计算机软件和硬件资源,协调和控制计算机有效工作,为用户提供良好的交互界面和多样化服务的程序集合。
1.早期操作系统的发展
(1)人工操作阶段
20世纪40年代第一代电子计算机诞生之初,计算机采用的电子元件是电子管,采用定点运算方式,计算机没有所谓操作系统的概念,只是简单的机械式的机器计算。
(2)单道批处理操作系统
为了解决人工操作的速度与计算机的较高运行速度上的差异,进一步减少人工干预、实现作业处理自动化并提高CPU的利用率,批处理系统(也称批处理操作系统)的思想开始出现。
(3)多道批处理操作系统
通道概念以及中断技术的发展,促使多道批处理系统的实现。1964年,IBM推出能够支持15道程序同时运行的OS/360操作系统,是多道批处理系统的典型代表。
(4)分时操作系统
针对批处理系统中用户无法干预程序执行的问题,提出在操作系统中采用分时的概念,即系统在接收用户的请求后,采用时间片轮转的方式处理用户的请求,并将处理结果以交互的方式及时的反馈给用户。从总体上看,所有的用户在同时操作计算机,独立的控制各自的作业,从微观上看,所有用户采用分时
分时操作系统的主要特征是:
①交互性
②及时性
③独占性
④多路性
⑤可靠性
(5)实时操作系统
实时操作系统要求系统能够及时的对用户请求进行处理,不仅响应要及时,而且往往需要在规定时间内给出处理结果,否则可能会出现致命性的错误。实时操作系统的主要特征是高响应性、高可靠性、高安全性。
分时操作系统与实时操作系统的主要区别在于交互能力与响应时间上,分时系统注重交互性,而实时操作系统则注重响应时间。
2.现代操作系统的发展
(1)通用操作系统
具备多道批处理、实时、分时处理两种功能以上的操作系统称为通用操作系统。Unix是典型的多道批处理、分时、实时相结合的通用操作系统。
(2)分布式操作系统
物理上跨越不同的计算机系统、通过互联网实现分布式计算和处理的操作系统称为分布式操作系统。分布式操作系统具有统一性、共享性、透明性与自治性。
(3)嵌入式操作系统
嵌入式操作系统是对整个智能芯片及其所控制的各种部件模块等资源进行统一调度、指挥和控制的系统软件。
(4)网络操作系统
网络操作系统是基于网络的操作系统,主要负责网络管理、网络通信、资源共享以及系统安全等工作。
3.微机操作系统的发展
(1)单用户单任务操作系统
每次只能有一个用户使用,该用户一次只能提交一个作业,一个用户独自享用系统的全部硬件和软件资源的操作系统称为单用户操作系统。
(2)单用户多任务操作系统
同一时间只能有一个用户使用,该用户一次可以提交多个任务的操作系统称为多用户操作系统,也就是说,一台电脑可以供多个用户使用,其中一个用户拥有管理系统资源与其他用户的权限。
(3)多用户多任务操作系统
一台计算机可以同时有多个用户同时使用,并且同时可以执行由多个用户提交的多个任务的操作系统称为多用户多任务操作系统。
4.操作系统的分类
操作系统主要有如下几种分类方式:
(1)根据应用领域
可分为桌面操作系统、服务器操作系统、嵌入式操作系统。当前常用的桌面操作系统有Windows、UNIX、Mac、Linux操作系统。服务器主要有Web服务器、应用服务器和数据库服务器等,服务器操作系统有Windows、Unix、Linux。嵌入式操作系统主要有Windows Embedded、Linux、VxWorks以及广泛应用于智能手机以及平板电脑领域的操作系统如iOS、 Android、Windows Phone等。
(2)根据源代码的开放程度
分为开源操作系统和闭源操作系统。
(3)根据硬件结构
可分为网络操作系统、多媒体操作系统和分布式操作系统等。
(4)根据操作系统工作方式
可分为批处理操作系统、分时操作系统、实时操作系统。
(5)根据所支持的用户数
可分为单用户操作系统和多用户操作系统。
(6)根据CPU的处理能力
分为8位、16位、32位、64位、128位操作系统。
(7)根据操作系统智能化程度
分为简单操作系统和智能操作系统。
5.操作系统的特征
(1)并发性
并发性指两个或两个以上的事件或活动在同一间隔时间内发生,交替进行。。
(2)共享性
共享性指系统中的资源可以被多个用户共同使用。共享性存在两种方式,即互斥共享方式和同时访问方式。
]互斥共享方式。系统中的多个进程共同使用的某些资源在某一段时间内只允许一个进程访问。为此,当用户进程请求的资源空闲时,空闲的资源就可以分配给进程使用,而其他进程在访问该资源时则必须等待当前进程访问完毕释放占用的资源后才允许访问。被访问的资源称为临界资源或独占资源。
]同时访问方式。在同一段时间内资源可以被多个进程同时访问的方式。
(3)虚拟性
虚拟是指一个物理实体映射到若干个逻辑实体。物理实体是客观上实际存在的事物,而逻辑实体是用户感觉上存在的事物。
(4)异步性
在多道程序环境下,多个程序可以同时运行,当程序访问临界资源时,由于某个进程常常需要等待其他进程释放资源后才能获得执行,因此,异步性是指一般情况下,程序的执行不能够持续进行,而是与等待交替进行,程序的运行情况具有不可预测性。
6.进程与线程
进程与线程的概念与操作系统并发性的实现密切相关。进程是操作系统对运行程序的一种抽象表示方式,即一个独立程序在某个数据集合上的一次执行。进程具有动态性、并发性、独立性与异步性。进程是一个动态的概念,表现为因“创建”而产生,因“调度”而执行,因得不到资源而暂停,因“撤销而消亡”。进程在生命周期内,在这三种状态之间动态转换。
进程是能够独立运行的基本单位,也是系统资源分配和调度的基本单位。进程控制块PCB有效的管理和控制进程的执行,PCB是进程存在的唯一标志,系统通过PCB确认进程的存在。PCB是一组信息,它不仅包含进程本身的信息以及所需的控制信息,也记录进程运行时的状态,PCB与进程同时存在,进程结束时,PCB与进程同时消亡。
线程是进程中一个相对独立的、可调度的执行单元或者实体。线程不仅具有进程的许多优点,而且具有并发性、系统开销小以及提高资源利用率的特征。为进一步提高计算机的整体性能,许多微型计算机采用多线程的思想。多个线程包含在同一个进程中,共享进程中的数据和文件。线程不需要另行分配资源,创建速度快、系统开销小。线程间的通信在同一存储空间内进行,简单方便。线程独立执行能充分发挥CPU与外围设备并行工作的能力。在支持操作系统的环境中,一个应用程序的任务可由多个线程来完成,使并行程度和计算速度都得到提高。
线程与进程间的关系表现为线程是进程的一个组成部分,进程创建时的主线程可以创建其他线程,进程是资源分配的基本单位,系统在运行时会为每个进程分配资源,但不会为线程分配资源,线程只能共享它所属进程的资源。与进程的控制表PCB相似,线程也有自己的控制表TCB,但TCB中保存的线程状态比PCB中的少。进程与线程都可以并发执行,进程切换的开销远大于线程。
7.操作系统的基本功能
操作系统的基本功能包括处理器管理功能、存储管理功能、设备管理功能、文件管理功能以及操作系统与用户之间的接口。
(1)处理器管理
处理器管理也称CPU管理,对整个计算机系统的性能具有直接的影响。现代操作系统中CPU分配和运行以“进程”为单位,CPU管理可视为对“进程”的管理。CPU管理的主要功能包括作业与进程调度、进程控制与进程通信。
①作业与进程调度
在多道程序系统中,作业与进程调度主要负责将在相应队列上等待的作业(或进程)按照某种算法调入内存,等待执行。
②进程控制
进程控制主要负责为作业的执行创建若干进程以及分配相应的资源,进程运行完毕后撤销进程和资源回收。进程同步主要负责对具有并发性和相互制约关系的进程间的运行进行协调。进程的相互制约关系分为资源共享关系与相互合作关系,具有资源共享的进程间常常由于对临界资源(一次仅能由一个进程使用的资源)的访问产生竞争,因此,进程的访问多采用互斥方式。具有相互合作关系的进程在执行过程中常常具有先后的次序,因此,进程的访问多采用同步方式。
③进程通信
进程通信是操作系统内核中的关键内容,是进程间实现数据交换和数据共享的重要手段。进程通信的方法主要有文件映射、共享存储、管道通信、动态数据交换等。
(2)存储管理
存储管理主要实现对计算机内存资源的管理,为多道程序的运行提供支持。计算机内存容量是有限的,当多道程序共享有限的内存资源时,容易出现一些问题,如内存空间分配问题,内存中的程序和数据之间实现相互独立和资源共享等问题。当内存容量不能满足要求时,需要对内存容量在逻辑上进行扩充,即通过对内存和外存进行统一管理实现虚拟存储器的方式来解决,从而为用户提供一个容量比实际内存更大的存储空间。存储管理的主要功能包括内存分配、地址映射、内存保护和内存扩充。内存分配主要实现存储空间的分配和回收。地址映射主要完成程序中的逻辑地址到内存中物理地址的转换,内存保护主要确保内存中个程序独立运行以及信息的完整性和一致性。内存扩充主要采用虚拟存储技术或其他自动交换和交换技术实现内存在逻辑上的扩充,提供比实际内存大的多的存储空间。
(3)设备管理
现代计算机I/O设备众多并且在功能和性能上差异较大,操作和信息处理速度也不同。设备管理是指对I/O系统中的I/O设备进行的管理,为用户的I/O请求提供服务、提高I/O系统的服务速度以及I/O的利用率。
(4)文件管理
文件管理是针对系统中的文件、目录和存储空间的管理。计算机系统中的程序和数据通常以文件的形式存放在外部存储器上,需要时再将它们载入内存。文件管理的主要功能包括文件存储空间的管理、目录管理、文件的读/写和存取控制文件系统的安全管理。
①文件及其分类
文件是是存储在存储设备上的相关数据的集合,文件有若干描述实体集的记录所组成,记录又由描述对象具体属性的数据项组成。
②文件系统
文件系统是操作系统中负责文件管理的部分,主要负责对文件存储空间进行组织、分配,对文件进行存储和保护。文件系统对文件的操作采用按名存取的方式。操作系统一般都提供功能很强的文件系统,文件系统的主要功能是文件读/写管理、文件目录管理、文件存储空间管理、文件保护与共享、提供用户接口、保证文件系统的可靠性与一致性。
③目录管理
文件由文件说明和文件体两部分组成。文件说明又称为文件控制块FCB,是用来保存文件属性信息的数据结构。文件说明的集合称为文件目录。文件目录通常被视为一个文件存放在磁盘上,用户可以通过在文件的目录中查找文件名来获得文件的信息。目录应具有如下几个功能:
]通过“按名存取”实现对文件的操作。一般情况下,位于同一目录下的文件不允许文件同名,而对不同目录下的文件则无此要求。
]提高检索速度,对于大型的文件系统,设计合理的目录结构可以在很大程度上缩短检索时间,提高检索速度。
]允许文件共享,在多用户系统中,允许多个用户共享一个文件,可以节省存储空间,但需要保证共享文件操作的安全性。
常用的文件目录结构分为单级目录、二级目录和多级目录3种形式。文件目录为每个文件建立一条记录,每条记录至少需要包含文件名、文件存储地址、文件类型、文件长度、访问权限、创建时间和访问时间等信息。
绝对路径名是指从根目录“/”开始直至目标文件之间的路径名。其表示方法为:/一级子目录名/二级子目录名/
/n级子目录名。
(5)为用户提供接口
为方便用户使用计算机系统的功能,操作系统为用户提供三类接口,即命令接口、程序接口和图形用户接口。
①命令接口
为用户提供各种命令来组织作业的工作流程和控制作业的运行。
②程序接口
也称应用编程接口API(ApplicationProgramming Interface),可应用于所有计算机平台和操作系统,程序通过该接口能够调用操作系统的服务和功能。
③图形用户接口(Graphical User Interface,简称 GUI,又称图形用户界面)
图形用户接口使计算机和用户之间的交互通过各种图形对象完成,操作简单、易于实现。用户通过图形用户接口可以简单直观的使用图标、窗口、菜单和对话框等元素实现对计算机的操作。
8.操作系统结构
操作系统的结构用于描述整个操作系统的组成部分以及相互之间的关系,是操作系统的整体模型。随着操作系统设计与开发的规模不断扩大,选择合理的操作系统结构显得尤为重要。操作系统的结构已经从早期的集中式的主机模式结构发展到当今主流的分布式的客户端/服务器(C/S)模式与浏览器/服务器模式(B/S)。
(1)传统操作系统结构
在早期的集中式的主机模式中,单个用户独占整个主机系统资源,用户之间没有信息的交换和共享,这种操作系统包括模块化结构与分层式结构。
(2)微内核结构
20世纪80年代微内核结构兴起,它的主要特点是具有支持多处理机的功能,适用于分布式系统环境,当前主流的操作系统大多采用该内核结构。
9.主流操作系统介绍
当前主流的操作系统主要包括Windows、UNIX、Linux、Mac OS X、iOS、Android等。
(1)Windows操作系统
Windows操作系统的成功之处在于它具有如下特点:
①易学易用的面向对象的图形用户界面
②支持多任务多窗口
③即插即用功能
④支持多媒体技术
⑤内置网络和通信功能
(2)UNIX操作系统
UNIX是多用户、多任务的分时操作系统。
UNIX操作系统的特点表现在以下几个方面:
①开放性、可移植性
所谓开放性是指系统遵循国际标准,特别是遵循开放系统互连(OSI)标准,具有丰富的核外系统程序,如语言处理程序、系统实用程序和软件开发工具。采用C语言编写,使系统易于理解、修改和扩充,具有良好的可移植性。
②多用户与多任务的分时操作系统
UNIX可以支持多个用户同时使用,每个用户同时执行多个进程,在多个用户间管理和共享系统资源。操作系统根据每个任务的优先级为每个任务分配合适的时间片,使每个用户有独占整个系统的感觉。
③适应性与伸缩性强
UNIX系统中的普通文件、文件目录和I/O设备统一作为文件处理,用户可以使用与处理文件相同的命令和系统调用访问设备,系统具有很强的适应性。
④强大的网络与数据库功能
UNIX各种版本全面支持TCP/IP协议,UNIX支持所有最通用的网络通信协议,使UNIX可以方便的实现网络互连。由于UNIX系统对包括关系型数据库在内的数据库系统提供强大支持,使UNIX成为数据库运行平台的理想选择。
⑤系统结构清晰,简洁高效
由于UNIX具有内核短小,功能强大、高效的特点,因此,它的结构已被许多操作系统借鉴和采用。UNIX采用功能强大的可编程的Shell语言作为用户界面,并采用树状目录结构和多种通信机制,使其具有简洁高效,良好的安全性和可维护性。
⑥安全性、保密性和可维护性
文件系统采用树型结构,在扩大文件存储空间的同时,又提供良好的安全性、保密性和可维护性。
(3)Linux操作系统
Linux是当今最流行的操作系统之一,是与POXIS标准和UNIX兼容的多用户、多任务、支持多线程和多CPU的网络操作系统。
Linux操作系统具有以下一些特点:
①开放性
②多平台、硬件需求低
③高稳定性和运行速度
④功能完善、网络功能丰富
⑤出色的内核设计。
(4)Mac OS X
Mac OS X是Apple公司为Mac系列产品开发的基于UNIX的专属操作系统。
(5)iOS
iOS是苹果公司开发的类Unix的商业移动操作系统,最初在iPhone上使用,而后扩展到iPod touch、iPad以及Apple TV等产品上。
(6)Android
Android本义指“机器人”,先后由Andy Rubin(安迪·鲁宾)和Google公司开发的一种基于Linux的开源操作系统,主要用于智能手机和平板电脑等移动设备。
2.3.5计算机软件设计与开发
计算机软件是与计算机系统操作相关的数据、程序、规则及文档的集合。软件是人类智力劳动的产物、以所运行的计算机系统为基础,以运行状况、性能与质量为衡量指标,具备准确性、可靠性、易用性、高效性、可复用、可升级、可移植、可维护性等特征。
1.软件的分类
(1)按性质和功能划分
按性质和功能划分软件为系统软件与应用软件两大类。
(2)按照软件著作所有权划分
按照软件著作所有权划分为专有软件、自由软件、共享软件、免费软件等。
①专有软件
专有软件是在法律或者技术上限制修改和使用权限的软件,需要所有者的许可才可以使用该软件,且源代码一般不开放,如 微软的Windows操作系统、Office办公软件、Adobe的Photoshop图像处理软件等。
②自由软件
自由软件是开放源代码软件,软件持有者可以任意使用该软件,如Linux操作系统、关系型数据库管理系统MySQL、超文本预处理器PHP、Mozilla Firefox浏览器等。
专有软件与自由软件都可以付费或者免费使用。
③共享软件
共享软件是用户先得到一部分功能和一段时期的使用权后,再决定是否付费继续使用的软件。
④免费软件
免费软件是在使用功能、使用期限、使用权限上没有任何限制的软件,但一般不允许用于商业用途。
2.程序设计方法
程序是为解决实际问题计算机执行的一系列动作和操作。
(1)结构化程序设计方法
(2)面向对象程序设计(OOP)
3.软件开发流程及模型
事物有其自身的成长规律,软件产品的诞生也是同样的。一种软件也有从孕育、诞生、成长、成熟到衰亡的生存过程,一般称其为“软件生命周期”。
软件生命周期一般分为6个阶段,即制定软件计划、需求分析、软件设计、软件实现(编码)、软件测试、软件运行和维护。
(1)瀑布模型
瀑布模型即传统生命周期模型,其最大的特点就是简单,按照软件生命期划分的六个部分顺序进行。该模型的生命周期有软件定义、软件开发和软件维护三个过程。
①软件定义过程
软件定义过程分为问题定义、可行性研究和需求分析三个阶段。
②软件开发过程
软件开发过程分为总体设计、详细设计、编码和测试、综合测试四个阶段。
③软件维护
软件维护指软件的运行和维护。
(2)原型模型
原型模型也称快速原型模型,如图2-43所示,是通过一些快速原型语言先构建出软件产品的原型系统,即在开发之前先制作一个原型模型,这样可快速的和用户交互,用户通过该原型系统具体的了解该款软件,并通过原型发现用户需求的遗漏,以便通过该模型与用户的交互明确并细化用户的具体需求,在此基础上开展软件系统进一步的开发。
缺点是可能导致系统设计差、效率低,难于维护。
(3)螺旋模型
螺旋模型在快速原型模型与瀑布模型的基础上,采用周期性的方法来减小软件风险的软件模型。使用原型及其他方法来尽可能降低风险。在软件开发的每个阶段,都增加一个风险分析过程。基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。
螺旋模型结合了快速原型模型的迭代性质和瀑布模型的系统性和可控性特点,螺旋模型一般包括制定计划、风险分析、工程实施和用户评估四个阶段,每个阶段都包含一个迭代过程。软件开发过程首先确定该阶段的目标,并通过分析、评估与控制以减小该阶段存在的开发风险。用户的参与能够保证开发过程的正确方向及可控性,使螺旋模型能够开发出符合用户需求的产品。螺旋模型通常适用于大型复杂的软件项目,软件变动较大的项目,软件开发的关键是对风险性的把握,各迭代过程容易导致开发周期的延长和开发成本的增加。螺旋模型如图2-44所示。
当前比较流行的软件模型还有增量模型、演化模型(变换模型)、喷泉模型、智能模型、混合模型等。各种模型详细介绍请参阅软件工程有关书籍。
4.软件的工作模式
软件系统的工作模式用于描述整个软件系统的组成、连接方式以及软件的服务模式,是软件的整体服务模型。随着软件设计与开发的规模不断扩大,选择合理的工作模式对软件系统的服务质量有着深刻的影响。
(1)客户/服务器模式(Client/Server,简称C/S)
20世纪90年代流行起来的C/S模式又称为胖客户端模式,该模式是两层结构,即客户端与服务器直接相连,相对独立,用户请求服务由客户端与服务器共同完成,如图2-45(a)所示。其中,客户端负责与用户进行信息交互,服务器负责数据管理,客户端承受的压力相对较大。C/S模式中服务器负担较轻,请求响应速度快,安全性好。但该模式通常适用于局域网,不支持Internet,很难满足当前网络环境下用户的需求,且相对于其工作效率,C/S模式在管理和维护方面代价很大。
当前流行的软件体系结构还包括对等网络(P2P)模式,在该模式中,所有计算机处于同等地位,既能够作为客户端发送请求,又能对其他计算机的请求进行响应和提供服务,适用于小规模的局域网。
(2)浏览器/服务器模式(Browser/Server,简称B/S)
B/S模式又称为瘦客户端模式,是当前主流的软件体系结构,如图2-45(b)所示。该模式是三层结构,即Web浏览器、Web服务器、数据库服务器。客户端只需具备Web浏览器即可,Web服务器负责接收客户端的请求并进行处理,将数据处理任务交给数据库服务器完成,并将处理结果返回给客户端。B/S模式中客户端负担较轻、操作简单、维护成本低、支持广域网,但用户请求较多时容易导致服务器负担过重,响应速度和安全性不尽如人意。目前许多可以采用C/S模式和B/S模式相结合的混合模式,可以发挥C/S模式和B/S模式各自的优点。

