每日一问——day1——C/S和B/S架构区别以及各自优缺点

本文详细介绍了C/S两层架构和B/S三层架构。阐述了它们的概念、优缺点,对比了两者在结构、逻辑事务处理、工作原理等多方面的区别。C/S架构响应快但维护难,B/S架构易维护但速度和安全设计成本高。最后对两种架构进行了总结。

C/S和B/S架构区别以及各自优缺点

一、C/S两层架构

1.C/S架构的概念

典型的两层架构,全称Client/Server,客户端服务器端架构,其客户端包含一个或多个用户电脑上运行的程序,服务器有两种:一种是数据库服务器,可短短通过数据库连接访问服务器端数据,另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。

C/S架构可以看做是胖客户端架构,因为客户端需要实现大多数的业务逻辑和界面展示,这种架构的客户端需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互来达到持久化数据。

两层架构分别是:
第一层:客户端——表示层(界面层与逻辑层)
第二层:服务器模式——数据库层
两层C/S架构
C/S架构流程:
客户机——经过(Request)请求——服务器(即数据库)——数据库根据客户机的请求——进一步(Response)响应回去给客户机

2.C/S架构的优缺点

优点:

  1. C/S架构的界面和操作可以很丰富;
  2. 安全性能容易保证,实现多层认证;
  3. 因为一层交互,因此响应速度较快;

缺点:

  1. 适用面窄,通常用在局域网中;
  2. 用户群固定。由于程序安装需要安装才能使用,因此不适合面向不可知的用户;
  3. 维护成本高,发生一次升级,在所有客户端程序都需要改变;

二、B/S三层架构

1.B/S架构的概念

全称Browser/Server,即浏览器、服务器界都Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。

B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。

三层架构分别有:
第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能;
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能;
第三层数据层:主要是接受客户端请求后独立进行各种运算。
三层B/S架构
B/S常用架构流程:
客户机浏览器——经过Http请求——Web服务器——经过查询——数据库服务器——响应查询后返回结果——Web服务器——再经过Http响应——返回给客户机浏览器
B/S架构流程

2.B/S架构的优缺点

优点:

  1. 客户端无需安装,有Web浏览器即可;
  2. BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强;
  3. BS架构无需升级多个客户端,升级服务器即可;

缺点:

  1. 在跨浏览器上,BS架构不尽如人意;
  2. 表现要达到CS程序的程度需要花费不少精力;
  3. 在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题;
  4. 客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的(在Ajax风行后此问题得到了一定程度的缓解);

三、两者区别

1、结构

C/S是两层架构,由客户端和服务器组成,而B/S是三层架构,由浏览器,WEB服务器和数据库服务器组成。

2、逻辑事务处理
C/S架构合理地让客户端和服务器承担一部分逻辑事务处理,使得服务器的负担减轻了,而且客户端也能进行一些数据处理和存储的功能。B/S架构的浏览器就是它的客户端,可是这个客户端只能进行一些简单的输入输出和信息发布共享的功能,主要的逻辑事务处理还是要靠服务器,所以服务器的负担很重。

3、工作原理
C/S架构是客户端和服务器直接相连,实现点对点的通信,B/S是浏览器通过WEB服务器向数据库服务器发送数据请求,实现多对多的通信。

4、响应速度
C/S架构的客户端和服务器直接相连,中间没有任何阻隔,所以相应速度快,尤其是在用户增多时更加明显。B/S架构相应速度慢,主要的重任在数据库服务器身上,由于B/S架构的无限扩展性,当用户激增,访问量庞大时,服务器相应速度慢,服务器存在瘫痪的危险。

5、成本
C/S架构开发时,硬件需要一次性购买,费用较高,且需要训练有素的技术人员,培训费用高,而且软件后期也需要不断投入大量资金。B/S架构只需要一次性投入几乎可以一劳永逸,有利于软件项目控制和IT黑洞。

6、维护、升级以及扩展
C/S架构一旦有业务的变更或要升级,客户端界面就要重新设计,需要投入大量的人力物力。软件维护也比较麻烦,需要专业人士进行维护。用户扩展也比较麻烦,需要安装客户端,对软硬件要求高。B/S架构的维护和升级都非常容易,只要更改页面内容或者增减页面即可,客户端几乎是零维护,只需要维护好服务器。所以相对来说更简易,方便。由于B/S可以随时随地的访问,所以极易扩展。

7、信息共享
C/S架构是建立在局域网之上的,面向的是可知的有限用户,信息共享只在小范围内。B/S架构建立在广域网之上,用户随时随地都可以访问,外部用户也可以访问,尤其是WEB技术的不断发展,B/S面对的是几乎无限的用户群体,所以信息共享性很强。

8、客户端界面
C/S架构可以针对不同的功能设计出不同的很有特色的用户界面,实现个性化。但是一旦业务改变就需要重新设计,很麻烦。B/S架构的用户界面很通用,不能针对用户突出个性,但是业务改变时只需要改变界面内容或者增减页面,很轻松就能实现。

四、总结

C/S结构是一种软件系统体系结构,这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。

B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。在手机或电脑上用浏览器上百度搜索、看新闻等就是在使用“B/S”结构进行数据交互。这种“B/S”结构的好处:维护和升级方式更简单,客户端是浏览器,基本不需要维护,只需要维护升级服务器端就可以。

