集成开发之如何用好明道云

news2024/12/23 17:22:49

在这里插入图片描述

内容来自演讲:张嵩 | 苏州睿能科技有限公司 | 公司负责人

摘要

这篇文章介绍了作者所在公司如何利用明道云进行集成开发,并分享了四个实际案例。在第一个数字化实验室项目中,该公司使用明道云取代现有的STARLIMS商业软件,并实现与实验仪器的集成。在第二个项目管理系统案例中,他们使用明道云作为协作套件,并与其他软件进行了集成。第三个案例是一个基于财务报表的新品报价核算系统,通过使用SpreadJS插件与明道云集成,满足了客户的复杂需求。最后一个案例是跨国公司工程师创新俱乐部App,该公司将明道云作为内网低代码工具,外网使用腾讯微搭。文章最后总结了一些做集成开发的建议和典型场景,强调了安全审核的重要性。

一、前言

我们是一家专注于制造业信息化的软件公司。过去,我们主要从事纯代码开发,并在制造信息化领域完成了众多项目。大约从21年开始,我们引入了明道云,用于实施真正为企业带来价值的项目。今天,我将用四个实际案例与大家分享作为软件公司如何进行集成开发,以及如何利用明道云实现其中复杂的业务逻辑。

二、案例1-数字化实验室项目

1.项目背景

客户是一家500强跨国公司的上海研发中心,想要打造一个数字化实验室系统(Lab Information Management System),简称LIMS系统。这个项目有三个主要目标:

  • 开发下单系统:允许全球各事业部的工程师向实验室下实验单。这个系统我们选择了自研,并没有使用明道云进行搭建。
  • 取代STARLIMS系统:用明道云系统取代现有的STARLIMS商业软件。
  • 集成实验室仪器:用明道云进行集成各种实验室仪器。

2.集成

下单系统与CoreLIMS(MingDao)的集成
关于下单系统,由于界面元素复杂性和用户基数大(超过1万),考虑到商业成本,我们决定不使用明道云进行搭建,而是开发一个独立的系统来与明道云集成。
在这里插入图片描述

我们首先开发了一个Web Application。这个Application与明道云处于同一级别,并部署到了相同的服务器上。同时,我们的下单系统需要与明道云的LIMS进行紧密集成。为实现这一点,我们的研发团队使用PHP语言开发了SDK,以提高集成效率。这个SDK已经放在明道云社区的分享中,大家可以去看一看。当然,随着明道云版本迭代和插件系统的更新,新的版本中可能已经包含了我们之前所做的部分集成工作。

从安全角度出发,在与明道云系统集成时,用户体系是必须考虑的。为了避免用户在两个系统之间进行两次登录验证,我们利用客户的IDP(身份验证服务器)来实现单点登录(Single Sign-On, SSO),。

CoreLIMS/MingDao 连接 实验室仪器
第三个集成部分是说如何使用明道云系统连接仪器或者工业物联网设备。在这个项目中,我们列出了四种常见的应用场景:

  1. 通过WiFi连接温湿度仪:使用MQTT协议定期采集数据。
  2. 连接环境箱:明道云能够向环境箱发送其专属指令,根据业务逻辑直接转化为环境箱的执行动作。
  3. 连接可编程电源:这是一个典型的网口设备,可以利用明道云抓取数据。
  4. 连接带有上位机软件的毫欧仪:有两种方法可以将上位机软件与明道云系统集成,一种是反编译上位机软件,然后和明道云API集成;另一种方法是利用RPA。
    在这里插入图片描述

在完成这个项目后,数字化实验室核心的人机料法环测以及实验流程和原始记录都可以存储在明道云系统中。同时,明道云系统还与实验仪器进行了连接,能够实时采集数据并将其添加到原始记录中。

三、案例2 - 项目管理系统

明道云作为一款优秀的协作套件,其前身是明道,非常适合用于项目管理。

1.项目背景

我们为一家500强汽车事业部开发了一款软件管理系统,用于管理新产品研发的全供应链流程,对标商业软件PPM(Project Portfolio Management)。该系统具有250多个表和500多个工作流,且遵循APQP(产品质量先期策划)理念。

2.集成

这个项目中涉及集成开发的包括以下几点:

  1. 我们创建了一个跨视图功能,即My Project,因为当时明道云还没有提供全局变量功能,我们通过集成实现了更复杂的功能。
  2. 明道云的甘特图无法满足这个客户的业务需求,我们使用了俄罗斯公司DHTMLX提供的前端插件,以实现更多功能。
  3. 我们进行了BI集成,选择了Tableau BI进行集成。
  4. 利用RPA技术与跨国公司的SAP ERP和Microsoft ProjectOnline等软件进行集成。
    在这里插入图片描述

