【开发者分享】数字孪生应用开发分享——人与数据的交互新纪元

八角 关注 4

作者:陈寅 贵州华泰智远大数据服务有限公司 CTO 51WORLD开发者

 

2020年,被业内普遍认为是“数字孪生元年”,基于数字孪生技术的需求喷薄而出,在数据价值、空间结合、应用智慧和一图感知等方面发挥巨大能量。因此,作为数字孪生建设者,应当充分认识数字孪生应用建设过程中所蕴含的特殊性和关键点,保障数字孪生真正地产生价值。

 

经过多年的开发经验,我们发现数字孪生开发的全过程链条,与经典软件开发过程相似,但每个关键步骤均有其特性和注意事项。本文将全面介绍数字孪生应用的开发流程,从需求、设计、系统、开发、部署等环节,加以展开。

 

数字孪生行业应用-开发流程图

 

一、需求收集:客户调研的三个逻辑视点

数字孪生应用,是一种充分结合虚拟空间和数据融合的展示型应用。数据构建方面,需要符合目标用户的认知逻辑,认知直觉和业务逻辑。因此,我们会按照业务、数据和环境来进行收集和设计调研提纲。

数字孪生行业应用-客户调研逻辑视点

首先,业务方面以目标客户为核心:

  • 目标客户和目标用户的群体特征是什么?
  • 目标客户的痛点问题是什么?是基于哪些业务需求串联而得到的?
  • 目标客户对于数字孪生本身有什么样的要求?是以应用为主,推进业务工作优化,还是以展示为主,强调整体工作亮点?

 

其次,聚焦数据的实际情况:

 

  • 涉及到相关业务数据的底层应用系统,目前的开发进度如何?系统的成熟度将直接决定了业务数据存在多少的变更几率。
  • 涉及到接入融合数据的,是否有数据中台这样的角色,承担起数据汇聚、管控、对外服务的职责?
  • 涉及到接入物联传感数据的,是否有IOT平台这样的角色,打通各种类型设备的数据,形成统一的数据资源平台?
  • 数据接口是否有既定的交换标准和技术协议?

 

最后,了解环境部署需求:

 

  • 在网络环境上,项目最终的部署环境在什么位置?是否存在数据被网络隔断的问题?如果数据不能通过网闸的方式实现互通,需要制定具体的解决方案。
  • 在部署策略上,用户运行环境的情况是怎样的?包括:网络环境、用户并发需求、部署设备环境及机器运行配置等。
  • 在投放环境上,最终投放是电脑显示器还是大屏?是否为标准的分辨率?是否存在多分辨率的适配需求?

 

完成收集后,针对需求材料进行整理,形成较为原始的需求说明书。然而,基调没有确定的需求说明书,难以支撑有效的结构化分析;在正式进入结构化分析前,跟目标客户的确认是非常重要的。因此,我们需要借助高保真的方法来推动需求的确认。

二、高保真设计:推动目标客户的需求再确认

当前的主流软件开发领域,为了以最少的时间成本推动需求确认工作,人们往往采用快速原型法(RapidPrototype)。但我们发现,高保真原型的设计在数字孪生领域有很强的必要性。其优势如下:

  • 进行视觉层面抽象和重构:能够充分发现不够明确的需求和需求内容矛盾的地方,从而把整个系统的脉络清晰地梳理出来。
  • 系统整体分析和架构选型的重要基础:通过高保真设计,图形设计师能与架构设计人员和工程师完成整个项目在技术难度和视觉效果上的平衡。
  • 与目标客户对最终成果形成统一的画面感:一方面能够暴露沟通过程中的认知误差,另一方面,高保真的确认是一种最为行之有效的需求确认方式。

 

另外,在此基础上,作为用户视觉表达的设计师,应当站在经典UED设计的角度去做好准备工作:

最终面向的目标客户,所处行业是否有对应的公众型视觉映射?是否有自己的一套VI视觉系统?若没有VI视觉系统,其已有的信息系统是否具有相对统一的视觉方案或颜色方案,或偏好的风格及参考对象?在设计上要推敲和考虑客户的潜在审美。

 

 

