解读TinyEngine低代码引擎2.0,如何改变前端二次开发模式

摘要:在华为云开发者空间体验YOLOV3。

本文分享自华为云社区《》,作者:OpenTiny。

自从TinyEngine开源以来,众多开发者已经将TinyEngine应用于生产环境,见证了其在实际项目中的表现。然而,随着项目的持续迭代和用户群体的不断扩大,我们发现用户在深度定制方面会遇到一些阻碍,其中最核心的问题集中在:源码二次开发管理问题以及定制化能力不够强大,想要深度定制必须修改源码,而当开发者们在TinyEngine的源码中融入了大量的定制业务逻辑,这又使得直接合并TinyEngine自身的新功能变得异常困难,常常引发代码冲突和错误。

为了解决用户的这些痛点问题,TinyEngine团队投入了大量的时间,对TinyEngine的架构进行了优化和调整。这次的调整不仅提升了其核心性能,还精心打磨了一系列创新功能,旨在为开发者提供更流畅、更高效的开发体验。

TinyEngine 2.0 版本的一大亮点是将源码开发变成了包引入的模式,并且与之相结合的提供了CLI工具,彻底改变了用户二次开发的方式。告别传统克隆源码模式,一键生成低代码平台项目。这里提供了 @opentiny/tiny-engine-cli 这个强大的 CLI 工具,只需执行一条简单的命令即可快速生成一个以 TinyEngine 为基础的低代码平台项目:

生成的项目中tiny-engine作为一个核心npm包,package.json 文件依赖包含:

· 核心依赖:@opentiny/tiny-engine、主题等。

· 开发依赖:@opentiny/tiny-engine-vite-config@opentiny/tiny-engine-mock 等,为开发提供便利。

这样的开发模式,主要有以下几个特点:

· 非侵入式开发 ,可以将二次开发内容与TinyEngine核心代码进行分离,避免对核心代码造成污染;

· 增强版本兼容性,摆脱源码修改管理迭代更新难问题,可以轻松同步TinyEngine的官方代码;

· 提高开发效率,CLI工具可以提供丰富的命令和脚手架,帮助开发者快速搭建低代码平台;

· 聚焦业务编码,提供了一种标准化的开发流程,使得开发者能够迅速进入编码状态。

在深入探讨该架构之前,大家可以先理解一个熟悉的计算机概念——Windows注册表。Windows注册表是一个中心化的数据库,它存储着系统、软件程序以及硬件设备的配置和设置信息,为操作系统提供了一个统一的机制来存储和检索关键数据,确保了系统的稳定性和程序的正确运行。这样的设计给TinyEngine也提供了灵感,TinyEngine也可以借助这样的概念,给开发者提供出一个这样的架构:

丰富的配置能力:架构应覆盖全面,能够对整个系统的组件、配置项、API等内容进行细致的定制化配置,以满足不同场景的需求。

灵活的替换机制:通过注册表机制,可以轻松地对组件、API等内容进行替换,实现灵活的插拔和定制。

函数级别的覆盖能力:当配置和替换能力无法满足特定需求时,提供函数级别的覆盖能力,作为最后的解决方案,确保用户可以实现个性化的功能。基于这样的原则,我们推出了我们TinyEngine的洛书架构。它拥有全局的内容存储,记录了所有可配置化的信息。这个架构允许进行插件的可插拔操作,实现插件的配置化管理,以及对插件API的集中管理。这样的设计不仅提高了系统的灵活性,也为开发者提供了极大的便利。

“洛书架构”为二次开发项目还提供了一种无缝对接最新特性的方式。在软件开发的实际操作中,将基座系统的新特性同步到定制系统中往往是一项复杂的任务。当一个系统已经积累了大量的定制业务代码时,尝试直接集成新功能不仅会面临巨大的技术挑战,还可能对现有业务逻辑的稳定性以及系统的可维护性造成不利影响。在TinyEngine 2.0版本中,这一问题得到了有效的解决。

TinyEngine 2.0引入了一系列创新的架构设计和功能增强,使得新特性的集成变得更加顺畅和高效。

这种架构允许项目动态地注册和使用TinyEngine的新功能,无需复杂的升级过程。这意味着开发者可以立即使用TinyEngine的最新成果,这种同步机制不仅提高了开发效率,还确保了项目能够快速响应TinyEngine的更新,保持技术的先进性。

“洛书架构”是TinyEngine的一大创新,它提供了一种灵活的架构系统,允许开发者根据业务需求自由定义整个设计器的布局。在调研使用TinyEngine的开发者的过程中,发现TinyEngine被用于各种项目中,这也导致了布局非常多样化。例如:有在底部加上schema面板、有在画布旁边加上流程相关面板、创建页面时弹窗展示页面模板等丰富的布局。

为了兼容多种布局,“洛书架构”的推出可以满足开发者可以轻松地创建复杂的页面布局,而无需担心底层实现的复杂性。

这种灵活性使得TinyEngine成为一个强大的工具,能够满足从简单到复杂的各种开发需求。

