鸿蒙架构师修炼之道-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)系统、项目管理系统等应用中,富客户端技术可以提供丰富的交互功能和高效的数据处理能力,满足企业用户复杂的业务需求。

参考引用

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

目录
相关文章
|
6天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
23062 14
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
18天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
34363 141
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
7天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
4663 20
|
6天前
|
人工智能 API 开发者
阿里云百炼 Coding Plan 售罄、Lite 停售、Pro 抢不到?最新解决方案
阿里云百炼Coding Plan Lite已停售,Pro版每日9:30限量抢购难度大。本文解析原因,并提供两大方案:①掌握技巧抢购Pro版;②直接使用百炼平台按量付费——新用户赠100万Tokens,支持Qwen3.5-Max等满血模型,灵活低成本。
1509 3
阿里云百炼 Coding Plan 售罄、Lite 停售、Pro 抢不到?最新解决方案