工业软件简介
“工业软件是工业技术/知识、流程的程序化封装与复用,能够在数字空间和物理空间定义工业产品和生产设备的形状、结构,控制其运动状态,预测其变化规律,优化制造和管理流程,变革生产方式,提升全要素生产率,是现代工业的灵魂。”(2020年中国工业技术软件化产业联盟发布的《中国工业软件产业白皮书》给工业软件的定义)。
工业软件分类
业界常规分类方法,按照所服务的业务环节,工业软件通常可以分为四大类,分别是研发设计类(如CAD)、生产制造类(如MES)、经营管理类(如ERP)和运维服务类。
工业软件的特点
管理软件强,工程软件弱,低端软件多,高端软件少。
大家都用过有金蝶的产品,比如ERP、CRM这一类的,在国内有蛮多产品,但是CAD等卡脖子的工程软件国内却很少见。为什么会这样?我认为,首先是管理类软件的技术门槛较低,而工程软件的技术门槛和投入时间成本都比较高,长期下来,追赶不易。
专业性强而易用性差。
企业累积了所在行业的工业知识,形成了一系列算法,从而打造出工业软件,但很容易出现一些架构问题,比如在追求功能的时候忽略了它的易用性。
源码庞大,历史债务重,学习成本高,迭代速度慢。
以上问题同时也导致它的代码整体上缺乏一个整体的架构,代码逻辑会容易出现一种混乱的状态,长期下来它会容易出现技术债,使得企业积累不够,且新人学习成本过高,进而导致研发团队迭代速度相对较慢。
工业软件的“上云”挑战
首先,代码量复杂性高,各个库、应用间关系复杂,甚至耦合到需要重构的程度,当中还存在多种编程语言,学习成本不是一般的高。部分代码一旦要重构解耦,更会反过来影响产品的稳定性。
其次,在软件重构上云期间,旧的业务还在持续迭代,旧的代码还在膨胀,如何稳定过渡又是一个难题。
最后,解决迭代问题还需要解决不同业务团队DevOps不一致的问题,每个团队的认知不一样,技术水平不一样,管理水平也不一样,这会影响到团队间的协同性,最终影响迭代速度。如果还缺乏有效的协同工具,这是问题会呈几倍甚至几十倍的放大。
工业软件云端实战(三维家)
搭建整体云端架构
-
数据层
根据产品形态和技术要求,从最初采用阿里云演变到目前的混合云。从最初的SQL数据库,演变到目前SQL、NoSQL、文档数据库、图数据库多种数据源。我们认定未来3-5年里大数据是我们的核心技术方向之一。因此,我们建立了大数据平台,统一管理数据,提供高可用分布式集群服务,进行相关的大数据挖掘,为客户提供更加精准的服务。 -
核心服务层
核心服务层里,我们的3D云设计、3D云制造、3D建模等都是云原生的服务,根据业务特点,采用了Serverless、Service Mesh、边缘服务等服务形式。 -
应用层
从一开始重前端,到现在重后端,始终贯彻着云工业软件的理念。对外提供WebAssembly应用、Node.js插件、API、小程序插件等等即插即用,独立发版的服务或应用。
在这演变过程中,技术栈划分后端技术栈、前端技术栈、渲染技术栈、AI技术栈、建模技术栈,完成团队体系搭建。同时搭建自己的项目质量管理体系PMS,建立自己的研发双流模型。建立自己的DevOps,提供敏捷统一的迭代发版服务。
难点
- WebAssembly落地难点
-
第一点
关于WebAssembly的多线程限制问题,WebAssembly是支持多线程的,我们 编 译 时 指 定 一 些 编 译 参 数 就 行 。 但 WebAssembly 的 多 线 程 是 有 限 制 的 , 因 为 WebAssembly多线程设计的共享线性内存与sharedArraybuffer有关,而shareArraybuffer因 为目前存在Spectre和Meltdown安全漏洞而被一些浏览器禁用的,谷歌也要参数设置后才 能开启。因此WebAssembly多线程的广泛应用还需要等待一些大厂支持。
-
第二点
WebAssembly的初始化耗时一般较长,比如我们引擎的WebAssembly加载就达到秒级,这时候我们可以尝试利用WebAssembly的异步加载机制来提高速度,使用onRuntimeInitialized函数完成回调。
-
第三点
关 于 WebAssembly 的 内 存 和 垃 圾 回 收 这 个 老 大 难 问 题 。 目 前 , WebAssembly能使用的最大内存是有限制的,各个浏览器的限制都不同,一般为2G,最多支持4G。而且它的垃圾回收机制还在Roadmap里,仍然遥不可及。所以,对内存要求高的工业软件,需要考虑降低内存的要求和采取一些优化方法,比如严格的内存管理机制,大内存的转移或及时释放都是可行的手段。但需要注意一点是WebAssembly数据内存转移到浏览器JavaScript这层的是有巨大的性能开销的。
-
第四点
包体过大。这个主要是复杂应用遇到的问题,因为我们的代码量太大了,百万级的代码量,编译出来的WebAssembly大小达到了80-100多兆.我们采取的措施有调整Emscripten的编译参数,提前编译.a库利用llvm本身的优化管线,编译进行抖动和分步加载,最终达到我们可以接受的大小。
-
第五点
SIMD指令的使用,这个对三维家这种存在高密度计算的工业软件来说,是一个福音。我们在CAD高密度计算上进行了一些尝试,有着不错的实验性能的提升。但这个特性也是还没有被广泛支持,需要谨慎使用。
- AI落地过程中的问题
-
没有统一的技术架构
首先我们当初做AI的时候,也是从0到1的一个过程。其实最开始我们是没有一个统一的技术架构,迭代效率是偏慢的。刚开始也没有统一的训练平台,每个开发人员都各自搞一套。别人维护起来很困难。
-
过度依赖深度学习
我们前期过渡依赖深度学习,深度学习有一个特点就是它的结果无法解释,也无法控制,导致模型的准确性很依赖训练数据和标注,而且出现不正确结果时,无法向客户解释为什么会出现这样的结果,也无法定向修复。所以,后面我们改用深度学习+知识图谱解决了这个问题。比如我们的布局使用深度学习求得初始解,再用知识图谱进行推理得到最终布局。
-
与业务过于耦合
AI算法人员与业务过于耦合,也就是AI算法人员既要写算法也要管工程化落地。这就涉及我们之前提过的一点战术,搞好技术团队建设。我们后期将AI工程化落地团队和算法团队分开,采用业务架构师的方式完成两个团队间的整合,让专业的人干专业的事,这样,我们公司去年的AI还是取得了不错的成绩。
-
AI资产管理
什么是AI资产,我认为数据集、AI算法模型、数据清洗算法、知识抽取算法等等都是AI资产,将来是可能形成市场生态的。我们原来的AI资产是散乱地放在各个开发的硬盘里,没有版本管理,没有备份,甚至人走了,这资产也跟着没了。当我们想对原算法进行重新训练迭代的时候,有时候我们竟然找不到原来的数据集,或者找到但已经被改得面目全非的数据集。可想这是多大的一种损失。所以,后期我们就在云端把AI资产管理起来,设置版本,存放备份等等。这些都有成熟的平台,我们尽量不要重新造轮子。华为、腾讯、百度这些大厂都有。
踩坑经验总结
战略层面
1. 知己知彼:知己是了解目前产品和代码现状,梳理目前产品涉及的技术和痛点。
2. 磨刀不误砍柴工:做好顶层设计,做好体系建设,做好协作方式。
3. 柿子挑软的捏:先做最小闭环MVP验证项目的可行性,再不断迭代优化。
战术层面
1. 基础体系建设:云原生Paas体系、项目质量管理体系、技术团队体系。
2. 统一技术栈:梳理公司技术栈,统一公司大的技术栈,终止百家齐放,各自为政的局面。
3. 确定新旧业务交互方式及数据流转:新旧业务既要做好隔离,也要做好兼容,对旧业务逐步替换。
4. 拒绝重复造轮子:有意识地积极使用现有的成熟技术方案和工具,阿里云,腾讯云有的梯子可以使用,开源的工具如性能内存分析工具、语言转换工具也可以用。
展望-工业软件未来的的方向
云化
云化不仅让企业从硬件资源和运维部署中解放出来,还让企业从完善的云基础设施中获得产品迭代的提速,为集成化服务提供良好条件。同时,产品程序也将更加稳定。工业软件云化有两种核心形式,一是WebAssembly方式云化,一是云原生化。
AI化
最近,AIGC、ChatGPT等概念大热。随着AI技术的高速发展,AI与工业互联网也将更深度融合,推进工业设计、制造、物流、营销、决策等产品全生命周期的变革。
以家居行业为例,以前设计师做一张设计图需要几天时间。现在通过AI算法,三维家软件能进行户型识别,自动完成户型绘制,选择风格就能一键布置全屋,并完成精美的打灯效果。设计师在AI技术的赋能下,几分钟就可完成方案设计,效率提高几十倍,这就是AI带来的生产力变革。
在生产环节,三维家通过AI学习审拆单规则,能够一键完成审拆单,出错率远远低于人工,并帮助家居企业提高效率。
一体化
未来的工业软件是一体化的,提升企业效率需要一体化的工业软件。这是我从三维家全新的前后端一体化解决方案得到的启示。前后端一体化,指从设计到生产全链路一体化,数据和行业标准一体化,CAD/CAE/CAM等流程一体化。文章来源:https://www.toymoban.com/news/detail-405829.html
虚实结合
随着VR/AR技术的进一步成熟,它将为工业领域提供数字化呈现、交互及协同支持,通过Web3D技术将虚拟空间和Web结合,将能让用户获取更真实的交互体验和更逼真的表现效果。而WebGPU的深化,可让工业软件在3D以及计算方面的能力大大的增强,虚实映射、虚实叠加、虚实联动构建起工业元宇宙,将会为我们展开更具想象力的未来图景。文章来源地址https://www.toymoban.com/news/detail-405829.html
到了这里,关于工业软件的云端综合实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!