当前位置: 首页 > Web前端 > JavaScript

为了打通互联网,明道云做了十件事

时间:2023-03-27 10:17:33 JavaScript

本文来自明道云高级研发经理孙伟在明道云2022秋季合作伙伴大会上的演讲。经过校对和编辑,汇编成演讲精华。1、开放没有选择。许多客户选择我们的一个重要原因是明道云可以提供的产品的开放性。开放实际上是别无选择。坦率地说,我也不想公开。希望客户所有的业务系统都可以通过明道云来管理,这样对我们更有好处。然而在现实中,由于企业业务的多样性和复杂性,没有任何一个平台可以一站式解决所有问题。为了方便客户,我们必须开放自己,让客户更好地使用它。1、一个典型的业务场景需要多少个系统?我们先来看一个典型的业务场景。客户从网站下订单,经销商收到订单后向公司下订单。如果企业订货后不自行生产,则需要向供应商采购。供应商生产后,需要到物流公司发货。发货完成后,客户终于收到货了。这样一个企业日常生活中经常涉及到的环节,会用到什么样的系统呢?从下单开始,可能需要有电商平台,比如京东、天猫;还有一些客户是自营的,使用一些小程序,涉及到支付系统。它还将涉及业务管理,使用CRM和ERP等管理系统。如果他是分销系统,那么也必须有分销系统。如果是工厂,还会涉及到MES系统、物流管理系统等,这么多系统,一个公司去完成是不现实的,而且中间任何一个环节都不能和其他系统友好的沟通,客户可能不会选择你。2、明道云为什么要开放?如果不考虑交互能力,理论上道云可以搭建任何一套业务系统。但是,我们的客户有很多个性化的需求,所以我们必须选择开放。特殊的互动。有些客户对前端界面的布局和交互有特殊要求。这个时候用明道云来实现就不太友好了。系统集成。一些客户多年来一直在使用电子商务平台现有的核心系统。他不太可能马上把所有的系统都迁移到明道云上,但他需要明道云与原来的系统进行通信,进行一些数据传输。操作逻辑极其复杂。比如股票基金的净值计算,需要收集大量的历史数据,做大量的处理;还有比如大规模的数据分析,明道云本身并不擅长TB级别的处理。其他要求。比如同步一些物流信息、海关数据、企业业务信息、在线签约等,这些场景并不适合明道本身。我们无法友好地满足这些客户需求,只能选择自己开放,交给其他产品来完成。2、明道云做了什么让我们一起来看看,明道云为平台的开放做了哪些工作。1.开放平台其实是明道旧协作模块的产物。因为明道云是企业协作平台,支持用户或者第三方开发者进入明道云的开放平台设计开发一些扩展应用,然后上传到明道云的应用市场进行推广,获得额外收入。当然,这里的扩展应用并不是指我们目前正在用明道云构建的应用。最典型的就是第三方SaaS和明道云的结合。它基于Auth2.0授权机制。使用账号密码登录后,得到一个token,然后得到一些数据。这里主要是老的协作模块,比如动态、任务、日程、群组;还有组织和帐户。比如我拿到账号信息和用户加入的网络信息后,我可以给网络下的用户推送整合消息。当然,明道云的产品路线图中还有集成中心和开发者中心,未来可能会整合起来,打造一个全新的明道云开放平台。2、企业授权开放接口前面我们提到的开放平台是基于个人授权的,所有数据都是用户自己的;而企业授权开放接口则独立于明道云的个人授权API。未来,两种制度将并存。该授权体系完全服务于企业相关的数据接口,具有较高的权限。现在这组密钥只能在后台被网络管理员看到。主要内容包括三个部分:审批。明道云已有的审批系统可以通过本系统在线创建审批,获取审批列表,并为每个审批配置一个Webhook通知节点。当明道云的审批有变化时,可以通知外部系统。组织。又分为用户、部门、职位、上下级关系四项。通过这些接口,我们将账户与外部第三方平台进行集成,主要是对数据进行增删改查,包括对第三方已经存在的类似数据进行关联处理。应用程序管理。应用是指在DaoCloud中构建的应用。我们可以在线创建一个应用,获取应用下的授权信息。3.应用每次OpenAPI创建一个应用,明道云都会自动为其生成一套API演示模板。应用管理员可以看到应用的API开发文档,包括白名单、授权管理、授权密钥。也是非个人的,只要是应用下的数据,都可以获取,只是权限分为完全权限和只读权限。只读权限是指可以开放给第三方调整数据,但不允许他编辑和删除。除了授权,还有哪些核心功能?第一,组织结构。我们可以通过应用的授权信息获取应用的组织结构,包括菜单项和工作表,获取工作表的结构信息,包括一些控制列表。二是申请资料。我们可以对申请数据进行增删改查。另一个重要部分是应用程序权限系统。我们可以通过这组API,对应用下的角色做一些处理。4.WorkflowWebhook上面说的东西,无论是开放平台还是API,都需要第三方系统。但是有时候,我们并不需要链接第三方系统,而是希望通过免代码的方式更好的与外部系统进行集成。然后,明道云工作流支持使用Webhook与外界进行通信。主要分为Webhook节点和API请求节点两种方式。Webhook节点会自动生成URL链接,被动接收外部消息请求。我们知道数据同步一般有两种,一种是传统的集成,定时批量同步;另一个是消息集成模块,它遵循IFTTT模型进行实时同步。比如我在另一个平台做一个实时操作,假设这个平台也支持消息推送,它可以向Webhook节点推送一个消息通知。明道云获取后可以实时获取信息,不需要每隔一段时间就去拉取。API请求节点之前也叫Webhook节点,后来因为搭建了一个集成中心,所以改成了API请求节点。明道云内部的一些事件触发器或定时任务可以请求外部地址。这个请求可以是获取数据,也可以是将明道云的数据推送到外部。5.WorkflowcodeblockWorkflowWebhook是基于HTTP的,但是在现实中,有一些传统的系统,或者一些特殊的系统,授权方式比较复杂,所以我们做了一些更深入的能力,就是codeblocknode在工作流程中。它主要有两种开放语言:Javascript和Python。某些版本的Node.js和Python会引用某些包。比如有一些复杂的授权方式,是不能通过API直接连接的,我们可以自己通过代码块来引用。我们在进行一些请求的时候,往往需要对请求参数进行预处理。比如获取参数后,我们需要对返回的数据做一些预处理。如果我们通过现有的工作流节点来处理,会比较麻烦。但是有了代码块,我们可以在请求前优化请求参数,然后在得到请求结果后格式化请求返回给前端,这样会比较友好。6、集成中心目前的集成中心可以封装一套授权认证,包括一个API接口组,方便内部甚至外部用户调用。我们已经预置了天眼查、小个通、易签宝等这几个接口。我们前面提到的客户有在线签名的需求,明道云自己是做不到的,但是如果我们配合e-signature,我们可以通过明道云的一个节点快速完成这些操作。7.工作表/自定义页面API查询控件。我们前面提到的Webhook和集成中心的流程都是滞后的。之前没有API查询控制,他们是怎么处理的?处理流程一般是这样的:一条记录??创建或更新后,会自动触发一个工作流,工作流做一些逻辑,最后将结果更新到工作表中。这种方式的结果不是实时反馈,所以我们推出了工作表控件API查询,可以直接在界面上调用第三方接口,在界面上进行实时反馈。它也是一个按钮。点击查询后,数据会实时呈现在页面上。嵌入控件。工作表和自定义页面具有嵌入式控件。明道云已有的控件可能不能满足部分客户的需求,客户可以自己开发一些控件,通过嵌入式控件嵌入到明道云中,实现单点登录和账号集成,实现自定义的能力控制。自由连接控件。这个控件可能不会被很多人使用。主要是对接明道云旧的协同模块,包括动态、任务等,比如一个工单记录和一个日程或者任务相关联,我们可以关联起来。文字识别。自带的能力主要是身份证和一些发票的识别。因为我们的API能力,其实我们可以自己扩展更多的OCR识别能力。8.公共表单、外部入口和共享公共表单在现实中,我们有很多需求不需要是有状态的,只需要收集一些外部数据即可。比如政府单位做民意调查,或者我们明道云合伙人大会需要收集注册信息。在这种情况下,我们不希望用户注册,我们只需要获取这些数据。明道云提供表单打开功能,允许用户生成并发布已有的工作表,并附上公开链接或二维码,供外部用户直接填写。填写完成后,我们还可以生成一个公开查询链接,用户可以通过刚刚填写的关键信息查看之前填写的详细数据。对外门户的公开信息是无状态的,不会记录一些标识填写人的身份信息,因为没有账号和权限系统,在某些场景下可能不适用。比如我前面提到的场景,经销商跟工厂合作的时候,经销商去采购的时候,我不想让他注册明道云账号,但是我也想让他有一定的权限可以看到他自己的历史。数据;并且可以对经销商进行身份验证,比如通过手机号、微信号等。在这个场景中,我们为每个应用提供对外的入口能力。用户可以配置自己的企业微信号,公众号,并集成消息通知功能。用户可以通过第三方平台在不知不觉中进入应用并完成操作。共享在什么场景下使用?分享的内容不需要有状态,也不需要有外部数据,只需要经过验证即可。比如我老婆的公司做谷歌推广,每个季度都需要跟供应商做billing。之前看到她很努力的用Excel汇总,然后给每个供应商单独生成一个Excel,发给客户确认。我说你根本不需要这样做。我花了几分钟才摆好两张桌子。数据导入后,会自动为每个供应商生成一个对外分享的二维码。然后把二维码分享给他,他就可以扫码查看历史账单记录,这样供应商的体验也很好,工作效率也大大提高。下个版本我们会加强分享能力,支持分享更多类型的视图,支持配置分享记录可以填写哪些数据,支持生成类似于分享密码和密钥的认证工具。9、前端开源我们为高端玩家提供前端开源能力,零门槛获取和扩展APaaS能力,充分实现前端界面的个性化。通过前端的开源,用户可以优化界面的布局和交互,结合我们刚刚提到的自定义界面,实现更多的交互可能。10、第三方平台集成进入明道云后台账号,我们会看到一个集成中心,目前集成了企业微信、钉钉、微信♂、飞书、Welink,包括其他LDAP授权方式。通过这些集成,可以实现消息推送和账户系统同步。然后根据刚刚提到的企业级授权接口,可以利用现有的第三方平台进行账号整合和消息推送。3.明道云可以做什么?说了这么多我们明道云的开放能力,我们回过头来看看明道云能做什么?还是一开始说的场景,从客户下单到完成结算。假设我们不用第三方系统,那怎么办呢?首先,客户下单平台有一个特殊的交互,可以通过前端开源和对外入口实现,用微信号和手机号登录,实现这个小程序的能力。嵌入公众号,用户可以直接在线下单,查看订单记录,使用微信支付系统。在业务流转中,经销商下单、企业接单、供应商生产制造,它们之间的信息融合可以通过应用API和工作流Webhook实现。结合一些外部门户的能力,可以在这些不同的角色之间协同传输数据。如果是物流配送或者一些实时性要求高的场景,可以集成第三方平台或者使用API??查询控件和工作流代码块。员工可在明道云界面实时获取物流信息。4、我们还需要什么能力除此之外,我们还需要什么能力?我大致总结一下我们要做的4大块内容。一是开放平台。我首先讲的开放平台是旧协作模块的产物。对于我们目前应用下的API支持还不够友好,所以计划未来开放平台会增加更多应用层的接口。或者说我们现在的应用API是应用层的。后续我们也会支持用户生成个人授权令牌。它的接口只能获取自己的数据,这对于第三方集成应用会方便很多。第二个是SDK。现在应用对接系统时,是基于我们的示例代码。它的别名更复杂,控件类型更多,过滤器类型也更多。后续我们会针对不同的开发语言提供针对性的SDK,方便用户对接OpenAPI。三是用户期待已久的数据整合能力。增加直接连接数据库的能力。数据在第三方。我不想同步它,但我想获得类似于我们当前API查询的结果。比如企业查,其实业务信息是存在的,但是我可以通过接口获取,通过直连数据库直接获取这部分数据。然后是外部数据源的同步。需要支持外部数据源写入明道云,或者明道云的数据写入外部数据库。当然也可能是明道云在不同网络下的应用。同步到另一个应用程序的工作表。第四是插件能力。有的合作伙伴有AI能力,你可以自己开发一个自定义控件,放到应用市场。下载之后,自然而然就拥有了AI能力。我们的插件中心主要包括自定义控件、工作流自定义节点、自定义视图、自定义函数。有了这些能力,我们就为这些具有深度开发能力的客户提供了一种可能。我们把自己的产品能力直接放到应用市场或者开发者中心,上传方便客户使用。