`
frinder
  • 浏览: 36421 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

你一定要知道的几种项目间数据交互方式

阅读更多

不同的系统之间进行数据交互是可避免的,总的说来,可以总结为向第三方系统推送数据或从服务器拉回数据两种,下面我列举几种常见的系统间数据交互方式,并给出架构设计时应考虑的因素。

一、 ftp服务器共享方式。即建立一个ftp服务器,为不同的系统分配账号、密码、目录的操作权限等,要交换数据的两个系统要约定好数据格式(比如:xml文件,excel文件,csv文件等)、文件命名方式、存放路径等规则等。交互时,一个系统按约定的时间将数据写入ftp目录中,另一个系统定期取走并进行相应的业务操作。这种方式在电信、移动中项目用得比较多,特别是sp。交互示意图如下:

ftp数据交换示意图

二、 socket通讯服务器方式。要传送数据的双方建立socket连接后再传送数据,数据格式自行约定,并对传输的数据进行加密,这种方式在银行系统中用得比较多(c、c++写的核心)。交互示意图如下:

socket数据交换示意图

三、 webservice方式。这种方式不再做过多描述,具体请参阅我的《webservice之cxf实现》,《webservice架构设计》博文。这种方式在互联网上用得多一些。

webservice数据交换示意图

四、 远程rmi(如OMG CORBA)方式。以前我在delphi中实现过(怀念李维的时代,呵呵),j2se中也有相应的支持,这种方式相对来说比较复杂。如果同为java系统可用jndi方式,ejb也是一种方式。

五、 远程url地址方式。这种方式在互联网上用得很多,比如:facebook,豆瓣的api,支付宝在线支持数据交互等等,早期DWR的web远程调用本质上也属于这种。当然,webservice说到底也是这种方式,只不过数据的xml打包和解包过程由程序按照规范自动完成。交互示意图如下:

url调用方式数据交换示意图

这种暴露url地址方式的数据传输格式可以是xml、json或自定义text格式,也可以在请求参数中直接协带一个一个需要的数据。要注意的是,如果在客户浏览器中解析第三方服务器的json数据会有跨域安全访问问题(无论js还是fash、flex都一样),还好,jQuery中有相应的函数封装。

总之,无论采用哪种方式,你在为实际项目做架构原型的时候,下面几个因素都要考虑周全。
一、 简单。交互的设计要简单,这对调用双方都有好处。
二、 安全性。如何保证数据在交互过程中的安全性是一个点。
三、 性能。在选择的时候,要考虑数据量的大小,以决定一种合适的方式(比如:一次调用请求的数据量,请求调用的频率)。
四、 最后,要考虑重复数据的处理,特别是在其它系统将数据推入的情况,对于推入的数据,要做好处理日志,以备后查。

分享到:
评论

相关推荐

    详解Android客户端与服务器交互方式

    要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式标准、交互方便。 为了与服务器通讯其实无非就两种协议HTTP和TCP,TCP的学习Socket,HTTP的话熟悉一下HTTP协议和相关Java API。而...

    WEB数据交互的艺术

    嘉宾简介:黄方荣 WEB开发高级工程师,1998年大学毕业,2000年...几种疑难数据交互的实现(跨页交互、跨域交互、即时交互等),这些解决方案一部分是已经在现有产品线上实现,还有一部分是正在实施;数据交互的意义等…

    多种方式实现JS调用后台方法进行数据交互

    项目开发过程中很多地方都需要前端和后台的数据交互,几种典型常用的方法如利用控件的AutopostBack属性、Button提交表单等等。但这些都是有条件的,AutoPostBack具有实时性但会刷新页面,Button提交表单不能实现数据...

    Android webview与js的数据交互

    项目要用到Webview和js交互,查了查以前的项目感觉还是有必要整理下的。 ...针对于上述的需求我们通用的方式大概有两种,一...首先需要初始化WebView以及设置支持JavaScript,常用的配置属性有一下几种,可以在项目中根

    Struts2和Ajax数据交互示例详解

    前言 我们从Web 2.0的随波逐流,Ajax的大放异彩说起,Struts2框架自己整合了对Ajax的原生支持...这里我主要记录下自己所掌握的几种方式。可以根据自己平时项目的需求来进行选择。  1.使用stream类型的result 此种

    基于模型编排的实时数据挖掘框架源码+项目说明.zip

    实时数据挖掘的挑战主要表现为以下几个方面: + 第一, 数据量大且保存时间不能太长,这通常出于成本或用户隐私的考虑。 + 第二, 数据处理流程是智能模型+人工或规则,例如客服场景中,会先用NLP模型处理用户投诉内容...

    内存数据交换格式ApacheArrow.zip

    过去几年开源社区已经发布了很多工具来完善大数据分析的生态系统,这些工具涵盖了数据分析的各个层面,比如列式存储格式(Parquet/ORC)、内存计算层(Drill、Spark、Impala和Storm)以及强大的API接口(Python和R语言)。...

    异构数据源数据交换工具 DataX.zip

    DataX 目前支持数据如下: DataX Framework 提供了简单的接口与插件交互,提供简单的插件接入机制,只需要任意加上一种插件,就能无缝对接其他数据源。详情请看:DataX 数据源指南 四、DataX3.0 核心架构 DataX ...

    AnyFo - Util - Json4Ext:通用ExtJS数据交换处理

    那么就需要使ExtJS开发的界面和后台Java代码中生成的数据交互,一般来说,可以选 择XML格式和Json格式的数据进行交互,但是XML格式的数据操作相对繁琐,因此,大部分开发会选择Json格式的数据进行交互,因此,我们的...

    大数据下的智能数据分析技术研究.pdf

    1 几种传统智能数据分析方法的比较 大数据智能分析需要有新的理论和技 术的突破,但它与传统的智能数据分析方 法必定还有延续。 传统的数据分析领域,如 知识库系统、 数据仓库、 数据挖掘等已经积 累了很多优秀的...

    mentimeter:一种交互式实时演示,观众可以通过给出答案或投票与演示者进行交互。 用户可以使用几种配置创建自己的演示文稿。 使用VueJS开发

    交互式实时演示交互式实时演示,观众可以通过给出答案或... 用户可以使用几种配置创建自己的演示文稿。 该项目的灵感来自Mentimeter应用程序。 使用VueJS和NodeJS开发。1.创建新的演示文稿2.添加新幻灯片3.实时更新演示

    基于python的疫情数据可视化分析系统--lw.zip

    这个基于Python语言开发的项目是一个使用MySQL作为数据存储的应用程序,使用Django作为开发框架。其主要目标是提供一个功能强大且易于使用的语音开发解决方案。 该项目具有以下几个突出的优点: Python语言的优势...

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    前后端分离后台管理项目(springboot+mybatis+vue)

    在前后端分离后台管理项目中,前端通常使用HTML、CSS和JavaScript等技术构建用户界面,并通过HTTP请求与后端进行数据交互。后端使用服务器端编程语言(如Java、Python、Node.js等)和数据库来处理数据,并提供API...

    AJAXCDR:利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求

     本域和其他域的交互,可以通过iframe、代理、JS创建动态脚本等几种方法来实现,这里有篇文章对几种方法作了简要的介绍。  iframe、JS创建动态脚本这两种方法,需要开发者能控制两个域,两端都要编写相应的代码,...

    环境监测数据采集管理系统.zip

    管理系统,作为一种高效的企业运营管理工具,旨在通过集成化、系统化的手段,对组织内部的各类资源进行规划、协调、控制和优化,以实现企业战略目标,提升运营效率,增强核心竞争力。以下是对管理系统的详细介绍: ...

    数据可视化报告.doc

    2018年 6 月 7 日 目录 一、 题目 4 二、 数据 4 三、 可视化工具(哪一种,选择原因) 4 四、 可视化方案或可视化实现过程 4 1、 导入数据并进行规范化 4 2、 数据连接与整理 4 3、 将地理信息与地图进行结合 5 4、...

    该项目是一个通用的Buff系统.zip

    该系统能够轻松集成到现有项目,你可以方便地添加、管理和应用自定义逻辑的Buff。 管理系统,作为一种高效的企业运营管理工具,旨在通过集成化、系统化的手段,对组织内部的各类资源进行规划、协调、控制和优化,以...

    纯手写数据层业务层人力资源管理系统.zip

    管理系统,作为一种高效的企业运营管理工具,旨在通过集成化、系统化的手段,对组织内部的各类资源进行规划、协调、控制和优化,以实现企业战略目标,提升运营效率,增强核心竞争力。以下是对管理系统的详细介绍: ...

    .NET Core实战项目之CMS系列教程的源码.zip

    精简而又功能丰富的权限设计,内容管理设计让你轻松搭建一个ASP.NET Core2.2的网站系统.此项目准备用EFCore进行重构 管理系统,作为一种高效的企业运营管理工具,旨在通过集成化、系统化的手段,对组织内部的各类...

Global site tag (gtag.js) - Google Analytics