(C/S)架构、(B/S)架构

客户机/服务器(C/S)架构


理论描述: 客户机/服务器架构是一种网络架构风格,其中任务被分配给网络中的不同计算机,以提高效率和灵活性。这种架构由两部分组成:客户端(Client)和服务器(Server)。客户端位于用户或应用程序端,主要负责处理用户界面和用户交互,并将复杂的计算任务或数据存储任务委托给服务器。服务器则负责接收来自客户端的请求,处理这些请求(例如,执行计算、访问数据库等),然后将处理结果返回给客户端。服务器通常具有强大的计算能力和存储能力,可以处理数据密集型的任务,为多个客户端提供服务。

形象比喻: 想象一个餐厅点餐系统。客户机就像是坐在桌前的顾客,他们通过菜单点餐(发送请求),然后等待服务员(服务器)将食物(处理结果)送到他们面前。顾客不需要自己准备食物,只需要专注于点餐和享受食物,这提高了整个点餐过程的效率。而服务员(服务器)则需要准备好各种菜品(资源),并且处理所有顾客的点餐请求(处理请求),这要求他们具备较强的能力和资源。

优点:

可扩展性:相当于餐厅可以通过增加服务员或升级厨房设备来处理更多的顾客和订单。
资源集中管理:餐厅的所有菜品和原材料都存放在厨房(服务器)中,便于管理和维护。
安全性:大部分操作都在厨房(服务器)中进行,服务员可以更好地保护食材和菜品不受未经授权的访问。
效率:顾客(客户端)无需自己准备食物,可以专注于点餐,服务员(服务器)则专注于准备食物,从而提高整体系统的效率。
缺点:

依赖性:顾客(客户端)高度依赖服务员(服务器),如果服务员(服务器)生病或无法工作,可能会影响整个点餐系统。
灵活性较低:如果需要更改菜单(客户端)或升级厨房设备(服务器),可能需要同时进行,增加了复杂性。
成本较高:需要雇佣专业的服务员(服务器)和高级的厨房设备(高性能服务器),这可能会导致较高的成本。


浏览器/服务器(B/S)架构


理论描述: 浏览器/服务器架构是一种基于Web的软件架构风格,主要用于分布式应用系统的设计。这种架构主要分为两层:浏览器层(Client Layer)和服务器层(Server Layer)。浏览器层通常是指用户访问Web应用时使用的浏览器软件,如Chrome、Firefox、Safari等。浏览器层接收用户的输入,然后通过HTTP或HTTPS协议将请求发送到服务器,并将服务器返回的HTML、CSS、JavaScript等数据渲染成用户界面进行展示。服务器层则是系统的核心部分,负责处理浏览器发送的请求,执行相应的业务逻辑,然后将结果以HTML或其他格式返回给浏览器。服务器层可以由一个或多个服务器组成,包括应用服务器、数据库服务器等。

形象比喻: 想象一个在线购物网站。浏览器层就像是用户使用的电脑或手机上的浏览器软件(如Chrome、Firefox),用户通过这个软件浏览商品、添加商品到购物车、提交订单等。服务器层就像是网站的后台,它负责接收用户的请求(浏览商品、提交订单等),处理这些请求(从数据库获取商品信息、处理订单信息等),然后将处理结果(商品页面、订单确认页面等)返回给用户的浏览器。顾客(用户)只需通过浏览器(客户端)进行操作,无需自己准备或维护复杂的购物系统,这降低了整体的硬件和软件成本,并且便于远程访问。

优点:

易于维护:所有软件更新和升级只需在网站后台(服务器端)进行,用户无需安装或更新浏览器软件(客户端)。
可扩展性强:网站可以轻松增加服务器数量或升级服务器性能来适应更多的用户访问。
成本效益高:用户无需安装昂贵的软件(客户端),只需要一个支持Web的浏览器即可。
便于远程访问:用户只要在任何地方有互联网访问,就可以通过浏览器访问网站上的应用,进行购物、学习等。
缺点:

依赖互联网:用户需要有稳定的互联网连接才能访问网站,如果网络不稳定,可能会影响用户体验。
对服务器要求高:由于大部分操作都在服务器端进行,服务器需要具备强大的计算能力和存储能力,以处理大量用户的请求。
可能的数据传输延迟:用户发出请求到服务器处理并返回结果的过程中,可能存在一定的数据传输延迟,影响用户体验。
这两种架构风格各有优缺点,适用于不同的场景。C/S架构适用于需要高性能和高安全性的情况,而B/S架构则更适合通过互联网进行大规模远程访问的应用场景。

   某大中型企业在全国各城市共有15个左右的分支机构,这些机构已经建设了相关的关系型数据库管理系统,每天负责独立地处理本区域内的业务并实时存储业务数据。PH软件公司承接了该大中型企业信息管理系统的升级改造开发任务。该软件公司的领域专家对需求进行深入分析后,得到的部分系统需求如下。

    1、开发一个网络财务程序,使各地员工能在Internet上通过VPN技术进行财务单据报销和处理。

    2、为了加强管理,实现对下属分支机构业务数据的异地存储备份,保证数据的安全及恢复,同时对全国业务数据进行挖掘分析,拟在该企业总部建设数据中心。

    3、PH公司在设计该财务程序的体系结构时,开发项目组产生了以下分歧:

   架构师许工认为应该采用客户机/服务器(C/S)架构风格,各分支机构财务部要安装一个软件客户端,通过这个客户端连接到总公司财务部主机。如果员工在外地出差,需要报销账务的,也需要安装这个客户端才能进行。

    架构师郭工认为应该采用浏览器/服务器(B/S)架构风格,各分支机构及出差员工直接通过Windows操作系统自带的IE浏览器就可以连接到总公司的财务部主机。

