一种数据分发系统的设计与实现_刘跃军
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六期
XML 以其格式的通用性和与平台无关性能很
好的解决在数据共享服务建设过程中,对来自于不同平台的、不同格式的数据转换、分析和处理。
同时,随着Web 访问资源的不断增长,以浏览器为前端工具的Web 访问方式己成为信息访问的主流[1]。
因此,提出了一种以XML 文件作为中间结果实现异构数据源收集与分发的解决方案,以满足共享服务处理中对不同形式数据的处理要求。
1技术概述
1.1Web Services
Web Services 是一种用于分布式应用程序之
间通信的接口技术,它构建于通用的Internet 标准协议栈之上,提供了一种B2B 应用程序的耦合方式。
流行的Web Services 实现一般都是构建在
XML 、SOAP 、WSDL 、WSFL 等技术上。
Web Services
的基本思想是把软件当作一种服务。
一般认为,
Web Service 是通过Web 调用的应用逻辑或功能,
具有自包含(Self —Contained)、自描述(Self —De -
scribing)以及模块化的特点,可以通过web 发布、查
找和调用。
Web Service 的体系结构基于服务提供者、服
务代理者(Web 服务注册中心)和服务请求者三种角色之间的交互。
交互涉及发布、查找和绑定三种基本操作。
这些角色和操作一起作用于Web 服务构件、Web 服务软件模块及其描述。
1.2XML
XML 是eXtensible Markup Language(可扩展的置标语言)的缩写,是W3C 组织于1998年2月发
布的一种互联网上交换数据的标准,它是一种置
标语言,基本上是SGML 的一个子集。
因为XML 也有DTD ,所以XML 也可以作为派生其他置标语言的元语言,没有固定的能够适用于所有领域中所有用户的标签和元素,但它允许开发者和编写者根据需要定义元素。
不但可以描述XML 文档的数据对象,也可以部分地描述处理这些数据对象的计算机程序行为[2,3]。
XML 型数据是以文本形式进行记述,适合于
在多个平台的环境中进行数据交换,从根本上解决了应用系统间的信息交换[4]。
它的成功并不在于它容易被人们书写和阅读,而是因为XML 满足了两个基本的需求:1)将数据和表达形式分离;2)在不同的应用之间传输数据。
2系统设计
2.1系统逻辑结构设计
本系统为基于Web Service 的4层融合C/S 和
B/C 的数据分发系统,主要由6个模块组成:核心
模块、收集模块、分发模块、服务模块、数据源模块和用户模块。
逻辑结构如图1所示。
2.1.1核心模块
核心模块是整个收集/分发系统的核心,它位于中心服务器中,负责联系其他模块:1)负责与用户模块交互,储存用户交互方式(网页或应用程序)并通知分发模块,执行用户的服务请求,将相应的任务分配到各模块;2)部署数据仓库,维护数据仓库的管理;3)协调数据仓库管理系统数据导入接口,存储收集模块发送的数据;4)通过数据仓库的程序接口,调用服务模块内程序,执行相应任务产生结果,发送到分发模块,进行显示。
核心模块
一种数据分发系统的设计与实现
刘跃军苏静
(安阳师范学院继续教育学院,河南安阳455000)
摘
要:基于Web Service 的数据分发系统,充分利用XML 格式的通用性和平台无关性来解决不同数据格式的分发问题。
关键词:XML ;Web Services ;数据分发;JAXR ;中图分类号:TP393
文献标识码:A
文章编号:1673-2928(2008)06-0035-04
收稿日期:2008-04-02
基金项目:河南省教育厅自然科学研究计划项目(2008A180041)资助。
作者简介:刘跃军(1976-),男,安阳师范学院讲师,硕士。
研究方向:计算机网。
安阳工学院学报
Journal of Anyang Institute of Technology
35
安阳工学院学报
Journal of Anyang Institute of Technology2008年
的接口如图2所示。
2.1.2分发模块
分发模块负责接收核心模块发送的用户交互方式和服务结果,将结果进行处理后,转换到与服务方式相对应的输出格式进行显示,并实现对用户自行开发的程序实现接口对接。
2.1.3收集模块
收集模块负责维护各远程数据服务器数据库(包括数据类型、类别、安全等级、数据格式、数据库类型等),定期与数据服务器进行更新数据列表,负责与远程数据服务器建立连接,进行数据交换。
此处涉及到的安全问题,可以采用SSL进行传输。
实现各种数据格式与XML文件的转换,由接收到的XML文件向临时关系数据库映射[5]。
实现数据清洗:由于各数据源对同样的数据表示的格式不同,将这些数据导入统一的关系数据库时,需要进行相应的裁减,将多余的列删掉或者添加一些列,实现格式统一。
此外,在数据量大的时候,为了保证数据的正确接收与吞吐量,此处的临时数据库可采用并行数据库来提高性能。
2.2数据发布接口设计
Web Service对于Web服务的方式进行了扩展,除了传统的Browser方式,它还允许用户根据服务提供商所发布的WSDL文档自行开发客户端,通过SOAP与Web Service提供的服务自动对接,进行数据交换与程序的交互。
数据发布接口的设计实际应包括客户端的设计与数据发布模块的设计。
对于客户端的设计方案主要有以下两方面:2.2.1浏览器的应用方式
现在提供服务比较普遍的方式是采用浏览器/服务器的方式。
为了向下保持兼容性,对于客户端的设计应包括浏览器方式,可以采用比较常用的浏览器,如IE,Netscape和Firefox等。
当然还应包括一些PDA和无线设备的用户,这主要是面向瘦客户端的用户,这类用户只对浏览网页感兴趣,Web 服务的任务就是处理Web请求,实现对信息数据的分类分级后网页化显示并提供数据打包下载。
2.2.2应用程序客户端的应用方式
Web Service的重要特性是它把服务的方式进行了升级,可以在网络上以应用程序级的方式,交换数据。
用户可以通过阅读WSDL文档,自行开发客户端应用程序,直接与服务器进行对接,实现数据的共享。
分发模块负责与这些客户端进行对接,将服务的结果以约定的方式发送给这些客户端。
这类用户属于胖客户端,可以利用组件如Java applet或者采用类似RPC的一些技术,如RMI-IIOP、COR-BA、RPC、COM+等进行开发可以和服务平台直接整合,将服务的数据直接导入用户的业务系统中。
3数据分发平台的开发
3.1基于J2EE的Web Service交互架构
设计Web Service之前,应该明确当前应用是否需要Web Service解决方案。
Web Service技术的优势之一在于能够穿过防火墙,实现跨异构平台的协作,即如果需要将应用的全部或部分功能提供给不同平台上的其他应用访问时,可以引入Web Service解决方案。
对于基于J2EE平台的应用系统,下列两种情况引入Web Service将非常有意义:1)客户端程序不是J2EE应用。
2)客户端程序虽然是J2EE应用,但分布在分散的Web环境中。
普通Web Service的系统架构是面向服务的,服务的发布和发现是Web系统架构中首要解决的问题。
在Java环境下,Web Service通过JAXR(Java API for XML Registries)实现自身的发布。
请求方使用同样的JAXR API寻找服务,使用JAX-RPC绑定和调用Web Service,如图3所示。
图3Java环境下Web Service的发布、发现、
绑定模型36
第六期
客户端通过上述模型获取Web Service的接口后,就开始具体调用Web Service了。
通常,Web Service的调用包括两部分:一部分是描述客户方如何调用和使用服务的交互模型,另一部分则是描述服务器方如何处理请求的处理模型。
处理模型主要描述Web Service处理请求的方式,可能是以业务对象(或方法)为中心的,也可能是以文档为中心的。
交互模型包含了客户和Web Service之间的交互,可能是同步的或者异步的,也可能是两者的结合。
当采用同步模型时,应用通常采用面向RPC 的交互;而以文档为中心的处理通常和异步消息通信相关。
实际的Web Service是不同交互和处理模型的混合体。
3.2基于J2EE的Web Service接口设计
对业务逻辑进行分析和抽象后,可以将其封装到Web Service中。
这个过程涉及如何控制Web Service的粒度以及如何基于JAX-RPC实现Web Service接口。
3.2.1Web Service的粒度
Web Service的粒度反映了Web Service对业务逻辑的封装规模。
Web Service的接口设计主要是服务操作的设计。
设计好操作后,还要为这些操作定义参数、返回值和考虑这些操作可能产生的错误或异常。
设计Web Service的方法需要考虑远程访问和性能的问题。
因此,应该以最优的操作粒度定义Web Service的接口。
小粒度的服务操作为客户提供了极大的灵活性,但带来了巨大的网络负载,同时也降低了性能。
大粒度的服务操作能减少网络负载,改善性能,缺点是不够灵活。
所以,用户应尽量将小粒度的操作合并为大粒度的操作以减少远程方法调用带来的昂贵开销。
3.2.2基于JAX-RPC的Web Service接口设计
开发者可以用Java服务定义或Web Service 服务描述语言定义设计Web Service接口。
通常,前者较方便。
一般所选的Web Service模型应该是由处理需求驱动的:如果采用面向对象的方法,往往使用JAX-RPC调用方法、传递参数、返回结果,实现Java对象到XML的绑定,保证最大的互操作性:如果采用面向文档的交互和处理模型,则在JAX-RPC中将文档传递给Javax.xml.transform. Source对象。
3.2.3基于J2EE的Web Service实现
决定了Web Service模型和采用的设计方法后,就可以准备实现Web Service了。
实现Web Service 的关键步骤包括:接收文档,生成响应;将调用转换为内部表示;执行业务逻辑;发布Web Service。
Web层通过JAX-RPC端点接收客户请求。
被接受的客户请求(SOAP消息)被转换为Web Service,服务接口实现类的方法调用。
服务端点需完成安全验证、参数转换,并在将请求授权给Web Service的业务逻辑之前对请求参数进行预处理。
响应的生成(即构建方法调用返回值)也是在Web层实现的。
将调用转换为内部表示即是将Web Service 调用映射到业务逻辑。
EJB层(或称业务层)才是Web Service请求实现业务逻辑的真正地方。
Web Service存在的意义是提供某种应用的功能,通常不会影响业务逻辑处理,尤其是对于面向对象的Web Service。
但对于面向文档的Web Service业务逻辑的执行而言,最好能够将EJB的文档处理逻辑和业务逻辑分离。
发布Web Service意味着发布Web Service的描述信息,可以在企业内部的私有注册中心发布,也可以在企业外部的公共注册中心发布。
Java Web Service客户使用JAXR APT在注册中心寻找服务描述。
4结论
结合当前流行的XML技术、Web Service体系结构,依靠XML作为数据交换媒质,采用独特的数据收集与存储方法实现数据的分发服务,为解决在异构数据系统之间进行数据共享的问题,提出了数据分发平台的解决方案。
数据分发平台的整合仍是研究的重点,特别是建立一种通用的XML 数据库与管理系统,可以省去向关系数据库的映射机制,直接从XML数据库中提取数据更加快速便捷地提供数据服务。
参考文献:
[1]Hendler J.Agents and Web[J].IEEE Intelligent System,2001,16
(2):30-37
[2]Jasnowski M.Java,XML和Web服务宝典[M].盖江南,等译.北京:电子工业出版社,2002.
[3]Elliotte Rusty Harold.Java语言与XML处理教程[M].刘文红,等译.北京:电子工业出版社,2003.
[4]周生炳,宋浩,袁海洋,等.XML从入门到精通[M].北京:电子工业出版社,2000.
[5]孙一中.XML理论和应用基础[M].北京:北京邮电大学出版社,2000.
(下转41页)
刘跃军苏静:种数据分发系统的设计与实现37
第六期
The Design and Implementation of Data Distribution Based on Web Services
LIU YueJun SU Jing
(Anyang Normal University ,Anyang 455000,China)
Abstract:The Data distribution based on Web Services takes full advantage interoperability of XML format and platform independence to address the problem different data formats distribution.Key words:XML;Web Services;Data distribution;JAXR
分析了对于相同数量级,在时间上明显优于快速排序。
当输入序列是同数量级时可用双倍快速排序算法及其递归方法提高其排序速度。
参考文献:
[1]曹桂琴.数据结构基础[M].大连:大连理工大学出版社,1999:128-145.
[2]Michael Sipser.计算理论导引[M].张立昂,王捍贫,等译.北京:机械工业出版社,2000:45-78.[3]王晓东.计算机算法设计与分析[M ].北京:电子工业出版社,2001:34-45.
[4]王向阳,杨红颖,高存臣.一种新的分“档”快速排序算法[J].小型微型计算机系统,2001,22(8):973-976.[5]王岁花,王川,等.一种新型快速排序算法的设计与实现[J].河南师范大学学报(自然科学版),2002(2).[6]徐孝凯.数据结构辅导与提高[M].北京:清华大学出版社,2003:120-134.
The Improved Algorithm on the Quicksort and Recursion
DONG Ping
(Mechanical &Electrical Engineering Department,Sanmenxia Polytechnic College,
Sanmenxia 472000,China )
Abstract:Quick sorting algorithm with simple structure and good average function have been widely applied in both theory and algorithm design.In this article,the quick sorting algorithm is introduced and a improved quick sorting algorithm and non-recursion quick sorting algorithm are proposed.Corresponding complicated degree was also analyzed in this article.
Keywords:sort ;quick sorting ;algorithm ;double quick sorting algorithm ;recursion
(上接37页)
董萍:改进的快速排序算法与递归
41。