除了设计器布局类型比较丰富以外,画布的类型也是非常多的。例如,在需要快速布局的页面编排场景中,可以选择文档流式画布;而在需要精确控制的流程平台中,则可以使用图元编排的画布。

TinyEngine的“洛书架构”支持根据应用场景灵活切换技术栈画布,这意味着开发者可以根据项目的具体需求选择最合适的技术方案。

这种灵活性使得TinyEngine能够适应不同的开发需求,提供高效的定制化开发支持。

TinyEngine默认导入的组件库是华为云开源的TinyVue组件库。在开源之后,收到了部分小伙伴的反馈:“公司目前是使用elementUI组件库的。能不能支持我们导入第三方组件库。”这个答案是肯定的。得益于TinyEngine的渲染机制,TinyEngine支持导入其他的组件库,如elementUI和Ant Design Vue(antdUI),极大地简化了集成流程。除此以为,TinyEngine还提供组件复用方案,提供了区块的能力。开发者能够将业务系统中可复用的组件提取出来,打包并上传到平台的资产管理库中,集中管理版本,使其更灵活、更易用。相关的区块局域网部署方案也已经放到官网文档里面了,大家可以查阅。

(官网文档:https://opentiny.design/tiny-engine)

TinyEngine的核心优势在于其对多种技术栈的深度支持。无论是前端开发中的主流框架Vue和React,还是为鸿蒙系统量身打造的ArkTS语言,TinyEngine都能够灵活定制并输出相应技术栈的代码。这种多技术栈的支持,使得TinyEngine能够适应各种开发需求。我们的开发者现在可以根据项目的具体需求,选择最合适的技术栈,增强了项目的适应性和扩展性。

TinyEngine低代码引擎的灵活代码输出能力,为开发者提供了一个强大的开发环境,可以根据系统自身的需要定制出需要的出码语言。

TinyEngine能够高效集成至各垂直领域业务系统,实现与第三方系统的无缝对接和参数流转。这种集成能力,使得TinyEngine在多种业务场景中都能使用,无论是AI、流程管理还是教育领域,都能提供量身定制的解决方案。这种集成使得TinyEngine成为一个强大的工具,能够满足各种业务需求。

TinyEngine 2.0 的发布,也让TinyEngine自我迭代更新之路迈出了重要一步,希望全新的灵活定制扩展能力能够助力开发者更好的构建自己的低代码平台。未来,TinyEngine也计划引入更多功能,增强低代码编排能力,让开发过程体验更友好。

目前TinyEngine在规划中不仅支持模型驱动开发,还允许开发者轻松实现模型事件的绑定,快速构建多样化的业务页面。通过模型驱动架构,TinyEngine提升了代码的一致性和可读性,使得开发过程更加高效,同时也降低了后期维护的难度。这种架构的优势在于,它将业务逻辑从代码中抽象出来,使得开发者可以更加专注于业务本身,而不是深陷代码的细节。开发者可以利用TinyEngine的模型驱动开发功能,快速构建业务页面,大大减少了代码编写的工作量,加速了整个开发流程。

TinyEngine深度融合AI辅助开发,通过AI的深度集成,用户可以迅速响应业务需求,从设计到代码实现一键转换,优化开发流程,缩短项目周期。目前,AI辅助开发依赖于大模型的生成能力。大模型的生成能力其实时好时坏。有时候生成的代码渲染在画布上面是非常高效的, 几句话就能生成一个交互页面,但是有时候生成的代码又是不可用的,导致画面渲染不出来。这功能我们内部也在持续孵化完善中。

对于TinyEngine低代码引擎有更多想要了解的,欢迎观看TinyEngine低代码引擎系列直播课(第1讲——第6讲):https://space.bilibili.com/15284299

点击关注,第一时间了解华为云新鲜技术~

一套完整版开源的监控系统(附源码)吃透监控系统

电视监控系统由前端监视设备、传输设备、后端存储、控制及显示设备这五大部分组成。后端设备可进一步分为中心控制设备和中心控制设备。前、后端设备有多种构成方式,它们之间的联系可通过电缆、光纤、微波等多种方式来实现。前端监控设备摄像机,采用先进的电荷耦合器件CCD图像传感技术。具有自动光圈接口、自动白平衡、电子快门、 照度要求、逆光补偿、标准清晰度或高解象力等适合多种场合使用的摄像机供用户选择。终端监控设备顺序式视频音频切换器,可以对来自2路至12路的摄像机图像和相应的音频信号按照顺序进行切换,其时序切换图像信号分别在监视器上自动顺序显示,切换时间可调整。亦可手动切换选择或旁路隔离某一路指定摄像机图像显示。

集监控点监控、日志监控、数据可视化以及监控告警为一体的国产开源监控系统,直接部署即可使用。

监控数据类型丰富,提供多种富有表现力的图表,满足对数据可视化的需要,目前支持折线图、饼图、地理位置图,后续会引入 更多富有表现力的图表以加强对数据可视化的支持。

(1)支持插件功能, 监控插件无需开发,自由选择监控插件,安装即可使用

(2)集成告警功能, 支持多种告警方式

(3)集成分布式日志系统功能

(4)支持多种部署方式 a、集中部署(全部服务部署在一台机器,适合个人或者小团队开发者)b、分布式部署(分布式部署在多台机器,适合小中型企业大规模监控需求)

(5)支持自动化配置(机器部署agent后自动注册到监控系统无需在控制台配置、视图根据上报自动绑定相关上报机器)

(6)支持多用户访问(子账号由管理员账号在控制台添加)

(7)上报接口支持主流开发语言,数据上报api 提供类似公共库接口的便捷

实时性

随着安全意识的增强,视频监控系统也慢慢地走入我们寻常百姓家。视频监控方案也是层出不穷,那么在安装监控系统中又有哪些原则需要遵守的呢?安装监控系统首先要考虑以下8大监控安装原则:

1、实时性:监控系统实时性,这点尤为重要。也正是由于监控系统的实时性才显得监控系统是那么的必要。

2、安全性:监控系统具有安全防范和保密措施,防止非法侵入系统及非法操作。

3、可扩展性:监控系统设备采用模块化结构,系统能够在监控规模、监控对象、或监控要求等发生变更时方便灵活地在硬件和软件上进行扩展,即不需要改变网络的结构和主要的软硬件设备。

4、开放性:监控系统遵循开放性原则,系统提供符合国际标准的软件、硬件、通信、网络、操作系统和数据库管理系统等诸方面的接口与工具,使系统具备良好的灵活性、兼容性、扩展性和可移植性。整个网络是一个开放系统,能兼容多家监控厂家的产品,并能支持二次开发。

5、标准性:监控系统所采用的设备及技术符合国际通用标准。这点能够给您一个安心的保证。

6、灵活性:监控系统组网方式灵活,系统功能配置灵活,能够充分利用现有视频监控子系统网络资源。系统将其他子系统都融入其中,能满足不同监控单元的业务需求,软件功能全面,配置方便。

7、先进性:监控系统是在满足可靠性和实用性的前提下尽可能先进的系统。整个系统在建成后的十年内保持先进,系统所采用的设备与技术能适应以后发展,并能够方便地升级。将成为一个先进、适应未来发展、可靠性高、保密性好、网络扩展简便、连接数据处理能力强、系统运行操纵简便的安防系统。

8、实用性:视频监控系统具备完成工程中所要求功能的能力和水准。系统符合本工程实际需要的国内外有关规范的要求,并且实现容易、操作方便。从用户角度出发,充分利用现有资源,尽量降低系统成本,使系统具有较高的性能价格比。

IP地址库: 支持通过IP地址上报时将IP地址转为物理地址,相同物理地址归并展示一个监控API 即可轻松生成监控。

数据的物理地址分布图

监控插件市场: 让监控成为可以复用的组件,更多监控插件持续开发中。

分布式日志系统: 支持大规模系统日志上报,日志上报支持频率限制、日志染色、自定义字段等高级功能,控制台日志查看支持按关键字、排除关键字、上报时间、上报机器等方式过滤日志,从茫茫日志中轻松找到您需要的日志。

视图机制: 监控图表支持视图定制模式,视图可按上报服务器、监控点随意组合,轻松定制您需要的监控视图,并可在监控图表上直接设置告警值。

告警集成: 集成告警功能, 支持邮件、短信、微信、PC客户端等告警方式,告警功能无需开发直接可用。

安装脚本会先检查当前系统是否支持在线安装, 如不支持您可以下载源码后在系统上编译安装。

在线部署目前只支持集中部署方式, 即所有服务部署在一台机器上, 该机器上需要安装 mysql/apache。

安装脚本使用中文 utf8 编码, 安装过程请将您的终端设置为 utf8, 以免出现乱码。

安装脚本同时支持 root 账号和普通账号操作, 使用普通账号执行安装部署要求如下:

  1. 1、在线部署使用动态链接库, 需要在指定目录下执行安装脚本, 目录为: /home/mtreport
  2. 2、普通账号某些目录可能无权操作, 需要授权才能正常安装我们强烈建议您先在本地虚拟机上执行在线安装, 熟悉安装流程后再实际部署到您的服务器上。

如果在线安装失败或者需要二次开发, 可以使用源码编译方式安装。

三步完成部署:

  1. 1、执行 make 完成源码编译
  2. 2、进入 tools_sh 目录,执行 make_all.sh 生成部署包
  3. 3、在安装目录解压部署包,执行 local_install.sh 完成安装
  1. apache + mysql(监控点数据、配置信息使用 mysql 存储, 支持分布式部署)
  2. 前端 web 控制台采用 dwz 开源框架
  3. 前端监控图表采用开源 echarts 绘制
  4. 后台 cgi 使用开源的cgi模板引擎 – clearsilver, 所有cgi支持以fastcgi方式部署
  5. 后台服务使用了开源的功能 socket 开发框架 – C++ Sockets

源码获取方式:关注小编+转发文章+私信【666】免费获取重要的事情说三遍,转发+转发+转发,一定要记得点赞转发哦!!!

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。