为了开放互联,明道云做了十件事

在这里插入图片描述

本文来自明道云资深研发经理孙伟,在明道云2022年秋季伙伴大会活动演讲,经校对编辑后整理为演讲精华。

一、开放没有选择

很多客户选择我们的一个重要原因,是明道云所能提供的产品开放能力。开放其实是没有选择的,坦白来讲,我也不希望开放,我希望客户所有的业务系统都用明道云管理,这样对我们是更有利的。但是,现实中因为企业业务的多样性与复杂性,没有任何一家平台可以做到一站式解决所有问题。为了方便客户,我们就必须开放自己,让客户用得更好。

1.一个典型的业务场景需要多少个系统?
我们先来看一个典型的业务场景。一个客户从网站上下了一个订单,经销商收到订单之后去向企业订货。企业订货之后如果自身不进行生产,就需要向供应商采购。供应商生产好之后,需要去找物流公司发货。发货完成,客户最后进行收货。这样一个企业日常经常涉及到的环节,会需要用到哪些系统?

在这里插入图片描述

从下单开始,可能需要有一个电商平台,比如京东、天猫;也有一些客户是自营的,会使用一些小程序,会涉及到支付系统。还会涉及到业务管理,使用CRM、ERP等管理系统。如果他是分销商体系,还要有分销系统。如果是工厂还会涉及到MES系统、物流管理系统等。这么多系统,让一家企业来完成是不太现实的,并且如果中间任何一个环节不能与其他系统友好互通,客户可能就不会选择你了。

2.明道云为什么需要开放?
如果不考虑交互能力,理论上来说明道云是可以搭建任何一套业务系统的。但是,我们的客户有很多个性化需求,让我们必须选择开放。

  • 特殊交互有一些客户对前端的界面排版、交互有特殊要求,这个时候用明道云来实现,就不太友好。
  • 系统集成一些客户已经使用了电商平台现有的核心系统很多年了,他不太可能立马把系统都迁移到明道云,但是却需要明道云跟原有的系统互通,进行一些数据流转。
  • 运算逻辑极其复杂比如股票基金的净值运算,它是要去收集大量的历史数据,做很多的处理;还有比如大规模的数据分析,这种TB级别的明道云本身是不擅长处理的。
  • 其他需求比如同步一些物流信息、海关数据、企业工商信息,在线签约等。

这些场景用明道本身来做就不太合适,我们不能友好实现这些客户需求,所以我们只能选择开放自己,交给别的产品来完成。
在这里插入图片描述

二、明道云做了哪些事情

大家一起看一下,明道云为了平台开放性做了哪些工作。

1.开放平台

它其实是明道老的协作模块的产物。因为明道云是一个企业协作的平台,支持用户或者是第三方开发者进入明道云的开放平台,去设计开发一些扩展应用,然后上架到明道云的应用市场,进行推广并获得额外的收入。当然,这里的扩展应用不是指我们现在用明道云搭建的应用。

最典型的是第三方的SaaS与明道云的结合,它是基于Auth2.0授权机制,通过账号密码登录后拿到token,再去获取一些数据。这里主要就是老协作模块,比如动态、任务、日程、群组;另外还有组织与账户。比如,我拿到账户信息以及用户加入的网络信息后,对网络下的用户做消息的推送集成功能。

当然,现在明道云的产品路线图里也有集成中心、开发者中心,并且将来可能会融合在一起,打造一个全新的明道云开放平台。
在这里插入图片描述

2.企业授权开放接口

我们前面讲的开放平台是基于个人授权,所有数据都是用户自己的;而企业的授权开放接口是独立于明道云个人的授权API。未来,这两套体系会共存。

这套授权体系完全服务于企业相关的数据接口,有较高的权限级别,现在这套密钥只有网络管理员在后台才可以看到,主要内容包括三大块:

审批。明道云现有的审批可以通过这一套体系在线创建审批,获取审批列表,为每个审批配置一个Webhook通知节点。当明道云的审批有任何的变化,它可以把变化通知到外部的系统。
组织架构。又分为四项:用户、部门、职位、汇报关系。我们通过这些接口,与外部第三方平台做账号集成,主要用于数据的增删查改,包括与第三方已有的类似数据的关联处理。
应用管理。应用指明道云中搭建的应用。我们可以在线创建应用,并获取应用下面的授权信息。
在这里插入图片描述

