Others-接口集成方式

1. 异步通信方式可分为不互锁、半互锁和全互锁三种类型:

 a.不互锁方式

  主模块发出请求信号后,不等待接到从模块的回答信号,而是经过一段时间。确认从模块已收到请求信号后,便撤消其请求信号;从设备接到请求信号后,在条件允许时发出回答信号,并且经过一段时间,确认主设备已收到回答信号后,自动撤消回答信号。可见通信双方并无互锁关系。

b.半互锁方式

  主模块发出请求信号,待接到从模块的回答信号后再撤消其请求信号,存在着简单的互锁关系:而从模块发出回答信号后,不等待主模块回答,在一段时间后便撤消其回答信号,无互锁关系。故称半互锁方式。

c.全互锁方式

  主模块发出请求信号,待从模块回答后再撤其请求信号;从模块发出回答信号,待主模块获知后,再撤消其回答信号。故称全互锁方式。

2.接口业务逻辑处理步骤:

 接口集成过程中需注意以下几点:

 2.1每条记录需有三个字段:关键值/下发标识/结果标识及消息

 2.2接口数据与业务处理尽量分离(需判断接口数据量)

 2.3必须遵循握手机制

 2.4错误记录的及时反馈及处理

 a.若为发送方

  1.获取未下发的记录(排除已下发成功或是失败的记录,若是记录下发后返回错误则需业务人员处理后标记为未下发状态)

  2.调用下游系统提供的接口

  3.若下游系统无反馈,则下发标识为空,若下游系统有反馈值,则当前记录下发标识为X。

   同步则立即获取返回结果,并在数据表中标识当前记录的结果及消息文本。

   异步则后续根据下游系统的反馈值来判断当前记录的执行结果。

 b.若为接收方

  1.将初始传入参数进行存储(历史记录)

  2.传入值校验,是否数据有误

  3.编写业务处理逻辑

  4.执行结果输出并返回给上游系统

  5.日志记录并消息推送相关责任人(错误记录需业务人员及时处理)

3.接口集成过程中出现的各类问题:

 a.通讯异常

  接口通信过程中出现超时或是其他异常,而导致下游无返回值,则当前记录需要重新下发。

 b.接口数据量大

  多线程处理

  数据分批轻量化

  接口数据与业务分离,接口中尽量不做业务逻辑处理(接口数据先存储后处理--需数据准确前提)。

 c.接口数据类型

  上下游接口数据类型及字段长度不一致  

 d.业务处理逻辑

  严谨:业务前后逻辑需严谨,不要出现边改订单边入库现象。

  先后:业务逻辑处理先后顺序需谨慎,不要出现物料操作出库而该物料还未入库的情况。

  逻辑:上下游系统对业务的理解不一致而导致业务处理逻辑不同。  

 e.业务异常处理

  通知:接口出现异常需要及时告知用户(特别是后台处理模式)

  处理:接口问题需要及时反馈并处理,特别是财务集成度较高的业务,前端业务错误容易对后续业务造成连锁反应。

  日清:异常问题必须日清处理。

 f.任意时间点一致

  上下游系统数据在任意某个时间点数据需保持一致,若出现差异,急及时检查接口握手机制是否符合要求。

  上下游系统数据出现差异都是灾难级的,需消耗很大资源去核对数据。

  

原文地址:https://www.cnblogs.com/ricoo/p/10064686.html

时间: 2024-07-31 10:55:45

Others-接口集成方式的相关文章

.NET中的三种接口实现方式

摘自:http://www.cnblogs.com/zhangronghua/archive/2009/11/25/1610713.html 一般来说.NET提供了三种不同的接口实现方式,分别为隐式接口实现.显式接口实现.混合式接口实现.这三种方式各有各的特点. 首先来看隐式接口实现,这恐怕是我们使用最多的一种接口实现,因为隐匿接口实现是.NET的默认接口实现方式.下面让我们来看一个隐式接口实现的例子: using System; internal class MyClass { public

两种访问接口的方式(get和post)

跨机器.跨语言的远程访问形式一共有三种:scoket发送数据包.http发送请求.rmi远程连接: http发送请求方式:分为post和get两种方式 importjava.io.IOException; importjava.io.InputStream; import java.util.Map; importjava.util.concurrent.atomic.AtomicInteger; importorg.apache.commons.httpclient.HttpClient; i

创建线程的第二种方式------实现Runnable接口的方式

package cn.itcast.demo16.Demo07.Runnable; /** * @author newcityman * @date 2019/7/22 - 23:17 */public class RunnableImpl implements Runnable { @Override public void run() { for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getN

对第三方库集成方式的分析

前一阵子做了iOS集成新浪微博SDK并实现部分功能的工作,这里正好将事后反思的内容总结一下,欢迎喷冷水. 假定需求是这样:在已经使用微博登陆的前提下,查找一个人的所有好友,筛选出其中年龄.性别等属性符合一定规则的人,然后查找这些人所有的微博,将这些微博按照一定的条件组织并且展示. 首先说明一下,查找好友和查找微博的做法,都是通过网络请求向新浪API请求数据,而登陆则可以通过SDK来简单实现. 那么,从上述描述当中,我们看到了两个大的用例,一个是登陆,一个是后面描述的一系列操作. 首先说登陆这件事

以调用接口的方式将文件上传至Web服务器

前台代码: <form id="form1" action="http://www.abc.com/data/UploadFile.aspx" method="post" enctype="multipart/form-data" > <input type="file" name="F" style="width:160px;" /> <

AllPay(欧付宝)支付接口集成

AllPay,http://www.allpay.com.tw/,欧付宝是台湾知名的第三方支付公司,拥有丰富的支付模式(支持和支付宝.财付通),只需要一次对接,各种支付模式均可使用. 接口编写SDK:http://www.allpay.com.tw/Service/API_Help?Anchor=AnchorDoc 官方提供了比较完整的SDK,里面有丰富的代码,这里只讲需要注意的地方: 1.欧付宝提供若干支付模式,可以再接口中指定(不给用户选择的机会);也可以在接口中设置ALL,等到付款的时候让

SAP接口程序方式说明

SAP为我们提供了JAVA平台程序的连接库SAP JCO3,由此打通所有JAVA程序同SAP服务器的数据传递: SAP也为我们提供了.net平台程序的连接库SAP NCO,由此打通WINDOWS平台程序同SAP服务器的数据传递: SAP同外围系统连接,程序实现有两种方式. 第一种: 我们常用的,SAP服务器作为服务器端server,外围接口程序作为客户端client. client端发起请求,调用SAP服务器中的RFC函数,实现所需要的操作或查询. 这种方式是由客户端发起的,源头在客户端产生,调

C#调用JAVA接口WSSE方式用WebClient方式

C#读取JAVA的WSSE接口的调用代码: 用webclient 方式: /// <summary> /// 调用java cxf ws_security加密的服务wcf客户端对应的加密类 /// </summary> public class WssSecurity { private byte[] _nonce ; private string _nonceStr = GetNoce(29); private readonly string _pass; //密码 privat

像GenericServlet实现Servlet接口的方式去实现Filter接口

编写Filter的时候,我们需要实现Filter接口,需要去实现init(FilterConfig arg0),doFilter(ServletRequest request, ServletResponse response, FilterChain chain),destroy()等方法,有时候我们并不需要去实现init与destory方法,但又必须在代码里面写上这两个方法.如果我们不想多写这个两个方法,我们可以用一个类去实现Filter接口,在我们开发的时候直接继承这个类,实现doFilt