首页新闻找找看学习计划

系统对接实现流程

0
悬赏园豆:30 [已解决问题] 解决于 2012-03-15 17:50

我们系统要做一个接口供其他系统调用,我们系统是一个流程,其他系统调用我们一个方法,我们这边执行流程,而且每执行一个过程,就得及时把状态返回给调用方。比如其他系统调用我们的申请,我们这边就得从申请-->审核-->复核-->最终确定  走完流程,而且每一个流程都得返回状态,如果我们这边不往下走,他人的系统的状态就总是停在那里。有思路的请告诉我

问题补充:

补充:我们系统是一个通用的系统,会有很多系统调用我们的接口,对方调用的时候把所需信息传过来,我们这边人为一步步处理,每处理一步就得把状态返回,到最后确认的时候得把确认信息返回。所以相互调用这个可行性不高,因为其他人的系统一个是比较多,也不是我们开发的;再次,当对方的地址变化时,不好处理。

郑智平的主页 郑智平 | 初学一级 | 园豆:142
提问于:2012-03-13 20:38
< >
分享
最佳答案
1

可以通过双方互相调用,即他调用你的,然后你处理完调用他,这和在同一个系统内是一样的

另一种是一方只提供被动调用的接口,另一方调用后,定时轮询,以获知是否继续处理

收获园豆:30
丁学 | 专家六级 |园豆:18530 | 2012-03-13 21:10

您好,首先感谢您的积极回答。但是我得说一个问题:就是我们系统是一个比较通用的系统,会有十几个甚至上百个系统调用我们的接口,我们不能够把调用我们系统的对方地址都获取并保存,这个方案可行性不高,如果是单独的两个系统对接,这个是完全可以的;对于第二种定时轮询,那多久询一次呢,而且有的数据的及时性程度不同的话,也会有数据的延迟情况,还有就是到最终确认时还得把我们这边的处理结果返回给调用方。

郑智平 | 园豆:142 (初学一级) | 2012-03-14 08:47

@郑智平: 你们这种情况,只能使用第二种,由所有调用方自行调用你们定义好的接口

调用时间可以在你的文档中定义,然后对方按规则调用,不过一般都只是做一个频率限制,防止被拖死。每种数据的及时性是不一样的,所以需要提供不同的接口,每一种接口都会有不同的轮询间隔

比如,如果是一个电子商务类的平台,库存信息可能每分钟都要同步,订单每十分钟抓取一次就可以了,而商品信息,可能每小时才会同步一次

另外你最后那个确认,也可以通过一样的方式,只是你们提供一个接口,然后对方通过一个事务标识来获取你这边的处理状态。(事务标识是指接口使用的key,比如库存同步用的是商品ID,订单同步用的是订单号等)

延迟肯定会有的,这种方式只能做异步,而异步必然产生延迟。(PS:同步也无法完全避免延迟,比如他调用了,然后你系统很忙,返回很慢,不但还是有延迟,而且对方会一直卡在那里)

丁学 | 园豆:18530 (专家六级) | 2012-03-14 12:58

@丁学: 嗯,你说得很对,我们内部也讨论和很久,觉得说的第二种方案最可行,我们只负责写方法,他们可以轮回调用,有一点点数据延迟是允许的。

郑智平 | 园豆:142 (初学一级) | 2012-03-15 17:50
其他回答(3)
1

双方用WebService来实现,首先确定整体流程,该谁实现的谁就实现,然后确定接口函数,函数参数、参数类型等,每次调用都返回统一的参数告知对方,这样就可以成功了。

az235 | 园豆:8263 (大侠五级) | 2012-03-14 08:33

您好,很感谢您的积极回答。

您说的和上面那位仁兄的第一种情况一样。

但是我们有一个问题:就是我们系统是一个比较通用的系统,会有很多系统调用我们的接口,我们不能够把调用我们系统的对方地址都获取并保存,而且还要对方系统有相应的接口,这个方案可行性不高,如果是单独的两个系统对接,这个是完全可以的。

支持(0) 反对(0) 郑智平 | 园豆:142 (初学一级) | 2012-03-14 08:50

@郑智平: 做医疗行业的?

支持(0) 反对(0) az235 | 园豆:8263 (大侠五级) | 2012-03-14 08:53

@az235: 各种行业都会有这种业务吧,比如淘宝的开放API,也是一样的方式 

支持(0) 反对(0) 丁学 | 园豆:18530 (专家六级) | 2012-03-14 12:59

@丁学: 淘宝这种根本就不用这么复杂,只有医疗行业的最复杂。

支持(0) 反对(0) az235 | 园豆:8263 (大侠五级) | 2012-03-14 13:32

@az235: 不巧在下两个行业都做过,兄弟小看电商了啊

支持(0) 反对(0) 丁学 | 园豆:18530 (专家六级) | 2012-03-16 09:32
0

这个问题支付宝的接口就实现了啊。首先提供一个标准的接口供对方调用,提交的参数中要有一个接收通知的接口地址,你们把返回的状态信息通过他们提供的地址返回回去,他们接受成功后返回给你success,否则你们要继续通知。

zhangkai2237 | 园豆:184 (初学一级) | 2013-04-17 09:29
0

你好,我想问一下你们系统怎么对接的?

哈哈~~ | 园豆:48 (初学一级) | 2016-07-06 16:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册