我们这个客户他需要的甘特图功能相当复杂,其实明道云的甘特图在市面上来说已经相当不错了,而且他们还在持续迭代,我相信后面会做的越来越好。通过使用DHTMLX插件,我们可以满足用户提出的大部分有关甘特图的编辑开发场景需求。

四、案例3 - 基于财务报表的新品报价核算系统

1.项目背景

这个项目的客户是一家全球性的客户,系统的功能主要是计算投资回报,例如投资3000万美元,系统计算出可能在第一年和第二年不赚钱,但在第三年开始赚钱。客户希望借助此系统,让项目成本会计、销售以及管理层能对研发的新产品报价有更明确的认识。通过这个系统,他们可以知道怎么报价才能保证新产品能够为公司带来盈利。

2.集成
在这里插入图片描述

由于全球公司的会计部门是Excel的重度用户,许多工作流程、公式和业务逻辑都在Excel中。而明道云无法直接处理Excel中的函数和业务逻辑,因此,推荐使用SpreadJS的插件进行集成,这个插件可以通过API与明道云集成,并可以用于创建复杂的报表。

五、案例4 - 跨国公司工程师创新俱乐部App

在第四个案例中,我们提供了一个简单的思路。在这个案例中,我们将明道云作为内网的低代码工具,而外网则使用了腾讯微搭。这种选择主要是出于安全考虑,特别是对于那些涉及工程和专利等敏感信息的客户来说,使用内网的明道云进行流程管理是非常合适的。
在这里插入图片描述

关于应用场景,简单来说就是:当数据经过脱敏处理后,我们可以利用腾讯微搭来提高APP的触达率,使用户更容易上手使用。这种搭配方式有多种可能,如果有开发能力,也可以考虑使用一些公有云的Serverless功能与明道云相结合。

六、明道云集成开发的避坑体会

最后,我想与大家分享一些关于做集成开发的建议和典型场景。用户的需求推动着我们的进步,正如华为的任正非所说,用户提出的要求都是合理的。
在这里插入图片描述

首先,有些用户可能会觉得明道云的界面过于繁琐,需要点击多层才能找到所需信息。其次,有些用户可能认为界面元素太少,希望在一个页面中看到所有相关信息,例如采购订单的头、行以及shipments等。为满足这些需求,我们可以考虑进行集成开发。

明道云自身的迭代更新也在不断改进,我相信在插件的帮助下,可以轻松解决用户对界面操作繁琐或信息量不足的问题。

在做集成开发时,我们需要注意安全审核。有一次做项目,客户逼着我们去做安全审核,我们为客户做的项目成本甚至不及请欧洲的安全公司进行一次安全检测的费用,这是一次惨痛的教训。

此外,所有的集成,尤其是数据层面的RPA,无论是国内的UiPath还是自己用Python编写的脚本,都可以很好地与明道云集成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1305661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微表情检测(四)----SL-Swin

SL-Swin: A Transformer-Based Deep Learning Approach for Macro- and Micro-Expression Spotting on Small-Size Expression Datasets 在本文中,我们致力于解决从视频中检测面部宏观和微观表情的问题,并通过使用深度学习方法分析光流特征提出了引人注…

XGBoost和LightGBM时间序列预测对比(备忘)

XGBoost和LightGBM都是目前非常流行的基于决策树的机器学习模型,它们都有着高效的性能表现,但是在某些情况下,它们也有着不同的特点。 XGBoost和LightGBM简单对比 训练速度 LightGBM相较于xgboost在训练速度方面有明显的优势。这是因为Ligh…

【Spring教程26】Spring框架实战:从零开始学习SpringMVC 之 bean加载控制

目录 1 问题分析2 思路分析3 环境准备4 设置bean加载控制5 知识点1:ComponentScan 欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装…

智能优化算法应用:基于哈里斯鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于哈里斯鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于哈里斯鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.哈里斯鹰算法4.实验参数设定5.算法结果6.…

【尘缘送书第七期】2023年度盘点:智能汽车 | 自动驾驶 | 车联网

【文末送书】今天推荐几本智能汽车 | 自动驾驶 | 车联网领域优质书籍。 目录 引言1 《智能汽车》2 《SoC底层软件低功耗系统设计与实现》3 《SoC设计指南》4 《蜂窝车联网与网联自动驾驶》5 《智能汽车网络安全权威指南(上册)》6 《智能汽车网络安全权威…

Keil 编译输出信息分析:Program size: Code, RO-data , RW-data, ZI-data

一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。 如图所示,在Keil中编译工程成功后,在下面的Bul…

智能优化算法应用:基于闪电搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于闪电搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于闪电搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.闪电搜索算法4.实验参数设定5.算法结果6.…

NCNN 源码学习【二】:模型加载