C/S与B/S的结构区别:

  1. 硬件环境不同,C/S通常是建立在专用的网络上,小范围的网络环境。而B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行;
  2. 安全要求不同,C/S结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强;而B/S结构面向的范围广,所以安全性比较低;
  3. 系统维护不同,B/S结构维护升级比较简单,而C/S结构维护升级相对困难。

参考文章:

  1. C/S和B/S两种架构的区别和优缺点
  2. C/S和B/S架构总结
``` {——智能估值体系V6——} DYNPETTM:=IF(FINANCE(33)>1.8e8 AND FINANCE(1)>8e7, CLOSE/MAX(FINANCE(33)/FINANCE(1),0.8), 1000); PB_RATE:=IF(FINANCE(34)>0.5 AND CLOSE>3.5, CLOSE/(FINANCE(34)*0.82 + FINANCE(34,1)*0.18), 1000); PEG_VAL:=DYNPETTM/MAX((FINANCE(54)/FINANCE(54,1)*100-100),0.8); {——分形波动率V6——} VOL_REGIME:=DMA(STD(C,144)/MA(C,144)*SQRT(144),21); VAR_PERIOD:=IF(VOL_REGIME<0.015,233, IF(VOL_REGIME<0.035,144, IF(VOL_REGIME<0.065,55,34))); FAST_LEN:=BARSLAST(CROSS(VOL_REGIME,0.028))+18; SLOW_LEN:=CEILING(VAR_PERIOD*(1.618-IF(VOL_REGIME>0.12,0.18,0.08))); {——六维情绪引擎V7——} MARKET_SENTI:=EMA(ADVANCE/DECLINE,8)*0.48 + EMA(AMOUNT/REF(AMOUNT,3),8)*0.28 + EMA((HSL-REF(HSL,5))/REF(HSL,5),13)*0.18 + EMA(CAPITAL_HSHJB(3)/FINVALUE(0),5)*0.06 + 0.15*IFELSE(BKVISITOR(1)>REF(BKVISITOR(5),5),1,0); HOT_INDEX:=SMA(SUM(IF(C>DYNAINFO(58)*1.02,V/FINVALUE(7)*100,0),13)/ MA(V,13)*2.18,8,1)*IF(CAPITAL>5e9,1.18,1); {——资金流验证V5——} CAPITAL_INFLOW:=SUM(L2_AMO(3,2),8)/SUM(L2_AMO(3,2),34)>0.88 AND SUM(IF(C>O*1.015 AND C>MA(C,13),V,0),8)/SUM(V,8)>0.78 AND (AMOUNT-REF(AMOUNT,8))/REF(AMOUNT,8)>0.38 AND EVERY(BIGORDER(2)>0.68,5) AND CHIPSDIFF(5,13)>0.28; {——月线战略层V6——} MONTH_MA:=EMA(C,34); MONTH_TREND:=C>MONTH_MA*1.15 AND EVERY(MA(C,13)>MA(C,34),8) AND SLOPE(MA(C,34),13)>0.08 AND FINVALUE(4)/FINVALUE(1)<0.25; {——周线战役层V6——} WEEK_DIF:=EMA(C,21) - EMA(C,55); WEEK_DEA:=EMA(WEEK_DIF,21); WEEK_MACD:=2.618*(WEEK_DIF - WEEK_DEA); WEEK_VOL:=EMA(V,13)>EMA(V,55)*3.8 AND V>REF(MA(V,13),1)*2.18 AND VOL>REF(HHV(V,13),1)*1.88; {——日线战术层V6——} DAY_BREAK:=C>HHV(H,13) AND V>MA(V,55)*5.2 AND (C-LLV(L,13))/LLV(L,13)>0.21 AND C>MA(C,144)*1.12 AND (HSL-REF(HSL,8))>4.8; {——分时预警模块V4——} MIN30_BREAK:=#MIN30.C>#MIN30.HHV(H,55) AND #MIN30.V>#MIN30.MA(V,55)*6.8 AND #MIN30.C>EMA(#MIN30.C,144)*1.08 AND #MIN30.C/REF(#MIN30.C,1)>1.055 AND #MIN30.V>EMA(#MIN30.V,55)*2.88 AND CROSS(#MIN30.MACD.DIF,#MIN30.MACD.DEA); {——信号合成模块V7——} FINAL_SIGNAL:=MONTH_TREND*0.28 + WEEK_MACD>REF(WEEK_MACD,8)*2.18*0.32 + DAY_BREAK*0.25 + MIN30_BREAK*0.15 + (MARKET_SENTI>4.2)*0.18 + (HOT_INDEX>3.2)*0.12 + (PEG_VAL<0.55)*0.15 + (DYNPETTM<9.8)*0.12 + CAPITAL_INFLOW*0.25 >= 0.88 AND BARSLAST(FINAL_SIGNAL)>55; {——智能止损模块V3——} STOP_LOSS:=C<EMA(L,13)*0.88 OR (V>MA(V,55)*7.2 AND C<OPEN*0.978) OR VOL_REGIME>0.12 AND C<EMA(C,34)*0.92;```你的身份是高级编程技术专家,精通各类编程语言,能对编程过程中的各类题进行分析解答。我的题是【我编辑通达信选股代码,你如何深度理解此代码能否选到资金持续流入,股票市场情绪启动,盘中异动启动主升浪的股票,及日线盘中预警选股盘后选股。用2018-2024年全A股周期回测验证此代码选股逻辑的准确性胜率,评估月胜率达到多少?评估有效信号准确率达到多少?同时此代码还有什么可提升的空间,提出可行性的优化建议方案。
最新发布
03-31
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值