在架构评估会议上,专家对这两种方案进行综合评价,最终采用了C/S和B/S相结合的混合架构风格。


【问题2】(7分)结合你的系统架构经验,请用600字A内的文字简要说明该工程项目采用C/S和B/S相结合的混合架构风格的设计要点及其优点。


在该工程项目中,采用客户机/服务器(C/S)和浏览器/服务器(B/S)相结合的混合架构风格,旨在结合两者的优势,以满足企业多样化的业务需求和场景。下面我们将具体分析这种混合架构的设计要点及其优点。

设计要点
核心财务处理采用C/S架构:

服务器端:设计一个强大的服务器,该服务器位于总公司,负责处理所有的核心财务业务。这样可以确保所有业务逻辑集中存储和管理,便于维护和升级。
客户端:在每个分支机构的财务部门部署一个专用的客户端软件。这个客户端软件将负责与服务器端进行通信,确保数据传输的安全性和稳定性。此外,这种架构还支持更复杂的财务业务处理,如实时监控、数据分析等。
报销和远程访问采用B/S架构:

浏览器层:设计一个基于Web的财务报销系统,员工可以通过任何支持HTTP或HTTPS协议的浏览器进行访问。这样可以减少软件安装和维护的工作量,同时也能方便员工在出差时通过网络进行报销。
服务器层:这个服务器层不仅包括应用程序服务器,还需要提供Web服务,以支持通过浏览器访问的业务。此外,为了支持远程访问的安全性,需要配置VPN或采用其他安全传输协议。
数据中心建设:

为确保数据的安全性和可恢复性,设计一个数据中心,用于存储和备份全国各分支机构的业务数据。这个数据中心可以作为服务器的一部分,也可以是独立的基础设施。
数据挖掘和分析工具也在服务器端实现,这样可以利用服务器的强大计算能力来进行复杂的分析,确保数据处理的效率和准确性。
安全性和性能优化:

采用VPN技术确保通过互联网访问的财务数据的安全传输,同时在服务器端配置防火墙、身份验证等安全措施,保护服务器免受未经授权的访问。
对于B/S架构的部分,还需要考虑服务器的性能,提供负载均衡和高可用性,以支持大量用户的同时访问。
优点
灵活性和便捷性:

C/S架构适合处理复杂的财务业务,提供更强大的数据处理能力和安全性。
B/S架构便于分支机构员工以及出差员工通过浏览器进行远程访问和报销,无需额外安装软件。
高效的数据管理和维护:

通过集中服务器管理数据和应用程序逻辑,简化了系统的维护工作,提高了整体效率。
数据中心的建设可以确保数据的安全备份和恢复,降低了数据丢失的风险。
成本效益高:

采用B/S架构减少了客户端的软件安装和维护成本,降低了整体硬件投资。
同时,C/S架构在处理核心财务业务时可以提供更好的性能支持,满足数据处理的高要求。
可扩展性强:

通过增加服务器数量或提升单个服务器的性能,可以轻松地扩展系统以处理更多的用户和数据。
这种混合架构可以根据业务需求的变化灵活调整,更好地适应未来的发展。
综上所述,结合C/S和B/S架构的混合方案能够充分发挥两种架构的优势,满足企业多样化的业务需求,提高系统的灵活性、效率和安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29301.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ctf网络安全比赛有一张图片怎么查看

0102-JavaScript简介&&作用 02简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 03作用 JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语…

搭建一个简单的node服务,模拟后端接口

目录 一、查看是否安装了node和npm 二、创建一个文件夹,用于放你的node服务代码 三、初始化一个package.json 四、安装 Express(快速搭建服务的框架) 五、创建serve.js 六、运行服务即可 七、测试接口 法一:使用 curl 法…

【五.LangChain技术与应用】【31.LangChain ReAct Agent:反应式智能代理的实现】

一、ReAct Agent是啥?为什么说它比「普通AI」聪明? 想象一下,你让ChatGPT查快递物流,它可能直接编个假单号糊弄你。但换成ReAct Agent,它会先推理(Reasoning)需要调用哪个接口,再行动(Action)查询真实数据——这就是ReAct的核心:让AI学会「动脑子」再动手。 举个真…

BUUCTF逆向刷题笔记(1-12)

easyre、内涵的软件、xor、不一样的flag: buuctf reverse部分题解(实时更新)_reverse 题解-CSDN博客 请见小库里的blog。 reverse1 查壳发现没有,而且是64位 粗略改一下部分函数名,看看主要逻辑。 第一个for循环暂…

