您的位置:首页 > 其它

跨域数据交互方式

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

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

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

三、 webservice方式。这种方式不再做过多描述。这种方式在互联网上用得多一些。

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

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

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

总之,无论采用哪种方式,你在为实际项目做架构原型的时候,下面几个因素都要考虑周全。

一、 简单。交互的设计要简单,这对调用双方都有好处。

二、 安全性。如何保证数据在交互过程中的安全性是一个点。

三、 性能。在选择的时候,要考虑数据量的大小,以决定一种合适的方式(比如:一次调用请求的数据量,请求调用的频率)。

四、 最后,要考虑重复数据的处理,特别是在其它系统将数据推入的情况,对于推入的数据,要做好处理日志,以备后查
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: