互联网数据接口开发及应用
2016-03-13中国信息通信研究院电信与信息服务咨询中心宗汉文
中国信息通信研究院电信与信息服务咨询中心 宗汉文
互联网数据接口开发及应用
中国信息通信研究院电信与信息服务咨询中心宗汉文
【摘要】本人从事过很多项目的开发,曾经使用过VB语言,C+ 语言和C#语言,现如今数据接口的应用范围现在越来越宽广,但是其安全性与效率也为人所担心。本人在经历的项目中,总结了一些数据接口设计方面的心得。
【关键词】数据接口;开发;应用
互联网的普及,特别是移动互联网的普及,使得众多的企业和个人的信息交互更加频繁。订单信息、付款信息以及个人信息等私密或不私密的信息不断的在互联网以及移动终端进行交互。在这之间,数据的封装与发送,数据的加密与解密,成为了重要的工作。而完成这些工作的,就是数据接口。相比于内网的数据交互,互联网的数据交互的要求更多,也更加复杂。下面我将为大家简要介绍一下互联网数据接口的使用与开发。
1 接口认证
虽然接口的双方都在网络内部,但是仍然不能排除接口的服务攻击、恶意调用和非法调用等。所以在接口的调用与被调用时,必须考虑认证安全问题。在做数据的采集端,所有的调用用户应该具有唯一的用户名和密码,经过必要的身份认证后,方可进行接口访问。调用方在接到接口返回的认证成功的返回后,方可进行下一步操作。
2 数据安全
数据的安全表现是如何保证数据在网络传输过程中不会被截获并被解析其中内容从而引起信息泄露与如何保证数据在传输过程中的数据完整性两个方面。
WebService采用XML数据格式来进行信息传输,所以要求采用对XML数据加密之后来传输。外部系统接口上有很多种类型的业务,可以针对不同的业务类型分配不同的密钥,也可以根据不同的企业分配不同的密钥,可以按照需求进行选择。密钥的发布由系统服务方来发布,由客户端根据情况进行针对性开发。
为了数据的完整性,必须采用数据签名。利用XML的数字签名对SOAP进行扩展,在SOAP的头元素中定义签名属性来实现。
3 事务处理
事务是系统中一组相关的任务,作为独立于其他任务的单元成功或失败。要提保证不论系统崩溃或是发生其他无法预料的事件,更改都必须是永久有效的。即使只有一个步骤无法保证这一点,整个事务也将失败,所有相关操作都将回滚。
外网系统和服务端系统是处于网络上的两个分布式接口,使用的是分布式事务。要启用分布式事务,可能需要通过网络启用MSDTC,以便在使用应用了最新的ServiceBack的较新操作系统,必须允许MSDTC服务使用网络或打开MSDTC端口。
接口的服务端和客户端的环境始终相同,对于该事务上下文是当前的。这样的事务会造成性能的损失,因为可能需要继承原来的,但是,这样的事务确保了在数据库操作时信息的完整性。
4 性能考虑
在接口设计之初就需要考虑性能问题。同时,在项目的开发过程要反复进行测试。接口上面的性能考虑主要从下面几个方面来优化:
1)使用一次连接,多次调用,优化连接资源。
2)对于并行的接口调用使用异步的调用方式。
3)优化线程池减少竞争。
4)考虑使用XML压缩。
5)如果不需要返回,考虑使用单工通讯的方式。
6)适当的设置(如果有代理)代理超时,页面超时,WebService超时。
7)设计”大块头”的接口减少往返。
8)基于消息的编程而不是远程过程调用(RPC)。
9)使用XML字串作为参数。
10) 尽量使用原始数据类型参数。
11) 避免在调用之间维护服务器状态。
12) 考虑为复杂的WebMethod提供输入校验。
13) 考虑对WebMethod的结果使用缓存。
14) 选择适用的大数据包传送方式。
15) 避免调用本地的WebService。
5 容错处理
客户端向服务端发送数据,服务端进行数据解析,反馈信息给客户端,这中间的环节只要某一个环节出现问题,都会造成接口的失败。按照失败产生的环节分类,我们可以从三个方面来处理接口的失败。
1)网络连接失败。
2)反馈错误信息。
3)网络连接正常,但是无信息反馈。
通过以上的几个步骤的考虑,就可以完成一个数据的采集、发送的安全的数据接口,也将在系统开发的过程中给大家以指导。
参考文献
[1]Brunner, Robert. Practical Guide for Programmers[J]. Morgan Kaufmann Publishers, 2003,16(2):233-237.
Internet data interface development and Application ZONG Han-wen
(Telecommunications and information consulting service center of China Academy of Telecommunication Research,Beijing,China)
Abstract:I have been engaged in the development of many projects, have used VB language, C+ language and C# language, now the application of data interface is now more and more broad, but its security and efficiency are also worried about people. I have experienced in the project, summed up some of the data interface design experience.
KeyWords:Data interface;exploit;apply