本发明涉及计算机接口数据传输的开发与应用技术领域,具体地说是一种基于WebService的海量数据传输优化方法。
背景技术:
WebService是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序。WebService技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。
传统的WebService传输数据,在数据量特别大时,根据条件查询数据,以及将查询结果生成XML,都需要很长时间,很容易造成调用WebService超时。传输的XML字符串超过几十兆时,WebService的响应时间会很长,传输效率也很低。
基于此,本发明提出一种基于WebService的海量数据传输优化方法,来解决上述问题。
技术实现要素:
本发明的技术任务是针对以上不足之处,提供一种基于WebService的海量数据传输优化方法。
一种基于WebService的海量数据传输优化方法,基于数据发送端和数据接收端,其实现过程为:
数据发送端与数据接收端约定获取数据状态的接口、获取数据压缩包的接口以及获取数据压缩包校验值的接口;
数据接收端通过定时访问的方式,向数据发送端发出查询条件,来查询数据发送端是否准备好压缩数据包,并调用相应接口来获取压缩数据包;
数据接收端通过校验值校验获取的压缩数据包,确定与发送端发送的压缩数据包一致后完成操作。
数据接收端调用接口获取压缩数据包的过程为:
1)首先数据接收端调用获取数据状态的接口,根据返回的数据状态判断数据文件是否已经准备好;
2)当数据发送端的数据文件已经准备好时,调用获取数据压缩包的接口获取压缩数据包;
3)当数据发送端的数据文件未准备好时,定时重复1)步骤,直到发送端数据文件准备好,调用接口方法获取压缩数据包。
数据发送端准备压缩数据包的过程为,数据发送端根据数据接收端的查询条件,查询满足条件的数据,生成数据文件,并压缩数据文件生成压缩数据包。
所述数据发送端与数据接收端通过约定数据状态的枚举值的方式来确定压缩数据包是否已经准备好发送,其中数据状态的枚举值包括0、1、2,当数据状态的枚举值为0时,表明数据包未准备好;当数据状态的枚举值为1时,表明数据包已准备好;当数据状态的枚举值为2时,表明数据包调用失败。
在数据接收端获取到压缩数据包后通过校验值校验的过程为,
数据接收端调用获取数据压缩包校验值的接口,获取数据发送端数据压缩包的校验值;
数据接收端生成接收端接收到的数据压缩包的校验值;
比较数据发送端和数据接收端的校验值,二者相等,说明发送端和接收端的数据压缩包是一致的;如果不相等,说明发送端和接收端的数据压缩包不一致,重新执行调用相应接口来获取压缩数据包的步骤。
本发明的一种基于WebService的海量数据传输优化方法和现有技术相比,具有以下有益效果:
本发明的一种基于WebService的海量数据传输优化方法,开发人员通过该优化方法,可方便、高效率地实现通过WebService在系统之间传递海量数据,通过WebService接口传输海量数据时,效率高而且不容易超时,实用性强,适用范围广泛,具有很好的推广应用价值。
附图说明
附图1为本发明的数据流向图。
附图2为本发明的实现逻辑图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
如附图1、图2所示,本发明涉及的一种基于WebService的海量数据传输优化实现方法,旨在通过提供一套新的思路,解决在调用WebService传输海量数据时,效率低而且容易超时的问题。
基于数据发送端和数据接收端,其实现过程为:
S10:系统之间不直接传递数据,而是传递压缩数据包,以减少传输的数据量;
S11:数据发送端提供获取数据状态的接口方法;
S12:数据发送端提供获取数据压缩包的接口方法;
S13:数据发送端提供获取发送端数据压缩包校验值的接口方法;
S14:数据发送端和接收端,约定好返回的数据状态的枚举值,以区分压缩数据包是否已经准备好;
S15:数据接收端采用定时访问机制,调用S11、S12的方法获取压缩数据包;
S16:数据接收端要有校验机制,保证接收端接收到的压缩数据包和发送端发送的压缩数据包的一致性。
在步骤S15中,进一步说明,需要执行以下步骤:
1)数据发送端根据接收端的查询条件,查询满足条件的数据,生成数据文件,并压缩数据文件生成压缩数据包;
2)数据接收端调用S11中获取数据状态的接口方法,根据返回的数据状态判断数据文件是否已经准备好;
3)数据发送端的数据文件已经准备好,调用接口方法获取压缩数据包;
4)数据发送端的数据文件未准备好,定时重复2)步骤,直到发送端数据文件准备好,调用S12中的接口方法获取压缩数据包。
所述数据发送端与数据接收端通过约定数据状态的枚举值的方式来确定压缩数据包是否已经准备好发送,其中数据状态的枚举值包括0、1、2,当数据状态的枚举值为0时,表明数据包未准备好;当数据状态的枚举值为1时,表明数据包已准备好;当数据状态的枚举值为2时,表明数据包调用失败。
步骤S16中,进一步说明,需要包括以下步骤:
(1)数据接收端调用S13中的接口方法,获取发送端数据压缩包的校验值;
(2)数据接收端生成接收端接收到的数据压缩包的校验值;
(3)比较步骤(1)和步骤(2)的校验值,二者相等,说明发送端和接收端的数据压缩包是一致的。如果不相等,说明发送端和接收端的数据压缩包不一致,重新执行S15步骤。
实例说明:
在某集团公司内存在两个异构系统A和系统B,彼此可以通过互联网访问。网络间数据流转方式如图1所示,系统A通过WebService接口从系统B中查询并获取海量数据。
逻辑流程如图2所示,系统A按照事先约定的时间,每天定时调用系统B中的WebService接口中返回数据状态的方法,获取系统B的数据状态返回值。
根据双方约定,返回结果为2,说明调用失败,返回错误信息写入操作日志并结束调用。返回结果为0,表示压缩数据包未准备好,系统A每隔5分钟定时调用一次系统B中返回数据状态的方法,直到返回1,表示压缩数据包已经准备好。
系统A调用系统B接口中返回发送端压缩数据包校验值的方法,获取发送端压缩数据包的MD5值(MD5B)。系统A调用系统B接口中返回压缩数据包的方法,获取压缩数据包并保存至本地。系统A生成本地压缩数据包的MD5值(MD5A),比较MD5A和MD5B是否相等。
如果相等,说明接收端数据压缩包与发送端数据压缩包一致,系统A对数据压缩包进行解压缩,解析数据文件并进行后续的相关操作。如果不相等,说明获取到的数据压缩包与源文件不一致,系统A重新调用系统B接口中返回压缩数据包的方法,重新进行一致性验证。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。