鸿蒙架构师修炼之道-B/S与C/S架构

简介: 鸿蒙架构师修炼之道-B/S与C/S架构鸿蒙架构师修炼之道-B/S与C/S架构鸿蒙架构师修炼之道-B/S与C/S架构

在IT技术领域,B/S架构和C/S架构是两种常见的软件系统架构模式。

B/S架构

B/S架构(Browser/Server,浏览器/服务器架构)是一种以浏览器作为客户端,服务器作为服务提供端的软件架构模式。在这种架构中,用户通过浏览器向服务器发送请求,服务器处理请求后将结果返回给浏览器进行显示。其基本结构主要由浏览器、Web服务器、应用服务器和数据库服务器组成。浏览器负责呈现用户界面,接收用户输入;Web服务器用于处理HTTP请求,将请求转发给应用服务器;应用服务器执行业务逻辑处理;数据库服务器则负责存储和管理数据。

B/S架构的工作原理是:用户在浏览器中输入网址或点击链接,浏览器根据输入的信息生成HTTP请求,并将请求发送到服务器。服务器接收到请求后,根据请求的内容进行相应的处理,如从数据库中获取数据、执行特定的业务逻辑等。处理完成后,服务器将结果以HTML、CSS、JavaScript等格式组装成网页,再通过HTTP响应发送回浏览器。浏览器接收到响应后,对网页进行解析和渲染,将内容展示给用户。

日常大部分通过浏览器来访问的系统,都是B/S架构的系统。比如,我们在浏览器访问淘宝、京东等网站进行购物,这些网站就是B/S架构的系统。

B/S架构特点如下。

  • 易于部署和维护:用户只需通过浏览器访问系统,无需在本地安装专门的客户端软件,方便快捷。对于软件的更新和维护,只需在服务器端进行操作,用户下次访问时即可使用最新版本,大大降低了维护成本。
  • 跨平台性强:只要有浏览器和网络连接,用户可以在不同的操作系统和设备上访问系统,如Windows、Mac、Linux以及各种移动设备等,具有很强的兼容性。
  • 安全性相对较低:由于所有数据和业务逻辑都在服务器端处理,浏览器与服务器之间的通信可能存在安全风险,如网络攻击、数据泄露等。需要通过加密技术、身份验证等手段来增强安全性。
  • 对服务器性能要求较高:大量的用户请求都需要服务器进行处理和响应,当并发用户数较多时,可能会对服务器的性能造成较大压力,需要服务器具备较高的处理能力和可扩展性。

C/S架构

C/S架构(Client/Server,客户端/服务器架构)是一种将软件系统分为客户端和服务器端两部分的架构模式。客户端安装在用户的本地设备上,负责与用户进行交互,收集用户输入并展示服务器返回的结果;服务器端则负责提供数据存储、业务逻辑处理等服务,为客户端提供支持。其基本结构包括客户端应用程序、服务器和数据库。客户端应用程序通过网络与服务器进行通信,服务器与数据库进行数据交互。

C/S架构的工作原理是:客户端应用程序在本地运行,用户通过客户端界面进行操作,客户端根据用户的操作生成请求,并将请求发送到服务器。服务器接收到请求后,进行相应的处理,如查询数据库、执行特定的业务逻辑等。处理完成后,服务器将结果返回给客户端,客户端对结果进行解析和展示,呈现给用户。

日常在手机端大部分通过App访问来使用的系统,都是C/S架构的系统。比如,我们在淘宝App、京东App进行购物,这些App就是C/S架构的中的客户端部分。当我们希望在鸿蒙系统上设计开发一款鸿蒙App的时候,这个App也是客户端。


C/S架构特点如下。

  • 性能较好:由于部分业务逻辑和数据处理可以在客户端进行,减少了与服务器的交互次数,因此在处理一些复杂的业务逻辑和大量数据时,性能相对较好,响应速度较快。
  • 安全性较高:客户端和服务器之间的通信通常采用专用的协议,相对HTTP等协议更安全。并且数据可以在客户端进行一定的加密处理,提高了数据的安全性。
  • 用户体验好:客户端应用程序可以根据用户的操作习惯和需求进行定制化设计,提供更加丰富和流畅的用户界面和交互体验,如本地缓存数据、离线操作等功能。
  • 部署和维护成本高:每个客户端都需要安装和配置软件,当软件更新时,需要逐个客户端进行升级,部署和维护工作较为繁琐,成本较高。
  • 跨平台性差:通常情况下,客户端应用程序需要针对不同的操作系统进行开发和编译,如Windows客户端、Mac客户端,以及苹果、安卓、鸿蒙等APP,开发和维护的工作量较大,跨平台性不如B/S架构。

