跨团队系统对接实践总结原创
金蝶云社区-Chunbo
Chunbo
5人赞赏了该文章 692次浏览 未经作者许可,禁止转载编辑于2022年12月06日 11:11:21

概述

系统集成在企业数字化建设中,因为异构的原因,技术因素和人为因素的叠加,往往给人印象复杂难控,主要表现标准混乱不确定,沟通麻烦协调困难。

系统集成虽然复杂,牵扯面大,但总结起来,系统之间关系基本模型其实很简单,如下图所示:

 image.png

 

l 直连模式:

A、B直接相连,比如通过Rest-API,webservice,以及其他RPC形式等。相互间互相开放和提供了一系列接口函数。为了实现某一功能一般由一个或者多个相互间的函数调用组成。我们常常所说的查询,推送,回调,同步,异步很多概念都只是从不同角度或者组合、触发时机不同时的不同表述。

(1) A角度来看,主动调用Fb函数,根据参数x获取结果y,这是典型的查询模式;

(2) 同样为了获得数据,可以开放Fa接口,让B主动调用,以参数的方式将数据推送过来,这就是典型的推送模式;

(3) 如果Fb不能立刻完成,或者说是比较耗时的操作,这是采用两个接口组合,Fb立刻返回,同时告诉B一个Fa接口,等处理完成后调用Fa告诉结果,这就是回调模式;

 

l 间接模式:

如果把贡献环境看成一个中间系统,相当与A与共享环境直连,共享环境与B直连,所以本质没有变化,AB间相互隔了个中间系统,仅仅是带了个面具而已。

与共享环境之所以使用pull或者push,因为环境一般情况下都是被动的,所以站在AB角度,似乎要么是pull,要么是push,其实只是代表了函数的名字而已。

集成服务云属于共享环境的角色,但是我们经常在使用的时候是主动去调用第三方系统,表现出一种主动性,所以主动被动就看站在哪个角度了。

 

本文希望在认识最简模型的基础上,把系统集成过程的各个环节,包含团队间的沟通都考虑进来,形成流程方法。

操作指导

在实际项目中,当涉及两个系统要对接时,总是由一方主动提出要求,另乙方做出回应,并且需要来回沟通确认多次,才能最终完成集成目标。

下面我们将假设有甲乙两系统需要对接,来看看对接过程中会涉及哪些关键步骤。

2.1 流程概览

 image.png

 

2.2 流程说明

1. 乙方系统业务发现某项业务需要甲方系统提供API接口:从甲方获取数据或者将数据推送给甲方;

2. 乙方实施交付根据业务要求,提交具体要求:什么业务域的数据,哪些字段,数据源在哪方,调用时机、周期等信息;

3. 甲方实施交付收到乙方需求后,根据甲方系统系统,将需求进一步细化:甲乙双方数据对应关系等,且明确是否是甲方开发接口;

4. 甲方实施交付将需求提交到甲方研发,研发确认信息足够后,将进行设计;

5. 甲方研发输出给API文档给到乙方研发

6. 甲方研发进行开发部署;

7. 甲方研发通知乙方研发联调测试;

8. 乙方实施交付业务验证,对接完成!

 

由上面流程可以看出,甲乙两个团队沟通主要就三个环节,需求、API文档、调试环境。且对应三个彼此需要认可的输出物:《需求说明》、《API文档》、《环境说明》。

经常对接效率低下,多半是因为这三个环节不清晰造成的,导致来回沟通次数多,耗时多。本文将提供三个输出物的模板参考,尽量达到简洁,信息够用,不增加文档负担。

2.3 AB模式

另外,我们在进行系统对接时,常常会遇到一个来回讨论的问题,就是你开发接口还是我开发接口的问题。因为从仅仅实现功能上来看,无所谓哪边开发,反正都能实现连通。正是因为这样,双方团队都会站在自己的利益角度,比如工作量的问题,都不愿吃亏,最终一般谁弱势谁吃亏。这里将提供一种以客观逻辑为基础的模式,或者说是共识原则,为双方团队提供最佳实践参考,使沟通更加高效。.

我们假设站在金蝶角度,系统对接将分为AB模式,如图所示:

 image.png

所谓A模式:就是金蝶调用第三方接口;

所谓B模式:就是第三方调用金蝶接口;

 

两种模式其实在技术上为了实现连通性没有本质区别,关键是当我们面对两种选择时如何选择,进一步说是如何快速选择。

AB模式的选择,我们以图形的形式直观展现选择逻辑,见下图指引:

 image.png

 

理论上在源目标方确定后,不管哪一方开放接口都能实现。同时不管哪种方式都需要有数据一致性和稳定性的要求。

(方式1)其他三方系统推送

优点:适合时效性高。

缺点:并发或者大数据量推送可能失败,需要做补偿等措施; 第三方系统需要做失败记录、重试机制; 苍穹平台需要做熔断、服务容器按需扩容;

(方式2)金蝶苍穹平台主动抓取

优点:适合对时效不高或者数据量大,则可以按一定频率主动请求,有利于系统负荷压力稳定。 第三方不需要做补偿重试等措施;

缺点:苍穹平台需要做补偿措施、重试、异常记录;

 

2.4 各阶段输出物

保证各个阶段输出物的质量,将大大减少沟通成本,提交对接效率:

1. 需求阶段:系统对接需求表(模板见附件)

2. 开发阶段:API接口文档(模板见附件)

2.5 过程中沟通指引

1. 需求阶段,甲乙双方不明确时,双方实施交付进行沟通(一般不需研发参见);

2. 实施交付将需求提交给研发时,实施交付与研发沟通确认,研发安排开发计划;

3. 开发阶段,API接口不明确时,双方研发进行沟通(一般不需实施交付参加);

4. 联调阶段,双方研发互动(一般不需实施交付参加);


赞 5