在三维可视化项目中,B/S和C/S架构该如何选择?

devtools/2024/10/17 19:57:41/

一、什么是B/S和C/S

在3D数据可视化中,有两种常见的架构模式:BS(Browser/Server)和CS(Client/Server)

B/S模式

B/S模式是指将3D数据可视化的逻辑和处理放在服务器端,而在客户端使用浏览器进行展示。具体流程如下:

  1. 服务器端处理:服务器端负责处理数据的获取、处理和渲染,通常使用一些服务器端的3D可视化框架或引擎,如three.js、Cesium.js、Mapmost等。
  2. 数据传输:服务器将处理好的3D数据以及相应的渲染指令传输给客户端浏览器。
  3. 客户端展示:客户端浏览器接收到数据和渲染指令后,使用浏览器的3D渲染能力进行展示,用户可以通过浏览器访问网页来进行交互和浏览。

图源https://segmentfault.com/a/1190000044137669

基于 Mapmost 开发的智慧工厂

C/S模式

C/S模式是指将3D数据可视化的逻辑和处理放在客户端,而服务器端主要负责数据的提供和存储。具体流程如下:

  1. 数据获取:客户端向服务器发起请求,获取需要展示的3D数据。
  2. 数据处理与渲染:客户端使用一些3D可视化框架或引擎,如UE,Unitity、Blender等,对获取到的数据进行处理和渲染。
  3. 客户端展示:客户通过安装特定的C端软件,通过打开三维场景项目文件进行展示。

图源https://www.shanhaibi.com/blog/v1/dzx4lpgo5y5xd7p1/

二、 B/S和C/S模式的区别和优劣势

B/S模式(Browser/Server)和C/S模式(Client/Server)是两种常见的软件架构模式,它们在应用程序的分布和交互方式上有一些区别和优劣势。

区别:

架构模式分布方式软件安装数据处理网络通信
B/S模式应用程序的逻辑和处理主要在服务器端,客户端通过浏览器进行展示和交互客户端只需安装浏览器即可,无需安装额外的客户端软件数据的处理和计算主要在服务器端进行,客户端主要用于展示和交互B/S模式中,客户端与服务器之间主要通过HTTP协议进行通信
C/S模式应用程序的逻辑和处理分布在客户端和服务器端,客户端通过专门的客户端软件进行展示和交互客户端需要安装专门的客户端软件才能运行应用程序数据的处理和计算可以在客户端和服务器端进行,客户端具有更多的处理能力而C/S模式中,客户端与服务器之间可以使用更多种类的通信协议,如TCP/IP等

B/S模式的优势包括:

  • 跨平台和易于维护:由于应用程序的逻辑和处理主要在服务器端,客户端只需使用浏览器进行访问,因此可以在不同平台上使用,并且服务器端负责维护和更新。
  • 安全性较高:数据和逻辑都在服务器端处理,客户端无法直接访问和修改,因此可以提供较高的安全性。
  • 简化部署和升级:由于客户端只需安装浏览器,无需安装额外的软件,因此部署和升级较为简单。

图源:https://blog.csdn.net/cchenweiss/article/details/136272386

C/S模式的优势包括:

  • 更快的响应速度:由于应用程序的处理逻辑分布在客户端和服务器端,客户端具有更多的处理能力,可以实现更快的响应速度。
  • 更丰富的功能和交互:客户端拥有更多的处理能力,可以进行更复杂的计算和渲染,提供更丰富的功能和交互体验。
  • 可离线使用:由于数据和逻辑部分在客户端进行处理,C/S应用程序可以在没有网络连接的情况下继续运行。

图源:https://blog.csdn.net/cchenweiss/article/details/136272386


Mapmost秉持着“让人与机器联合创作成为新常态”的理念,综合运用多项前沿技术,以SDK二次开发或零代码的方式为工厂、企业等提供一站式数字李生解决方案,现已广泛应用于各行业数字化项目建设。

点击这里跳转Mapmost官网体验


http://www.ppmy.cn/devtools/124247.html

相关文章

激光slam学习笔记5--基于走直线标定RTK与车体旋转外参

背景:车子走直线,可以把RTK标定到车身,之前没有操作过,手推一下公式,发现也挺简单的。 一、证明过程 (直接上操作,字错莫怪,嘻嘻) 二、进一步解析 1)通过…

基于模型的强化学习方法4大类灌水范式

我们都知道基于模型的强化学习,就是从数据中学一个环境模型。 举个例子,我们要控制一个马达,输入就是电流,输出就是转速。无模型强化学习就是随机采样,然后从数据中直接学习输入到输出的影射,研究重心在如…

python 实现boruvka博鲁夫卡算法

boruvka博鲁夫卡算法介绍 Boruvka算法是一种用于生成最小生成树(Minimum Spanning Tree,MST)的算法。其基本思想和特点如下: 基本思想 Boruvka算法是基于Kruskal算法的一种多路增广算法。在算法执行过程中,它每次从…

C语言贪吃蛇

#只讲逻辑不讲一些基础,基础大概过一遍就行# project-one: 无 (gitee.com)仓库里面有原代码 一、基础工作 1、先将你的编译器换成32位环境,也就是x86, 如果是控制台主机窗口则管,若不是需要改为控制台主机窗口 打开运行窗口后点…

Go语言实现长连接并发框架 - 任务管理器

文章目录 前言接口结构体接口实现项目地址最后 前言 你好,我是醉墨居士,我们上篇博客实现了路由分组的功能,接下来这篇博客我们将要实现任务管理模块 接口 trait/task_mgr.go type TaskMgr interface {RouterGroupStart()StartWorker(tas…

Frp云服务器与PC机器实现内外网穿透

Frp(Fast Reverse Proxy)是一个高性能的反向代理应用,它支持TCP、UDP、HTTP、HTTPS等协议,可以帮助实现内网穿透,使得内网的服务可以通过公网进行访问。Frps为服务端、Frpc为客户端。 以下是使用Frp在云服务器上进行内…

LVM——让Linux磁盘空间的弹性管理

什么是LVM? LVM(Logical Volume Manager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术。它是Linux环境下对 磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操…

【Kubernetes】常见面试题汇总(五十七)

目录 125. K8S 创建服务 status 为 ErrlmagePull? 126.不能进入指定容器内部? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 …