博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件设计基础-C/S系统
阅读量:5871 次
发布时间:2019-06-19

本文共 1496 字,大约阅读时间需要 4 分钟。

在软件设计开发过程中,逐渐形成了一些针对特定应用领域的软件系统组织方式的惯用模式

如经典的C/S(client/server,客户/服务器)模式和B/S(browser/server,浏览器/服务器)

模式。相应的基于C/S模式和B/S模式开发的系统被称为C/S系统和B/S系统。开发时,可根

据其应用领域的特性选择一种适合的模式进行软件体系结构的设计。

 

C/S系统在计算机系统发展过程中占据着非常重要的位置,经历了从宿主式集中模式到C/S

模式的发展过程。

       典型的宿主式集中模式中,采用大中型机或小型机作为主机,所有任务均为主机完成。

一台主机可配置多台终端,一般可同时支持多个用户,所有用户的应用程序以及数据都存储

在主机上。用户通过终端与主机交互,终端本身几乎没有处理能力,只负责接收用户的输入及显示

主机的处理结果。

      20世纪80年代,个人计算机(PC)得到广泛的应用,PC不但可提供与用户交互的能力,同时

也提供了数据存储及数据处理能力。但数据在多台PC之间的共享成为一个大问题,而局域网技术

能够提供对PC、打印机以及大中型机或小型机之间的资源集成起来的有效通信支持。局域网

中的各计算机之间的资源具有不对等性。基于资源的不对等以及便于共享数据和应用,人们

提出一种新的计算模式——C/S模式,并成熟与20世纪90年代。

 

在C/S模式中,客户和服务器是指进程而不是指机器硬件。进程是一个具有独立功能的程序

关于某个数据集合的一次运行活动,可以把进程简单理解为一个可执行文件的一次执行。

服务器指的是驻留在服务器所在计算机上的不断运行的进程,该进程可以向其他的进程

提供服务,而客户就是期待使用服务的进程。C/S模式是非对称的,不断运行的服务器进程

在网络上等待着客户的服务请求。由于客户决定什么时候向服务器提出请求,因此服务器

实际上是一个总在等待接受请求并提供服务的“从”进程,客户则是提出服务请求的“主”进程。

 

典型的C/S系统主要由客户应用程序、数据库服务器和网络三部分组成,服务器端主要是数

据库服务器,负责接收并执行客户端有关数据的增加、删除、修改、查询等请求,而客户端

依据业务逻辑对数据进行处理,并负责界面展示。

       客户应用程序面向用户,可以向服务器请求并将所得到的响应传递给用户。数据库服务

器是服务的提供者,负责管理数据库并响应用户需求。其中客户应用程序和数据库服务器指

的都是软件,不是真正的计算机硬件设备。

 

C/S模式具有以下优点:

(1)更好地保护原有资源并共享

C/S模式是一种开放式的结构,可有效地保护原有的软硬件资源;之前在其他环境上积累

的数据和软件均可在C/S中通过集成而得以保留和使用;用户不仅可以存取服务器上的

资源,也可存取其他客户机上的资源。

(2)快速处理信息

当用户提出一项请求时,可由多个服务器并行进行处理,提高响应速度;也可将一项任务

分解,由客户和服务器分别处理,共同合作完成。

(3)客户机和服务器均可单独自由升级

 

同时也具有以下缺点:

(1)将任务分开处理,系统本身也被分为若干部分,增大系统开发和管理的复杂程度与

难度,增加了服务器的管理和支持人员的开销。

(2)客户与服务器数据数据库之间的互连支持能力有限,不同的数据库管理系统之间难以

共享数据。同时,由于客户端集成了对数据的处理和显示功能,如果更新程序,则每台客户

机上的软件都要更新,否则就会出错,无形中加大了软件分发和更新困难,增加了工作量和

出错的概率。

转载于:https://www.cnblogs.com/Ting-light/p/9548452.html

你可能感兴趣的文章
PHP合并大文件 高性能 低内存 低CPU 快速合并大文件 非耗时操作 快速合并PDF等影视大文件...
查看>>
Linux常用命令笔记2---文件管理2
查看>>
Centos7 连接Serial串口记录
查看>>
tomcat PermGen space 不足的解决方法
查看>>
Outlook disconnected, 2010/2016 Co-Existence issue
查看>>
CentOS7--IP配置与网络问题排查
查看>>
[置顶] Python编程->混合编程(C++,python,opencv)实现
查看>>
Only a type can be imported解决方法
查看>>
Centos VIM 配置
查看>>
《LUA游戏开发实践指南》学习笔记1
查看>>
.htaccess使用说明
查看>>
StateListDrawable 动态更换背景
查看>>
我的友情链接
查看>>
rpm软件包安装
查看>>
JAVA中判断一个字符串是否包含另一个字符串
查看>>
org.eclipse.birt.report.exception.ViewerException: 没有可用的报表设计对象.
查看>>
linux通过mail命令发送到外部邮件
查看>>
BGP的社团属性
查看>>
JS获取服务上下文,兼容上下文为空场景
查看>>
实现简单的字符串队列
查看>>