基于soap协议实现的保障性跨域数据传输组件及方法

文档序号:7606893阅读:249来源:国知局
专利名称:基于soap协议实现的保障性跨域数据传输组件及方法
技术领域
本发明涉及通过SOAP协议实现应用系统之间对象和文件的保障性跨域传输组件 及方法。
背景技术
术语解释域将一个应用系统服务封装了 IP地址,端口,服务名称等信息,称为一个域。跨域指两个以及两个以上的域之间的通信及其他业务往来。在目前许多大型企业的信息化建设中,各应用软件之间的数据交互成为必然。数 据来往不只是简单的文本消息,而是大量的业务数据对象的交互。常规处理方法都是通过 XML文件传输,消息中间件的转发通过调用远程接口或webService的调用等。但是这些方 法对数据对象传输的支持都不够稳定和高效,可扩展性较差,重用性低。在企业应用软件中,各系统的数据在服务器之间、应用系统之间跨域传输。在传统 的处理方法中,有通过将对象转换为XML文件,使用文件上传下载的方式,将XML文件发送 到目标服务器,从而达到数据跨域传输。也有通过直接调用远程接口获取数据的方法,等 等。这些方法虽然都实现了对数据的跨域传输。但是也存在诸多问题,例如1.数据在传输过程中,需要进行XML文件的读写操作,如果数据量较大的时候,生 成和解析XML文件所花时间较长。2.普通的文件上传下载没有加密措施,导致安全性下降。3.远程接口调用涉及到服务器之间端口的开放问题,降低了服务器本身的安全 性。4.对消息的发送或者接收结果没有相应的反馈机制。5.传输方式较为单一,不能提供多种可选择的传输方式。6.目前许多系统的数据协同传输都是针对本系统的某一部分功能而特殊设计,如 采用webService技术,其通用性、可移植性、重用性较差。在使用传输技术方面,许多系统选择了消息中间件等商业或开源产品,通过消息 中间件的传输机制来实现系统之间消息数据的交互。但是消息中间件不适宜来实现系统之 间的大数据量的传输,特别是大量的对象传输。使用消息中间件也面临服务器之间的端口 开放的问题,对于许多高级别保密单位来说是不允许的。而SOAP协议(简单对象访问协议)则能避免这些问题,SOAP协议是一种轻量的、 简单的、基于XML的协议。使用S0AP,不用考虑任何特定的传输协议(尽管通常选用HTTP 协议),就能使数据序列化。

