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

在这里插入图片描述

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

摘要

这篇文章介绍了作者所在公司如何利用明道云进行集成开发,并分享了四个实际案例。在第一个数字化实验室项目中,该公司使用明道云取代现有的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编写的脚本,都可以很好地与明道云集成。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

sleep和wait区别,并且查看线程运行状态

一、sleep和wait区别 区别一:语法使用不同 wait 方法必须配合 synchronized 一起使用,不然在运行时就会抛出 IllegalMonitorStateException 的异常 而 sleep 可以单独使用,无需配合 synchronized 一起使用。 区别二:所属类不同…

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

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

大数据技术6:大数据技术栈

前言:大数据相关的技术名词特别多,这些技术栈之间的关系是什么,对初学者来说很难找到抓手。我一开始从后端转大数据的时候有点懵逼,整体接触了一遍之后才把大数据技术栈给弄明白了。 一、大数据技术栈 做大数据开发,无…

YOLOv8改进 | 2023主干篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv8(超级轻量化精度更高)

一、本文介绍 本文给大家带来利用RT-DETR模型主干HGNet去替换YOLOv8的主干,RT-DETR是今年由百度推出的第一款实时的ViT模型,其在实时检测的领域上号称是打败了YOLO系列,其利用两个主干一个是HGNet一个是ResNet,其中HGNet就是我们…

Logstash输入Kafka输出Es配置

Logstash介绍 Logstash是一个开源的数据收集引擎,具有实时管道功能。它可以从各种数据源中动态地统一和标准化数据,并将其发送到你选择的目的地。Logstash的早期目标主要是用于收集日志,但现在的功能已经远远超出这个范围。任何事件类型都可…

记录汇川:MODBUS-梯形图

H5U的MODBUS通信不需要编写程序,通过组态MODBUS通信配置表,实现数据通信。 相对自由口走报文的形式,这个更加的方便。配置结束,就可以监控数据或写入。

Linux - 进程间通信(中)- 管道的应用场景

前言 在上篇博客当中,对Linux 当中的进程通信,做了详细阐述,主要是针对父子进程的通信来阐述的同时,也进行了模拟实现。 对于管道也有了初步了解,但是这仅仅是 进程间通信的一部分,Linux 当中关于进程间通…

Unity光照模型实践

光照作为3D渲染中最重要的部分之一,如何去模拟真实环境的光照是重要的研究内容,但是现实环境光照过于复杂,有很多经典好用的光照模型去近似真实光照。 根据基础的Phong模型 最终某个点的结果为 环境光Ambient 漫反射光Diffuse 高光Specula…

安卓MediaRecorder(2)录制源码分析

文章目录 前言JAVA new MediaRecorder() 源码分析android_media_MediaRecorder.cpp native_init()MediaRecorder.java postEventFromNativeandroid_media_MediaRecorder.cpp native_setup() MediaRecorder 参数设置MediaRecorder.prepare 分析MediaRecorder.start 分析MediaRec…

Navicat 技术指引 | 适用于 GaussDB 分布式的服务器对象的创建/设计

Navicat Premium(16.3.3 Windows版或以上)正式支持 GaussDB 分布式数据库。GaussDB分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构…

JavaSE知识点回顾,附学习思维导图

第一阶段 day01 java 发展,java 环境( path, java_home, class_path),java 原理, java 执行 , jvm , jre , jdk day02 变量 标识符命名规则 数据类型 数据类型的转换 运算符 day03 选择结构 if , switch day04 循环结构 for , whi…

java--Collection的遍历方式

1.迭代器概述 迭代器是用来遍历集合的专用方式(数组没有迭代器),在java中迭代器是Iterator。 2.Collection集合获取迭代器的方法 3.Iterator迭代器中的常用方法 4.增强for循环 ①增强for可以用来遍历集合或数组。 ②增强for遍历集合,本质就是迭代器遍…

005、Softmax损失

之——softmax与交叉熵 杂谈 我们常用到softmax函数与交叉熵的结合作为损失函数以监督学习,这里做一个小小的总结。 正文 1.softmax的基本改进 所谓softmax就是在对接全连接层输出时候把输出概率归一化,最基础的就是这样: 效果就是这样&…

(第65天)PDB 快照

介绍 PDB 快照是一个 PDB 指定时间点的副本。在创建快照时,源 PDB 可以是只读或者读写模式。 PDB 快照可以用于快速创建 PDB。 PDB 快照可以分为手动和自动两种创建方式(create pluggable database|alter pluggable database): 手动快照使用 SNAPSHOT 子句的方式来创建自动…

Jmeter beanshell编程实例

1、引言 BeanShell是一种小型的,免费的,可嵌入的符合Java语法规范的源代码解释器,具有对象脚本语言特性。 在Jmeter实践中,由于BeanShell组件较高的自由度,通常被用来处理较为复杂,其它组件难以处理的问题…

jmeter接口测试之登录测试

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

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

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

[GFCTF 2021]文件查看器

文章目录 前置知识可调用对象数组对方法的调用GC回收机制phar修改签名 解题步骤 前置知识 可调用对象数组对方法的调用 我们先来看下面源码 <?phperror_reporting(0);class User{public $username;public $password;public function check(){if($this->username"…

用perl查找文件夹中的所有文件和目录

查找文件夹中的文件和目录是一个很常见的操作&#xff0c;使用perl的File::Find模块可以很方便的实现。首先使用perldoc File::Find 查看一下文档: 这个核心的就是文档中描述的回调函数。我们举一个实际的例子&#xff0c;一个空的git仓库为例&#xff0c;下面的脚本用于查找…

Aduino实现音频频谱效果

看到这样一个效果,于是想用arduino实现类似效果。需要的组件如下 1 arduino开发板 2 音频传感器 3 灯带 接线图如图 代码如下 #include <EEPROM.h>#include <Adafruit_NeoPixel.h>#define PIN 2 // input pin Neopixel is attached to#define NUMPIXELS …