3.应用OpenAPI

每创建一个应用,明道云都会自动为它生成一套API示范模板。应用管理员可以看到应用的API开发文档,里面涵盖了白名单、授权管理、授权密钥。它也是非个人的,只要是应用下的数据,全部可以获取到,但是权限分为了全部权限和只读权限。只读权限就是指可以开放给第三方来调数据,但是不允许他进行编辑删除。

除了授权之外,核心的功能还有什么?第一,组织架构,我们可以通过应用的授权信息获取应用的组织结构,包括菜单项、工作表,获取工作表的结构信息,包括一些控件列表。其次就是应用数据,我们可以对于应用数据做增删查改。还有一个大块是应用权限体系,我们可以通过这一套API,去对应用下的角色做一些处理。

在这里插入图片描述

4.工作流Webhook

前面讲的这些,开放平台也好,API也好,都需要第三方系统。但是有的时候,我们并不需要挂第三方系统,而想要用无代码的方式与外部系统做比较好的结合。那么,明道云工作流就支持用Webhook与外部互通,它主要分两种方式:Webhook节点和API请求节点。

Webhook节点会自动生成一个URL链接,被动地接收外部消息的请求。我们知道,数据同步一般分两种,一种是这种传统的集成,定时地批量同步;还有一种消息集成模块,遵循IFTTT模式进行实时同步。比如我在另一个平台里面做了一个实时的操作,假设这个平台也是支持消息推送的,它就可以往Webhook节点推一条消息通知。明道云拿到之后就可以去实时获取信息,不需要每过一段时间再去拉取它。

API请求节点以前也叫Webhook节点,后面因为我们做了集成中心,所以才改成了API请求节点。明道云内部的一些事件触发或者是定时任务,就可以去请求外部地址。这个请求可以是获取数据,也可以是把明道云的数据推送给外面。

在这里插入图片描述

5.工作流代码块

工作流Webhook是基于HTTP的,但是现实中有一些传统的系统,或者一些比较特殊的系统,它的授权模式比较复杂,所以我们针对有开发能力的这部分客户做了一些比较深入的能力,就是工作流中的代码块节点。

它主要有两种开语言:Javascript和Python。Node.js和Python有些版本会引用一些包,比如有一些复杂的授权模式,通过API的方式不能够直接对接,那我们就可以通过代码块,自行引用。

我们去做一些请求的时候经常需要前置处理请求参数,比如拿到参数之后需要对返回的数据做一些预处理。如果我们通过现有的工作流节点去处理它,就会比较麻烦。但有了代码块,我们就可以在请求前先对请求参数做优化,拿到请求结果之后再做格式化处理返回给前端,这样就会相对友好一些。
在这里插入图片描述

6.集成中心

现在的集成中心可以封装一组授权认证,包括一个API的接口组,很方便地供企业内部甚至外部用户去调用,我们现在已经预置了天眼查、小鹅通、易签宝等等这些接口。前面我们提到的客户有在线签单的要求,明道云本身做不到,但是如果我们和e签宝合作,就可以通过明道云的一个节点,快速完成这些操作。
在这里插入图片描述

7.工作表/自定义页面

API查询控件。前面我们提到的Webhook和集成中心,他们的流程都是有滞后性的,以前没有API查询控件的时候是怎么处理的?处理流程一般是这样的:记录创建或者更新之后,自动触发一个工作流,工作流再去做一些逻辑,最后将结果更新到工作表中。这种做法结果不是实时反馈的,所以我们推出了工作表控件API查询,它允许在界面上直接地调用第三方的接口,在界面上实时反馈,它也是一个按钮,点击查询之后把数据实时地呈现到页面上来。

嵌入控件。工作表和自定义页面都有嵌入控件,明道云现有的控件可能不能满足一些客户的需求,那客户就可以自己开发一些控件,通过嵌入控件嵌在明道云中,做好单点登录、账号集成,这样就可以实现自定义控件的能力。