发明内容
为了提高跨域业务数据对象的稳定、高效传输,本发明提出了一种基于SOAP协议 实现的保障性跨域数据传输组件及方法,它使用SOAP协议为传输协议,通过设计统一的数据传输对象、跨域消息对象、队列以及线程池来实现具有保障性的跨域传输组件。本发明采用的技术方案如下一种基于SOAP协议实现的保障性跨域传输组件,它主要由三个层次组成传输适配器层主要是在应用系统与跨域传输管理层之间实现数据的转换,在传 输应用的发起方系统,将数据转化为通过组件传输的标准跨域数据;在传输应用的接收方 系统,将标准的传输数据转换成应用系统数据;保障性传输管理层将标准的跨域数据放入传输队列中,进行队列的管理和调度, 并将传输数据进行保存到数据库中,对数据进行加密操作;协议适配器将组件传输标准化数据对象转换为SOAP消息,通过SOAP消息进行传输。一种基于SOAP协议实现的保障性跨域传输方法,其特征在于采用两种统一的数据模型、两种传输方式之一进行跨域传输,两种统一的数据模 型指统一的跨域消息对象和统一的数据传输对象;两种传输方式中,一是对象附件与文件 附件对象结合的方式,二是将业务对象数据序列化到文件中,通过SOAP协议将文件发送到 协同应用接收方的方式;传输步骤包括在传输适配器层,传输发起方将数据转化为标准跨域数据,即转换成统一的跨域 消息对象和统一的数据传输对象,然后发送跨域消息;在保障性传输管理层,将标准的跨域数据放入传输队列中,进行队列的管理和调 度,并将传输数据进行数据库持久化,对数据进行加密;在协议适配器,将标准的跨域数据转换为SOAP消息,通过SOAP消息进行传输;在传输适配器层,传输接收方将接收的传输数据转换成应用系统数据。进一步地使用用两种消息队列和两个线程池,采用两种发送容错方式之一进行传输,其中 两种消息队列指消息发送队列和消息接收队列;两个线程池指发送线程池和接收线程池; 两种发送容错方式指人为干预的重新发送和通过组件自己重试发送。使用同步发送或异步发送的方式发送跨域消息同步发送方式适合用于较少的对 象和文件的发送,同步消息马上连接发送;异步发送方式适合于大数据量的协同传输,异步 发送时,异步消息放入到队列中,等待线程池中的线程空闲后才进行发送。将业务对象数据序列化到文件中,通过SOAP协议将文件发送到协同应用接收方, 其具体步骤为发送方创建数据传输对象和跨域消息对象,添加数据与消息对象的关联关系,发 送跨域消息;判断是否同步发送,若同步发送则发送同步消息,否则发送异步消息;使用协议适配器将跨域消息转换为SOAP消息,发送SOAP消息;接收方接收SOAP消息,将接收的SOAP消息转化为跨域消息对象;保存跨域消息对象和跨域数据对象;调用数据适配器将数据传输对象转换为业务数据对象。所述发送SOAP消息中采用的路由方法是
1)从消息发起站点查找是否能够与接收站点直接连通,如能则发送消息,否则向 所有能与发起站点连通的站点发送消息;2)能与发起站点连通的站点接收到发起站点的消息后,先查找接收站点是否与自 己直接连通,如是则发送路由消息测试能否连通发送消息,如果能连通发送消息则返回一 条路径到前一站点,依次向前返回到消息发起站点,以此形成一条发送链路;如果接收站点不与自己直接连通或者虽与自己直接连通但因故障不能连通,则向 其他所有跟自己直接连通的站点发送路由消息,但是不再往回发送路由消息,依次类推直 到找到接收站点后,返回一条路由链路到发起站点;3)所有的非发起站点和非接收站点在接收到路由消息后,都重复步骤2~)中的操 作;4)通过步骤2)中的路由后,返回到发起站点的都是可连通的、无障碍的消息发送 链路,如果有多条链路,则从中选择经过站点最少的链路发送消息,如果所有的链路经过的 站点一样,则选择最先返回到发送发起站点的链路进行发送。将对象附件与文件附件对象结合进行传输,其具体步骤为发送方添加跨域消息对象进入发送队列;判断线程池是否有空闲线程,若有则取消息对象进行发送,否则等待;使用协议适配器将跨域消息对象转为SOAP消息;采用容错方式发送SOAP消息、发送数据传输对象、发送文件附件;7发送本次跨域消息结束的确认消息;接收方接收SOAP消息,使用协议适配器将SOAP消息转为跨域消息对象;保存接收的内容。本发明具有以下优点1.组件能够在应用系统之间进行数据对象的传输,实体文件的传输,简单消息的 传输。2.使用标准化数据对象的传输方法,能够实现采用统一的方式传输不同的数据对象。3.通过传输线程池的方法保障异步数据传输的稳定性和高效性。4.在传输过程中,文件对象经过加密处理后进行传输,提高了实体文件在传输过 程中的安全性。


