1 概述
系统集成在企业数字化建设中,因为异构的原因,技术因素和人为因素的叠加,往往给人印象复杂难控,主要表现标准混乱不确定,沟通麻烦协调困难。
系统集成虽然复杂,牵扯面大,但总结起来,系统之间关系基本模型其实很简单,如下图所示:
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 操作指导
在实际项目中,当涉及两个系统要对接时,总是由一方主动提出要求,另乙方做出回应,并且需要来回沟通确认多次,才能最终完成集成目标。
下面我们将假设有甲乙两系统需要对接,来看看对接过程中会涉及哪些关键步骤。
2.1 流程概览
2.2 流程说明
1. 乙方系统业务发现某项业务需要甲方系统提供API接口:从甲方获取数据或者将数据推送给甲方;
2. 乙方实施交付根据业务要求,提交具体要求:什么业务域的数据,哪些字段,数据源在哪方,调用时机、周期等信息;
3. 甲方实施交付收到乙方需求后,根据甲方系统系统,将需求进一步细化:甲乙双方数据对应关系等,且明确是否是甲方开发接口;
4. 甲方实施交付将需求提交到甲方研发,研发确认信息足够后,将进行设计;
5. 甲方研发输出给API文档给到乙方研发;
6. 甲方研发进行开发部署;
7. 甲方研发通知乙方研发联调测试;
8. 乙方实施交付业务验证,对接完成!
由上面流程可以看出,甲乙两个团队沟通主要就三个环节,需求、API文档、调试环境。且对应三个彼此需要认可的输出物:《需求说明》、《API文档》、《环境说明》。
经常对接效率低下,多半是因为这三个环节不清晰造成的,导致来回沟通次数多,耗时多。本文将提供三个输出物的模板参考,尽量达到简洁,信息够用,不增加文档负担。
2.3 AB模式
另外,我们在进行系统对接时,常常会遇到一个来回讨论的问题,就是你开发接口还是我开发接口的问题。因为从仅仅实现功能上来看,无所谓哪边开发,反正都能实现连通。正是因为这样,双方团队都会站在自己的利益角度,比如工作量的问题,都不愿吃亏,最终一般谁弱势谁吃亏。这里将提供一种以客观逻辑为基础的模式,或者说是共识原则,为双方团队提供最佳实践参考,使沟通更加高效。.
我们假设站在金蝶角度,系统对接将分为AB模式,如图所示:
所谓A模式:就是金蝶调用第三方接口;
所谓B模式:就是第三方调用金蝶接口;
两种模式其实在技术上为了实现连通性没有本质区别,关键是当我们面对两种选择时如何选择,进一步说是如何快速选择。
AB模式的选择,我们以图形的形式直观展现选择逻辑,见下图指引:
理论上在源目标方确定后,不管哪一方开放接口都能实现。同时不管哪种方式都需要有数据一致性和稳定性的要求。
(方式1)其他三方系统推送
优点:适合时效性高。
缺点:并发或者大数据量推送可能失败,需要做补偿等措施; 第三方系统需要做失败记录、重试机制; 苍穹平台需要做熔断、服务容器按需扩容;
(方式2)金蝶苍穹平台主动抓取
优点:适合对时效不高或者数据量大,则可以按一定频率主动请求,有利于系统负荷压力稳定。 第三方不需要做补偿重试等措施;
缺点:苍穹平台需要做补偿措施、重试、异常记录;
2.4 各阶段输出物
保证各个阶段输出物的质量,将大大减少沟通成本,提交对接效率:
1. 需求阶段:系统对接需求表(模板见附件)
2. 开发阶段:API接口文档(模板见附件)
2.5 过程中沟通指引
1. 需求阶段,甲乙双方不明确时,双方实施交付进行沟通(一般不需研发参见);
2. 实施交付将需求提交给研发时,实施交付与研发沟通确认,研发安排开发计划;
3. 开发阶段,API接口不明确时,双方研发进行沟通(一般不需实施交付参加);
4. 联调阶段,双方研发互动(一般不需实施交付参加);
API接口文档模板.docx(141.63KB)
系统对接需求表.xlsx(11.68KB)
推荐阅读