自由连接控件。这个控件可能用的人不是很多,它主要是连接明道云的老协作模块,包括动态、任务等。比如一条工作表记录跟一个日程或者任务有关,我们就可以把它关联过来。

文本识别。自带的能力主要是身份证跟一些发票的识别。因为有了我们API能力,其实我们可以自己去扩展更多的OCR识别能力。
在这里插入图片描述

8.公开表单、外部门户和分享

公开表单
现实中我们有很多的需求是不需要有状态的,只是需要收集一些外部数据。比如政府单位做民意调查,或者我们明道云的伙伴大会要收集报名信息,这种情况我们不希望用户注册,只需要拿到这些数据就行了。

明道云提供了公开表单的能力,允许用户将现有的工作表生成并发布一个公开链接或者二维码,让外部用户直接填写。填写完之后,我们也可以生成一个公开查询的链接,用户通过自己刚才填写的关键性的信息,就可以把之前填报的详细数据再查出来。

外部门户
公开信息是无状态的,它不会去记录填写人的一些标识性的身份信息,因为它没有账号或者权限体系,可能在某些场景下就不太适用。比如我前面讲到那个场景,一个经销商跟一个工厂的协作,经销商去采购的时候,我不希望他去注册明道云账号,但是我又希望他有一定的权限,能够看到自己历史的数据;并且能够对这个经销商做身份认证,比如通过手机号、微信号等进行认证。

这种场景下,我们为每一个应用提供了外部门户的能力。用户可以配置自己企业微信号、公众号,集成消息通知功能,用户通过第三方平台就能无感知地进入应用,完成操作。

分享
分享用在什么场景呢?分享的内容不需要有状态,也不需要有外部数据,只需要核对能力。举个例子,我妻子的公司是做谷歌推广的,他们每个季度都需要跟供应商做账单核算。之前我看她很辛苦地拿Excel做汇总,再为每个供应商生成一个单独的Excel,发给客户去确认。

我说你完全不需要这样做。我花了几分钟时间,搭建了两张表。数据导进来后,为每个供应商自动生成了一条对外分享的二维码。再把这二维码分享给他,他扫码就能看到历史账单记录,这样供应商的体验也很好,工作效率也大大提升。

我们在接下来的版本会强化分享能力,能够支持更多视图种类的分享,支持分享出去的记录可以配置哪些数据是可以填写的,支持生成类似分享密码、密钥的身份验证工具。
在这里插入图片描述

9.前端开源

我们针对高端玩家提供了一个前端开源能力,零门槛获取并扩展APaaS能力,充分实现前端界面的个性化。通过前端开源,用户可以对界面做排版、交互上的优化,再结合我们的刚才讲到的这些自定义的界面,就可以去实现更多的交互可能。

在这里插入图片描述

10.第三方平台集成

我们进入明道云的后台账号里面,会看到有一个集成中心,它现在集成了企业微信、钉钉、微信公众号、飞书、Welink,包括其他LDAP方式的授权。通过这些集成,可以做到消息推送、账号体系同步。再根据刚才说的企业级的授权接口,就可以以现有的第三方平台做账号集成和消息推送。

在这里插入图片描述

三、明道云可以怎么做

讲了这么多我们明道云开放的能力,我们再回过头来看明道云可以怎么做?

还是刚才开头提到的场景,从客户下单到完整的结算。假设我们没有用第三方系统,该怎么做?首先,客户下单平台有特殊的交互,可以通过前端开源加上外部门户,用微信号、手机号登录,实现这种小程序的能力。将其嵌入到公众号中,用户可以直接在线下单,查看自己的订单记录,使用微信的支付系统。

到业务流转环节,经销商的订货、企业接单、供应商生产制造,他们之间的信息融合就可以通过应用的API、工作流的Webhook。再结合一些外部门户的能力,在这些不同的角色之间做数据的协作流转。如果是物流发货或者一些对实时性要求高的场景,就可以集成第三方平台或者使用API查询控件、工作流代码块。员工在明道云界面上就可以实时获取物流信息。
在这里插入图片描述

四、我们还需要哪些能力

除此之外,我们还需要哪些能力?我大概总结一下我们要做的4大块的内容。