B/S架构和C/S架构各有优缺点,在实际应用中,需要根据具体的业务需求、用户群体、技术特点等因素来选择合适的架构模式。

富客户端技术

富客户端技术是一种用于构建富互联网应用(Rich Internet Applications,RIA)的技术,它集成了桌面应用的交互性和传统Web应用的部署灵活性与成本效益,旨在为用户提供更高和更全方位的网络体验。富客户端技术通过提供一个运行时的环境,承载被编译的客户端应用程序,这些应用程序通常是通过HTTP协议发布的文件。

富客户端技术具有如下特点。

  • 丰富的用户界面:富客户端应用程序能够提供类似于本地桌面应用的丰富、动态的用户界面。它支持复杂的布局、动画效果、拖放操作、实时数据验证等高级交互特性,使用户操作更加直观和便捷。比如一些富客户端的绘图软件,用户可以像使用本地的专业绘图工具一样,进行自由的图形绘制、编辑和特效添加,具有非常流畅和自然的操作体验。
  • 本地处理能力:富客户端具备在本地执行部分计算和数据处理的能力。它可以在客户端设备上缓存数据、执行脚本和业务逻辑,减少与服务器的交互次数,提高响应速度和运行效率。例如,在离线地图应用中,用户可以提前下载地图数据到本地,在没有网络的情况下依然能够进行地图浏览、路径规划等操作,这些计算和处理都在本地完成。
  • 异步数据交互:富客户端采用异步数据传输技术,允许在不刷新整个页面的情况下与服务器进行数据交互。这使得用户在进行数据提交、查询等操作时,页面能够保持当前状态,不会出现整体刷新导致的页面闪烁和中断,提高了用户体验的连贯性。比如在在线表单填写应用中,用户可以实时提交表单数据进行验证,而无需刷新整个页面,验证结果会即时反馈给用户。
  • 跨平台兼容性:通过使用一些跨平台的技术框架,富客户端应用可以在不同的操作系统和设备上运行,具有较好的跨平台性。例如,基于HTML5、JavaScript和CSS等技术开发的富客户端应用,可以在Windows、Mac、Linux以及各种移动设备的浏览器中运行,无需为每个平台单独开发。

在B/S架构中,富客户端技术的实现方式有以下几种。

  • HTML5技术:HTML5为富客户端应用提供了丰富的功能支持,如Canvas绘图、本地存储、Web Workers多线程处理等。通过Canvas可以实现复杂的图形绘制和动画效果;本地存储可以将大量数据存储在客户端本地,方便离线访问;Web Workers则允许在后台执行脚本,不影响页面的交互响应。
  • JavaScript框架:像Angular、React、Vue.js等JavaScript框架,为构建富客户端应用提供了强大的工具和架构支持。它们采用组件化、数据驱动的开发模式,使得开发人员能够更高效地创建复杂的用户界面和交互逻辑,提高代码的可维护性和可扩展性。
  • Flash技术:虽然Flash的应用逐渐减少,但在过去,它是实现富客户端应用的重要技术之一。Flash能够提供丰富的多媒体展示和交互功能,常用于制作动画、游戏、在线视频播放器等富客户端应用。
  • Microsoft Silverlight:是一种融合了微软的多种技术的Web呈现技术。它提供了一套开发框架,并通过使用基于向量的图像图层技术,支持任何尺寸图像的无缝整合。Silverlight使开发设计人员能够更好的协作,有效地创造出能在Windows和Macintosh上多种浏览器中运行的内容丰富、界面绚丽的Web应用程序。简而言之,Silverlight是一个跨浏览器、跨平台的插件,为网络带来下一代基于.NET媒体体验,和丰富的交互式应用程序。由于HTML5技术比较成熟了,导致微软在2021年已经停止支持Silverlight,官方网站时也不再提供下载。
  • JavaFX:JavaFX是一种用于构建富客户端应用的Java技术框架,它提供了丰富的图形界面组件和动画效果,能够开发出功能强大、界面美观的跨平台应用程序,适用于开发各种类型的桌面应用和企业级应用。

