维搭产品~星云的整体架构

        在前面的文章中提到了当前我们创业的产品是工程领域的低代码平台~星云。今天就来详细地聊聊星云平台的技术架构。

整体架构

        星云是一款低代码平台,其独特之处在于它提供了可视化方式,用户只需通过拖拉拽的操作就能快速配置应用,满足各种业务需求。与此同时,星云还支持轻低代码的方式,允许用户通过前端在线编写代码来实现更为复杂的功能定制。这种灵活性使得星云平台在满足不同用户需求的同时,也为开发人员提供了更多创造性的空间。它是构建在多个核心引擎之上,包括高性能三维图形引擎、表单设计引擎、流程设计引擎、报表引擎、大屏门户设计引擎和报表引擎。这些引擎的协同作用使得星云平台能够胜任多样化的任务,从而为用户提供全面而强大的工具集。下图展示了星云的整体架构

图片

从上图可以看出,星云系统是借助容器化、微服务、自动化和持续交付等先进技术,成功搭建了一个稳健可靠、安全可控的系统。主要有如下几层:

(1)基础设施层。使用Docker容器化技术进行服务部署,通过docker-compose实现对容器的统一管理,使得部署过程简单、高效,且能够迅速扩展。底层主机既可以基于云主机,也可以选择私有主机,以满足不同需求的灵活性。

(2)中间件层。采用MySQL作为主要的数据存储方案,采用Elastic Search来处理海量数据,采用Redis作为缓存的解决方案,采用RabbitMQ来处理消息,采用fastdfs作为文件存储的解决方案,

(3)后端服务层。基于Spring Cloud技术栈,搭建了整个的后端微服务系统,所涉及到的技术有Eureka(服务注册中心)、Spring Cloud Config+Gitlab(服务配置中心)、Feign(服务RPC调用组件)、Zuul(服务网关)等。整体上可以分为如下三大服务层:

        基础服务层:这层是星云系统的基础,专注于提供用户、组织、权限、消息、日志和系统配置等核心服务。

        引擎服务层:这层是星云系统的核心,旨在为上层的应用提供功能更全面、性能更好的动力。主要包括三维图形引擎、表单设计引擎、流程设计引擎、大屏门户设计引擎和数据引擎等五大核心引擎。

        应用服务层:这层是星云系统的业务层,它汇聚基础服务层和引擎服务层的能力,为用户提供更加强大、多样的功能。主要包括企业管理、项目管理、应用管理、场景管理、数据管理等业务功能。

(4)Web服务层。采用Nginx作为Web服务器,一方面作为后端的接入层,另一方面作为前端的资源存储层。

(5)前端服务层。前端服务采用React.js、Ant Design、Qiankun和Vite技术栈,依托npm仓库、权限系统、路由系统和静态检查等中间服务。通过微前端应用基座,巧妙地整合了自研的图形低代码引擎、表单低代码引擎和流程设计引擎。

(6)第三方接入:星云系统通过基于OAuth 2.0的单点登录机制为第三方系统提供了便捷接入,支持多主题选择和个性化定制,同时以模块化设计实现作为子模块轻松集成到大平台。

(7)日志监控:星云系统以Elastic Search、Filebeat、Grafana、Jaeger和Prometheus为基础,构建了一套综合的运维平台,覆盖了日志查询、全链路追踪和指标监控等多个关键功能。

三维图形引擎

        三维图形引擎采用的是秉匠科技自主研发的、高性能的、拥有完全自主知识产权的BIM+GIS轻量化渲染引擎~黑洞引擎。其整体架构如下:

图片

数据层:它主要完成多源异构数据的提取、解析和存储。根据数据操作类型分为数据修正和数据处理两方面,数据修正主要是利用Revit、Bentley和3DMax等现有工具进行数据查看、几何与属性修正等工作;数据处理主要是将常见的模型数据(obj、fbx、stl、gltf和IFC等格式)和GIS三维数据(DEM、OSGB等)进行数据汇集、数据去噪、数据融合、数据质检和数据转换等工作,最终生成PAK数据。

