C/S架构

Posted 是李黏黏鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/S架构相关的知识,希望对你有一定的参考价值。

目录

一、什么是C/S架构

二、C/S架构软件系统运行流程

三、C/S架构的优点

四、C/S架构的缺点

五、局域网

六、服务端的特征

七、客户端的特征

八、如何区分客户端与服务器

九、ODBC


一、什么是C/S架构

1.C/S架构是软件系统体系结构,通常采用两层结构,即服务器-客户机(Client-Server)结构,主要应用于局域网内。  2.两层结构构成:前端是客户机,后端是服务器。
  • 客户机:负责完成与用户交互,例如用户界面显示,接受数据输入,校验数据有效性,向服务器发送请求,接收返回结果,处理应用逻辑后展示在页面。
  • 服务器:负责数据的管理,例如接受客户机的请求,运行DBMS,提供数据库的查询和管理,将数据提交给客户机。

二、C/S架构软件系统运行流程

  • 最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
  • 在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

三、C/S架构的优点

1.客户端和服务器直接相连。
  • 点对点的模式使得数据更安全。
  • 可以直接操作本地文本,减少获取文本的时间和精力。
  • 减少通信流量,对于客户来说可以节省一大笔费用;
  • 直接相连,中间没有阻碍和岔路,所以响应速度快。利于处理大量数据,就算通信量庞大,也不会出现拥堵的现象。
2.客户机可以处理一些逻辑事务。
  • 充分利用两者的硬件设施,避免资源的浪费。 
  • 为服务器分担一些逻辑事务,可以进行数据处理和数据存储。可以处理复杂的事务流程。 
  • 客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。 
简而言之就是,交互性强,具有安全的存取模式、响应速度快,利于处理大量数据。

四、C/S架构的缺点

1.系统的可伸缩性差;难以和其他系统进行互操作;难以支持多个异构数据库; 2.客户端程序和服务器端DBMS交互频繁,网络通讯量大; 3.C/S架构适用于局域网,对网速的要求比较高。  4.用户数增多会出现通信拥堵,服务器响应速度慢等情况。  5.用户是通过ODBC连接到数据库的,所以用户数受限,不易扩张。 且每个连接到数据库的用户都会保持一个ODBC连接,会一直占用中央服务器的资源,对服务器的要求很高。  6.所有客户机都需要安装、配置数据库,客户端软件,是一份非常庞杂的工作,不易扩展。  基于二层架构的以上不足,三层架构伴随着中间件技术的成熟而兴起。其核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。

五、局域网

1.局部地区形成的一个区域网络,是私有网络,其特点就是分布地区范围有限,可大可小。局域网本身相对于其他网络传输熟读更快,性能更稳定,框架简易,并且是封闭性。

六、服务端的特征

1. 被动的角色。 2.等待来自用户端的请求。 3.处理请求并传回结果。

七、客户端的特征

1. 主动的角色。 2.发送要求。 3.等待直到收到服务端的回应。

八、如何区分客户端与服务器

1.被动接受消息的进程是服务端,主动发送消息的进程是客户端。 2.有些情况下,比如软件上的架构中,服务器端和客户端的定义没有那么严格。在这些情况中,我们把进程称之为server端,也是可以主动发送消息给client端进程的。被动接收信息多,而主动发送信息少的进程称之为server进程。主动发送信息多,而被动接收消息少的进程也可以称之为client端。

九、ODBC

1. odbc是制定了一套接口标准,每个厂商(mysql、Oracle......)遵循这套接口标准实现自己具体访问方式,即不同厂商的Driver驱动(就是动态库)。从而达到了访问不同数据库,代码接口不用修改的目的!

以上是关于C/S架构的主要内容,如果未能解决你的问题,请参考以下文章

web基础

Docker架构设计分析

.Net桌面系统架构设计

jsp数据交互基础

初识网络编程

Python--网络编程-----C/S架构