富客户端技术的应用场景如下。

  • 在线办公软件:如Google Docs、腾讯文档等,用户可以在浏览器中进行文档编辑、表格制作、幻灯片演示等操作,具有与本地办公软件相似的功能和操作体验,同时还能实时保存和共享文档。
  • 在线游戏:许多网页游戏采用富客户端技术,能够在浏览器中呈现出精美的游戏画面和流畅的游戏操作,用户无需下载庞大的游戏客户端,通过浏览器即可快速启动游戏。
  • 企业级应用:在企业内部的管理系统、客户关系管理(CRM)系统、项目管理系统等应用中,富客户端技术可以提供丰富的交互功能和高效的数据处理能力,满足企业用户复杂的业务需求。

参考引用

加入鸿蒙生态,共建万物互联。以下是鸿蒙应用开发常用教程。

目录
相关文章
|
5月前
|
缓存 NoSQL Java
高并发系统性能优化全链路实战:端到端榨干系统性能,百万 QPS 零卡顿
本文系统阐述高并发系统端到端全链路性能优化方法,涵盖接入层(HTTP/3、CDN、LVS)、网关层(Spring Cloud Gateway调优)、服务层(JDK21虚拟线程、线程池、Undertow、Protobuf)、缓存层(多级缓存、Caffeine、Redis)、数据库(索引/SQL/事务/连接池)及OS硬件层优化,并强调压测定位、避坑指南与闭环迭代。
919 3
|
4月前
|
存储 安全 测试技术
ADK 多智能体编排:SequentialAgent、ParallelAgent 与 LoopAgent 解析
ADK 提供 Sequential、Parallel、Loop 三种智能体编排模式,支持订单接收、库存检查、生产调度等多角色协同;状态通过 output_key 自动流转,无需手写胶水代码,轻松构建端到端业务流水线。
267 4
ADK 多智能体编排:SequentialAgent、ParallelAgent 与 LoopAgent 解析
|
安全 Java 数据库连接
《Spring Boot配置文件大揭秘:看懂 application.yaml 与 bootstrap.yaml 的不同》
《Spring Boot配置文件大揭秘:看懂 application.yaml 与 bootstrap.yaml 的不同》
1549 0
|
4月前
|
数据采集 存储 人工智能
AI时代下,中小团队数据治理的轻量化落地指南
沙淘金数据运营负责人分享中小团队数据治理实战经验:破除“大厂专属”误区,提炼4步轻量化落地法(明确需求→规范源头→简易清洗→闭环应用),结合阿里云、DataWorks、钉钉等生态工具,低成本实现数据提效。
|
4月前
|
人工智能 自然语言处理 前端开发
从传统RAG到AgentRAG:Java企业AI应用的范式升
AgentRAG是向量空间AI实验室提出的新型智能体范式,融合ReAct推理、企业知识库与Java系统Skill工具集,突破传统RAG单轮问答局限,实现意图理解、任务规划、多轮执行与系统协同,助力企业AI从“被动应答”迈向“主动办事”。
394 0
|
4月前
|
存储 运维 监控
智算中心建设项目一般过程解析
智算中心是支撑AI、大数据发展的新型算力基础设施。九章云极主导建设运营,覆盖立项、设计、部署等六阶段全流程,3年内目标纳管10万P算力。(239字)
|
4月前
|
缓存 Java 数据库
Java进阶之路:从初级开发到高级工程师的能力提升指南
很多Java初学者在掌握了基础语法和核心特性后,都会陷入一个困惑:如何从初级开发工程师,逐步成长为高级Java开发工程师?
350 1
|
5月前
|
消息中间件 弹性计算 监控
在阿里云上搭建低延迟行情监控系统(WebSocket实战)
本文详解如何在阿里云ECS(Ubuntu 22.04)上用Python构建生产级WebSocket行情客户端:支持自动重连、心跳保活、多市场(股票/加密货币)实时订阅,并通过消息队列解耦处理,显著提升稳定性与低延迟。
|
4月前
|
消息中间件 缓存 NoSQL
JAVA语言企业项目实战(一)
教程来源 http://oplhc.cn/ 本文深入剖析电商秒杀系统的设计与实现,直击高并发、数据一致性、系统稳定性等Java企业级开发核心挑战。涵盖单体→缓存→异步→微服务四阶段架构演进,详解库存防超卖、热点优化、限流降级等关键技术,助你打造高性能、高可用的实战级系统。
|
4月前
|
消息中间件 NoSQL Java
JAVA语言企业项目实战(三)
教程来源 http://oplhc.cn/category/tech-trends.html 本文详解秒杀系统核心实现:对比数据库乐观锁、Redis预减库存+异步下单、分布式锁+Lua脚本三种方案,涵盖高并发选型与一致性权衡;统一响应格式、全局异常处理保障健壮性;结合消息队列削峰填谷,确保高性能与数据最终一致。