`

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

阅读更多

随着近年来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请求来的消息,进行展示任务结果



ref:http://www.cnblogs.com/aigongsi/archive/2012/04/26/2413646.html
  • 大小: 34 KB
  • 大小: 66.5 KB
  • 大小: 36.9 KB
  • 大小: 54.8 KB
  • 大小: 102.2 KB
分享到:
评论

相关推荐

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

    本文将详细介绍几种常见的应用系统间数据传输方式,并针对每种方式的特点、优缺点进行分析。 #### 二、数据传输的基本要素 在探讨具体的传输方式之前,我们需要了解数据传输的基本要素: 1. **传输方式**:指数据...

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

    ### 应用系统之间的几种数据传输方式 #### 一、数据传输方式概述 随着SOA(面向服务架构)的普及,应用系统之间的交互越来越频繁。为了确保这些交互能够高效、安全地进行,需要选择合适的数据传输方式。本文将详细...

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

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

    EM200模块在无线数据传输系统中的应用研究

    本文重点介绍了几种常见的无线数据传输方式,包括GSM短消息、CDMA、GPRS以及蓝牙和ZigBee等。GSM短消息虽然便捷,但传输速率低且延迟不可控。CDMA则提供了更高的理论传输速率(1.2288MHz频带中的300kbps),并具备抗...

    无线数据传输的组网方式.pdf

    本文旨在详细介绍无线数据传输中的几种常见组网方式,并分析每种方式的特点及其适用场景。 #### 二、无线数据传输组网方式详解 ##### 1. 点对点(Point-to-Point) 点对点是最基础的无线通信模式,它相当于将一条...

    基于ARM的GPRS远程数据传输系统的设计

    GPRS作为介于2G和3G之间的2.5G技术,基于GSM网络,采用分组交换方式,仅在数据传输时占用无线资源,具有高数据传输速率和经济性,非常适合远程数据采集和监控的应用场景。 #### 二、系统硬件设计 ##### 2.1 系统...

    FC-201在无线数据传输系统中的应用设计

    ### FC-201在无线数据传输系统中的应用设计 #### 一、无线数据传输概述 数据传输技术作为现代通信的基础之一,对于信息化社会的发展至关重要。数据传输可以通过有线方式,例如总线传输、串行传输、局域网络传输及...

    基于RTP协议的远程视频监控系统中数据传输的实现.pdf

    ### 基于RTP协议的远程视频监控系统中数据传输的实现 #### 一、引言 随着信息技术的发展,远程视频监控系统已成为现代社会中不可或缺的一部分。这些系统不仅用于安全监控,还在教育、医疗、交通等多个领域发挥着...

    SQL Server中的数据传输及其应用.pdf

    "SQL Server中的数据传输及其应用.pdf" SQL Server中的数据传输及其应用.pdf是关于SQL Server数据库管理系统中的数据传输技术的详细介绍。该文件对SQL Server 7.0版本的数据传输功能进行了详细的介绍,包括数据传输...

    NRF905的无线数据传输系统

    NRF905是一种广泛应用于无线通信领域的高性能单片收发器模块,常用于短距离无线数据传输系统设计。NRF905工作在无需申请许可的工业、科研和医疗(ISM)频段内,支持三个工作频率:433MHz、868MHz和915MHz。模块采用...

    教育科研-学习工具-SCADA系统与数据库平台之间的数据传输方法及装置.zip

    SCADA(Supervisory Control and Data Acquisition)系统是一种广泛...通过对这份资料的深入学习,学生和研究人员可以了解SCADA系统与数据库平台之间数据传输的原理和技术,为工业自动化领域的创新和实践打下坚实基础。

    家庭、社区远程医疗诊断系统数据传输协议的设计

    本文将详细介绍一种适用于家庭和社区远程医疗诊断系统的数据传输协议的设计思路及其应用。 #### 协议设计背景与意义 当前,虽然医疗图像信息已有国际通用标准DICOM,但在医学生理信息领域(如心电图、血压监测等)...

    AT89C51单片机在无线数据传输中的应用

    根据提供的文件信息,本文将详细解析AT89C51单片机在无线数据传输中的应用,主要包括...通过对AT89C51单片机的深入了解和合理应用,可以有效提升无线数据传输系统的性能和可靠性,为现代通信技术的发展提供了有力支持。

    多点无线数据传输系统.doc

    多点无线数据传输系统是一种基于微控制器和特定调制方式的通信系统,它由一个主接收机和两个发射机组成,主要用于无线传输文字和语音数据。该系统的核心控制器是89S52单片机,它负责数据编码和管理整个传输过程。89S...

    Activity间数据传输

    本文将详细介绍几种常见的数据传输方式,并探讨各自的优缺点。 #### 二、基于Intent的数据传输 **1. Intent的作用** - `Intent`是Android中的一种消息机制,用于启动新`Activity`或向其他组件发送消息。 - 在启动...

Global site tag (gtag.js) - Google Analytics