版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第一章 引言在网络应用和信息技术飞速发展的形式下,各行各业信息化已是必然的发展趋势。信息化的建设已经取得了显著的成就,如何充分利用现有的信息化资源提高企业竞争力成为当前主要的问题。面向服务思想改变了传统的系统设计理念,为企业的商业竞争带来了经济效益。本章简要总数了本论文的研究背景和意义,同时介绍了本文的组织结构。1.1 研究背景与意义互联网的高速发展,使得各行各业的信息化趋势愈演愈烈。但以往众多信息系统的开发缺乏系统性,在这些系统中滞留了大量的业务数据,而系统间没有联系,形成了众多的信息孤岛。手工的数据转移会耗费大量的人力、物力及时间,且不具有时效性1。因此,构建异构数据环境的数据交换与共享
2、平台是时代发展的必然选择。当前,数据共享主要分三类:数据集中共享模式、点到点数据共享模式、面向服务的数据共享模式2。数据集中交换模式需要建立一个统一的数据交换中心,对数据进行集中处理、存储、交换、应用和管理,如图1.1所示。该模式数据集中度高、信息开发效率高,支持无连接的数据交换,发送方和接收方不需要同时在线,交换中心可以完成数据的备份和公证、集中监控和管理3。但该模式对数据中心过于依赖,不利于风险分散;同时对服务器、存储设备的性能要求较高,投资比较大。图1.1 数据集中共享模式图点对点数据交换模式不需要数据交换中心,发送者和接收者通过搭建专门的数据传输通道来实现数据共享,如图1.2所示。该模
3、式构造简单,实施方便;两点相通即可交换,不依赖第三方;数据分散存储,风险分散。但随着交换节点的增加,连接数呈几何基数级增长,维护工作量很大;数据交换与共享的双方要事先约定好双方交换数据格式等;只能支持点对点的数据传输,参与交换双方必须同时在线。图1.2 点到点数据共享图面向服务的数据交换模式是以SOA为核心实现数据共享,如图1.3所示。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型,是为了解决异构环境下数据集成而产生的一种软件体系结构,其基本架构由服务提供者、服务请求者、服务注册中心三类参与者组成。利用SOA构建的分布式应用程序之间是松
4、耦合连接的,标准化的接口把各个程序联系在一起实现数据交换与共享,SOA使系统架构更加灵活。利用SOA进行系统开发,可以充分利用现有资源从而消除信息孤岛,缩短开发和维护时间,降低成本和风险。图1.3 面向服务的数据共享模式图现阶段,以SOA思想进行幵发的框架早已被广大的开发者所熟悉与知晓。随着面向服务SOA的标准日益完善和成熟,各行各业产生的数据也越来越多,需要这些数据做研究的企事业单位也越来越多,面向服务架构成为共享这些数据的理想选择。面向服务的架构是一种基于软件即是服务的思想,提出了一种新的软件重用和集成的解决方案。通过SOA面向服务架构,可以构建与平台无关的、平台化的、模块化、可重用可扩展
5、的共享平台。目前,在电子政务领域、医疗、工业领域、金融服务领域得到了广泛的重视和使用。市场前景良好,许多大型知名软件公司也投入了大量的研究力度,也开发出了许多SOA的相关产品,并得到应用。本文通过研究基于SOA的细粒度的数据共享机制,构建数据注册中心,使服务提供者将服务发布到服务中心,服务中心将服务存储在元数据库4,同时服务中心登记服务请求者接收数据的IP、端口等。服务请求者订阅自己需要的服务,同时根据自己的需求选择该服务的数据元素,然后由注册中心通知服务提供者将数据发送给各服务请求者。基于SOA的细粒度的数据共享研究的意义:对于SOA的研究可以构建灵活的数据共享平台,消除集中式数据交换模式过
6、于依赖数据中心的劣势,将系统风险分散,同时缩短开发和维护时间,降低注册中心成本;通过构造细粒度的数据共享平台,服务请求者可以在服务注册中心选择需要服务的具体数据项,使数据的灵活性大大提高,节省网络资源;对于服务请求者通过注册中心订阅所需的服务,降低了系统耦合度,系统灵活性提高;服务中心构建的元数据库解决了互联网上海量信息资源的组织与管理问题,使用户可以快速定位、检索、选择用户需要的数据。1.2 国内外研究现状SOA是一个概念,是面向服务体系架构,是软件工业界几十年自面向过程、面向对象、面向组件以来,又一次重要的进化过程。SOA区别以前的软件工程方法,它不是一种技术,而是一种开发思想、一种设计原
7、则。随着各种软件技术的成熟发展,SOA也越来越得到程序员和大型IT公司的重视。在解决系统间整合与数据交换共享等方面5,SOA发挥着越来越重要的作用。如果把CORBA和DCOM看作是SOA最粗浅的尝试的话,那么随着十年来软件各种基础技术的成熟,SOA的推广与实施已经水到渠成了。2007年3月,由BEA、IBM、Oracle、SAP、中国普元等厂商联合成立的SOA国际标准组织OSOA成立了,OSOA致力于发布SOA的相关技术标准,它的成立标志着一个新的SOA时代开始了6。SOA首先由Gartner在1996年的一篇报告中正式提出7,是一种以服务为中心,松散耦合、可动态优化和重用扩展的分布式应用构造
8、方法。经过二十年的砺炼与发展,已成为在开放、异构的网络环境下构造集成化分布式信息系统的潮流。SOA所带来的IT系统松耦合、互操作的特性8,以及由此带来的大粒度重用、大规模集成、灵活性提升等诸多优点,为软件系统的建立、整合与运维,尤其是基于互联网的软件产业的创新与发展,带来了新的动力和机遇9。在数据共享方面,科学数据应用比较早。在国外,数据共享工作开展较早,共享机制较为完善。美国在20世纪最后10年确立了在国家层面上建设国有科学数据和信息全社会共享的战略部署10。目前美国国家航空航天局(NASA)、美国地质调查局 (USGS)、美国国家气候数据中心(NCDC)、美国农业部(USDA)自然资源保护
9、中心(NRCS)、美国全球环境和社会研究院(IGES)等机构已经建成数据共享网络,面向全社会提供遥感影像、水文监测、土地植被、水资源、海洋、大气、高程、洪水、干旱、飓风、暴雪、森林火灾、气候、自然资源保护等公共数据资源及模型服务。欧洲委员会于2008年1月提出共享欧洲环境信息的概念,建立一个共享的环境信息系统(SEIS),为环境管理和制定环境政策提供信息支持,为非政府组织、研究机构、大学以及公众方便和自由的获取环境信息创造条件11。国外在环境科学数据科研及应用方面,也开展了一些技术研究及实践工作, 如探讨了科学数据共享的关键因子及影响因素12,基于元数据、Web服务、空间互操作等技术实现某一领
10、域的生态和环境科学数据的共享13。我国科学技术部于2002年启动了“科学数据共享工程”,相继建立了地球系统科学14、气象15、 农业16等数据共享平台,面向全社会提供数据服务,已取得了较好的应用效果。2004年底,国家环境保护总局启动了“环境科学数据库建设与共享”项目目的是以环境质量、环境科研和生态环境数据为核心, 研制一批高质量的具有环保系统数据特征的标准数据集,初步建立国家级环境科学分布式共享服务网络体系,服务于环境管理。我国在环境数据共享的框架及构建技术方面17已开展了一些研究,建立了一批环境数据共享平台,服务于特定领域的科研项目。近年来,随着SOA18技术的成熟,该技术逐渐应用于一些共
11、享平台的建设,如地球系统科学数据共享平台基于SOA技术实现了分站点的注册,即数据同步;文献19作者研究了基于 SOA 的交通信息共享平台体系架构19,实现了不同系统间交通信息的交换功能;文献20作者探讨了SOA的技术实现,并在校园信息共享平台中基于ASP.NET构建了学籍信息查询Web服务的发布及调用20。由于国外信息化发达国家所拥有的技术条件和机遇等都和国内存在很大差异,所以在SOA的发展水平上也有着差异,实现SOA的过程中也必须将各个模块进行拆分,各个模块在完成的过程中也需遵守相关规范,现在由于大规模的使用SOA架构,所以标准的统一问题也是非常重要的21。根据调查统计,大多数美国企业都有着
12、比较完善的应用系统,SOA应用在企业应用中所占比例超过半数,可见SOA应用在企业级开发中所占的举足轻重的位置。现就国内来讲,大多数企业对于SOA再了解不过,许多基于SOA的架构平台系统争相出现,多数企业都意识到使用SOA来开发系统会给开发工作带来多大的益处,深刻感受到SOA的价值所在,由此可见,SOA在企业开发平台中的发展前景十分之好。在SearchSOA.com 2011-2012年度读者挑战与优先级的调查中,SOA显得相当的成熟、成功,甚至有流行的迹象。赛迪顾问通过中国536家企业机构的问卷调查,了解了SOA在中国企业中的实现情况,以及总结SOA的未来发展趋势22。SOA与新兴的技术相融合
13、,也是今后发展的趋势,如与移动互联网和云计算等热门技术融合,都是开发人员关注的热门问题。在SOA如此热门的情况下,对于其标准的统一问题一直企事业单位关注的焦点,这也是对于有效整合资源,将众多协同平台合理整合,使用规定标准支撑应用环境的关键之处。2012年6月27日,第五届中国SOA标准和应用研讨会在京召,这标识着SOA技术在应用系统开发行业中有着指导标识性的作用。1.3 论文主要研究内容本文旨在研究数据共享问题,通过构建基于SOA的数据共享平台,实现科学数据、医疗数据、国家安全相关数据等的数据共享,使这些数据能最大化的发挥其内在的价值。本文在大量查询相关数据交换与共享的资料,详细了解了当前共享
14、业务流程的基础上,结合现有的成熟的SOA产品和面向服务的思想及技术,提出了基于SOA的架构细粒度共享平台的解决方案。共享平台解决了服务请求者与服务提供者数据对接问题,大大提高了开发效率,使得服务请求者与服务开发者只需要修改简单配置即可实现数据共享。具体研究内容如下:(1) 研究学习SOA架构中关键点,掌握SOA实现技术,如Web Service、WSDL、SOAP等,为平台研发打下良好基础。(2) 研究学习元数据标准,构建元数据中心,为数据共享平台提供完整的数据描述形式。选择元数据标准,在DC元数据标准元素基础上,进行平台元数据标准设计,便于服务高效、准确的检索。(3) 探索建立数据共享机制,
15、明确数据共享方案的组成。通过对SOA共享机制、发布订阅模式及数据共享粒度的研究,提出基于SOA的细粒度的数据共享平台机制。各服务端与数据接收端采用统一的、标准的方式进行数据交换,提出以JSON作为数据共享标准,提高数据传输效率。(4) 对共享平台整体设计,并完成平台搭建,建立整合平台模型,开发出具有灵活性、可扩展性、广泛性的数据共享平台,这也是本文的目的和研究的方向。1.4 论文组织结构本文主要分为五章,论文的主要结构安排如下:第一章 引言。介绍了论文研究背景与研究意义、国内外研究现状和论文主要研究内容及其组织结构。第二章 相关技术分析。首先对面向服务体系架构及其关键技术进行简要介绍,然后对W
16、eb Service开发技术进行阐述。通过对当前主流Web Service技术框架进行分析,从中选择适合当前平台开发的Web Service技术。对元数据标准进行介绍,通过XML与JSON传输格式介绍,选择适合本文的数据传输格式。对当前发布订阅机制进行阐述。第三章 基于SOA的细粒度数据共享设计。首先介绍了基于SOA的细粒度数据共享平台的设计思想,然后描述了平台总体架构,最后对细粒度数据共享机制、高效数据传输算法、发布订阅机制及服务检索方式等进行了详细的论证和设计。通过本章的设计,对平台整体架构有一定认识。第四章 共享平台实现及其应用。首先对平台的整体架构及开发环境进行了介绍,然后对具体数据共
17、享实现进行了整体介绍,分析了平台构建及数据共享应注意的地方,最后介绍了系统具体领域应用,并且给出了部分的运行界面和设计代码等。第五章 总结与展望。首先对本文的研究工作进行总结,然后对下一步研究方向进行展望。第二章 相关技术分析面向服务架构是一种软件开发设计的思想,本文在面向服务开发设计理论与思想基础上,解决异构数据库间数据共享问题。本章首先阐述了面向服务的概念及其体系架构,然后分析了面向服务体系结构的关键实现技术及其它相关技术与标准,为后期平台实施做准备。2.1 面向服务2.1.1 面向服务概念现在各行各业产生了大量的数据,而这些这些数据分散于各单位,将各行业数据整理集中到一起用于数据分析、数
18、据挖掘等,这将是一笔笔宝贵的财富,特别是对国家科研单位来说,意义更加非同凡响。实际情况中,各企业或科研单位的数据存储结构等往往千差万别,在这种情况下,以服务为核心的思就展现了其优势所在,它将需要的各个不同系统间的数据联合起来,以服务接口的形式集中到需要的科研单位,各单位不必了解其实现过程。以这种形式实现的服务,有着对于各种硬件、操作系统和语言都可适应的优势,因而,有利于将不同平台下的数据实现共享。面向服务的体系结构23(Service-Oriented Architecture,SOA)实际是一种模型,可以将分散的数据以一个个服务的方式共享出来,然后供需要相关数据的机构、个人或企事业单位使用。
19、SOA不同的服务通过定义标准的协议和接口,供用户调用,由于这种接口可以跨平台使用,为用户提供了极大的方便。同时,随着的不断规范化和安全化,用户也可以放心的使用,因而,是广为被接受使用的开发平台,其性能优越性和可扩展性也为应用系统的开发奠定了良好的基础。SOA 是一种软件架构,是以服务为导向的架构。SOA是代替传统的面向对象的模型的重要模型,借助于定义好的服务之间接口和契约,可以将应用系统和程序之间的不同功能模块连接起来,并使各个组件可以用统一和通用的方式进行交互24。SOA是一种粗粒度、松散耦合的服务模型,服务之间相互联系,与软硬件环境无关,通过封装统一的服务接口,奠定了后续开发工作的基础。2
20、.1.2 面向服务体系架构SOA是一种松耦合的软件架构,在本文中构成数据共享节点的是一个个可重用的服务,通过这些服务实现数据间共享。SOA体系架构如图2.1所示。从角色方面讲,SOA主要有三种角色,分别为服务提供者、服务请求者、服务注册中心25。(1) 服务提供者(Service Provider):是一个实体,确切的说是一个服务实体。服务提供者通过创建服务实体,到注册中心发布自己的服务,并且对服务请求者的数据请求做出响应。简而言之,服务提供者主要功能为定义服务,设计服务,实现服务,用WSDL描述服务并对服务请求作出响应。(2) 服务请求者(Service Requester):是相对于服务提
21、供者来说的,是共享平台数据的消费者,相对来说也是最大的受益者。服务提供者可以是一个服务应用程序或者组件,也可以是请求服务的服务。服务请求者从服务注册中心UDDI中检索并定位自己所需要的服务,在WSDL的基础上,通过SOAP协议与要访问的服务进行通信,获得自己需要的数据26。在这里,任何服务的消费者都可以认为是服务的请求者。图2.1 面向服务的数据共享模式图(3) 服务注册中心(Service Registry):服务注册中心提供服务的描述与检索,服务提供者在服务注册中心中注册自己的服务,而服务请求者通过服务注册中心来检索定位自己需要的服务。服务注册中心充当了服务请求者与服务提供者之间数据交换与
22、共享的桥梁27,一旦服务注册中心完成了匹配,也就完成了注册发现绑定服务的任务。SOA包含了三个基本操作28,即服务的发布(Publish Service)、服务的发现(Find Service)、服务的绑定/调用(Bind/Invoke)。这些基本操作定义了SOA三类角色之间的契约关系:(1) 发布:用WSDL描述服务,为服务使用者提供服务描述。服务描述屏蔽了复杂的应用程序的详细信息,只提供相关的服务接口的描述。(2) 发现:确定服务,检索注册的服务,以满足服务请求者的需要与标准。(3) 绑定/调用:检索描述的相关服务,在服务提供者服务描述信息基础上,与服务请求者通过标准通讯协议进行数据交换与
23、共享。2.1.3 面向服务优势区别传统IT应用程序的作用是SOA的重要目标,SOA被作为一个单独的应用程序组件或功能组件使用。如果有需要,SOA可以开放外部合作伙伴,供外部合作伙伴使用,本文主要目的就是为了解决不同个体、组织或企事业单位间数据的交换与共享问题29。SOA主要优势就是开放性的架构,不管对系统集成问题,还是不同组织、个体间的数据共享问题,SOA都能够很好解决,且开发效率高,开发与维护复杂性低。简单来说,SOA是一种设计和构建松散耦合的软件解决方案,该架构的应用程序可以以软件服务的形式公开业务功能,供其它应用程序调用。在解决数据共享方面SOA主要有以下优点:(1) 服务提供者可以将数
24、据以服务的形式对外发布,可以作为独立的个体程序存在;由于服务以统一的形式存放到注册中心,服务请求者可以快速高效的检索定位需要的服务。(2) 开发效率高,可以快速地开发出服务接口,缩短了数据间共享的时间。(3) 与软硬件平台无关,松散耦合,解决了异构数据库间数据交换与共享难题,可以将异构数据库中数据更新到整合到自己数据库中。2.1.4 现有实现方式1、Web Service概念及其优势前面已经介绍了,SOA只是一种模型,一种架构,并不是一项技术。在众多SOA实现中,Web Service30是实现SOA的重要方法,也逐渐成为SOA主流实现技术。Web Service是SOA软件架构的一种组件,由
25、W3C定义的一种软件系统。Web Service是建立在完善的Web协议与标准基础之上的,异构平台之间通过Web Service进行数据交换与共享31。Web Services的技术发展越来越成熟。Web Service程序无论是用何种语言开发还是运行在何种技术架构或者操作平台上,都能够被需要数据的调用者发现并调用。Web Service很好的继承了SOA可扩展性与互操作性的特征,使得应用程序的构建不仅具有松散耦合的特性32,而且使得软件开发者在进行软件开发的时候,只需要将现有的 Web Service进行服务模块的组合,而不用去重新编写代码,节省了时间,减轻了软件开发人员的工作量。Web S
26、ervices描述了一组与操作相关的接口,各Web Service程序之间隐藏了具体的实现细节,只需要实现网络上的相互调用。Web Service具有优势如下: (1) 良好的封装性。Web Service具体的实现细节被良好地封装起来,用户只需要关心接口参数及调用方式,不需要关心实现细节,提供了异构平台的无缝衔接技术33。 (2) 广泛的复用性。软件的复用技术通过组合已有模块来搭建应用程序,能大幅度提高软件的生产效率和质量。用户只要获得了描述Web Service的WSDL文件,就可以方便地生成客户端代理,并通过代理访问Web Service。(3) 开发的高效性。Web Service将彻
27、底地改变软件的发行方式,服务提供者可以把数据快速分解成若干Web服务供服务请求者调用,快速实现异构平台间数据共享34。(4) 通信的透明性。Web Service可用基于XML的SOAP来表示数据和调用请求,并且通过HTTP协议传输XML格式的数据。Web Service对异构系统之间的通信都是选择使用文本消息格式,这样对于系统本身来讲具有很好的透明性,也体现了面向服务的基本思想。2、Web Service实现流程Web服务的体系结构是基于服务提供者、服务请求者、服务注册中心等三个角色,由服务发布、服务发现、服务绑定三个动作构成35。通俗的说,服务提供者就是数据资源的所有者,它是数据共享的基础
28、,为用户提供自己已有的功能;服务请求者就是服务功能的受益者,基于SOAP协议向服务提供者发送请求以获得服务提供者提供的数据;服务注册中心的作用是把服务请求者与服务提供者联系在一起,它充当管理者的角色,一般是UDDI。这三者是根据具体逻辑关系划分的,在实际应用中,三者之间可能有交叉:一个Web服务既可以是服务提供者,也可以是服务请求者,或者二者兼而有之。其具体实现流程如下:(1) 查找服务。服务请求者Client需要进行服务调用,但又不知道哪里存在自己需要的服务,但知道UDDI(Universal Description, Discovery and Integration,通用描述、发现与集成
29、服务)中心可以查找36。(2) 返回服务查找结果。UDDI中心将查询结果返回给Client,Client获知一个名为Web Server A的服务提供者提供了自己所需的服务。(3) 接口调用查询。Client向Web Server A询问确切服务接口调用方式。(4) 返回接口调用方式。Web Server A返回一个WSDL(Web Service Description Language,Web Service描述语言)描述的XML文档,该文档记录了供外界调用的各类接口名称、参数说明等。图2.2 Web服务实现流程图(5) 服务调用。Client按照返回的WSDL文件中接口的调用方式对Web
30、 Service A进行数据访问请求。这些调用被封装成一个个HTTP请求,封装方式采用标准的SOAP方式,实质的请求数据是满足HTTP协议的SOAP报文消息。(6) Web Server A响应Client的服务请求,按SOAP消息执行相应的Web服务,并将服务结果返回给Client。Web Server A回应的也是HTTP协议的SOAP包,这样双方的请求-响应完全畅通。SOAP、WSDL、UDDI合称Web Service三要素。SOAP用来描述传递信息的格式,WSDL 用来描述如何访问具体的接口,UDDI用来管理、分发及查询Web Service。SOAP通常与HTTP协议结合使用,也可
31、以与许多其他网络协议结合使用,包括 HYPERLINK /view/576460.htm t _blank 简单邮件传输协议(SMTP), HYPERLINK /view/6233535.htm t _blank 多用途网际邮件扩充协议(MIME),还支持从 HYPERLINK /view/89742.htm t _blank 消息系统到 HYPERLINK /view/431455.htm t _blank 远程过程调用等大量的 HYPERLINK /view/330120.htm t _blank 应用程序。SOAP用来表示消息的内容以及如何去处理消息,甚至考虑到可选还是强制性的要求。SO
32、AP定义了一种标准的方法来使用Internet上的各种不同操作环境中的分布式对象37。SOAP优点如下:(1) 可扩展的。SOAP不需要停止现有的程序,也可以极好地支持中间介质和层次化的体系结构。(2) 简单的。客户端发送一个请求,调用相应的对象,然后服务器返回结果。调用结果封装成符合HTTP 协议的消息,它符合任何路由器、防火墙或 HYPERLINK /view/751.htm t _blank 代理服务器的要求。(3) 与平台无关。SOAP凌驾于操作系统、计算机硬件之上,是目标模型和编程语言独立实现。除此之外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。SOAP 可以使用任
33、何语言来完成,只要客户端发送正确SOAP请求。SOAP没有对象模型, HYPERLINK /view/330120.htm t _blank 应用程序可以捆绑在任何对象模型中。3、 Web Service实现方式Web Service是SOA实现技术的最好选择,所以釆用Web Service方式来实现SOA系统,下面介绍Web Service实现的几种方式:(1) JAX-WS2JAX-WS38是一种JSR规范,是一组XML web services的Java编程接口,不是实现。JAX-WS实现优势在于Java内置了相关实现,Java6标准版和Java5企业版都包含了JAX-WS规范的参考实现
34、,因此若使用该方法实现Web服务,不需下载其他的类库,已达到兼容平台的需求,这意味着,基于JAX-WS2的代码和组件可以在任何与J2EE兼容的服务上运行。另外JAX-WS是JAXB的数据绑定模型,所使用的XML解析引擎为STAX,这种XML解析方式相对于DOM方法来说执行效率更高。JAX-WS支持SAOP协议和REST交换协议,也支持多种相关网络协议,并且使用JAX-WS开发的Web Service支持WS-Security(Web服务安全)、WS-Atomic Transaction(Web服务原子交易)及WS-Reliable Messaging(Web服务可靠消息传输)等功能。最后,JA
35、X-WS还可支持有状态的Web Service。(2) Apache AxisApache Axis39是一种稳定可靠的Web Service架构,是一种SOAP实现且已经提交给W3C组织。Axis有两个版本Axis1和Axis2。Axis2对Axis1进行了重新设计,支持SOAP1.2及Rest等交换协议。Axis2有许多优势,这也是很多企事业单位选择Axis来实现Web Service的原因。在组合和扩展上,Axis2用模组来加强自身的延展性,模组可以改变Axis2整体行为及制度;在速度上,Axis2使用的自身对象模型和STAX来解析,较之前版本速度上有很大提高;在内存消耗上,Axis2设
36、计为低内存形式;在处理异步上,Axis2支持异步Web Service与异步Web Service调用并可以调用无阻塞的客户端;在部署上,Axis2有着热部署和热更新的新功能,即新的服务的添加不需要关闭服务器,服务器运行的时候就可以添加,只要把需要的Web Service添加到指定服务目录;在灵活性上,Axis2使开发人员方便地插入延伸到引擎定制头处理;在稳定性上,Axis2规范出一系列接口,这些接口改变相对比较缓慢;在重量级上,Axis2自身有轻量级对象模型AXIOM,AXIOM有性能高及开发方便等优点。(3) XFireXFire40是codeHaus组织提供的一个开源框架,它构建了POJ
37、O与SOA之间的桥梁。与其他Web Service框架相比,XFire简化了Java应用转化为Web Service的过程,降低了SOA的实现难度,为企业转向SOA架构提供了一种简单可行的方式。XFire作为新一代Web Service服务实现方式,其特点在于简单易用,而且所包含的API支持各项标准,因而在开发中选择使用XFire使得开发过程更加容易。较之Axis与Spring,XFire是轻量级的开发选择,它的主要优势在于:1.支持多种协议访问Web Service,如JMS、XMPP、HTTP等;2.支持ADB、JiBX、JaxMe、JaxBRI等多种Data Bindings;3.支持众
38、多Web Service标准,如SOAP、WSDL、WS-Security、Web Service寻址等;4. XFire是开源框架,供开发者方便使用可扩展,且易于与现有Web整合;5.对JAX-WS提供全面支持,可选择性的采用代码优先后WSDL优先的决策从而实现Web Service的发布和使用;6.采用Woodtox作为Stax实现,性能有了质的提高。通过对JAX-WS2、Apache Axis2、XFire比较分析,综合各种实现方式优缺点对比,平衡各个实现方式的实现难度与开发周期,本文选择XFire作为后期开发框架,构建服务提供者与服务请求者之间数据交换的桥梁。2.2 共享粒度2.2.1
39、 粒度概念粒是一些具有不可分辨性、相似性、内聚性等特点的元素的集合,粒度指集合划分的粗细程度,后来由数据挖掘及人工智能等领域研究者引入计算机科学中,用来作为数据或知识等的抽象概念粗细的度量。粒度是粒度计算中的基本概念,它表示集合或簇等。2.2.2 共享粒度本文共享粒度指一个服务数据可拆分性。根据服务数据是否可拆分及发送和接受的数据量可分为:细粒度数据共享与粗粒度数据共享。其中,细粒度数据共享提供相对灵活数据传输方式,根据需求定制性的发送数据,因而交换数据量较小;粗粒度数据共享指传统意义上的单个服务,对于相同的请求或推送,不同的用户获得的数据是相同的,不针对单个用户发送不同的数据。传统意义的数据
40、共享,不针对特定用户发送特定的数据,在数据传输之前不需要进行用户匹配操作,在构建系统集成中比较实用,但会将服务中所有的数据项发送给服务需求者;细粒度数据共享,针对特定用户发送特定的数据,在数据量较大的数据共享中,少传输一个数据项意味着节省一定的数据传输带宽,在数据项足够多的情况下,进行用户传输数据项匹配消耗的资源是可以忽略不计的。在数据交换与共享中,细粒度共享主要优点如下:1)重用性与共享粒度服务需求者需要的数据大同小异,但数据项千差万别,若针对每个客户需求发布相应的服务,大大提高了开发与维护成本,增加应用交付时间,大大降低了服务的重用性。如果相同服务针对不同客户进行数据传输,这样既可以增加服
41、务的重用性,不仅降低了开发维护成本,而且数据传输效率也大大提高。2)灵活性与共享粒度灵活性是指能够容易根据不同情况做出改变的能力。灵活性能使系统更快地适应持续变化的数据请求,及时对请求者的改变做出调整。细粒度数据共享模型逻辑简单,数据交换量小。3)性能与共享粒度数据共享颗粒度越细,意味着包含的数据量越小,占用宽带越少,网络延迟就会减少,对客户端响应变快。而粗粒度数据共享,在需求者需要服务中少量数据项时,将全部数据项传输过去,将消耗大量资源,且反应慢,客户体验差,在网络不好的情况下可能出现丢包等问题。4)服务使用范围与共享粒度如果服务使用的范围有限,例如仅在内部运用的范畴,响应时间可能与共享粒度
42、相关性较小,但现实情况中,共享数据往往来自不同地域中的服务需求方,他们需要将不同地域的数据集合到一块进行数据分析研究,因此传输效率优劣影响重大。2.3 数据传输规范XML作为一种高度结构化、可重复、可嵌套的数据编码格式,极大地促进了元数据表达和数据交换共享过程中语法描述上的统一,被广泛应用于数据交换与共享标准、配置信息、消息以及服务的语法描述模式。JSON作为后起之秀,也逐渐活跃在开发者的代码中。对于数据共享平台,数据交换的标准、效率等显得尤为重要。本小节从数据交换与共享传输效率等方便对XML与JSON作介绍。2.3.1 XML扩展标记语言(Extensible Markup Language
43、, XML)41作为一种通用性、开发性、可扩展性及自描述性都比较强的文档技术,是目前异构系统交互的主要数据交换格式,区别于HTML。XML本质上就是文本文件,不存在因为系统环境的不同而无法读取的情况,因此非常适合网络42。XML主要优点:1)数据格式统一,符合标准;2)数据交换与共享很方便,便于跨平台远程交互。XML主要缺点:1)文件格式复杂,数据传输所占宽带宽;2)文件庞大且结构复杂,解析难度高,维护难度大,花费时间与资源比较多;3)不同浏览器解析方式不一致,很多地方需重复编码。2.3.2 JSONJSON(JavaScript Object Notation)43是一种新的人类可读(Hum
44、an Readable)的数据格式,在过去几年中已变得非常受欢迎。它一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,这些特性使JSON成为理想的数据交换语言。JSON主要优点:1)数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;2)易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;3)支持C、Java、JavaScrpt、PHP、Ruby等多种语言,方便服务器端的解析;4)可直接被服务器端代码使用,便于简化代码开发量且容易维护。JSON主要缺点:1)较之XM
45、L,通用性比较差,推广的不够深入人心和使用广泛;2)JSON格式目前在面向服务开发中推广还属于初级阶段2.3.3 XML与JSON对比JSON和XML非常的相似,都是为了建立一种简单、人类可读的数据存储格式。1)轻/重量级方面。轻量级和重量级是相对来说的,轻量与重量体现在解析上,XML目前存在两种解析方式:DOM和SAX。DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,JSON与XML在这一点上是相同的,但由于XML要考虑父节点和子节点关系,所以解析难度要比JSON的高很多,因为JSON只构建键值对集合与值的有序集合。SAX不需要整个读入文档,可以边读遍解析,
46、是一种逐步解析的方法,程序也可以随时终止解析,所以一个大的文档可以通过SAX逐步解析出来,所以SAX适合于大规模的解析,在这点上,JSON目前是做不到得。所以,JSON和XML的轻/重量级的区别在于:XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理;JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果,鉴于本文是实时数据交换,每次交换数据量都不是很大,所以选择JSON。2)编码方面。虽然XML与JSON都有各自的编码工具,但是较之XML,JSON的编码难度要小很多,即使不借助工具,也可以写出JSON代码,这点对于XML就有点困难。主观上来看,JS
47、ON更为清晰且冗余更少些。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理,所以本文选择了JSON。3)解析方面。在普通WEB应用领域,开发者经常为XML的解析伤脑筋,不管服务器端生成或处理XML,还是客户端用JavaScript解析XML,都常常导致复杂的代码与极低的开发效率。与XML相比,数据交换格式JSON 提供了更好的简单性和灵活性。4)可读性方面。可读性越强,计算机处理起来往往越困难;可读性越差,计算机处理起来往往越容易,对于JSON可读性虽比XML差,但处理速度更快。5)数据体积方面。如图3.12所示,较之XML,JSON数据格式比较简单,本身已经压缩,但可
48、以通过HPACK算法对JSON字符串可以进行二次压缩,HPACK解压缩也很简单。同时,体积越小也就意味着更快速度的传输。图2.2 数据体积对比图2.4 元数据概述元数据44即描述资料的资料,可用来协助对网络电子资源的辨识、描述,指示其位置的任何资料。元数据,即代表性的数据,通常被定义为数据之数据。它包含用于描述信息对象的内容和位置的数据元素集,促进了网络环境中信息对象的发现和检索。元数据格式一般通过内容结构(Content Structure)、句法结构(Syntax Structure)、语义结构(Semantic Structure)等三层结构来定义。其中,内容结构对元数据的构成元素及其定
49、义标准进行描述,句法结构定义了元数据格式结构以及结构格式的描述,语义结构定义了元数据元素的具体描述方法45。(1) 内容结构内容结构定义元数据的构成元素,主要包含描述性元素(如标题、作者等)、技术性元素、管理性元素(如权限等)、结构性元素、复用性元素等。这些元素的选取必须依据一定的标准,进一步规范元素选取的规则,如元素是否是必须、取值范围等,在元数据内容结构中需要对此进行说明,如MARC记录所依据的ISBD,EAD依据的ISAD(G),ICPSR所依据的ICPSR Data Preparation Manual等。(2) 句法结构句法结构定义格式结构及其描述方式,例如元素的分区分段组织(如EA
50、D分成头标段、前面事项段和档案描述段)、元素选取使用规则、元素描述方法(例如Dublin Core采用ISO/IEC 11179标准)、元素结构描述方法(例如XML DTD、SGML、RDF等)、结构语句描述语言(例如EBNF Notation)、元数据复用方式(如Ontofogy或内容规范)。除此之外,句法结构还需要确定元数据是否需要与所描述的数据对象捆绑在一起或者作为单独的数据存在,当元数据作为单独数据存在时还要保证以一定形式与数据对象链接在一起。句法结构还可能描述其与空间名称等的链接方式。(3) 语义结构 语义结构定义元素的具体描述方法,主要包含元素定义、元素内容编码规则定义、元素语义概
51、念关系及元数据版本管理等四个层次。其中,元素定义对元素本身有关属性进行明确定义,一般通过元素名称、元素标识、版本、登记机构、描述元素本身的语言、定义、使用约束、数据类型、最高出现次数、注释等属性来界定任何元素;元素内容编码规则确定在描述元素内容时应该采用的编码规则,可以是特定标准,也可以是最佳实践,或者是是自定义的描述要求;元素语义概念关系把元素放在一个概念体系中,来说明它的上下文关系,说明它与其他概念的关系;元数据版本管理用来明确描述元数据版本变化情况,并通过开放登记系统发布。元数据可以自己定义语义结构,也可以由具体单位规定语义结构,例如DC日期元素采用ISO 8601、数据格式采用MIME
52、等。元数据为数据共享平台提供完整的数据描述形式,为各个资源提供规范、普遍的描述方法和整合工具与纽带,是提供共享平台中资源描述、资源定位、资源检索、资源评估、资源选择与资源管理的人机交互和理解的基本要素。具体来讲,元数据在数据共享平台中的必要性表现在以下几方面:1)、信息发现与选择离不开元数据。网络的发展为信息资源的生成带来了极大便利,几乎任何人在任何时间内都可以成为信息资源的创建者,由于资源创建者的自身素质的差异极大,且缺乏严格的网络出版监督机制,导致了信息资源质量的参差不齐。数据共享的目的就是利用信息资源创建者提供的元数据,对发布的共享数据进行严格筛选,以提供给最终用户以高质量的信息资源。2
53、)、信息描述与揭示离不开元数据。对于筛选过的、已存在的信息资源,共享平台需要根据资源类型使用传统元数据标准MACR或现代元数据如DC、VRA、FGDC等对其进行描述与揭示,以方便用户对资源的发现与检索。这是共享平台的核心。而且,对信息资源的描述与揭示是元数据的最主要的功能。对元数据类型,有多种划分方式46。最简单分类方法是将元数据分为传统元数据和现代元数据。传统元数据主要指机读目录(MARC),它的适宜数据对象为印刷文本及有形电子资源(包括磁盘、光盘、录像带等)。而现代元数据特指网络时代产生的(如DC,ETI标题、EAD、FGDC等),其适宜数据对象为网络资源。本文选用适合与网络资源描述、简单
54、易用的DC来描述资源。DC元数据对于电子资源的描述主要有六个优点。第一,简易性。DC只有15个元素,且每一元素都具有一个能够普遍理解的语义,可以用来描述一个信息主体的最核心和最基本的特征,适合各种知识背景的人员使用。第二,通用性。 DC不针对某个特定的学科或领域,支持对任何内容的资源进行描述,增加了跨学科的语义互操作性的可能。第三,可重复性。其所有元素都是可重复的,解决了多著者与多出版者等重复元素的著录问题。第四,可扩展性。它允许资料以地区性规范出现,并保持元数据的一些特性,以便日后有扩充的余地。第五,可修饰性。对于需要详细著录的资料,可引进DC修饰词。第六,国际性。DC 已得到了国际上的广泛
55、承认。DC元数据应用的全球化和多学科化趋势,进一步增加了它作为未来网络资源元数据标准的可能47。2.5 发布订阅机制传统意义上基于发布订阅机制的数据共享模型是一种异步通信机制48,如图2.3所示,用户一旦完成数据注册,平台会将所接收的数据在传送的同时传送给相应的订阅者,数据提供者与数据订阅者都是匿名的。数据订阅者不知道数据来自何处,数据提供者也不知道数据被发往何处。这种数据交换与共享体系结构是动态变化着的,数据提供者与数据订阅者随时都会启动或终止且不会影响另一方的运行,且该模式定义了一种一对多的依赖关系,对数据订阅者的数量无限制。图2.3 传统发布订阅机制图如上图所示,发布者A与发布者B将数据
56、信息发布到发布订阅系统,而这写数据正是订阅者C与订阅者D所需要的,订阅者C与订阅者D订阅该数据且两者不知道数据的提供者A与B,A与B向发布订阅系统发送数据且只发送一次,平台将数据转发给C与D,这是一种一对多的依赖关系。该模式过于依赖数据中心,风险集中,一旦数据中心瘫痪将导致整个共享平台的不能使用49,而且数据共享粒度粗犷,不能根据用户需求个性化定制数据。2.6 本章小结本章是平台实现的技术基础,主要介绍了SOA概念及其实现技术。通过对SOA的定义概念等方面进行研究,然后介绍Web Service基本概念和基本原理以及Web Service的组成,分析当前Web Service实现技术。最后对元
57、数据相关标准做了简单介绍,详细介绍了XML与JSON相关理论,介绍了发布订阅机制。第三章 基于SOA的细粒度数据共享设计本章介绍的主要内容是介绍基于发布订阅模式、元数据与SOA架构的设计方法,包含系统设计思想,系统开发优势,系统的总体架构,系统各模块的功能介绍和整体功能模块图,最后针对各子模块提出了服务设计方法。本章探究了基于SOA的数据共享平台的优势,提出了以SOA思想搭建数据共享平台的设计方案,从而可以更好的解决数据共享的问题。本方案在构建方面可以有效的降低平台构建的耦合度,提高开发效率,降低开发成本,为今后的维护或二次开发奠定了良好的基础;在数据共享方面,可以高效检索出自己需要的数据,可
58、以将最新的数据共享给用户,可以根据用户需求订制数据;在数据传输方面,可以实现高效数据传输等。3.1 需求分析随着信息化建设的推进,个体、组织、企事业单位存在着大量的数据信息,有些数据是可以共享出来从事科学研究、信息二次利用等,但这些数据存储在不同的软硬件环境中。当前,及时有效地实现异构平台间数据交换与共享的方法大都基于查询或监视,但对于动态环境下数据交换与共享任务的频繁查询会造成应用系统反复的线程切换,大大降低了数据共享的效率。本文在现有数据共享技术基础上,针对数据交互的动态性,研究了一个异构动态数据共享平台。为实现个体、组织或企事业单位的信息共享,解决存在各相对独立运转的系统间数据动态共享的
59、问题,本文提出面向服务的细粒度的数据共享平台,该数据共享平台的具体需求分析如下:(1) 使用标准与松散耦合的数据交互接口,让数据发送者与数据接收者不用考虑对方的软硬件环境,真正实现跨平台、跨语言,提供程序的重用性。(2) 实时性要求高,亦可以订制数据传输频率,单次数据传输量。若数据量过大,解析会占用很多计算机时间与空间资源,特别是在并发数据量很大的情况下,对数据发送者与数据接收者服务器压力都很大,降低数据传输效率。所以在进行数据传输之前,要尽量缩减数据体积,使数据共享尽可能快速高效。(3) 数据共享格式一致性与高效性。数据发送者与数据接收者之间数据存储结构往往差别很大,数据在传输过程中都按照统
60、一的格式发送数据,数据接收者按照一定格式标准发送数据,选用转换方便且传输效率高的数据格式也是亟待解决的问题。(4) 数据传输的可靠性与完整性问题也是需要解决的,数据不会因为网络与设备的故障出现数据丢失问题。若发送者与接收者一方或双方出现网络故障或其他突发问题,数据都能共享到数据接收者的存储介质中。(5) 可以高效检索出自己需要的数据,从众多数据中检索出自己需要的数据也是很重要的问题,高效、准确的定位所需数据可以保证接收者以后数据质量问题,保证研究出的模型或结果有价值。(6) 数据获取粒度问题。数据发送者提供的数据都是完全一样的,但对于某个接收者他可能只对某些数据属性感兴趣,这样可以减少不必要的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年永康市农业行政执法队招聘编外用工人员的备考题库及完整答案详解一套
- 2026年烟台市莱山区教育和体育局公开招聘高层次人才备考题库及1套完整答案详解
- 2025至2030中国商业航天产业发展政策与市场化进程研究报告
- 变电站机器人培训课件
- 2025至2030虚拟现实产业市场发展分析及前景趋势与内容生态建设研究报告
- 中国大学从千年学府到现代高校的演变过程
- 2025-2030中国漂浮式光伏产业现状调研与投资可行性专项研究研究报告
- 2026-2030猪浓缩饲料行业市场发展分析及发展前景与投资机会研究报告
- 2026年浙江金华科贸职业技术学院公开招聘12人备考题库及答案详解1套
- 2026年资金收支与企业会计综合岗位招聘备考题库有答案详解
- 材料进场检验记录表
- 复方蒲公英注射液在银屑病中的应用研究
- 住培中医病例讨论-面瘫
- 设备安装施工方案范本
- 卫生院副院长先进事迹材料
- 复发性抑郁症个案查房课件
- 人类学概论(第四版)课件 第1、2章 人类学要义第一节何为人类学、人类学的理论发展过程
- 《功能性食品学》第七章-辅助改善记忆的功能性食品
- 幕墙工程竣工验收报告2-2
- 1、工程竣工决算财务审计服务项目投标技术方案
- 改进维持性血液透析患者贫血状况PDCA
评论
0/150
提交评论