OceanBase-obcp-v3考试资料梳理

集群架构 基本概念 集群: 集群由一个或多个Region组成,Region 由一个或多个Zone组成,Zone由一个或多个OBServer组成,每个OBServer里有若干个partition的Replica。 Region: 对应物理上的一个城市或地域,当OB集群由多个Region组成时, 数据库的数据和服务能力就具备地域…

【C++】双指针算法

我们还有更长的路要走,不过没关系,道路就是生活。 前言 这是我自己学习蓝桥杯算法的第一篇博客总结。后期我会继续把蓝桥杯算法学习笔记开源至博客上。 技巧 1. 双指针算法,但实际上是利用数组下标来充当指针,并不是直接使用指…

如何使用MyBatis进行多表查询

前言 在实际开发中,对数据库的操作通常会涉及多张表,MyBatis提供了关联映射,这些关联映射可以很好地处理表与表,对象与对象之间的的关联关系。 一对一查询 步骤: 先确定表的一对一关系确定好实体类,添加关…

江科大51单片机笔记【9】DS1302实时时钟(上)

一、DS1302介绍 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。RTC(Real Time Clock):实时时钟,是一种集成电路…

【Python项目】基于深度学习的车辆特征分析系统

【Python项目】基于深度学习的车辆特征分析系统 技术简介:采用Python技术、MySQL数据库、卷积神经网络(CNN)等实现。 系统简介:该系统基于深度学习技术,特别是卷积神经网络(CNN),用…

汽车智能钥匙中PKE低频天线的作用

PKE(Passive Keyless Entry)即被动式无钥匙进入系统,汽车智能钥匙中PKE低频天线在现代汽车的智能功能和安全保障方面发挥着关键作用,以下是其具体作用: 信号交互与身份认证 低频信号接收:当车主靠近车辆时…

大模型AI平台DeepSeek 眼中的SQL2API平台:QuickAPI、dbapi 和 Magic API 介绍与对比

目录 1 QuickAPI 介绍 2 dbapi 介绍 3 Magic API 介绍 4 简单对比 5 总结 统一数据服务平台是一种低代码的方式,实现一般是通过SQL能直接生成数据API,同时能对产生的数据API进行全生命周期的管理,典型的SQL2API的实现模式。 以下是针对…

【CF】C. Tokitsukaze and Two Colorful Tapes+C. Where is the Pizza?

https://codeforces.com/contest/1677/problem/C https://codeforces.com/contest/1670/problem/C 两道很像的的题目,都和环有关 C. Tokitsukaze and Two Colorful Tapes 题目: 思路: 题意就是给定你两排颜色,要求在相同的颜色…

leetcode0020 - 有效的括号 easy

1 题目:有效的括号 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须…

基于提示驱动的潜在领域泛化的医学图像分类方法(Python实现代码和数据分析)

摘要 医学图像分析中的深度学习模型易受数据集伪影偏差、相机差异、成像设备差异等导致的分布偏移影响,导致在真实临床环境中诊断不可靠。领域泛化(Domain Generalization, DG)方法旨在通过多领域训练提升模型在未知领域的性能,但…

【STM32】玩转IIC之驱动MPU6050及姿态解算

目录 前言 一.MPU6050模块介绍 1.1MPU6050简介 1.2 MPU6050的引脚定义 1.3MPU6050寄存器解析 二.MPU6050驱动开发 2.1 配置寄存器 2.2对MPU6050寄存器进行读写 2.2.1 写入寄存器 2.2.2读取寄存器 2.3 初始化MPU6050 2.3.1 设置工作模式 2.3.2 配置采样率 2.3.3 启…

【C#】async与await介绍

1. 实例1 1.1 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp1 {class Program{static void Main(string[] args){Method1();Method2();Console.ReadKey();}public static…

Gitlab配置personal access token

1.点击左上角个人账号 -> Preferences 2. 点击左边栏 Access Tokens 3. 点击Add new token ,输入token名称,勾选权限(注意截至日期 “Expiration date” 可不填) 4. 创建成功后,显示token信息,复制到本地…

盛铂科技 SLMF315频率综合器200MHz至15GHz 国产频综模块

在当今科技飞速发展的时代,射频技术在众多领域发挥着关键作用,从通信、雷达系统到科研实验,对频率综合器的性能要求日益严苛。以下是关于盛铂科技的 SLMF315 超低相位噪声频率综合器的介绍: SLMF315超低相位噪声0.2至15GHz频率综合…

Java 大视界 -- 基于 Java 的大数据分布式任务调度系统设计与实现(117)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

C++学习之路,从0到精通的征途:入门基础

目录 一.C的第一个程序 二.命名空间 1.namespace的价值 2.命名空间的定义 3.命名空间使用 三.C的输入与输出 1.<iostream> 2.流 3.std(standard) 四.缺省参数 1.缺省参数的定义 2.全缺省/半缺省 3.声明与定义 ​五.函数重载 1.参数个数不同 2.参数类型不…