`

系统之间的数据传输

 
阅读更多
随着近年来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请求来的消息,进行展示任务结果
  • 大小: 23 KB
  • 大小: 19.1 KB
  • 大小: 34.7 KB
  • 大小: 28.5 KB
  • 大小: 53.4 KB
分享到:
评论

相关推荐

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

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

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

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

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

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

    HJ212-2017污染物在线监控(监测)系统数据传输标准.doc

    本标准适用于污染物在线监控(监测)系统、污染物排放过程(工况)自动监控系统与监控中心之间的数据传输,规定了传输的过程及参数命令、交互命令、数据命令和控制命令的格式,给出了代码定义,本标准允许扩展,但...

    污染源在线自动监控(监测)系统数据传输标准(HJT 212-2005).zip

    为贯彻《中国环境保护法》,指导污染源在线自动监控(监测)系统的建设,规范数据传输,保证各种环境监控监测仪器设备、传输网络和环保部门应用软件系统之间的连通,制定本标准。 本标准规定了污染源在线自动监控...

    基于LabVIEW的无线USB高速数据传输系统

    基于LabVIEW的无线USB高速数据传输系统 提出一种将USB接口和短距离无线通信相结合的无线USB高速数据传输系统的设计方案,阐述该系统的软硬件设计方案和工作原理。该方案采用Cypress公司的片上可编程芯片CYWUSB6935...

    污染物在线监控(监测)系统数据传输标准.pdf

    本标准适用于污染物在线监控(监测)系统、污染物排放过程(工况)自动监控系统与监控中心之 ...本标准还规定了在线监控(监测)仪器仪表和数据采集传输仪之间的数据传输格式,同时给出了代 码定义。

    SAP业务数据传输指南.part1.rar

    掌握了本书,读者应该可以较好地独立完成sap项目实施过程中新旧系统之间的数据迁移,以及系统应用过程中的数据传输项目。.  本书是sap项目实施人员的必读书籍,也可作为sap顾问的培训教程和sap erp咨询顾问工程...

    基于STM32的液晶屏显示及数据传输控制系统.pdf

    提升数据传输速率,提高数据处理灵活性,解决液晶显示屏刷新速度较慢导致拖尾等降低用户体验的问题,本文设计了一种基于STM32微控制器的液晶屏图像显示及数据传输控制系统。通过将液晶屏显示内容分区处理提高实时...

    电力负荷管理系统数据传输规约

    本规约规定了电力负荷管理系统中主站和终端之间进行数据传输的帧格式、数据编码及传输规则。 本规约适用于点对点、多点共线及一点对多点的通信方式,适用于主站对终端执行主从问答方式以及终端主动上传方式的通信

    SAP业务数据传输指南.part2.rar

    掌握了本书,读者应该可以较好地独立完成sap项目实施过程中新旧系统之间的数据迁移,以及系统应用过程中的数据传输项目。.  本书是sap项目实施人员的必读书籍,也可作为sap顾问的培训教程和sap erp咨询顾问工程...

    单片机串行多机通信

    随着电子技术的发展和微处理器技术的应用,带有单片机的智能型测控系统的应用越来越广泛,多个单片机系统之间数据传输已经应用于工业、科研、农业等领域,而单片机之间的数据通信最常用的就是串口通信方式,串口通信...

    基于MLVDS和USB3.0的多节点数据传输系统设计与实现

    该传输系统采用CYUSB3014接口芯片实现计算机与FPGA的高速数据传输,采用ADN4693E接口芯片完成多节点数据传输,以FPGA作为核心控制器,并基于MLVDS自定义协议解析多节点通信逻辑,实现MLVDS接口与USB3.0接口之间的...

    Nios系统基础上的UItra DMA数据传输模式

    提出一种在不改变传输频率条件下,通过使用寄存嚣组对不同时钟沿数据进行锁存,以数据带宽的扩展为代价,完成IDE总线上的双边数据沿锁存与系统内部的单边数据沿锁存之间的传输模式转换;给出具体的系统读/写操作的...

    论文研究-异构数据库集成中数据传输问题的研究.pdf

    论述了在高校数据集成中各部门子系统数据库与中央数据库之间进行数据传输的问题,包括对异构数据库的数据传输格式统一定义问题,以及使用Java进行跨平台数据传输的各种方法,并对各种传输方法进行比较。

    接口类型

    显卡的接口决定着显卡与系统之间数据传输的最大带宽,也就是瞬间所能传输的最大数据量。不同的接口能为显卡带来不同的性能。,而且也决定着主板是否能够使用此显卡。只有在主板上有相应接口的情况下,显卡才能使用。...

    基于单片机的点对点数据传输系统设计

    采用C语言编程实现双机通信的具体实现方法。双机通信也称点对点的通信 ,用于单片机和单片机之间交换...在整个系统中 ,主要采用串行通信方式进行数据传输。8051单片机自备串行接口 ,为机间通信提供了极为便利的条件。

    电子口岸门户数据传输系统方案分析

    主要描述电子口岸门户数据传输系统方案,通过数据交换中间件实现不同网段之间的数据传输实现方案

Global site tag (gtag.js) - Google Analytics