基于SOA的土地利用构件开发框架设计与应用

更新时间:2020-01-18 来源:计算机应用技术论文 点击:

【www.rjdtv.com--计算机应用技术论文】

摘要
  
  国土资源数据库包括土地利用数据库、土地利用规划数据库、土地开发整理规划数据库、基本农田数据库、农用地分等数据库、矿产资源规划数据库等,土地利用数据库是所有建设和研究项目的基础数据库,土地利用数据形成以后的重要任务就是土地利用数据的共享问题。由于不同的软件及应用部门生产和应用的土地利用数据的空间对象的定义、表达和存储方式、内部数据结构等方面不尽相同,导致它们各自独立、相对封闭、无法互相沟通和协作等问题:( 1)数据无法实现跨平台,分布式组件对象技术的其实无法实现真正意义上互联网上的开放性;( 2) 无统一的易接受、开放的、语义可理解的标准空间数据表示方式;( 3)土地利用数据还有更新频繁、无法实现现势性、连续性和不同系统之间数据的同步性要求,需要频繁转化数据格式。数据共享模式问题是目前待需解决的局限性问题。
  
  在对现有土地利用数据的采集、传输、存储和处理系统的开发及管理模式进行深入研究后,现有的土地利用数据共享模式是不同地理信息系统之间数据的两两模式转化和标准空间数据交换,处理和共享存在以下问题:首先,由于各土地利用数据生产及应用部门不同,所使用的软件对空间对象的定义、表达和存储方式、内部数据结构等方面不尽相同,使得它们各自独立、相对封闭、无法互相沟通和协作,这是行业本身遗留问题;其次,土地利用系统设计开发过程中,不同的 GIS系统开发标准、开发方法及开发语言各有不同,使得开发模式形成技术壁垒,系统难以集成,这是软件开发管理的问题;最后,土地利用数据更新频繁,现有更新包上报方式无法实现现势性、连续性和不同系统之间数据的同步性要求,同时发布和共享信息的软件独立性还很差,不能根据实际的应用的需求,利用已有组件快速开发应用的需求。由于以上问题的存在,所以,一种开放的、语义可理解的空间数据表示方式,以及统一数据共享平台和灵活搭建应用的架构成为土地利用数据应用的急需。
  
  面向服务的软件体系架构(简称 SOA) 是一种面向服务理念的软件体系架构,在 Internet环境下的服务资源,面向服务的理念逐步成为业界的一个共识 已经成为主流的软件开发的架构。基于 开发的组件具有[1-3], SOA独立性、主动性和自适应性,实体之间能够进行多种静态连接和动态合作。根据土地利用应用系统应用特点,本文在总结已有研究成果的基础上,提出一种基于 SOA的土地利用构件开发框架,提高软件开发效率,给出构件快速开发、搭建土地利用应用的实例。
  
  1 开发目标与模型框架设计。
  
  1.1 开发目标。
  
  结合土地利用应用的特点,以快速、准确搭建土地利用应用为目的,建立面向服务的土地利用通用构件平台。平台应具备良好的扩展能力和易于使用的方便性,功能上要体现真正的实用价值,为土地利用的相关问题提供良好的决策支持。
  
  1.2 web服务描述模型。
  
  本文给出了 web构件形式化描述模型,主要从“做什么”、“如何做”和“如何实现”以及相关术语四个角度对 web构件进行描述。它的主要特点是提供了可扩展、可裁减的描述能力。在该构件描述模型中既使用了自然语言的描述手段又使用了形式化的方法,使得 web构 件的描述者可以根据 web 构件的具体情况对 web构件的描述进行组织。在 Internet环 境下,对 web 构件信息的准确描述是使用 web构件的前提,这就要求建立一种恰当的[7]web 构件描述模型。根据本体理论 、面向对象方法、组建技术,本文提出了 web 构件在 Internet环境下的形式化描述,提出用如下特征信息集来刻画一个可复用w eb 构件,用B NF范式表达如下:
  
  定义1:
  
  一个W eb 构件描述可定义为一个 7元组:WS::={C,I,O,P,D,R,E} (1)其中C  ,I  ,O  ,P  ,D  ,R  ,E 代表基本概念、输入接口、输出接口、过程、数据、关系、评价。
  
  1)基本概念(Concept 简称C):描述构件的基本概念;2)输入接口(Input 简称I):描述构件的基本输入参数集合;3)输出接口(Output 简称O):描述构件的输出参数集合;4)过程(Process 简称P):描述构件的功能实现过程;5)数据(Data 简称D):描述构件的数据源信息;6)关系(Relationship 简称R):描述构件之间作用关系集合;7) 评价(Evaluation 简称 E):描述构件执行结果后,对服务质量的评价。
  
  定义2:
  
  一个构件基本概念可定义一个7 元组:C::={构件号,构件名,实体类型,开发语言,研制单位,版本号,构件粒度}, (2)其中,实体类型::={可执行文件|二进制代码件|源代码文件},构件粒度::={原子构件,复合构件}.
  
  定义3:
  
  一个构件输入接口定义为一个3 元组I::={输入参数类型,输入参数名称,参数调用方式} (3)其中,输入参数类型::{元构件| XML|  POJO}.
  
  定义4:
  
  一个构件输出接口定义为一个3 元组O::={ 输出参数类型,输出参数名称,参数调用方式} (4)其中,输出参数类型::{元构件| XML|  POJO}.
  
  定义5:
  
  一个构件过程定义为一个4 元组P::={构件提供,构件发布,构件调用,实现算法} (5)其中,构件过程实现和具体领域相关实现具体说明。
  
  定义6:
  
  一个构件数据定义为一个4 元组D::={分布主机,数据标准,数据类型,聚合类型} (6)其中,充分考虑到土地利用应用数据源分布式、异构、非标准等特点,重点描述数据源分布、异构、标准和是否进行数据整合等情况,着重说明该构件的相应数据来源及标准。聚合类型::={数据集中|数据联邦}.
  
  定义7:
  
  一个构件关系定义为一个3 元组R::={运行信息,运行方式,组合关系} (7)其中,运行信息::={ 硬件环境|软件环境},组合关系::={静态组合|动态组合}.
  
  定义8:
  
  一个构件评价定义为一个6 元组E::={响应时间,正确使用概率,并发个数,截至日期,服务费用,安全等级} (8)其中,截至日期是构件提供服务的截至日期,在此日期之前构件可以保证服务的可靠性;服务费用::={服务价格|服务支付}.
  
  这八个定义形式化的描述了一个构件模型。在该形式化描述中,体现了面向服务的体系架构的思想。该构件模型具有以下几点性质:
  
  ( 1) 一个完整的构件由 7个部分组成:其中原子构件基本概念、输入接口、输出接口、过程为必选描述,其它3 项为可选描述。组合构件必须描述除原子构件必须描述外,其它 3项也需描述。
  
  (2 )构件输入输出接口是该构件同外界交互的唯一通道,接口的双方必须是对偶的,即一方提供的服务功能必须同另一方请求的服务功能相同,但方向恰恰相反。
  
  (3 )构件粒度要同构件结构,构件实现体相统一,即原子构件对应着原子构件结构和原子构件实现体,复合构件对应着复合构件结构和复合构件组装体。
  
  1.3 框架设计。
  
  Web 服务框架设计分为,WEB 服务逻辑框架和WEB服务软件开发部署框架。
  
  1)基于服务的逻辑框架设计如图1所示:
  
  框架逻辑设计分为三层,底层为数据及数据集成层、中间为 web服务组件层、最上层为应用层。
  
  数据及数据集成层。在国土信息化发展过程中,由于各个厅、局、县在实施数据管理系统的阶段性、技术性以及其它经济和人为因素的影响,导致即使在同一个单独单位、部门所采用的数据管理系统也大不相同,形成了大量结构、语义异构的数据源。应用系统在开发时间和使用技术上的相互独立,使得各个应用系统所采用的异构数据源,体现在采用不同类型的数据库管理系统、对外具有不同的数据模式和数据类型上。数据集成采用数据集中和数据聚合相结合的方式,将需要集成的数据库包括土地利用数据库、城镇地籍数据库、土地利用规划数据库、土地开发整理规划数据库、基本农田数据库、农用地分等数据库、矿产资源规划数据库等等进行集成。向上为w eb服务提供标准的数据接口。
  
  WEB 服务组件层。通过对数据的进一步抽象与封装,形成标准的原子服务,原子服务通过工作流、 PI演算等服务组合方法,形成更高级的组件组合服务,服务组合中分为静态组合与动态组合。静态组合主要完成信息的获取与简单计算,而动态组合的研究方向主要是为应用提供复杂的计算能力。由于信息服务的组合流程相对稳定,可以通过工作流将各个原子服务进行组合优化形成复杂应用,而为了达到复杂、不确定性应用要求,计算流程往往不能确定,工作流方式不能满足该应用动态的变化,需要通过动态组合行为算法加以实现。无论标准的原子服务、组合服务向应用层提供 XML、  RDF等标准的数据文件格式。统一应用组件接口,也就是说,和以往应用相比较,应用不再直接与数据相连接,降低耦合度,为快速搭建应用提供良好的组件接口。
  
  应用层。根据已有应用中的数据模式,应用现在分为数据人可知与机器可知两种。也就是说,普通的应用例如基于 B / S 的网站应用、移动应用、 google 遥感应用和 Portal展示信息的目标对象是人这个主体,只要人通过浏览信息加以分析判断,获取重要知识,这种系统将分析判断的任务让主体人去实现,也就是所说的“人可知”.而 Agent系统、人工社会以及综合集成研讨等应用的实现, web服务所提供的数据目标对象是机器,需要机器加以理解和判断重要信息,需要机器分担人所要完成的信息分类处理的工作,是人与机器的共同完成某项任务,也就是说“机器可知”. WEB服务为两种类型提供的服务侧重点有所不同,为“人可知”系统主要提供数据检索与查询、简单计算等功能。而为“机器可知”系统,已可以叫做智能系统,为它提供更为高级的计算能力服务 . 服务提供的数据是[8-10]Web标准的 XML 对数据,需要通过某种标准语言加以加工,就形成了不同的应用系统。例如,数据与 HTML语言相结合,就形成了以网页形式展示数据的 B / S 结构的 web应 用系统;数据与 WML 语言相结合,就形成了通过 WAP协议可以访问的移动应用系统;数据与 KML 语言相结合,就形成以地图形式展示数据的遥感、 GIS 应用系统;数据按照 JSR168标准开发portlet组 件,就形成了以可定制组件的 Portal应用系统;等等。
  
  2)WEB服务软件开发部署框架设计。
  
  web 服务的结构分为三大部分,服务提供者、服务调用者以及服务注册中心。 WEB SERVICE是创建可互操作的分布式应用程序的新平台,主要目标是跨平台的可互操作性,完全基于XML(The Extensible Markup Language)、XSD(XML Schema Definition)等独立于平台、独立于软件供应商。Web Service目前被SOA(Service-Oriented[6,11]Architecture)所广泛采用,已成为当前分布式技术的重要代表 .
  
  WEB 服务是在 Web技 术的基础上制定了一些协议和标准来实现的。这些标准主要包括 XML(扩展标注语言)、SOAP (简单对象访问协议)、 WSDL(  Web服 务描述语言)、 UDDI (统一描述、发现和集成语言)。 Web Service基于服务提供者、服务请求者和服务注册中心,三者间利用上面几种技术进行交互。这些交互包括:发布、发现、绑定。
  
  整个过程主要是服务提供者将服务发布到服务请求者或者 UDDI 注册中心。服务请求者通过查找 UDDI注册中心来搜索服务描述,然后使用服务描述与服务提供者进行绑定,调用W EB SERVICE.
  
  Web 服务软件开发框架如图 2所示:
  
  1)Hibernate 利用Hibernate进行数据封装,为Web Service提供统一的数据对象,Hibernate可以提供两种数据类型1)POJO对象,2)XML对象。
  
  2)采用AXIS2框架中有部署模块(Deployment)、WSDL及代码生成模块、信息处理模块、XML处理模块和SOAP消息处理模块。通过编写相应的模块代码进行Web Service开发。
  
  3)客户端可以通过富客户端(RIA)或者flash客户端,通过SOAP协议进行服务访问。
  
  2 基于WEB 服务的土地利用构件分析与设计。
  
  2.1 基于WEB 服务的土地利用构件分析。
  
  根据土地利用应用的特点,将构件分为内置构件和构件定制服务(可扩展构件)两个大类,其中内置构件包括: xml 数据源定制服务、统计图形服务、数据表格服务、 GIS服 务和 web链接服务。构件定制服务是根据用户的特定需求进行开发,已经开发构件包括:地类图斑服务、地类界线服务、零星地息服务、线状地物服务、统计服务、计算服务、地理信息服务。构件分类及功能,如图3 所示:
  
  1.内置构件。
  
  内置构件是系统提供的公共性组件服务。
  
  1)xml数据源定制服务。该构件是一种数据获取构件。可以通过XML数据源定制达到和外界系统交互的目的,通过引入XML数据源将外部数据加入到系统中进行计算。
  
  2)统计图形服务。该构件是一种数据图形显示构件。该构件根据数据绘制成图形、统计图等,形象化的表达数据信息,包括直方图,过程线,散点图等。
  
  3)数据表格服务。该构件是一种数据表格显示构件。可以根据数据任意定制表格格式,进行表格字段排序。
  
  4)web链接服务。该构件是一种数据获取构件。可以通过URL地址引入将Internet中,一般网页集成到系统中提供查询。
  
  2.构件定制服务(可扩展构件)。
  
  构件定制服务(可扩展构件)是针对土地利用业务开发的业务功能性构件,可根据具体的应用需求扩展该类构件,开发的构件可任意插拔到系统中,解决具体的应用。已经开发了部分土地利用相关构件。
  
  1)卫星遥感服务。卫星遥感(spot等)、监测图斑的分析浏览。
  
  2)地类图斑服务。地类权属、净面积、坐落等等信息的查询及GIS显示。
  
  3)地类界线服务。界限的范围等信息的查询及GIS显示。
  
  4)零星地物服务。根据条件零星地物的属性查询及GIS显示。
  
  5)线状地物服务。线状地物的范围、扣除面积等信息的查询及GIS显示。
  
  6)统计服务。耕地坡度分级面积汇总、土地利用现状一级分类面积汇总、农村土地利用现状一级分类面积按权属性质统计、土地利用现状二级分类面积统计、基本农田情况统计、基本农田调查统计和信息查询分析。
  
  7)计算服务。包括常用的插值、拟合数值、图形拓扑等计算服务。
  
  8)地理信息服务。等值线、地图监视、地图浏览等服务。
  
  2.2 基于WEB 服务的土地利用构件设计。
  
  Web服务设计UML图中共有七个类,其中LandUseInfoWebserviceSample类为所有构件接口,构件的业务功能最终是通过该类对外界发布;ActionResponse和LOVResponse两个类为抽象类,其中该类中定义了所有业务组件所要完成的方法,每一个业务功能实现类继承ActionResponse和LOVResponse两个抽象类,实现自己的业务构 件 ; 实 现 的 业 务 构 件 在 ActionRegistray和 LOVRegistray注 册 类 中 注 册 , 每 一 个 构 件 可 以 通 过ActionResponse中 ActionCode(ID号 ) 查 找 到 构 件 , 由 LandUseInfoWebserviceSample类 统 一 通 过ActionCode调用、查询构件。
  
  统一的U ML 图,如图 4所示:
  
  (1)LandUseInfoWebserviceSample类是所有组件的接口类,包括execute()组件执行方法,返回业务功能最终所需要XML结果;getLOV() 方法, 主要完成用户定制界面中查询数据库部分,将数据生成一定格式的XML;getLOVSchema 方法,生成getLOV()方法中返回的XML数据所对应的XML SCHEMA,以便解析返回数据;getActionHelper()方 法 , 利 用 JELLY脚 本 , 完 成 个 性 化 定 制 用 户 查 询 界 面 描 述 , 返 回 JELLY脚 本 ;getActionInputSchema() 方法,完成用户定义输入条件XML SCHEMA获取。
  
  (2)LOVResponse类是构件获取所需要的的数据,LOV方法是获取数据信息,以XML形式返回;LOVSchema方法获取字段信息,是LOV所生成XML的SCHEMA.
  
  (3)ActionResponse类是构件开发的关键,用户定制界面及业务功能都在这个类中实现。
  
  (4)ActionRegistary类是构件ActionResponse类的注册类。完成所有业务构件的注册。
  
  (5)LOVRegistary类是完成对LOVResponse类的注册。
  
  2.3 基于WEB 服务的土地利用构件实现。
  
  以按行政区地类图斑信息服务为例,说明基于 SOA框架的构件开发的过程。开发步骤分为服务提供、服务发布和服务调用三大部分。
  
  (1)web服务提供。i.编辑用户查询定制界面的JELLY文件,如行政区代码、权属等信息;ii.编写LOVResponse类中的getLOV和getLOVSchema方法,查询行政区地类数据;iii.确定地类图斑服务在信息构件中的ActionCode,即构件编号;iv. 实现ActionResponse的actionHelper方法中返回第一步中编辑的JELLY内容;v. 编辑输入条件的SCHEMA,在ActionResponse的actionInputSchema方法中返回;vi. Execute()方法实现地类信息查询,并以XML形式返回。
  
  (2)web服务发布。
  
  编写信息服务中地类图斑查询服务发布配置文件 service. x ml. 在A ixs2 中打包为 AAR文件,发布等待调用。
  
  (3)web服务调用。
  
  通过知识可视化综合集成平台将开发好的组件进行实时地类查询定制。以下涉及 3个构件以行政区选择构件、地类图斑数据属性构件和地类图斑图形显示构件。通过图中的线条进行数据的联系,选择好时间、行政区后、将数据流入到地类图斑查询构件,点击图斑显示就可以得到相应的表格数据,再将地类图斑构件数据流入图形显示构件,就可以显示相应的地类图斑图形,完成信息的查询及图表显示。地类图斑信息的查询及图表应用构建,如图5 所示:
  
  构件式开发和传统软件开发的区别在于:1 )程序员根据需求和熟悉构件的分类功能,通过对服务的定制完成程序开发,不需要重新编写代码;2 )通 过可视化编成环境拖拽构件来完成程序开发;3 )出现多个应用需要一个功能性构件时,不需要重复开发相同功能的程序;4 )构件框架中已经完成了部分土地利用构件,在构件库不能满足用户需求时,在不需要修改其他程序的基础上,可以通过扩展构件功能完成需求,表明已有构件具有良好的独立性,自主性和自适应性。与传统的开发模式不同的是开发复杂的应用,再也不用面向应用单独编程,而是将应用划分为独立组件,通过平台可视化的开发应用,充分发挥构件开发的特点,避免重复开发,快速搭建应用。
  
  3 结论。
  
  针对空间对象的定义、表达和存储方式、内部数据结构不同,各自独立、相对封闭、无法互相沟通和协作;不同的 GIS系统存在开发标准、开发方法及开发语言各有不同;土地利用数据更新频繁,现有更新包上报方式无法实现现势性、连续性和不同系统之间数据的同步性要求,提出了一种 Web服务的描述模型,同时利用面向服务的思想,将土地利用应用进行构件划分,给出了具体应用实例。改变了在土地利用中传统的开发模式,利用构件定制和建立构件间的联系开发软件,提高了软件的独立性、自主性和自适应性,为土地利用共享和面向服务的土地利用应用开发提供参考价值。
  
  框架具有以下主要特点:
  
  (1  )开放性。该框架是一个符合 J2EE标准的完全开放的系统,可以适合于不同地区的、不同模型系统的快速搭建完成土地利用应用功能。
  
  (2 )易开发性。将编程模式从编写底层代码改变为拖拽构件完成应用,编程难度降低,并保证了系统具有良好的组件开发接口和软件安全保障。
  
  ( 3)可扩展性。通过划分和扩展不同领域的构件,达到自动适应不同领域的应用的要求。
  
  ( 4)实用性。提供可靠、稳定、及时地服务,提高工作效率,具有较高的实用价值。
  
  土地利用构件体系化、改进 Web Service工作效率、提高服务质量以及健全服务评价体系是下一步工作目标。
  
  参考文献:
  
  [1]王凌云,李琦,喻文承。 WebService 与地理信息互操作[J] .测绘科学 ,2004, 29(1):38-41.  
  [2]申胜利,冯问文新,杜舰。国土资源空间数据集成共享探讨[J  ].中国国土资源经济 ,2004, 7 :  30 -33.  
  [3]艾萍,倪伟新。基于构件的水利领域软件标准化基础研究[J ] .水利学报, 2003,  12:104 -108.  
  [4]涂扬举,马光文,刘治理,等。基于三层B /S 结构的水电站中长期优化调度系统[J].水 力发电学报,2006,25(2):90-93.
  [5]  费玉奎。 Web构 件模型研究及其在水利领域中的应用[D].南 京:河海大学,2004.  
  [6]李订芳,郭生练,王金星,等。防汛信息共享与元数据应用研究 [J].测 绘信息与工程,2003,28(3):1-3.  
  [7]周惠成,何斌,梁国华。防汛会商系统集成化管理研究及应用[J ].水科学进展,2 006 ,1 7(  2 ): 283 - 287.  
  [8] 冉玉春,赵凌燕。用 Apache Axis开发 web 服务[J].计算机应用,2004,24(5):140-143.  
  [9] 邓志鸿,唐世渭。 Ontology 研究综述 [J]. 北京大学学报(自然科学版),2002,38(5):730-738.  
  [10] Fresnel D.The semantic web and its languages [J].IEEE Computer Society, 2000,15(6):67-73.  
  [11] Noy F N, McGuinness D L.Ontology Development 101: A Guide to Creating Your First Ontology[R]. StanfordKnowledge Systems Laboratory Technical Report KSL-01-05 and Stanford Medical Informatics TechnicalReport SMI-20010880,2001.  
  [12] Hefin J,Hendler J.Searching the web with SHOE [A].In Artificial Intelligence for Web Search. MenloPark, CA: AAAI Press,2000.35-40.

本文来源:http://www.rjdtv.com/jisuanjilunwen/2763.html