数据转换与发布层:它是实现高性能三维图形渲染的重要组成部分,核心思想是采用数据安全、高效调度、数据轻量化处理、索引缓存、并行计算和GPU运算等技术手段实现三维模型的低内存、高帧率和零损失渲染。在此基础上研发了基于SaaS的自动化模型处理系统使用关系型数据库以及非关系型数据库相结合的存储方案,对模型属性等强关联性信息使用SQL数据库存储,便于数据查询编辑;对大体量模型数据使用分布式MongoDB数据库存储,提供稳定快速的访问。为保障数据安全,所有模型数据将经过SHA-256等算法加密,对用户的数据访问权限也做到精准控制。

接口层和渲染层:它是为了适配Windows/Android/Web等主流的终端平台,实现面向数字孪生的三维数据实时浏览、良好交互体验以及并高效的图形渲染效率等目的,并为了实现面向不同业务需求的三维应用系统的搭建,提供了面向“三端”的SDK、完善的帮助文档和在线示例代码,供应用系统开发者提供快速搭建与开发。

表单设计引擎

        星云表单设计引擎支持多种模式,包括零代码、轻低代码、低代码,为用户提供了极大的灵活性。它能让用户能够迅速建立所需的表单页面,同时也提供了丰富的自主定制能力,使用户能够根据具体需求进行个性化的功能定制。

图片

(零代码配置)

图片

(轻低代码配置)

整个表单引擎采用表单驱动模式,其架构如下图所示:

图片

持久层:支持多种主流数据库,包括Mysql、Postgresql、Elastic Search等,使用户可以根据自身需求选择最适合的数据库。

后端服务层:该层主要包括表单适配服务和数据处理服务。表单适配服务负责管理设计态的各种表单元数据,而数据处理服务则专注于按照设计态规则处理具体用户数据。这样的设计实现了设计态和使用态的有效隔离,进一步确保了系统的性能和数据安全。

前端通用框架层:提供通用的schema模型生成和解析方案,确保schema按照相同规则生成与解析,以增强系统的健壮性。

前端微应用层:将前端微应用划分为设计态和使用态,为用户提供直观易用的界面,确保表单引擎的简便性。这种分层设计有助于优化用户与系统的交互体验。

工作流引擎

   星云工作流引擎是基于BPMN2.0规范的自主研发产物,融合了多个开源工作流引擎的优秀特性,同时结合低代码平台的特点进行创新性设计。该引擎支持多种复杂而灵活的流程配置需求,包括条件审批、触发器、签收人节点、表单字段选择以及操作按钮自定义等功能。这使得工作流引擎能够满足广泛的业务流程需求,为用户提供更加灵活和定制化的流程管理体验。

图片

工作流引擎基于BPMN 2.0标准来实现,其核心架构如下图所示:

图片

流程核心引擎层:这是工作流系统的精髓,采用BPMN 2.0标准,巧妙封装了引擎的核心功能。这一层不仅包括了流程定义和执行,还涵盖了条件判断、历史操作管理以及权限控制等关键功能,为上层业务提供了卓越的基础支持。

后端服务层:这是业务流程的抽象层,通过充分利用核心引擎层的功能,构建了一套通用的业务流程。这一层拥有强大的功能,能够适应上层各种复杂的流程需求,为整个系统提供了高度灵活性和可扩展性。

前端服务层:它提供了直观、易用的操作界面,为用户提供了多样化的业务操作能力,确保用户能够高效而愉快地进行操作和管理。这个层面的设计旨在为用户打造极致的使用体验,使其能够充分发挥系统的强大功能。

