精华内容
下载资源
问答
  • 不同java项目之间接口的相互调用

    万次阅读 热门讨论 2019-05-05 14:17:38
    大致思路就是项目A利用工具类调用项目B的接口进行一个功能实现,记录一下 工具类 package com.xxx.tools.utils; import jdk.internal.instrumentation.Logger; import net.sf.json.JSONObject; import org.apach....

    最近一个项目需要将某个功能独立成一个单独的项目后给原项目调用,记录一下.大致思路就是项目A利用工具类调用项目B的接口进行一个功能实现,记录一下

    工具类

    package com.xxx.tools.utils;
    
    import jdk.internal.instrumentation.Logger;
    import net.sf.json.JSONObject;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.net.HttpURLConnection;
    import java.net.InetSocketAddress;
    import java.net.Proxy;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;
    import java.util.List;
    import java.util.Map;
    
    public class HttpUtil {
       public static String doPost2(String url, JSONObject param) {
            HttpPost httpPost = null;
            String result = null;
            try {
                HttpClient client = new DefaultHttpClient();
                httpPost = new HttpPost(url);
                if (param != null) {
                    StringEntity se = new StringEntity(param.toString(), "utf-8");
                    httpPost.setEntity(se); // post方法中,加入json数据
                    httpPost.setHeader("Content-Type", "application/json");
                }
    
                HttpResponse response = client.execute(httpPost);
                if (response != null) {
                    HttpEntity resEntity = response.getEntity();
                    if (resEntity != null) {
                        result = EntityUtils.toString(resEntity, "utf-8");
                    }
                }
    
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return result;
        }
    }
    

    A项目调用接口

    //项目B的接口地址,需要加http://
    String url="http://127.0.0.1:8088/erp/print/printText";
    JSONObject jsonObject=new JSONObject();
    jsonObject.put("content",content);
    jsonObject.put("origin_id",origin_id);
    HttpUtil.doPost2(url,jsonObject);

    B项目的controller类

    @RestController
    @RequestMapping("/print")
    public class PrintController {
    
        @Autowired
        private PrintOrder printOrder;
    
        @ResponseBody
        @RequestMapping(value = "/printText",method = RequestMethod.POST)
        public String addPrintOrder(@RequestBody PrintText printText)throws Exception{
    
            String result="";
    
            String content=printText.getContent();
            String origin_id=printText.getOrigin_id();
            result= printOrder.addPrintOrder(content,origin_id);
    
            System.out.println("result-----"+result);
            return result;
    
        }
    }
    

     

    展开全文
  • 15G系统中前传(Fronthaul)的含义及考虑因素 (R3-160754) 在RAN3 #91bis会议的R3-160754:Fronthauling: Motivations and Constraints中,Mitsubishi Electric分析了Fronthauling的基本概念,对其动因和局限进行了...

    5G系统中前传(Fronthaul)的含义及考虑因素 (R3-160754)

     

    在RAN3 #91bis会议的R3-160754:Fronthauling: Motivations and Constraints中,Mitsubishi Electric分析了Fronthauling的基本概念,对其动因和局限进行了简单分析。

     

    5G系统中采用C-RAN架构,它可以通过网络功能虚拟化实现硬件资源的共用和扩展。C-RAN下,小区间的移动性多在CU内部完成,而不再需要通过外部接口。如果传输网提供路由和复用特性,则BBU和RRU之间不再是1对1 的关系了,它们之间可以动态影射,实现资源的动态复用。

     

    C-RAN下,通过CU/DU功能切分,实现BBU资源的集中化,可以降低OPEX和CAPEX。具体体现在以下几个方面:

     

    降低站址需求

    降低安全风险

    共享机房资源(空调/电源)

     

    Mitsubishi认为Fronthualing包括CU与DU之间的接口,以及支撑该接口的底层网络。

     

    “Fronthauling is a mean enabling to split RAN functions and locate them partly in a Central Office and partly distribute them. It includes the interfaces between central and distributed functions, and the underlying network that transports the interfaces.”

     

    需要说明的是,早期规范讨论过程中,CU/DU切分考虑高层和底层等多种选项。目前高层(1~3层)确定选用选项2,底层仍需进一步讨论,但是物理层BBU与RRU之间的带宽资源需求最大,因此Fronthaul多集中在分析BBU与RRU之间的传统的CPRI接口。

     

    举例来说,目前LTE系统中,2x2 MIMO,20MHz小区带宽,峰值速率170Mbps,所需的CPRI带宽约为2.5Gbps。随着载波数和MIMO流数的增加,CPRI带宽资源也几乎成倍增长。

     

    5G系统中,峰值速率增加n x100倍,会导致CPRI链路的带宽需求高达250Gbps。虽然可以采用传输压缩,但是毋庸置疑的是,C-RAN模式下RAN功能切分对接入网带宽资源的要求相当高。

     

    2 5G系统中前传(Fronthaul)带宽计算 (R3-160986/ R3-161012)

     

    在RAN3 #91bis会议上,Mitsubishi在R3-160754及其修改稿R3-160986中,对前传提供了明确的计算方法,提出了“614.4Mbps/10MHz/天线端口”的基本结论,并在此基础上对不同天线端口和带宽进行了估算分析。具体说明如下。

     

    R3-160986中提到,如果在BBU与RRH之间进行切分,则其接口上传送的是I/Q信号。5G系统中如果也采用同样的切分方式,则计算表明,每个天线端口下,每10MHz就需要614.4Mbps的传输资源。当频率带宽和天线端口都增加时,所需的传输带宽线形增加,如下表所示。

     

    RAN架构PHY/RF分离的最大传输带宽需求举例

     

    1

         

    R3-160986附录A中提供了计算方法,整理如下:

     

    2

     

    天线阵子数   (编者注:原文是antenna elements,如上图所示)

    CPRI采样比特宽度:按15比特考虑。

    每个子帧中的OFDM符号数:20MHz下为14,如果考虑CP,则为15。

    FFT数目:2048 (原文注:每个子帧中的OFDM符号数和FFT数目的乘积与系统带宽成比例) 。

    同时考虑I/Q支路时,传输带宽需乘以2。

     

    传输带宽计算方法:

     

    下行:

    接口带宽峰值比特率 = 基站天线阵子数 x 比特宽度 x 每个子帧中的OFDM符号数 x FFT数目 X 2(I/Q支路) ¸ 1ms

     

    上行:

    接口带宽峰值比特率 = 基站天线阵子数 x 比特宽度 x 每个子帧中的OFDM符号数 x FFT数目 X 2(I/Q支路) ¸ 1ms

     

    在后续R3-161012修改稿中,在表格下方明确标注了计算方法:

     

    接口带宽峰值比特率 = 基站天线阵子数 x 采样频率(与系统带宽成比例) x 比特宽度(每个采样) + 开销

     

    3 5G系统中前传(Fronthaul)带宽结论 (R3-162102)

     

    在RAN3 #92会议上,Ericsson在R3-162422  Clarifications on fronthaul bit rate requirements中提议,传输部分强调为最大理论值,且建议明确增加采样率等备注信息,即:

     

    The calculation is made for sampling frequency of 30.72 Mega Sample per second for each 20MHz and for a Bit Width equal to 30。(译文:计算基于20MHz,每秒30.72M的采用频率,比特宽度为30)

     

    此建议被采纳并在TR 38801-060中体现了出来。

     

    TR 38801-060中,表格题目和文字描述都有部分变化。值得注意的是,此版定型后一直没再变过。

     

    具体描述请参见本文最后的附录部分。

     

    4 TR38.801(V14.0.0)中结论

     

    在RAN3 #91bis的Mitsuibishi提案讨论和修改的基础上,结合RAN3 #92上Ericsson的提议,记录在TR 38801-060中,并一直沿用至今。

     

    亦即对于BBU与RRU之间的传输带宽需求,自TR 38801-060定型后,一直就没再变过。

     

    具体描述请参见本文最后的附录部分。

     

    5 BBU与RRU之间CPRI接口简介

     

    BBU与RRU之间采用CPRI接口传输基带信号。上图中,右侧无线设备控制器(REC)即指BBU,左侧无线设备(RE)相当于RRU。

     

    3

     

    BBU进行基带信号处理,并形成I/Q数据流,经CPRI接口传送出去。

    4

     

    RRU将CPRI接口上传送的I/Q数据接收下来,并转变成模拟信号,经由天线发射出去。

    5

     

    6 LTE系统中CPRI接口带宽详细计算方法分析

     

    结合R3-160986以及TR38.801中信息,对LTE系统CPRI带宽计算举例如下。

     

    6.1       CPRI接口带宽计算公式

     

    接口带宽峰值比特率 = 基站天线阵子数 x 采样频率(与系统带宽成比例) x 比特宽度(每个采样) + 开销

     

    TR38.801中表格下标注的计算条件为:基于20MHz,每秒30.72M的采用频率,比特宽度为30。

     

    假设LTE载波带宽为20MHz,采用2天线,则:

     

    -        基带带宽:20MHz

    -        IFFT点数:2048             

    -        子载波间隔:15KHz

    -        基带I/Q采样率:30.72MHz (=2048 * 15KHz)

    -        采样位宽:30bit  (CPRI I/Q 采样位宽,各15比特)

     

    每AxC上I/Q采样数据流:921.6 Mbps   (=30 bits*30.72MHz)

    添加控制字(W0):983.04Mbps   (=16/15*921.6Mbps)

    添加8B/10B线路编码的开销:1.2288Gbps   (=983.04*10/8)

    2x2 MIMO: 2.4576Gbps  (= 2 x 1.2288Gbps)

    8x8 MIMO:9.8304Gbps  (= 8 x 1.2288Gbps)

     

    简单说明如下。

     

    6.2       CPRI接口I/Q采样位宽

     

    CPRI链路采用复数方式传送AxC的数字化的RF信号,每个样值都采用I/Q向量来表示。CPRI规范中,主要处理这种信号格式。I/Q样值交织在一起形成单个word。这些word一起组成满足采样率和比特宽度需求的信号。

     

    根据空口需求和上下行特性,CPRI可以采用不同的比特宽度。下行方向上,比特宽度为8到20比特,为了获取较高的采样速率,上行比特宽度为4到20比特。另外,I/Q采样值较小时,也可以采用信号扩展或者采用预留比特填充的方式来对空闲位进行填充,以获取较大的比特宽度。对于上下行采用不同比特宽度时,这种处理方法比较有用,但在CPRI上进行影射时,通常上下行都会采用相同的采样宽度。

     

    简单来讲,I/Q信号到CPRI接口的影射遵循以下规则:

     

    上行I/Q采样宽度:4~20 bits,常用值为12,15和16。

    下行I/Q采样宽度:8~20 bits,常用值为12,15和16。

     

    不过通常上下行都采用15比特的采样宽度。如华为"BBU-RRU IR接口说明书(2012-7)"中规定,下行I/Q位宽为15bit,其中业务有效I/Q数据位宽占高13bit,低2bit无效。上行I/Q位宽为15bit,无DAGC(DAGC即数字自动增益控制)。

     

    6

     

    6.3       CPRI帧结构和帧长度

     

    LTE系统中,子载波间隔为15KHz,其符号长度与子载波间隔成反比,为1/(15KHz)。2048个IFFT采样点落入一个符号内(即1/(15KHz)),故采样频率相当于15KHz * 2048 = 30.72MHz。

     

    CPRI链路上传送多个基带I/Q数据流,每个I/Q数据流对应一个载波和一个天线。AxC是指一个天线上所传送的单个载波的I/Q数据。

     

    CPRI基本帧长度Tc=1/fc=1/3.84MHz= 260.41667ns。一个基本帧包含16个word。其中第一个word为控制word,其余15个word为用户面I/Q数据。每个word中8个比特。

     

    7

     

    根据单个word上影射的比特长度,CPRI可分为不同类型,对应不同的有效载荷。比如,每个word中影射8比特时,有效载荷为120bit。同理,每个word中影射16/32/64比特时,则有效载荷分别对应240/480/960比特。它们分别对应CPRI选项1/2/3/5,如下图所示。

     

    8

     

    CPRI基本帧长度为260.41667ns(=1/3.84MHz),故上述不同有效载荷下,对应的速率分别计算如下:

     

    9

     

    6.4       CPRI线路编码

     

    CPRI线路编码可以采用8B/10B或者64B/66B两种方式。

     

    8B/10B编码表示将8比特的码字影射到10比特的符号上,64B/66B同理。

    8B/10B编码的特性之一是保证DC 平衡,采用8B/10B编码方式,可使得发送的“0”、“1”数量保持基本一致,连续的“1”或“0”不超过5位,即每5个连续的“1”或“0”后必须插入一位“0”或“1”,从而保证信号DC平衡,也就是说,在链路超时时不致发生DC失调。通过8B/10B编码,可以保证传输的数据串在接收端能够被正确复原。

                                                                                 

    6.5     CPRI带宽计算总结

     

    根据上述分析和计算结果可知,LTE带宽为20MHz时,采用15bit的I/Q采样位宽每AxC上I/Q采样数据流为921.6 Mbps,添加控制字后为983.04Mbps,采用8b/10b编码后为1.2288Gbps,对应CPRI速率选项2,亦即每个AxC可以影射到CPRI选项2模式下进行传送。而采用2天线端口(即2x2 MIMO模式)时,则需要2.4576Gbps的CPRI带宽。

     

    -        基带带宽: 20MHz

    每AxC上I/Q采样数据流: 921.6Mbps  (=30 bits*30.72MHz)

    添加控制字(W0):983.04Mbps (= 16/15*921.6Mbps)

    添加8B/10B线路编码的开销:1.2288Gbps  (=983.04*10/8)

    2x2 MIMO:2.4576Gbps  (= 2 x 1.2288Gbps)

    8x8 MIMO:9.8304Gbps   (= 8 x 1.2288Gbps)

     

    如果考虑10MHz带宽,则CPRI速率需求降低一半,对应TR38.801的结论:

     

    “每个天线端口下,每10MHz就需要614.4Mbps的传输资源”。

     

    另外,不同采样位宽条件下,各个CPRI选项下所能承载的天线端口x载波(AxC)的数目有所不同。比如,CPRI选项7速率为9830.4Mbps,9/12/15比特采样位宽下,对应的AxC分别为13/10/8。

     

    上述计算结果中,LTE 20MHz下,2天线端口对应的CPRI带宽为2457.6Mbps,对应选项3,亦即2个AxC可以影射到此模式中。

     

    10

     

    7 5G 新空口下CPRI接口带宽估算

     

    5G系统新空口中,采用新的无线参数集。2017年3月中国移动在巴塞罗那通信展上发布的样机规范中,对5G新空口的参数规定如下:

     

    11

          

    采用与LTE类似的计算方法,计算5G系统CPRI带宽如下:

     

    基带带宽:100MHz

    IFFT点数: 4096

    子载波间隔:30KHz

    基带I/Q采样率:122.88MHz  (=4096 * 30KHz)

    采样位宽:15bit     (I和Q样点)

    每AxC上I/Q采样数据流:3686.4 Mbps  (=30bits*122.88MHz)

    添加控制字(W0):3932.16Mbps  (= 16/15*3686.4Mbps)

    添加8B/10B线路编码的开销:4915.2Mbps (= 3932.16Mbps*10/8)

     

    64TRX MIMO:314.57Gbps   (= 64 x 4915.2Mbps)

     

    采用5G新空口参数计算,100MHz下,单天线端口所需CPRI带宽为4.9Gbps。LTE系统中,10MHz下,单天线端口所需CPRI带宽为614.4Mbps。进行对比可知,5G系统频带宽度为LTE系统的10倍,但是5G所需的CPRI带宽却只有LTE系统的8倍。这和5G系统中采用新的载波间隔和IFFT点数都有关系。

     

    更为重要的是,5G系统中采用64TRX,其CPRI速率要求更高,如100MHz下约需320Gbps。

     

    8 TR38.801中BBU与RRU之间CPRI接口带宽计算

     

    TR38.801提供了不同天线端口和带宽下的CPRI最大带宽信息,如下表所示。

     

    12

     

    可以根据TR38.801中提供的结果“每个天线端口下,每10MHz就需要614.4Mbps的传输资源”进行验证,也可以采用5G新空口结果进行验证。

     

    采用LTE计算结果估算,则10MHz下单天线端口需求614Mbps的CPRI带宽,则2端口10MHz约需1Gbps,2端口20MHz约需2Gbps,依次类推,粗略估算。

     

    根据5G新空口计算验证上述结果,100MHz单天线端口下对应4915.2Mbps,则对应结果的准确信息如下,接近但绝不超过TR38.801中表格中所提供的最大值。

     

    13

     

    上表希望理解正确,如有错误,还请大家多加指正,多谢。

      

    附录:

     

    TR38.801(V14.0.0)中BBU与RRU之间传输带宽需求的描述:

     

    11.1.4.2 Transport network requirements for an example New RAN architecture

     

    According to TR 38.913 [5], the NR shall support up to 1GHz system bandwidth, and up to 256 antennas. A calculation relative to one of several possible transport deployments applied to a possible RAN architecture example shows that transmission between base band part and radio frequency part requires a theoretical maximum bit rate over the transport network of about 614.4Mbps per 10MHz mobile system bandwidth per antenna port.

     

    When the system bandwidth is increasing as well as the number of antenna ports, the required bit rate is linearly increasing. An example with rounded numbers is shown in the following table. Note that the figures in Table 6.1.2.2.2-1 are a maximisation of the needed bandwidth per number of antenna ports and frequency bandwidth.

     

    Table 6.1.2.4.2-1 Examplesof maximum required bitrate on a transmission link for one possible PHY/RF based RAN architecture split

     

    14

     

     

    NOTE 1:  Peak bit rate requirement on a transmission link = Number of BS antenna elements *Sampling frequency (proportional to System bandwidth) * bit width (per sample)+ overhead. The calculation is made for sampling frequency of 30.72 Mega Sample per second for each 20MHz and for a Bit Width equal to 30.

     

    后续会借助3GPP会议提案继续分析CU/DU其他切分方式下不同接口上的带宽需求,请继续关注。

     

     

    另,本文参考了一些公开资料,部分图形直接采用了Anritsu文档中的内容(题名如下),特此致谢。

    展开全文
  • 信息系统的普及应用导致原有系统间的信息孤岛需要通过系统接口进行数据交互,信息交互的接口常见有以下几种: (1)数据库交互:服务方提供表或存储过程,由调用方控制commit或rollback。 (2)文件交互:双方对请求...

    信息系统的普及应用导致原有系统间的信息孤岛需要通过系统间接口进行数据交互,信息交互的接口常见有以下几种:

    (1)数据库交互:服务方提供表或存储过程,由调用方控制commit或rollback。

    (2)文件交互:双方对请求文件各应答文件通过锁定文件及文件内容标志控制。

    (3)基于TCP/IP协议的信息交互:约定报文格式,性能较高。如ISO8583报文国际标准的包格式的通讯协议。

    (4)基于HTTP协议的信息交互:如SOAP协议。

    (5)基于WebService协议的信息交互:比较通用的接口协议。

    越低层协议之间的信息交互越高效。随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署。系统由原来单一的技术架构变成面向服务的多系统架构。原来在一个系统之间可以完成的业务流程,通过多系统的之间多次交互来实现。这里不打算介绍如何进行SOA架构的设计,而是介绍一下应用系统之间如何进行数据的传输。

    应用系统之间数据传输有三个要素:传输方式,传输协议,数据格式

    数据传输方式一般无非是以下几种:

    1 socket方式

     Socket方式是最简单的交互方式。是典型才c/s 交互模式。一台客户机,一台服务器。服务器提供服务,通过ip地址和端口进行服务访问。而客户机通过连接服务器指定的端口进行消息交互。其中传输协议可以是tcp/UDP 协议。而服务器和约定了请求报文格式和响应报文格式。如图一所示:

     

    目前我们常用的http调用,java远程调用,webserivces 都是采用的这种方式,只不过不同的就是传输协议以及报文格式。

    这种方式的优点是:

    1 易于编程,目前java提供了多种框架,屏蔽了底层通信细节以及数据传输转换细节。

    2 容易控制权限。通过传输层协议https,加密传输的数据,使得安全性提高

    3 通用性比较强,无论客户端是.net架构,java,python 都是可以的。尤其是webservice规范,使得服务变得通用

    而这种方式的缺点是:

    1 服务器和客户端必须同时工作,当服务器端不可用的时候,整个数据交互是不可进行。

    2 当传输数据量比较大的时候,严重占用网络带宽,可能导致连接超时。使得在数据量交互的时候,服务变的很不可靠。

    2 ftp/文件共享服务器方式

    对于大数据量的交互,采用这种文件的交互方式最适合不过了。系统A和系统B约定文件服务器地址,文件命名规则,文件内容格式等内容,通过上传文件到文件服务器进行数据交互。

    最典型的应用场景是批量处理数据:例如系统A把今天12点之前把要处理的数据生成到一个文件,系统B第二天凌晨1点进行处理,处理完成之后,把处理结果生成到一个文件,系统A 12点在进行结果处理。这种状况经常发生在A是事物处理型系统,对响应要求比较高,不适合做数据分析型的工作,而系统B是后台系统,对处理能力要求比较高,适合做批量任务系统。

    以上只是说明通过文件方式的数据交互,实际情况B完成任务之后,可能通过socket的方式通知A,不一定是通过文件方式。

    这种方式的优点:

    1 在数据量大的情况下,可以通过文件传输,不会超时,不占用网络带宽。

    2 方案简单,避免了网络传输,网络协议相关的概念。

    这种方式的缺点:

    1 不太适合做实时类的业务

    2 必须有共同的文件服务器,文件服务器这里面存在风险。因为文件可能被篡改,删除,或者存在泄密等。

    3 必须约定文件数据的格式,当改变文件格式的时候,需要各个系统都同步做修改。

    3 数据库共享数据方式

    系统A和系统B通过连接同一个数据库服务器的同一张表进行数据交换。当系统A请求系统B处理数据的时候,系统A Insert一条数据,系统B select 系统A插入的数据进行处理。

    这种方式的优点是

    1 相比文件方式传输来说,因为使用的同一个数据库,交互更加简单。

    2 由于数据库提供相当做的操作,比如更新,回滚等。交互方式比较灵活,而且通过数据库的事务机制,可以做成可靠性的数据交换。

    这种方式的缺点:

    1 当连接B的系统越来越多的时候,由于数据库的连接池是有限的,导致每个系统分配到的连接不会很多,当系统越来越多的时候,可能导致无可用的数据库连接

    2 一般情况,来自两个不同公司的系统,不太会开放自己的数据库给对方连接,因为这样会有安全性影响

    4 message方式

    Java消息服务(Java Message Service)是message数据传输的典型的实现方式。系统A和系统B通过一个消息服务器进行数据交换。系统A发送消息到消息服务器,如果系统B订阅系统A发送过来的消息,消息服务器会消息推送给B。双方约定消息格式即可。目前市场上有很多开源的jms消息中间件,比如  ActiveMQ, OpenJMS 。

    这种方式的优点

    1 由于jms定义了规范,有很多的开源的消息中间件可以选择,而且比较通用。接入起来相对也比较简单

    2 通过消息方式比较灵活,可以采取同步,异步,可靠性的消息处理,消息中间件也可以独立出来部署。

    这种方式的缺点

    1 学习jms相关的基础知识,消息中间件的具体配置,以及实现的细节对于开发人员来说还是有一点学习成本的

    2 在大数据量的情况下,消息可能会产生积压,导致消息延迟,消息丢失,甚至消息中间件崩溃。

     

    场景
    目前业务人员需要导入一个大文件到系统A,系统A保存文件信息,而文件里面的明细信息需要导入到系统B进行分析,当系统B分析完成之后,需要把分析结果通知系统A。

    A 系统A先保存文件到文件服务器。

    B 系统A 通过webservice
    调用系统B提供的服务器,把需要处理的文件名发送到系统B。由于文件很大,需要处理很长时间,所以B不及时处理文件,而是保存需要处理的文件名到数据库,通过后台定时调度机制去处理。所以B接收请求成功,立刻返回系统A成功。

    C 系统B定时查询数据库记录,通过记录查找文件路径,找到文件进行处理。这个过程很长。

    D 系统B处理完成之后发送消息给系统A,告知系统A文件处理完成。

    E 系统A 接收到系统B请求来的消息,进行展示任务结果

    展开全文
  • SAP系统接口方式:

    万次阅读 2018-08-10 08:55:02
      1.PI - 信使中间件 (大公司多选择) 数据: SAP- PI- U8 U8- PI- SAP PI 底层用的还是webservice 技术 优点:实时性高; 可处理大数据(在调用... 有接口数据日志在PI系统; 缺点:PI 服务器+1; PI系统配...

    https://www.cnblogs.com/rainysblog/p/8177930.html


     

    1.PI - 信使中间件 (大公司多选择)

    数据: SAP- PI- U8
    U8- PI- SAP
    PI 底层用的还是webservice 技术
    优点:实时性高; 可处理大数据(在调用PROXY 发送时 还可以分包处理); 有接口数据日志在PI系统;
    缺点:PI 服务器+1; PI系统配置工作; 和每个外部系统都要做wsdl配置;


    2. RFC - 函数 (小公司 / 简单业务场景使用)

    SE37 函数设置成remote 形式
    远程启用的模块:


    由其他系统调用SAP的RFC,在J2EE项目里有JCO可以使用(其他语言也有类似的dll包),可以调用RFC和返回结果。
    这个方式只要能够熟悉类似JCO的使用,就可以在其他系统中使用,比中间表有
    优点:更好的实时性,(如果数据量大,会导致进程时间过长,有超时风险)
    缺点:SAP中Fuction属于纯过程式语言,很多时候功能不是很强,另外只能单向进行调用,一般是和Web Service同时使用(在C++/C#项目里,也可以建立RFC,但不确定SAP也能调用其他系统的RFC)。


    3. webservice (一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序)

    SAP调用其他系统的Web Service还是比较常见的,其实SAP也可以提供Web Service的,
    这也算是与时俱进,和所谓的SOA扯上关系了。
    优点:都符合WS的标准,任何其他系统都实现了相应的接口,在实时性和交互性上都有了保障。
    缺点:SAP对Web Service发布的格式要求比较严格,很多时候无法调用就是因为格式不对,(格式问题是这种方式使用过程常见问题,而且双方开发产生争议很大原因,可能需要一方配合调整)
    还好一般在建立Web Service Proxy的时候就会发现。

    补充:
    SOA(面向服务的架构)
    面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
    接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
    SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。
    SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。


    4. XML文件,其他固定格式文件 txt / csv

    下传数据:
    SAP系统生成XML 文件([1]沟通好命名规则, [2]沟通XML 格式 )放到指定的ftp 文件夹,MES 系统开发程序,定时读取产生的文件,成功后自行解析,并把文件改为加上_HIS文件,
    作为存档,
    上传数据:相反方向
    优点: 实现需求时,双方各自还是独立,做自己系统需要功能,增加的任务就是, 产生指定格式文件放到ftp 文件, 读取文件并解析,修改文件名,
    缺点:(1)ftp文件服务的稳定性第一要求, (2) 交互不及时,需要MES 更高频率扫描ftp 文件夹上的文件,

    4.DB 中间表:
    也就是利用中间数据库作为交互的方式。
    SAP系统利用dbco建立与中间数据库关联,利用SQL或者TSQL直接对数据库进行操作。
    而其他系统也对该中间表进行操作。
    优点:是实现比较简单,对现有其他系统学习成本要求比较低,基本不需要有太多改造就能与SAP进行连接。
    缺点:可能会造成交互不及时,也就是只能靠轮询和刷新来获取新数据,实时性不够高。

    展开全文
  • 系统接口设计

    万次阅读 2015-06-23 12:31:22
    最近两年一直在和银行、公安、保险、民政等第三方单位之间接口接口文档不下30份,最初的接口文档漏洞百出,改了又改,丢了不少人,也被批评、埋怨,指责了很多次,久而久之,明白了一个最重要的道理,协作...
  • 导读: ... 大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读排版更好。 愿大家的学习,轻松且愉快。 如果大家觉得有用,希望...其中,我们提到:如果其他外部公司要与自己企业内部的系统有...
  • 系统间的接口联调测试

    千次阅读 2016-02-03 15:12:08
    例如:两个系统之间的部分数据是相互读取的 1. 在一个甲系统增加,修改A数据后,乙系统也会相应的呈现这个改动的数据;在乙系统增加,修改B数据后,甲系统也会相应的呈现这个改动的数据; 即A部分的数据,是由甲...
  • 计算机操作系统的用户接口

    千次阅读 2013-05-18 10:58:13
    计算机操作系统的用户接□  所谓操作系统的用户接口,就是操作系统提供给用户,使用户可通过它们调用系统服务的手段。  通常,操作系统是通过...API和操作命令这两种用户接口与操作系统之间的关系如图1所示。
  • 一、为什么要写接口文档? 正规的团队合作或者是项目对接,接口文档是非常重要的,一般接口文档都是通过开发人员的。一个工整的文档显得是非重要。 项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发...
  • 教你写接口需求文档

    千次阅读 2020-07-19 12:00:00
    作者:果果 转载已取得作者授权一、什么是接口百科上对接口的定义:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的...
  • 系统调用和程序接口

    千次阅读 2016-06-09 09:29:52
    系统调用是操作系统内核和用户态运行程序之间接口,它把用户程序的请求传送至内核,调用相应的 内核函数完成所需的处理,将处理结果返回给用户程序。 系统中各种共享资源都由操作系统统一管理,因此在操作系统的...
  • 系统接口规范以及常见的接口技术概述和比较 一、基本要求: 为了保证系统的完整性和健壮性,系统接口应满足下列基本要求: 1、接口应实现对外部系统的接入提供企业级的支持,在系统的高并发和...
  • 导读: ... 大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读...中间件的数据接口模式,也会被称为中间数据库的数据交互模式,或者叫数据平台的数据交互,总的来说,就是在各个业务系统间,建...
  • 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 1.节约时间,缩短项目时间 2.提高工作效率 ...
  • 操作系统的功能和目标(1)作为计算机系统资源的管理者1️⃣处理器(CPU)管理2️⃣存储器管理3️⃣文件管理4️⃣设备管理(2)作为用户与计算机硬件系统之间接口1️⃣命令接口2️⃣程序接口(3)作为扩充机器...
  • 导读: ... 大家可以关注我个人公众号,所有分享内容,会在公众号第一时间推送,且阅读排版更好。...所谓系统接口,实际上就是不同系统间的数据交换方式。 对于一个企业来说,肯定不是一个系统就能够支持所有业务...
  • Java接口之间的多继承

    万次阅读 2018-06-06 12:17:39
    Java类之间并不允许多继承,只可以单继承和实现多接口。一直以为接口也是,但是发现了下面这个(接口继承多接口) 查了一下发现:相对于C++中的多继承来说,java用接口的概念取代了多继承 一个类只能extends一个...
  • 系统连接相机的接口用的是Camera Link接口,通过Camera Link接口把实时图像高速传输到FPGA图像采集卡中进行数据实时处理,并通过PCI接口实现采集卡和计算机之间的通信。本文主要研究数据采集系统 Cam-era Link接口...
  • 系统API接口规范

    万次阅读 2017-08-24 09:17:14
    本规范旨在为公司各业务系统之间业务复用及整合的API提供接口调用与交互规范。同时,也作为未来公司业务系统内各应用模块之间以及各业务系统之间,基于面向服务的架构,以服务接口的方式,提供数据和各种功能的一种...
  • JAVA基础——接口(全网最详细教程)

    万次阅读 多人点赞 2018-05-10 09:46:42
    官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 我的解释:接口...
  • ATA(Advanced Technology Attachment, 高级技术附加装置)起源于 IBM,是一个单纯的磁盘驱动器接口,不支持其他的接口设备,适配的是 IDE(Integrated Drive Electronics,电子集成驱动器)磁盘驱动器。IDE 接口,...
  • OMC北向接口是OMC系统与网络管理系统(NMS)间的接口,分为上行接口和下行接口。上行接口指从OMC到NMS的接口,下行接口指从NMS到OMC的接口接口总体架构如下: 接口说明: 1、资源数据接口:数据量相对较小,...
  • 5G不同功能体之间提供了两种接口: 服务化接口:Service-basedinterface,这个是类似微服务化架构的服务注册和服务发现来实现的功能体对外暴露的接口,这种接口只针对于单个功能体,相关功能体通过服务化接口向外与...
  • 内核就是直接控制最底层的硬件,而我们日常所用到的软件,大都是通过内核之外一些程序与内核之间接口完成的,例如WINDOWS API就是为我们提供了应用程序与内核的接口,以实现硬件上的一些操作。操作系统(Operating...
  • 不同springCloud项目互相调用接口

    万次阅读 2018-09-05 11:18:44
    有A,B两个springCloud项目,B项目的提供restful接口供A项目调用,B项目不在A的注册中心,其实跟普通的http接口调用方法一样 代码 A项目 1.调用接口类 public static String defaultConnection(String method, ...
  • 接口测试工具Postman使用实践

    万次阅读 多人点赞 2017-12-05 16:18:55
    接口测试工具Postman使用实践本次chat内容包括: 接口的定义 接口的分类 为何要进行接口测试 ... 软件不同部分之间的交互接口。通常就是所谓的API――应用程序编程接口,其表现的形式是源代码。 —— [ 百度百科 ]
  • ARM系统设计JTAG接口详细图解(转)

    千次阅读 2008-01-13 01:47:00
    ARM系统的JTAG接口的设计不当往往使硬件系统无法调试,所以在设计ARM系统前要先熟悉ARM系统的JTAG接口的定义和常见问题。 1.ARM系统

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,104,131
精华内容 441,652
关键字:

不同系统之间怎么写接口