做好充分的设计准备后,就能按照需求调研的材料进行高保真的图面设计。首先,要做到视觉表达和技术难度的和谐而统一;通俗的说,UED设计师必须在不额外增加研发团队实施工作的前提下,最大限度地呈现出最优秀的设计方案,并且在视觉表达、特效展示、资源消耗和性能提升多个方面找准最佳的平衡点。其次,在视觉表达方面,要注重视觉表达、认知逻辑和交互体验的相互制衡,例如面板的组合方式(左右布局、单侧布局)和顺序结构(面板的组合能够形成一个完整的“故事”)。另外,与传统的UED设计不同,数字孪生的UED需要跟场景的视觉效果结合——UED设计师完成的图形设计必须确保覆盖在孪生场景之上的UED元素,能够和孪生场景本身的视觉结构互补;风格结合上,还要充分考虑孪生场景中自然光照变化所造成的主色调变化,使UED与早晨、中午、黄昏、夜晚的孪生场景形成视觉统一。

 

三、系统设计:三层架构,降本增效

 

我们认为,当前阶段的数字孪生应用开发,在架构上自顶向下,应当划分为视图层、数据层和场景层,层与层之间均保持着高内聚、低耦合的结构关系。

 

数字孪生应用开发-系统设计的三个层次

 

1、视图层:

从视图构建的工具链开始着手进行分析和选型,包括前端框架(Vue/React)、包管理工具(NPM/Yarn)、构建工具(Webpack/Vite)、UI框架(ViewDesign/Antd/Vuetify)、可视化图表组件(ECharts/HighCharts)等。这些工具链都应当基于团队内部的研发模式和项目资产,保持高度的平滑特性和可复用能力。接着在确定工具链的前提下,依据最终的高保真设计方案,推演整个孪生应用的视图逻辑,其中包括视图的切换方式、场景联动的交互方式等。然后依据推演的结果,通过伪代码等方式,检查推演的视图逻辑是否是封闭且可回溯的(即每一个视图都有一个以上的入口和出口),并最终完成视图的组件分类和抽象,包括组件的内部逻辑处理、接口设计和组件的类别划分。我们往往还会在这个阶段,重点考虑哪些组件可以通过现有的项目资产做二次开发,哪些组件可以通过UI框架去解决功能问题,尽可能地减少项目的复杂程度。

2、数据层:

我们会根据数据需求的调研结果,设计数据的fetcher,包括接口验证、权限验证和业务接口。我们认为,在传统的MVVM/MVC研发模式中,视图层的逻辑代码修改是人力资源消耗的大头,而这类修改往往都是由于数据结构和数据字段更改导致的;因此我们纳入数据直驱的概念(DataDirectDrive,D3),确保视图层的所有呈现都是由数据层传递的数据驱动。此外,由于数字孪生应用拥有极强的展示能力,往往需要接待领导现场参观,准备一份本地化的模拟数据来保障汇报工作的进行也是十分必要的,在接口上分别设计本地接口和线上接口,能够方便临时按需进行切换。

3、场景层:

由于B/S端和孪生场景的互动是采用WebSocket方式进行,场景互动的事件机制是维系面板和场景的唯一纽带,我们会根据视图逻辑进行事件的划分和管理。例如,在云渲染的事件注册函数中,需要根据回调类型,在场景层上覆盖事件控制机制,确保孪生场景的事件都能够通过相关的事件总线送往各个组件。

 

四、开发实施:“四部曲”保障质量,减低复杂性

系统设计完成后,数字孪生应用正式进入开发阶段,通过场景包获取、工程建构、数据模拟、数据接入四部分的紧密协作进行开发实施。

数字孪生行业应用-开发的四个步骤

1、场景包获取:

