应用系统数据对接几种方案

应用系统之间数据传输的几种方式


第一种方案:socket方式


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




目前我们常用的http调用,java远程调用,webservices 都是采用的这种方式,只不过不同的就是传输协议以及报文格式。
这种方式的优点:
1 易于编程,目前java提供了多种框架,屏蔽了底层通信细节以及数据传输转换细节。
2 容易控制权限。通过传输层协议https,加密传输的数据,使得安全性提高 
3 通用性比较强,无论客户端是.net架构,java,python 都是可以的。尤其是webservice规范,
 使得服务变得通用
这种方式的缺点:
1 服务器和客户端必须同时工作,当服务器端不可用的时候,整个数据交互是不可进行。
2 当传输数据量比较大的时候,严重占用网络带宽,可能导致连接超时。使得在数据量交互的时候,服务变的很不可靠。


第二种方案:ftp/文件共享服务器方式

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


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

这种方式的优点:
1 在数据量大的情况下,可以通过文件传输,不会超时,不占用网络带宽。 
2 方案简单,避免了网络传输,网络协议相关的概念。
这种方案的缺点:
1 不太适合做实时类的业务  
2 必须有共同的文件服务器,文件服务器这里面存在风险。因为文件可能被篡改,删除,或者存在泄密等。  
3 必须约定文件数据的格式,当改变文件格式的时候,需要各个系统都同步做修改。

第三种方案:数据库共享数据方式

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


这种方式的优点:
1 相比文件方式传输来说,因为使用的同一个数据库,交互更加简单。  
2由于数据库提供相当做的操作,比如更新,回滚等。交互方式比较灵活, 而且通过数据库的事务机制,可以做成可靠性的数据交换。
这种方式的缺点:
1 当连接B的系统越来越多的时候,由于数据库的连接池是有限的,
导致每个系统分配到的连接不会很多,当系统越来越多的时候,可能导致无可用的数据库连接

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

第四种方案: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请求来的消息,进行展示任务结果

转自:http://blog.csdn.net/yanmh007/article/details/78590409

  • 5
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Java与埃斯顿机器人的对接方法主要包括以下几个步骤: 1. 首先需要在Java代码中引入埃斯顿机器人的相关库文件,可以通过Maven或Gradle等构建工具来引入,或者直接下载并导入相应的jar包。 2. 在Java代码中创建一个与埃斯顿机器人通信的客户端对象。可以使用埃斯顿机器人提供的API,调用相应的方法来创建客户端对象。例如,可以调用Robot("127.0.0.1", 3000)来创建一个与机器人连接的客户端对象。 3. 连接埃斯顿机器人。在Java代码中调用客户端对象的connect方法来与机器人建立连接。例如,client.connect()。 4. 与机器人进行通信。通过客户端对象提供的方法,向机器人发送指令并接收机器人的响应。例如,可以调用client.sendMessage("UP")向机器人发送向上移动的指令,调用client.receiveMessage()来接收机器人的响应信息。 5. 断开与机器人的连接。在Java代码中调用客户端对象的disconnect方法来断开与机器人的连接。例如,client.disconnect()。 通过以上步骤,就可以实现Java与埃斯顿机器人的对接。在具体的应用场景中,还可以根据实际需求,进一步完善代码逻辑,实现更复杂的功能。 ### 回答2: Java与埃斯顿机器人对接的方法主要有以下几种: 1. 使用Java Socket进行通信:埃斯顿机器人开放了TCP/IP通信接口,可以使用Java Socket来建立与机器人的连接。通过Socket的InputStream和OutputStream来进行数据的收发,可以实现与机器人之间的通信。 2. 使用Java的HTTP库进行通信:埃斯顿机器人提供了基于HTTP的Web API接口,可以使用Java的HTTP库(如HttpClient或HttpURLConnection)来通过HTTP请求与机器人进行通信。可以根据机器人提供的API文档,构建相应的HTTP请求并解析返回的数据。 3. 使用Java编写机器人控制程序:埃斯顿机器人使用C++编写的机器人控制程序可以与Java程序进行通信。Java程序可以通过JNI(Java Native Interface)来调用动态链接库(DLL文件)中的C++函数,从而与机器人控制程序进行通信。 在与埃斯顿机器人对接时,需要注意以下几点: 1. 确保Java程序与机器人在相同的网络环境中,能够相互通信。 2. 检查机器人的通信接口和协议,根据机器人提供的API文档来构建相应的请求和解析返回数据。 3. 注意异常处理和错误处理,在与机器人进行通信的过程中,需要对可能出现的异常进行处理,并做出相应的应对措施,以确保程序的稳定性和正确性。 总之,通过使用Java Socket、HTTP库或JNI等技术,我们可以实现Java与埃斯顿机器人之间的通信和对接,实现各种功能和控制操作。 ### 回答3: Java与埃斯顿机器人的对接方法可以通过以下步骤实现: 1. 首先,确保你已经安装了Java开发环境(JDK)并设置了相应的环境变量。你可以通过在命令行中输入`java -version`来检查JDK的安装情况和版本。 2. 下载埃斯顿机器人对应的Java API库。这个库通常是以jar文件的形式提供的,你可以在埃斯顿机器人的官方网站上找到并下载。 3. 在你的Java项目中创建一个新的包(package),用于存放与埃斯顿机器人相关的类和接口。 4. 将下载好的埃斯顿机器人的Java API库添加到你的项目的依赖中。你可以通过在你的IDE或项目构建工具的配置文件中添加这个jar文件来实现。例如,如果你使用的是Maven构建工具,可以在pom.xml文件中添加对应的依赖项。 5. 在你的Java代码中,创建一个埃斯顿机器人的实例,并设置相应的参数和配置。这些参数包括机器人的IP地址、端口号、登录凭证等。你可以根据需要调用不同的方法来设置这些参数。 6. 使用机器人实例提供的方法来实现与机器人的交互逻辑。例如,你可以使用机器人的API来发送指令、接收机器人的反馈、控制机器人的移动等。具体的操作和方法取决于埃斯顿机器人的功能和API提供的接口。 7. 在代码编写完成后,进行测试和调试。你可以使用不同的测试用例来验证对接方法的正确性和可靠性。确保你的代码能够与埃斯顿机器人正常通信并实现预期的功能。 总结:Java与埃斯顿机器人的对接方法主要包括下载并导入机器人的Java API库、创建机器人实例、设置参数和配置、调用相应的方法与机器人进行交互。这个过程一般包括了导入库、设置连接参数、接收反馈等步骤。随着使用的具体机器人和API的不同,具体的操作细节可能会有所不同。因此,在实际对接过程中,需要根据具体的情况在以上步骤中进行相应的调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值