`

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

阅读更多

随着近年来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

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

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

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

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

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

    微型计算机应用系统设计案例.pptx

    学习目标 本章通过工程应用实例介绍几种典型微型计算机应用系统及其软硬件设计的一般方法。通过学习,要求读者了解常用的微型计算机应用系统,熟悉其硬件设计方法和软件编程思路。 学习重点 (1) 常用微型计算机...

    wifi模块的数据传输应用与开发毕业设计.doc

    基于WiFi的许多优点,我们对进行便携式电子产品开发的主流芯片ARM 架构下 WiFi 无线技术的研究,我使用并编写串口调试工具,成功的利用WiFi实现了电脑与电脑之间 的数据传输。 关键词:WIFI;嵌入式系统;ARM微处理...

    RFID系统按照工作方式进行分类

     在半双工系统中,从读写器到电子标签的数据传输和从电子标签到读写器的数据传输是交替进行的,并且从读写器到电子标签的能量传输是连续的,与传输的方向无关。  (3)时序系统  在时序系统中,从电子标签到...

    一种基于PWM的CMOS数据接口电路设计

    摘要:给出了一个基于0.25 m标准CMOS工艺的高速数据接口电路。采用PWM(脉宽调制)技术和PLL(锁相环路)结构...为了获得更高的数据传输速率必须增加内部总线宽度,实际应用中,采用更大芯片面积和更多端口数目。这类问

    数据库系统基础知识.pdf

    第1章 数据库系统基础知识 数据库基础知识 1.1 数据模型 1.2 数据库系统 1.3 关系数据库 1.4 数据库系统的体系结构与开发工具 1.5 1.1 数据库基础知识 通常,把用计算机对数据进行处理的应用 系统称为计算机信息系统...

    计算机网络基础与应用-局域网.pdf

    一起,实现数据传输和资源共享的计算机网络系统。 局域网的始于20世纪70年代,以太网(Ethernet) 是其典型的代表。 1. 局域网的特点 地理分布范围小,一般是几百米到几公里的范围。 数据传输速率高,误码率低。 ...

    计算机应用基础课件——网络基础知识.pptx

    6.2 数据通信的基本概念 6.2.1 基本概念 信号与信道 模拟通信和数字通信 数据传输方式 带宽和数据传输率 MAC地址 计算机应用基础课件——网络基础知识全文共53页,当前为第5页。 6.2 数据通信的基本概念 6.2.2 无线...

    数据库容灾系统方案.doc

    通过Data Guard,还将重做数据传输到备用站点上,并应用到备用数据库中,从而使备用数据库与 主数据库保持同步。Data Guard允许管理员选择将重做数据同步还是异步地发送到备用站点上。 备用数据库的底层技术是Data ...

    《计算机应用基础》第一章简答题.docx

    前段总线速率:表示CPU与总线之间数据传输的速度,如果CPU处理的速度很快,但不能及时传递到总线上,那整个运算的效率就会下降。 指令系统和字长:指令系统是指计算机所能执行全部指令的集合,不同计算机的指令系统...

    新源人力资源管理系统网络版人事管理系统

    可以支持用户进行数据项目的添加,修改,删除,和项目类型、项目属性的定义,同时,也可以给项目设置计算公式,以实现多个数据项目之间的数值自动互动,减少用户的工作量,提高工作效率,也使用本系统实现了其它很多...

    门禁系统设计 论文 完整版

    最近几年,随着自动识别技术的发展,门禁系统得到了飞跃式的发展,进入了成熟期,出现了乱序键盘门禁系统、IC卡式门禁系统、感应式门禁系统、各种生物识别门禁系统,这些门禁系统应用的自识别系统更为先进(感应技术...

    云端,云端将未来十大IT技术之一的应用虚拟化,全球第一家引入个人用户领域,创造软件使用崭新方式:不安装、不重装、无垃圾。

    当软件B被云端虚拟化后,云端将软件B原本写到注册表系统的注册表项和写到文件系统的的文件分离出来,存储在软件B的注册表缓存和文件缓存中,这些缓存数据存储在云端独有的缓存里(cloudcache)。 当在云端中激活...

    东财《计算机应用基础》综合作业.docx

    A:信息是可以传播的 B:信息可以不依附于某种载体而存在 C:信息是可以处理的 D:信息是可以共享的 答案:B 在Windows 的中文输入方式下,在几种中文输入方式之间切换可以按()键。 A:Shift+Space B:Ctrl+Space C:...

    数据库管理系统(1).doc

    下面简要介绍几种 常用的数据库管理系统。 Oracle Oracle是一个最早商品化的关系型数据库管理系统,也是应用广泛、功能强大的数 据库管理系统。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能 ,...

    数据库系统基础知识.doc

    3)实体间的联系 实体间的联系主要有两实体、两个以上实体及同一实体几种情况,下面分别举例介绍, 最后给出一个学生教学管理系统实例。 (1)两实体间的联系 两实体间的联系类型可以分为三种:一对一联系(1:1)、一...

Global site tag (gtag.js) - Google Analytics