一旦渲染包可以通过云渲染平台获取,我们需要将精度较低、但API功能齐备的数字孪生场景包进行单独备份,作为开发包使用。这种类型的场景包虽然视觉效果简陋,但对于开发者机器的配置要求较低,能流畅开发过程中的操作、快速加载场景包内容,提升效率;最终完成开发并进入测试阶段后,再使用最新版本的场景包,确保场景的整体效果符合用户的最终要求。

2、工程构建:

我们使用蓝湖工具,将高保真设计图进行切片标记上传。利用蓝湖工具,前端工程师可以便捷地下载相应图片切片并把握高保真里的元素细节,包括字体、字号、色彩编号(HEX/HEXA)、尺寸等。页面结构构建完成后,再根据架构设计阶段的组件清单,进行依赖收集和创建,整合、导入到工程文件里,对每个组件进行初始值设定;并确保整个面板的呈现效果和页面的切换逻辑,符合高保真和系统架构设计的要求。

3、数据模拟:

通过对高保真的观察,我们通过本地JSON的方式,将高保真上涉及到的数据内容依次完成构建。存储在静态资源目录下,在数据层的工程构建上,我们会先写读取本地JSON数据的fetcher,并传递到各个组件。因为数字孪生项目的实施速度通常会比业务系统和数据中台快,在视图逻辑完成时几乎拿不到可以立即使用的接口,甚至数据中台需要我们来提出具体的接口需求;这种情况下,可以通过直接提供JSON数据文件,直观地向数据中台反馈数据需求。另一方面,本地JSON数据的读取能够有效地验证面板逻辑和页面逻辑是否正确,一旦基于本地JSON的逻辑是正确的,未来接入线上数据后出现逻辑错误,就能把错误源聚焦在数据接口层面,减少复杂项目排除错误的难度。

4、数据接入:

通过我们构建的模拟JSON数据,跟数据中台提供的数据接口结果进行比对。若比对通过,就复制一份本地请求的fetcher,将本地地址替换为线上地址,即可完成线上数据的接入工作;比对若不通过,则修改接口或者fetcher,再替换地址完成数据接入。得益于数据直接驱动的理念,在整个实施周期内,数据接入的工作会相对清晰简单。

 

完成项目实施开发后,需要针对项目进行一系列的测试工作,包括性能测试、安全测试、逻辑测试。其中,孪生场景运行的流畅性跟帧数有非常密切的关系,因此数字孪生应用的开发不仅需要注重request的优化,还需要在rendering、repaint、scripting进行综合平衡,尽可能减少CPU的占用,以提高整体的流畅度。

 

五、项目部署:力求用户体验及复用性的提升

 

最后,根据需求收集阶段得到的部署环境信息,我们通常使用包构建工具来进行打包。其中,对于替换性极强的配置性质的数据文件,我们建议将其纳入静态资源,尽可能地减少项目的打包次数,其打包文件的复用能力将大大提高。

以本地化部署为例,首先通过远程的方式,为目标机器安装Cloud、场景包以及IIS等容器来承载孪生应用,通过web容器管理工具来进行站点创建和端口号分配;其次,通过网盘或邮件等方式,帮助用户把孪生应用的代码包部署到本地磁盘,通过浏览器读取地址的方式来验证孪生应用能否通过URL地址访问,场景包能否被正确加载。为了提高用户的使用体验,我们会在桌面上创建快捷方式,并设置打开自动全屏,用户在需要使用数字孪生应用时,只需要双击快捷方式即可。

六、数据可视化发展的新风口

我们认为,数字孪生应用是未来数据可视化技术发展的下一个方向。数字孪生不仅通过更加直观和形象的方式呈现现实世界,技术本身也让用户最终能以更加“人性”的方式和数据相处——这是每一个从业者的愿景和梦想。同时,我们也相信数字孪生应用的生态,在我们这一代逐梦人的手中,能够走得越来越远大和辉煌。

 

阅读 1119 本作品系原创,转载请联系作者授权
赞 2 收藏
全部评论({{commentCount}}条评论)
得票数 最新

暂无数据