第一是开放平台。我最早讲的开放平台是老的协作模块的产物,它对我们目前应用下面的API支持还不够友好,所以后面计划开放平台会加入更多的应用级别的接口。或者我们现在应用API是应用级别的,后面我们也会支持用户生成个人的授权token,它的接口只可以获取自己的数据,这样再去做应用第三方集成的时候会方便很多。

第二就是SDK。现在应用对接系统的时候,它是要根据我们的示例代码,它的别名比较复杂,控件类型比较多,筛选类型比较多。后面我们会针对不同的开发语言提供针对性的SDK,用户再去对接OpenAPI的时候就会更方便。

第三是用户期望已久的数据集成能力。增加直连数据库能力,数据在第三方,我不希望同步过来,但是又希望拿到类似我们现在API查询里的结果。比如企查查,其实工商信息是存在那边的,但是我可以通过接口的方式拿过来,通过直连数据库直接获取到这部分数据。然后就是外部数据源的同步,要支持外部的数据源给写到明道云,或者是明道云的数据写到外部的数据库,当然也可能是明道云不同网络下的应用,把一个工作表的数据同步到另外的一个应用的工作表中。

第四个就是插件能力。有的伙伴是有AI能力的,那么可以开发一个自定义控件,放到应用市场,大家下载之后就天然有了AI的能力。我们的插件中心主要包含了自定义控件、工作流自定义节点、自定义的视图、自定义的函数,有了这些能力后,我们对这些有深度开发能力的客户提供了一种可能,我们把自己的产品能力直接放到应用市场或者开发者中心,上传过去就可以供客户方便地使用它。

在这里插入图片描述

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

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

相关文章

SpringBoot接参注解与校验失败后的三种异常

文章目录一、SpringBoot中的参数传递注解1、PathVariable2、RequestParam3、RequestBody4、不用注解或者ModelAttribute二、参数类型校验失败后的三种异常一、SpringBoot中的参数传递注解 先看看非json下参数的接收和传递: 1、PathVariable PathVariable注解用于…

软件框架-实现使用@Component@Data@Configuration@Bean(配置类控制类实体类)等方法实现将配置文件从8080端口显示在网页上

一、前言 1.该程序代码是使用idea2021.12版本编写的,若使用其他软件请对照好配置; 2.这个程序具体的内容我忘了,只知道使用ComponentConfigurationPropertiesData ConfigurationBeanRestControllerAutowiredGetMapping等方法写的&#xff0…

chatGPT学英语,真香!!!

文章目录学习目标学习内容目标方式过程学习时间学习产出学习目标 能够在三个月的练习后,和真人外教比较流畅的沟通! 最近chatGPT实在是太火了,各种事情都能干,能改论文、写代码和翻译。 看到B站很多教程教我们直接用chatGPT进行…

【数据库管理】②实例管理及数据库启动关闭

1. 实例和参数文件 1.1 instance 用于管理和访问 database. instance 在启动阶段读取初始化参数文件(init parameter files). 1.2 init parameter files [rootoracle-db-19c ~]# su - oracle [oracleoracle-db-19c ~]$ [oracleoracle-db-19c ~]$ cd $ORACLE_HOME/dbs [oracl…

Docker 翻脸,不再开源,期待后续

前几日,Docker Hub出了一件大事!但凡创建了“organisation”的用户都收到了一封含有简短PDF链接的邮件。邮件的内容“金钱味”十足:如果不按照要求升级付费,用户就将失去对数据的访问权限。此举不仅会破坏开源项目的自动化构建&am…

GPT-4发布,这类人才告急,大厂月薪10W+疯抢

ChatGPT最近彻底火出圈,各行各业都在争相报道,甚至连很多官媒都下场“跟风”。ChatGPT的瓜还没吃完,平地一声雷,GPT-4又重磅发布! 很多小伙伴瑟瑟发抖:“AI会不会跟自己抢饭碗啊?” 关于“如何…

C++ 16 vector容器

目录 一、vector容器 1.1 简介 1.2 构造函数 1.3 赋值操作 1.4 容量和大小 1.5 插入删除 1.6 数据存取 1.7 互换容器 1.8 预留空间 一、vector容器 1.1 简介 ① vector数据结构和数组非常相似,也称为单端数组。 ② vector与普通数组区别:不同…