大屏门户引擎

   星云大屏设计引擎基于强大的三维图形引擎构建,通过其生成的三维场景,用户得以轻松配置出内容丰富、样式炫酷的大屏展示。该引擎不仅提供了多样化的效果组件,包括各类POI点位、动态扫描效果和引人注目的动态区域轮廓,还内置了多样的组件库,如天气、文本、视频等,以满足用户对大屏展示的多样需求。

   在实现更灵活的大屏布局的同时,星云大屏设计引擎注重用户体验,为用户提供直观易用的图表组件,支持多种数据的可视化展示。用户可通过简单直观的操作,将复杂的数据转化为生动的图表,从而进一步提升大屏的信息传达效果。引擎还支持对图表进行深度定制,使用户能够根据具体需求定制数据的展示方式,达到最佳的视觉效果。

   除此之外,星云大屏还提供了轻低代码的能力,用户可在代码组件中编写自定义的JS代码,使大屏实现更加灵活和复杂的需求。这种轻低代码的方式使用户能够更方便地实现个性化的功能和效果,无需深入的编码知识。

图片

(大屏设计页面)

图片

(大屏轻低代码)

报表引擎

   星云报表引擎以低代码表单数据和外部API为数据源,为用户提供了一款直观而高效的报表生成工具。用户仅需轻松选择单个或多个字段,自由定制报表的维度和指标,并指定数据的聚合方式,即可轻松配置出所需的报表。

图片

数据源:星云报表引擎极具灵活性,支持多种数据源,包括静态数据、表单数据和外部API数据。这为用户提供了广泛的选择空间,以满足不同业务场景下的数据分析和报表生成需求。

数据筛选:引擎支持在进行数据统计之前进行数据筛选,用户可以按字段对数据进行筛选,提高数据呈现的准确性和可信度,确保报表反映真实、精准的业务状况。

自动刷新:用户可配置大屏数据的定时自动刷新,使数据保持实时更新,确保报表数据动态展示,更好地满足用户对实时数据的需求。

字段:星云报表引擎的字段即来自表单或外部API获取的数据中的所有字段。纬度和指标是用户从这个字段列表中精选出来的,从而实现更加个性化和精准的报表展示。

纬度:星云报表引擎为用户提供多样化的纬度选项,包括文本、枚举和关联表等字段类型,使用户能够在数据统计中根据不同维度灵活切换,满足其多层次的数据分析需求。

指标:用户在报表生成过程中可以轻松选择任意字段作为统计指标,支持多种统计方式,例如计数、求和、最大值、最小值、平均值等,从而呈现更为全面和具体的数据分析结果。

服务模式

星云为用户提供了两种灵活而创新的服务模式,以满足多样化的部署需求:

SaaS模式(云服务):在这种模式下,星云通过公有云平台进行部署,为用户提供了一种零维护的解决方案。我们负责系统的维护和升级,确保用户能够第一时间享受到最新的功能和改进。这种方式不仅简化了用户的操作流程,而且无需额外购买硬件设备,有效降低了成本。

私有化部署模式: 这种模式更注重用户的独享和定制化需求。通过高效的一键部署脚本,星云将稳定的安装包轻松地部署到用户自己的私有主机上,为用户提供了更高的数据隐私和安全性控制。这是一个理想的选择,特别适用于对数据安全有更高要求、或需要在内部网络环境中运行的企业用户。

前景与展望

        星云作为一款领先的低代码平台,展现了未来数字化应用开发的前景。其可视化方式为用户提供了直观且高效的配置途径,通过拖拉拽的简单操作,用户能够快速满足各种业务需求。星云平台的支持轻低代码的特性更进一步地拓展了开发人员的创造性空间,允许他们通过在线编写代码实现更为复杂的功能定制。这种灵活性不仅使得平台适应不同用户需求,同时也为开发者提供了更多发挥才华的机会。    

总结

        本文从星云整体架构出发,介绍了星云的实现技术栈,详细地介绍了构成星云平台的五大引擎,最后描述了星云所支持的部署模式以及对星云前景的展望。

我是维搭小刘,如果你对星云产品或者相关技术感兴趣的话,可以给我留言,咱们一起交流,共同成长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值