`
frinder
  • 浏览: 38654 次
  • 性别: 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中有相应的函数封装。

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

分享到:
评论

相关推荐

    项目间的数据交互方式

    "项目间的数据交互方式" 数据交互是项目之间进行数据传输和共享的过程。不同的系统之间进行数据交互是不可避免的,在实际项目中,我们需要选择合适的数据交互方式,以满足项目的需求。在本资源中,我们将讨论项目...

    C#控制WinForm窗体间数据交互的方法

    本文将详细介绍几种常见的WinForm窗体间数据交互方法,并深入分析各自的优缺点。 #### 方法一:自定义构造函数 这种方法是通过在子窗体中自定义一个构造函数,该构造函数接收主窗体作为参数。当要显示子窗体时,...

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

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

    行业分类-设备装置-基于数据标签的系统间数据交互平台及应用方法.zip

    标题中的“行业分类-设备装置-基于数据标签的系统间数据交互平台及应用方法”揭示了这个主题主要涉及的是在工业或设备装置领域,通过数据标签实现不同系统之间的数据交互和应用策略。在这个领域,数据交换是核心,而...

    .NET页面前后台数据的交互

    本文将详细探讨几种常见的交互方式,帮助开发者理解和掌握如何有效地传递参数和调用方法。 首先,最基本的交互方式是通过HTTP请求。在ASP.NET中,每次用户点击按钮或链接,都会引发一个HTTP请求到服务器。服务器...

    Flash和java的数据交互

    实现Flash和Java的数据交互通常有两种主要方式:Socket通信和AMF(Action Message Format)。 1. **Socket通信**:Flash Player支持TCP和UDP Socket通信,可以与Java服务器建立直接的网络连接。Java服务器端可以...

    flex 文档以及后台数据交互详解

    以下是几种常见的交互方式: 1. **HTTPService**:这是Flex中最常用的后台数据交互方式,通过发送XML、JSON或其他格式的数据来与服务器进行HTTP请求和响应。 2. **WebService**:Flex支持与SOAP Web服务集成,允许...

    数据可视化实战使用D3设计交互式图表.pdf+源码

    数据可视化是一种将复杂的数据集转化为易于理解的图形或图像的过程,它在数据分析、决策制定以及信息传达中扮演着至关重要的角色。本资源是关于“数据可视化实战:使用D3设计交互式图表”的教程,结合了理论知识与...

    Google Earth与ArcGIS数据交互

    在数据交互方面,可以从以下几个方面来理解和实践: 1. 导入Google Earth数据到ArcGIS:Google Earth的KML(Keyhole Markup Language)或KMZ(KML的压缩格式)文件可以导入到ArcGIS中。KML是一种XML语言,用于描述...

    vue中axios实现数据交互与跨域问题

    首先,要在Vue.js项目中使用axios进行数据交互,首先需要安装axios模块。这可以通过npm或yarn来完成: ```bash npm install axios # 或者 yarn add axios ``` 然后,在Vue组件中引入axios,并创建请求实例: ```...

    Android中WebView的JS交互的几种方式

    本篇将详细讲解在Android中使用WebView进行JS交互的几种常见方法,以及如何在实际项目中应用这些技术。 1. **注入JavaScript接口(JavaScript Interface)** Android提供了`addJavascriptInterface()`方法,允许...

    C#版双串口交互数据软件

    在现代计算机技术中,串行通信接口(Serial Port,简称串口)作为一种古老但依然实用的通信方式,广泛应用于各种设备间的通信,如嵌入式系统、传感器网络、工业自动化等场景。C#作为.NET框架下的主流编程语言,其...

    Android Mina UDP数据交互

    总结一下,Android Mina UDP数据交互涉及到以下几个关键点: 1. 在Android客户端和Java服务端引入Mina库并配置UDP通信。 2. 实现IoHandler接口处理网络事件。 3. 使用DatagramPacket进行数据封装和解封装。 4. 设计...

    使用CSplitterWnd实现窗口分割与数据交互

    实现不同视图间的数据交互通常涉及到以下几个步骤: 1. **数据模型**: 创建一个数据模型类,用来存储和管理数据。这个类应该包含必要的数据成员和方法,供视图类访问和修改数据。 2. **视图关联**: 每个视图类都...

    易语言源码与网络数据交互.rar

    网络数据交互是现代软件开发中不可或缺的一部分,无论是客户端与服务器之间的通信,还是设备间的物联网通讯,都需要处理网络数据。易语言提供了丰富的网络模块,如TCP/IP协议栈、HTTP/HTTPS协议支持等,使开发者能够...

    unity3d和网页数据交互的基本原理

    数据交互是Unity3D与网页互动的核心,主要包含以下几种方式: 1. **Unity3D调用网页JavaScript函数**:Unity3D提供了`Application.ExternalCall()`方法,允许在Unity3D中直接调用网页中的JavaScript函数。例如,...

    窗体间数据的同步(C# WinForm)

    实现窗体间数据同步有多种方法,以下列举了常见的几种: 1. **事件驱动编程**:当一个窗体中的数据发生变化时,可以通过触发事件来通知其他窗体更新数据。例如,可以定义自定义的事件,然后在源窗体中改变数据时...

    Qt线程之间通信、线程和进程之间通信实例

    请注意,实际项目中应根据需求选择合适的通信方式,考虑性能、安全性以及平台兼容性等因素。在编写多线程或多进程代码时,正确管理线程和进程的生命周期、同步机制以及异常处理至关重要,以避免出现不可预测的问题。

    Webform与Winform交互

    在.NET Framework中,实现Webform与Winform交互主要依靠以下几种技术: 1. **Web服务(Web Service)**:Web服务是一种基于HTTP协议的通信方式,它可以暴露特定功能供其他应用调用。在Winform中,可以创建一个Web...

Global site tag (gtag.js) - Google Analytics