6.链路层和局域网

链路层链路层的主体是网络适配器,也称为网络接口卡2. 变换局域网链路层交换机的任务是在主机和路由器之间承载数据报没有两个适配器有相同的MAC地址适配器到哪里,MAC地址都不会改变主机移动时,主机的IP地址需要随之改变,以改变连接…

Vue+springboot 高校图书馆座位预约选座系统java毕业设计项目推荐

目前现有的图书馆选座管理系统对于用户而言其选座管理流程仍然过于繁琐,对于图书馆选座管理而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。 1.2 项目目标 图书…

Python视频软件解析教程【源码可送】

人生苦短,我用python 快放假了… 有的人出去玩~ 有的人在家里呆着看电视~ 这次就来康康怎么做一个好玩的小软件~ (嘘~自己用) 瓜子花生小零食准备好了吗? 效果展示 我们先看看效果 这是本次要写的界面 主流视频都可以看&…

JDK20正式发布了GA版本,短期维护支持,以及JDK21预览

最近,Oracle发布了JDK20,相比对于Java开发者来说,JDK的发版是比较收关注的事情了,小简也来和大家一起了解了解JDK20发生了什么变化呢? 首先,JDK20是一个短周期版本,有6个月的维护时间&#xff0…

Maven和Gradle的区别

首先谈谈为什么要学习Maven? 依赖管理 大家还记得在学习JavaWeb时需要向web项目中引入少许jar包嘛?还记得引入jar包的繁琐过程嘛?实际项目中可能光基座需要引入的jar包就成千上万,jar包从哪里获取也是一个问题。项目中的jar包不仅…

ChatGPT写作文章-快速使用ChatGPT不用注册方式

如何更好地使用ChatGPT批量生成文章:详细教程 作为一款强大的文本生成器,ChatGPT可以帮助您快速、高效地批量生成文章。但如果您还不知道如何更好地使用ChatGPT,那么这篇详细的列表教程将会指导您如何使用它来生成高质量的文章,提…

“工业转型,大势所趋”:ITES深圳工业展暨阿里巴巴1688工业采购节开幕

2023年以来,中国制造业快速发展、需求深度释放,创造了大量的产业机遇。与此同时,国内外社会经济发展不确定因素众多,制造类企业、专业买家呼唤提升发展确定性;面临时代变局,工业品市场渴望在发展模式、合作…

华为OD机试题,用 Java 解【删除指定目录】问题 | 含解题说明

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典本篇题目:删除指定目录 题目 某文件系统…

JDK 中用到了哪些设计模式?

以下是整理的⼏个在JDK 库中 常⽤的⼏个设计模式。桥接模式这个模式将抽象和抽象操作的实现进⾏了解耦,这样使得抽象和实现可以 独⽴地变化。 在Java 应⽤中,对于桥接模式有⼀个⾮常典型的例⼦,就是应⽤程序使⽤ JDBC 驱动程序进⾏开发的⽅式…

Node.js 中的线程 与 并发

Node.jsNode.js 中的线程 与并发jcLee95 :https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/129784985 目 录1. JavaScript 与线程1.1 Java…

8种特“坑”的 SQL 写法,性能降低100倍

给大家分享几个SQL常见的“坏毛病”及优化技巧。 SQL语句的执行顺序: 1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type、 name、 create_time 字段上加组…

春分-面试

青岛 zc: 1.String的类型 string、stringbuilder 、stringbuffer? String不可变、另外两个可变、StringBuilder线程不安全、但是效率高、并且String不能被继承。 JVM是C写的编译后的机器码, 2.集合类的用法,还问了键值对。key如果…

06solr 文件删除

文章目录 0x01 漏洞介绍0x02 影响版本0x03 漏洞环境0x04 漏洞复现0x05 修复建议摘抄免责声明0x01 漏洞介绍 Apache Solr 存在任意文件删除漏洞,在目前的最新版本(8.8.2)中仍然未被修复,漏洞的根本成因是函数 **Files.deleteIfExists()**对要删除的文件名并未做校验。同时 Apa…