图1为基于SOAP协议实现的有保障性跨域传输组件层次结构图;图2是路由消息站点示意图;图3是将业务对象数据序列化到文件中,通过SOAP协议进行跨域传输的流程;图4是将对象附件与文件附件对象结合进行跨域传输的流程。
具体实施例方式本发明涉及基于SOAP协议实现的保障性跨域数据传输组件及方法,下面结合附 图说明。
1、组件结构基于SOAP协议实现的保障性跨域传输组件将实现一个通用性较高,独立性强,可 扩展性好的传输组件。组件的层次结构如图1所示,它主要由三个层次组成传输适配器层传输适配器主要是在应用系统与跨域传输管理层之间实现数据的 转换。在传输应用发起方系统,将数据转化为通过组件传输的标准数据;在传输应用的接收 方系统,将标准的传输数据转换成应用系统数据。保障性传输管理层将标准的跨域数据放入传输队列中,并进行队列的管理和调 度,并将传输数据进行数据库持久化(将传输数据保存到数据库中),对数据进行加密等一 系列操作。协议适配器将组件传输标准化数据对象转换为SOAP消息,通过SOAP消息进行传输。2、组件实现流程及方法SOAP协议传输层采用统一的数据模型,两种消息类型,两种传输方式,两种消息队 列,两个线程池,两种发送容错方式来实现传输。1)统一的数据模型定义了统一的跨域消息对象和统一的数据传输对象。跨域消息对象主要是消息基本信息的载体,包括消息名称,消息的发起者,消息的 接受者,消息的类型,消息的优先级,消息的创建时间,消息的发送时间,消息状态等信息。数据传输对象包括对象附件和文件附件对象。对象附件是跨域消息对象的关联对 象。应用系统的业务数据对象通过传输适配器转换为标准的传输数据对象;该对象以集合 的方式存储在对象附件中,跟随跨域消息对象发送到接收方。文件附件对象主要是记录文 件的基本信息,包括文件名称,文件大小,文件路径,发送状态等。在发送过程中,文件附件 对象和对象附件的状态都随着发送过程而发生变化。标准传输数据对象的数据结构className 业务对象的名称map =DataMap封装了 Java. util. Map接口.可以通过key-value的形式存储对象 的属性值2)消息类型可创建同步和异步类型的消息,同步消息马上连接发送,并能及时反馈结果,适合 用于较少的对象和文件的发送。比如反馈信息,协同共享少量的信息。异步消息将放入到 队列中,进行排队,并等待线程池中的线程空闲后才进行发送。异步消息适合于大数据量的 协同传输。3)消息队列设置两个消息队列,一是消息发送队列,一是消息接收队列。消息发送队列将通过传输适配器生成的消息放入到消息队列中等待发送。如果 线程池中的线程使用完后,消息将在队列中等候。如果有空闲线程则从队列中取出消息进 行发送。消息接收队列组件接收到消息后,先将消息放入接收队列,等待接收处理,如果 线程池内有空闲线程,将马上处理,如果没有则在队列中等待处理。
7
4)线程池建立一个发送线程池和接收线程池。每个线程池默认最多五个线程,最少零个线 程。线程池内的线程数量可以根据应用服务情况进行配置。设置两个线程池的原因是为了 保证发送线程和接收处理线程之间的隔离性。保证了具有比较平衡的生产和消费能力。5)容错方式通过SOAP协议发送过程中因为网络,服务器硬件等原因导致发送失败,因此提供 相应的容错措施是必不可少的。在跨域传输组件中将提供两种容错方式,一是通过人为干 预的重新发送。一是通过组件自己重试发送。如果消息发送失败后,可以选择失败的消息进行重新发送。消息将重新放入到消 息发送队列中等待发送。在发送过程中,如果出现发送失败的情况下,将提供三次自动重试 发送的机制,分别默认等待1分钟,2分钟,5分钟再发送。如果三次尝试都失败后,则释放 资源,表示该消息本次发送周期以失败状态结束。自动尝试发送三次相隔时间可进行灵活 配置。由于服务器断电,硬件错误引起的失败情况,在应用服务重启时,将处于非发送成功 状态下的消息放入到消息队列中重新发送。6)消息路由在发送过程中寻找发送目的地的方法必不可少。如果能够跟本服务器连通的服务 器,则可以直接发送数据进行跨域传输。否则需要通过发送SOAP消息寻找一条最短的可连 通的路径进行消息发送。路由方法如图2:如图所示的消息站点网络图,如果需要通过A发送消息到D,则有A-B-D,A-C-D, A-B-C-D,A-C-B-D 这几条路径。本组件使用的消息路由算法是1.先从发起点A查找是否能够与接收点D直接连通,如果能连通,则发送消息。如 果不能连通,就向所有能够跟发起点A连通的站点发送消息。如上图所示,A需要向B和C 发送站点路由消息。2.在B接收到A的消息后,先查找D是否能够跟B直接连通,如果能连通,则发送 路由消息测试是否能够连通发送消息。如果能则返回一条路径到前一站点,依次向前返回 到消息发起站点,以此形成一条发送链路。如果没有直接连通站点,或者虽有连通站点但是 由于硬件故障或者网络故障不能连通,则向其他所有跟B连通的站点发送路由消息。但是 不再往回发送路由消息,即A向B路由后,B不再向A路由。依次类推直到找到目标域后, 返回一条路由链路到A。3.所有的非发起站点和非接收站点在接收到路由消息后,都重复第2点中的操 作。4.通过第2点中的路由后,返回到发起站点A的都是可连通的,无障碍的消息发送 链路。如果有多条链路,则从其中选择经过站点最少的链路发送消息。如果所有的链路经 过的站点一样,则选择最先返回到发送站点A的链路进行发送。7)协议适配器协议适配器是将标准的传输对象,转化为SOAP协议消息,通过发送SOAP协议消息 来实现数据对象和文件附件的发送。
8)传输方式一是对象附件与文件附件对象结合的方式,在目前应用系统中,如PDM系统,不 仅有存放在数据库中的数据,还有更多放在文件服务器中的文件对象。因此将数据库中的 数据通过协议适配器转换为SOAP消息的消息体,然后再通过SOAP协议可传输附件的特性 发送文件对象。二是将业务对象数据序列化到文件中,通过SOAP协议将文件发送到协同应 用接收方。第一种传输方式的步骤如图3 发送方创建数据传输对象和跨域消息对象,添加数据与消息对象的关联关系,发 送跨域消息;判断是否同步发送,若同步发送则发送同步消息,否则发送异步消息;使用协议适配器将跨域消息转换为SOAP消息,发送SOAP消息;接收方接收SOAP消息,将接收的SOAP消息转化为跨域消息对象;保存跨域消息对象和跨域数据对象;调用数据适配器将数据传输对象转换为业务数据对象。第二种传输方式的步骤如图4 发送方添加跨域消息对象进入发送队列;判断线程池是否有空闲线程,若有则取消息对象进行发送,否则等待;使用协议适配器将跨域消息对象转为SOAP消息;采用容错方式发送SOAP消息、发送数据传输对象、发送文件附件;发送本次跨域消息结束的确认消息;接收方接收SOAP消息,使用协议适配器将SOAP消息转为跨域消息对象;保存接收的内容。两种传输方式可同时存在,在不同的应用场合选择不同的传输方式。总结本发明的特点如下1)采用了 SOAP协议实现域间消息的传输;2)采用线程池的方式进行并发发送;3)采用消息队列管理和数据库持久化的方式实现了消息异步发送以及保障性传 输;4)提供了消息路由算法,使数据能够准确发送到目的地。提高了数据传输的保障 性;5)统一的标准数据传输对象,提高了数据传输的通用性和可扩展性;6)可发送文本消息,数据对象和实体文件;7)支持同步消息和异步消息的发送。
权利要求
1.一种基于SOAP协议实现的保障性跨域传输组件,其特征在于 它主要由三个层次组成传输适配器层主要是在应用系统与跨域传输管理层之间实现数据的转换,在传输应 用的发起方系统,将数据转化为通过组件传输的标准跨域数据;在传输应用的接收方系统, 将标准的传输数据转换成应用系统数据;保障性传输管理层将标准的跨域数据放入传输队列中,进行队列的管理和调度,并将 传输数据进行保存到数据库中,对数据进行加密操作;协议适配器将组件传输标准化数据对象转换为SOAP消息,通过SOAP消息进行传输。
2.一种基于SOAP协议实现的保障性跨域传输方法,其特征在于采用两种统一的数据模型、两种传输方式之一进行跨域传输,两种统一的数据模型指 统一的跨域消息对象和统一的数据传输对象;两种传输方式中,一是对象附件与文件附件 对象结合的方式,二是将业务对象数据序列化到文件中,通过SOAP协议将文件发送到协同 应用接收方的方式; 传输步骤包括2. 1)在传输适配器层,传输发起方将数据转化为标准跨域数据,即转换成统一的跨域 消息对象和统一的数据传输对象,然后发送跨域消息;2. 2)在保障性传输管理层,将标准的跨域数据放入传输队列中,进行队列的管理和调 度,并将传输数据进行数据库持久化,对数据进行加密;2. 3)在协议适配器,将标准的跨域数据转换为SOAP消息,通过SOAP消息进行传输;2.4)在传输适配器层,传输接收方将接收的传输数据转换成应用系统数据。
3.如权利要求2所述的传输方法,其特征在于使用用两种消息队列和两个线程池,采用两种发送容错方式之一进行传输,其中两种 消息队列指消息发送队列和消息接收队列;两个线程池指发送线程池和接收线程池;两种 发送容错方式指人为干预的重新发送和通过组件自己重试发送。
4.如权利要求2所述的传输方法,其特征在于在所述步骤2. 1)中,使用同步发送或异步发送的方式发送跨域消息同步发送方式 适合用于较少的对象和文件的发送,同步消息马上连接发送;异步发送方式适合于大数据 量的协同传输,异步发送时,异步消息放入到队列中,等待线程池中的线程空闲后才进行发送。
5.如权利要求2所述的传输方法,其特征在于将业务对象数据序列化到文件中,通过SOAP协议将文件发送到协同应用接收方,其具 体步骤为5. 1)发送方创建数据传输对象和跨域消息对象,添加数据与消息对象的关联关系,发 送跨域消息;5. 2)判断是否同步发送,若同步发送则发送同步消息,否则发送异步消息; 5. 3)使用协议适配器将跨域消息转换为SOAP消息,发送SOAP消息; 5. 4)接收方接收SOAP消息,将接收的SOAP消息转化为跨域消息对象; 5. 5)保存跨域消息对象和跨域数据对象; 3. 6)调用数据适配器将数据传输对象转换为业务数据对象。
6.如权利要求2所述的传输方法,其特征在于 所述发送SOAP消息中采用的路由方法是6. 1)从消息发起站点查找是否能够与接收站点直接连通,如能则发送消息,否则向所 有能与发起站点连通的站点发送消息;6.2)能与发起站点连通的站点接收到发起站点的消息后,先查找接收站点是否与自己 直接连通,如是则发送路由消息测试能否连通发送消息,如果能连通发送消息则返回一条 路径到前一站点,依次向前返回到消息发起站点,以此形成一条发送链路;如果接收站点不与自己直接连通或者虽与自己直接连通但因故障不能连通,则向其他 所有跟自己直接连通的站点发送路由消息,但是不再往回发送路由消息,依次类推直到找 到接收站点后,返回一条路由链路到发起站点;6.3)所有的非发起站点和非接收站点在接收到路由消息后,都重复步骤6. 中的操作;6.4)通过步骤6.2)中的路由后,返回到发起站点的都是可连通的、无障碍的消息发送 链路,如果有多条链路,则从中选择经过站点最少的链路发送消息,如果所有的链路经过的 站点一样,则选择最先返回到发送发起站点的链路进行发送。
7.如权利要求2所述的传输方法,其特征在于将对象附件与文件附件对象结合进行传输,其具体步骤为 7. 1)发送方添加跨域消息对象进入发送队列;7. 2)判断线程池是否有空闲线程,若有则取消息对象进行发送,否则等待; 7. 3)使用协议适配器将跨域消息对象转为SOAP消息; 7. 4)采用容错方式发送SOAP消息、发送数据传输对象、发送文件附件; 7. 5)发送本次跨域消息结束的确认消息;7. 6)接收方接收SOAP消息,使用协议适配器将SOAP消息转为跨域消息对象; 7. 7)保存接收的内容。
全文摘要
本发明涉及基于SOAP协议实现的保障性跨域数据传输组件及方法,组件包括三个层次传输适配器层在应用系统与跨域传输管理层之间实现数据转换,发起方将数据转化为标准跨域数据;接收方将传输数据转换成应用系统数据;保障性传输管理层将标准的跨域数据放入传输队列中进行队列的管理调度,将传输数据进行数据库持久化和加密;协议适配器将组件传输标准化数据对象转换为SOAP消息,通过SOAP消息进行传输。本发明使用标准化数据对象的传输方法,采用统一的方式传输不同的数据对象;通过传输线程池的方法保障异步数据传输的稳定性和高效性;传输过程中,文件对象经过加密处理,提高了实体文件在传输过程中的安全性。
文档编号H04L29/06GK102118395SQ201110059470
公开日2011年7月6日 申请日期2011年3月11日 优先权日2011年3月11日
发明者于涛, 雍爱国 申请人:北京神舟航天软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1