专利名称:一种基于面向服务架构的大批量数据传输系统及方法
技术领域:
本发明涉及一种计算机领域,具体 地讲,本发明涉及一种运用面向服务架构(Service-Oriented Architecture, S0A)领域中的Web Service技术手段实现企业应用集成中的大批量数据的传输系统及方法。
背景技术:
面向服务架构(Service-Oriented Architecture, S0A)是一种构造分布式系统的方法,它将传统的单片式应用打破,分解为离散的、自治的业务服务,利用标准提升它们的互操作性,从而可以更好地共享、重用和组装,快速构建复合的应用从而满足业务需求的变化。在SOA架构下接口是采用编程语言中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。当前应用SOA架构对企业各异构的信息系统进行整合已经成为一种趋势,基于SOA的集成方法正推动着市场的发展,IBM、Oracle、Microsoft、SAP等主流厂商已转向S0A。Web Service是SOA架构中服务的一种实现方式,在SOA架构中,服务可以有多种形式,如CORBA接口,JMS消息队列等。Web Service是目前使用最广、最为普遍的一种服务实现方式。Web Service 采用 XML (可扩展标记语言)、XSD (XMLSchema)、SOAP (SimpleObject Access Protocol,简单对象访问协议)、WSDL (Web服务描述语言)等独立于平台、独立于软件供应商的标准。Web Service实现的服务具有最好的可交互性和最大的可重用性。J2EE (Java 2 Platform Enterprise Edition, Java 2 平台企业版)是实现 WebService的一种底层技术框架,是利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是J2SE (Java标准版),J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP (Java Server Pages)以及 XML 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。由于Web Service本身并不适合处理大批量数据传输,对XML数据的分析、处理、转换需要耗费大量的CPU与内存资源,标准Web Service在传输万行以上数据记录(例如约10M大小XML数据)时普遍存在性能瓶颈,会产生内存溢出错误并可能导致中间件崩溃。并且,在企业内部万行以上数据的传输是普遍存在的,以上的技术已经不能满足企业内部大批量数据传输的需求。所以,有必要提出一种新的解决方案,以解决企业应用集成中的Web Service的大批量数据传输问题。
发明内容
本发明的目的在于一种基于面向服务架构的大批量数据传输系统及方法,可以使Web Service具备大批量数据传输能力,可以实现十万行以上大批量数据的传输,从而提高SOA架构应用系统的数据传输能力,减少数据对内存资源的消耗,满足企业内部大批量数据的整合需求。为了解决以上技术问题,本发明提供一种基于面向服务架构的大批量数据传输系统,包括Web Service客户端和Web S ervice服务端,所述Web Service客户端,从服务消费方系统的数据库读取大批量数据,进行序列化和压缩处理后,将数据传送给Web Service服务端;所述Web Service服务端,从Web Service客户端中接收大批量数据后进行解压缩和序列化处理,将数据写入数据库中。进一步地,所述Web Service客户端进行序列化处理,是将大批量数据封装成Java对象数组,再将Java对象数组序列化成流对象。进一步地,所述Web Service客户端进行序压缩处理,是所述Web Service客户端创建一个压缩流,将流对象写入压缩流。进一步地,所述Web Service客户端将数据传送给Web Service服务端,具体包括:Web Service客户端将压缩流转换成文件,将文件以附件形式加入到SOAP请求中,发送给Web Service服务端。进一步地,所述Web Service服务端进行解压缩处理,是Web Service服务端解析获取到附件,获取流对象,并对流对象进行解压缩。进一步地,所述Web Service服务端进行序列化处理,是Web Service服务端通过序列化机制从解压缩出来的流数据中读取Java对象数组,将Java对象数组写入数据库中。为了解决以上技术问题,本发明还提供一种基于面向服务架构的大批量数据传输方法,包括步骤l、Web Service客户端从数据库中获取大批量数据;步骤2、Web Service客户端将获取到的大批量数据进行序列化和压缩处理;步骤3、Web Service客户端将处理后的数据发送给Web Service服务端;步骤4、Web Service服务端通过SOAP请求,获取附件;步骤5、Web Service服务端对获取的附件进行解压缩和序列化处理;步骤6、Web Service服务端将执行结果发送给Web Service客户端。进一步地,所述步骤2中进行序列化处理,是将大批量数据封装成Java对象数组,再将Java对象数组序列化成流对象。进一步地,所述步骤2中进行序压缩处理,是所述Web Service客户端创建一个压缩流,将Java对象数组流对象写入压缩流。进一步地,所述步骤3具体包括Web Service客户端将压缩流转换成文件,将文件以附件形式加入到SOAP请求中,发送给Web Service服务端。进一步地,所述步骤5中进行解压缩处理,是Web Service服务端解析获取到附件,获取流对象,并对流对象进行解压缩。进一步地,所述步骤5中进行序列化处理,是Web Service服务端通过序列化机制从解压缩出来的流数据中读取Java对象数组。进一步地,所述步骤5进一步包括Web Service服务端将Java对象数组写入数据库中。进一步地,所述步骤5进一步包括Web Service服务端根据解压出来的数据执行相关业务处理操作。与现有技术相比,本发明提供一种基于SOA架构的Web Service大批量数据传输技术,采用对大批量数据进行特殊的封装和处理的机制,采用Java序列化技术将大批量数据序列化后,再采用Java压缩技术将序列化后的数据进行压缩,最后以附件方式存放在SOAP消息中。这样,可以使Web Service具备大批量数据传输能力,可以实现十万行以上大批量数据的传输,从而提高SOA架构应用系统的数据传输能力,减少数据对内存资源的消耗,满足企业内部大批量数据的整合需求。
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是本发明提供一种基于SOA的大批量数据传输系统的结构示意图。图2是本发明提供一种基于SOA的大批量数据传输方法的流程图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。如图I所示,本发明提供一种基于面向服务架构SOA的大批量数据传输系统,包括ffeb Service客户端10和Web Service月艮务端20。其中,Web Service客户端10,部署在服务消费方系统中,该Web Service客户端10从服务消费方系统的数据库12读取大批量数据,进行序列化和压缩处理后,将数据封装成SOAP消息传送给Web Service服务端20。Web Service客户端进行序列化处理,是Web Service客户端将大批量数据封装成Java对象数组,再将Java对象数组序列化成流对象。Web Service客户端进行序压缩处理,是所述Web Service客户端创建一个压缩流,将流对象写入压缩流。Web Service客户端将数据传送给Web Service服务端,具体包括Web Service客户端将压缩流转换成文件,将文件以附件形式加入到SOAP请求中,发送给Web Service服务端。Web Service服务端20,部署在Web Service提供方系统(S0A平台方系统)中,该Web Service服务端20对外提供Web Service接口,从Web Service客户端10中接收大批量数据后进行解压缩和序列化处理,将数据转为对象,写入数据库22中,并根据解压的数据执行相关业务处理操作,将执行结果返回给Web Service客户端10。其中,Web Service服务端进行解压缩处理,是Web Service服务端解析获取到附件,获取流对象,并对流对象进行解压缩。Web Service服务端进行序列化处理,是Web Service服务端通过序列化机制从解压缩出来的流数据中读取Java对象数组,将Java对象数组写入数据库中。如图2所示,本发明提供一种基于面向服务架构SOA的大批量数据传输方法,包括以下步骤步骤l、Web Service客户端从数据库中获取大批量数据。步骤I. l、Web Service客户端通过JDBC方式访问数据库,从数据库中获取大批量数据。步骤2、Web Service客户端将获取到的大批量数据进行序列化和压缩处理,具体包括步骤2. l、Web Service客户端将大批量数据封装成Java对象数组,数组中的每一 个元素对应一条数据库记录。步骤2. 2、Web Service客户端将Java对象数组序列化成流对象。步骤2. 3、Web Service客户端创建一个压缩流,将Java对象数组流对象写入压缩流。步骤3、Web Service客户端将压缩流转换成附件加入到SOAP请求中,发送给WebService服务端;具体包括步骤3. I、Web Service客户端将压缩流转换成文件。步骤3. 2、Web Service客户端将文件以附件形式加入到SOAP请求中,发送给WebService服务端。步骤4、Web Service服务端通过SOAP请求,获取附件。步骤5、Web Service服务端对获取的附件进行解压缩和序列化处理。步骤5. I、Web Service服务端解析获取到附件,获取流对象。步骤5. 2、Web Service服务端对流对象进行解压缩。步骤5. 3、Web Service服务端通过序列化机制从解压缩出来的流数据中读取Java对象数组。步骤5. 4、Web Service服务端根据解压的数据执行相关业务处理操作。步骤5. 5、Web Service服务端将Java对象数组写入数据库中。步骤6、Web Service服务端将业务执行结果发送给Web Service客户端。本发明提供一种基于SOA架构的Web Service大批量数据传输技术,采用Java序列化技术将大批量数据序列化后,再采用Java压缩技术将序列化后的数据进行压缩,最后以附件方式存放在SOAP消息中。这样,可以使Web Service具备大批量数据传输能力,可以实现十万行以上大批量数据的传输,从而提高SOA架构应用系统的数据传输能力,减少数据对内存资源的消耗,满足企业内部大批量数据的整合需求。上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种基于面向服务架构的大批量数据传输系统,其特征在于,包括:Web Service客户端和Web Service服务端, 所述Web Service客户端,从服务消费方系统的数据库读取大批量数据,进行序列化和压缩处理后,将数据传送给Web Service服务端; 所述Web Service服务端,从Web Service客户端中接收大批量数据后进行解压缩和序列化处理,将数据写入数据库中。
2.如权利要求I所述的系统,其特征在于,所述WebService客户端进行序列化处理,是将大批量数据封装成Java对象数组,再将Java对象数组序列化成流对象。
3.如权利要求2所述的系统,其特征在于,所述WebService客户端进行序压缩处理,是所述Web Service客户端创建一个压缩流,将流对象写入压缩流。
4.如权利要求3所述的系统,其特征在于,所述WebService客户端将数据传送给WebService服务端,具体包括:Web Service客户端将压缩流转换成文件,将文件以附件形式加入到SOAP请求中,发送给Web Service服务端。
5.如权利要求4所述的系统,其特征在于,所述WebService服务端进行解压缩处理,是Web Service服务端解析获取到附件,获取流对象,并对流对象进行解压缩。
6.如权利要求5所述的系统,其特征在于,所述WebService服务端进行序列化处理,是Web Service服务端通过序列化机制从解压缩出来的流数据中读取Java对象数组,将Java对象数组写入数据库中。
7.一种基于面向服务架构的大批量数据传输方法,其特征在于,包括 步骤l、Web Service客户端从数据库中获取大批量数据; 步骤2、Web Service客户端将获取到的大批量数据进行序列化和压缩处理; 步骤3、Web Service客户端将处理后的数据发送给Web Service服务端; 步骤4、Web Service服务端通过SOAP请求,获取附件; 步骤5、Web Service服务端对获取的附件进行解压缩和序列化处理; 步骤6、Web Service服务端将执行结果发送给Web Service客户端。
8.如权利要求7所述的方法,其特征在于,所述步骤2中进行序列化处理,是将大批量数据封装成Java对象数组,再将Java对象数组序列化成流对象。
9.如权利要求8所述的方法,其特征在于,所述步骤2中进行序压缩处理,是所述WebService客户端创建一个压缩流,将Java对象数组流对象写入压缩流。
10.如权利要求9所述的方法,其特征在于,所述步骤3具体包括WebService客户端将压缩流转换成文件,将文件以附件形式加入到SOAP请求中,发送给Web Service服务端。
11.如权利要求7所述的方法,其特征在于,所述步骤5中进行解压缩处理,是WebService服务端解析获取到附件,获取流对象,并对流对象进行解压缩。
12.如权利要求11所述的方法,其特征在于,所述步骤5中进行序列化处理,是WebService服务端通过序列化机制从解压缩出来的流数据中读取Java对象数组。
13.如权利要求12所述的方法,其特征在于,所述步骤5进一步包括:WebService服务端将Java对象数组写入数据库中。
14.如权利要求12所述的方法,其特征在于,所述步骤5进一步包括:WebService服务端根据解压出来的数据执行相关业务处理操作。
全文摘要
本发明提供一种基于面向服务架构大批量数据传输系统,包括Web Service客户端和Web Service服务端。Web Service客户端,从数据库读取大批量数据,进行序列化和压缩处理后,将数据传送给Web Service服务端;Web Service服务端,从Web Service客户端中接收大批量数据进行解压缩和序列化处理,将数据写入数据库。本发明还提供一种基于SOA大批量数据传输方法。通过本发明方案,可以使Web Service具备大批量数据传输能力,实现十万行以上大批量数据的传输,从而提高SOA架构应用系统的数据传输能力,减少数据对内存资源的消耗,满足企业内部大批量数据的整合需求。
文档编号H04L29/08GK102710768SQ20121017672
公开日2012年10月3日 申请日期2012年5月31日 优先权日2012年5月31日
发明者晏建军 申请人:深圳市远行科技有限公司