​ 正文 这次先来看一段NCNN应用代码中,最先出现的部分,模型加载 ncnn::Net squeezenet; squeezenet.load_param("squeezenet_v1.1.param"); squeezenet.load_model("squeezenet_v1.1.bin");首先我们可以看到一个 ncnn的类Net&am…

【@Cacheable的使用,及设置过期时间 配置方式】

Cacheable的使用,及设置过期时间 配置方式 使用方式 使用方式 Cacheable(cacheNames “ssss#30” ,key “#aaa‘‘#beginTime’’#endTime”) cacheNames/value :用来指定缓存组件的名字key :缓存数据时使用的 key,可以用它来指…

【Oracle】backup备份时报错ORA-19809,ORA-9804

Oracle备份数据库时报错 ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 10305536 bytes disk space from 4385144832 limit 1.清理过时的备份: 使用RMAN删除不再需要的过时备份,以释放空间。执行以下命令: DEL…

模块一——双指针:11.盛最多水的容器

文章目录 题目解析算法原理解法一:暴力枚举(超时)解法二:双指针单调性 代码实现暴力枚举(超时)双指针单调性(时间复杂度为O(N),空间复杂度为O(1)) 题目解析 题目链接:11.盛最多水的容器 这道题…

uniapp实战 —— 轮播图【数字下标】(含组件封装,点击图片放大全屏预览)

组件封装 src\components\SUI_Swiper2.vue <script setup lang"ts"> import { ref } from vue const props defineProps({config: Object, })const activeIndex ref(0) const change: UniHelper.SwiperOnChange (e) > {activeIndex.value e.detail.cur…

C# Socket通信从入门到精通(14)——多个异步UDP客户端C#代码实现

前言: 在之前的文章C# Socket通信从入门到精通(13)——单个异步UDP客户端C#代码实现我介绍了单个异步Udp客户端的c#代码实现,但是有的时候,我们需要连接多个服务器,并且对于每个服务器,我们都有一些比如异步发送、异步接收的操作,那么这时候我们使用之前单个异步Udp客…

jmeter接口测试之登录测试

注册登录_登陆接口文档 1.登录 请求地址&#xff1a; POST xxxxxx/Home/Login 请求参数&#xff1a; args{LoginName:"mtest", // 登录名&#xff0c;可以为用户名或邮箱Password:"123456" // 密码" }响应数据&#xff1a; 成功 {"S…

浅谈linux缓冲区的认识!

今天来为大家分享一波关于缓冲区的知识&#xff01;那么既然我们要谈缓冲区&#xff0c;那么就得从是什么&#xff1f;为什么&#xff1f;有什么作用这几个方面来谈论一下缓冲区&#xff01;然后再通过一些代码来更加深刻的理解缓冲区的知识&#xff01; 引言&#xff1a; 是…

ServletJSP

Servlet 1.Servlet生命周期 2.HttpServletRequest与HttpServletResponse 2.1HttpServletRequest 获取请求参数 请求乱码问题&#xff1a; 请求转发 request作用域 2.2HttpServletResponse 输出 乱码 重定向 3.Cookie 4.Sessions 5.ServletContext 获取方式及常用方法&a…

selenium自动化(中)

显式等待与隐式等待 简介 在实际工作中等待机制可以保证代码的稳定性&#xff0c;保证代码不会受网速、电脑性能等条件的约束。 等待就是当运行代码时&#xff0c;如果页面的渲染速度跟不上代码的运行速度&#xff0c;就需要人为的去限制代码执行的速度。 在做 Web 自动化时…

经典策略筛选-20231212

策略1&#xff1a; 龙头战法只做最强&#xff1a;国企改革 ----四川金顶 1、十日交易内出现 涨停或 &#xff08;涨幅大于7个点且量比大于3&#xff09; 2、JDK MACD RSI OBV BBI LWR MTM 六指标共振 3、均线多头 4、 筹码峰 &#xff08;锁仓&#xff09; 5、现价>…

虹科分享 | CanEasy多场景应用,让汽车总线测试更简单

CanEasy是一个基于Windows的总线工具&#xff0c;用于分析和测试CAN、CAN FD和LIN以及汽车以太网系统。通过高度自动化和简单的配置模拟总线流量&#xff0c;CanEasy可用于分析真实网络、模拟虚拟系统&#xff0c;以及在整个开发过程中进行剩余总线模拟&#xff0c;实现从测试到…

FFmpeg-基础组件-AVFrame

本章主要介绍FFmpeg基础组件AVFrame. 文章目录 1.结构体成员2.成员函数AVFrame Host内存的获取 av_frame_get_bufferAVFrame device内存获取av_hwframe_get_buffer&#xff08;&#xff09; 1.结构体成员 我们把所有的代码先粘贴上来&#xff0c;在后边一个一个解释。 typede…