一种基于模型驱动的地理信息服务组合设计器生成方法

文档序号:6586782阅读:162来源:国知局
专利名称:一种基于模型驱动的地理信息服务组合设计器生成方法
技术领域
本发明专利涉及地理信息技术,尤其涉及地理空间领域中的一种基于模型驱动(MDA)的地理信息服务组合设计器生成方法。

背景技术
目前,随着Web Service技术日益成熟,越来越多稳定易用的Web服务共享在网络上,但单个Web服务提供功能有限,为充分利用共享的Web服务,将服务组合起来是很有必要的。现有Web服务组合方法主要有基于有向图服务组合、基于工作流服务组合、基于语义的服务组合、基于模型驱动服务组合等几种。这些方法在一定程度上可以说是为空间信息服务组合提供了一些解决方案,然而这些方法在处理空间信息服务组合时仍存在缺陷或不足。
对于基于有向图服务组合方法,服务内部操作容易与服务组合的操作混合,导致服务组合过程变得困难且容易出错。
对于基于工作流的服务组合方法,虽然由大公司参与研究开发并有众多的支持者,但是目前仍未成为行业标准;更重要的是这些工作流语言针对的是商业业务过程而不是空间信息业务过程,并不一定能完全满足空间信息服务组合的要求,同时在向智能化扩展方面并不具有明显优势。
对于基于语义的服务组合方法,其基于本体的语义推理能力明显是人们热捧的特点,但是OWL-S(web服务的本体描述语言)对服务自动组合的支持上仍有不足基于描述逻辑在表达一般规则方面有局限性,不能很好地表示用户的偏好和约束的语义,从而导致服务自动组合需要用户干预。
基于模型驱动的Web服务组合虽有一些发展,但是缺乏专门性的模型来定义地理信息服务组合的描述规则和建立规范化一致性描述的模型架构。
为提高空间信息服务的重用率、提高服务组合互操作性以及向智能化方向发展,建立一个合理规范的地理空间信息服务组合模型是很有必要的。


发明内容
为了克服现有Web服务组合方法在组合多个服务时存在的缺点与不足,本发明基于模型驱动的软件开发思想,提出了一种地理信息服务组合设计器生成方法。
本发明提供的技术方案是一种基于模型驱动的地理信息服务组合设计器生成方法,包括以下几个步骤 步骤一,以类及类之间的关系为核心,分别建立以下三种服务相关的结构子模型 服务结构子模型,以服务类图表达服务分类以及各类服务之间关系; 控制结构子模型,以控制构件类图表达单个服务进行组合操作时执行顺序关系; 数据传输结构子模型,用于以参数类图表达服务之间数据流交换关系; 步骤二,整合步骤一所得服务结构子模型、控制结构子模型和数据传输结构子模型,得到一个抽象描述地理空间信息服务组合过程的业务模型; 步骤三,以步骤二所得业务模型为驱动模型,生成程序源代码,运行程序源代码得到一个供用户交互进行抽象地理信息服务组合设计的服务组合设计器。
而且,所述的服务结构子模型建立方式为,服务类图中的服务类分为原子服务和组合服务,其中原子服务不可再分,组合服务由原子服务按业务逻辑关系组合而成; 所述的控制结构子模型建立方式为,控制构件类图中控制构件是由多个原子服务聚合成块结构而形成,依据块结构特征,控制构件分为顺序结构、选择结构、循环结构、平行分支结构和同步结构; 所述的数据传输结构子模型建立方式为,参数类图中的参数类分为输入参数和输出参数;服务组合时数据传输有三种方式,包括组合服务输入到原子服务输入的数据传输、一个原子服务输出到另一个原子服务输入的数据传输、原子服务输出到组合服务输出的数据传输。
而且,所述的服务组合设计器为一个界面化的图形化软件;用户通过服务组合设计器设计地理信息服务组合业务流程图,最后由服务组合设计器输出为XML文档。
本发明的技术效果体现在 通过服务结构、控制结构、数据传输结构三部分组成的地理空间信息服务组合模型,借鉴OWL-S的服务描述规范,建立了规范化一致性描述的模型架构,清晰地描述出抽象地理信息服务组合的业务流程。通过模型驱动生成的服务组合设计器互操作性高、出错率低,使用户方便高效地设计定制自己所需的服务组合流程图,最终生成的XML文件便于转换和传输,可有效用于服务自动匹配。



图1是服务结构子模型图; 图2是原子服务结构图; 图3是组合服务结构图; 图4是控制结构子模型图; 图5是平行分支结构图; 图6是数据传输结构子模型图; 图7是业务模型示意图; 图8是洪水淹没服务组合设计图。

具体实施例方式 1、理论基础 (1)、MDA基本原理 MDA是一种基于UML以及其他工业标准的框架。MDA实现步骤首先,用UML对应用领域进行高度抽象的建模,得到一个平台无关模型(PIM),即该模型和实现它的底层技术完全没有关系。然后,PIM将被转换为一个或多个平台相关模型(PSM),这个翻译的过程一般是自动实现的,PSM将用一个特定的实现技术来描述系统。最后,PSM将被翻译成源代码。
(2)、UML UML是一种面向对象的统一建模工具,下面重点介绍本发明需要用到的类图。类图是描述类、接口以及它们之间关系的图,类的基本元素包括名称、属性、操作,类间关系主要有①继承指的是一个类(称为子类)继承另外的一个类(称为基类)的功能,并增加它自己的新功能的能力。②关联指的是模型元素之间的一种语义联系,是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。③聚合指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。
2、实现过程 下面结合附图和实施例对本发明进一步说明 (1)、以类及类之间的关系为核心,分别设计服务结构、控制结构、数据传输结构这三个服务相关的结构子模型,即服务结构子模型、控制结构子模型和数据传输结构子模型。
①、服务结构部分 OWL-S是一种专门用于描述服务的本体语言,针对地理空间领域,能够建立地理服务分类本体库,具体实施时建立可参考地理信息ISO19119服务国际标准ISO/TC 211,2005.ISO191192005,Geographic Information-Services。也可以直接借用现有的本体库建立本发明所需模型,其它领域的本体库能够通用。
依据OWL-S对服务的分类,服务结构子模型主要由原子服务、组合服务以及它们之间的关系构成。服务结构子模型的设计包括原子服务和组合服务这两类不同的服务模型设计。
原子服务是一个不可再分的服务,它不包含任何子过程。原子服务主要由属性集、若干个输入以及输出组成。按照输入-执行-输出的模式,一个原子服务通过接收输入参数,执行服务功能就可以返回输出消息,这是一个最简单的服务执行过程。针对地理空间领域,本发明实施例提供了原子服务各组成要素,参见表1 表1原子服务各组成要素

组合服务是将多个原子服务按一定的业务逻辑组合起来,能够完成复杂任务的服务。组合服务在整体上看仍是一个服务,也包括属性集、参数集等要素。与原子服务不同的是,组合服务由一组控制结构将各原子服务按一定的方式组织连接起来。另外,组合服务中的部分原子服务可能会负责与外部活动交互,而部分原子服务则只会与组合服务内部的某原子服务交互,这就需要为组合服务引入数据传输结构以连接各原子服务的交互活动。针对地理空间领域,本发明实施例提供了组合服务各组成要素,参见表2 表2组合服务各组成要素
在图1中,Process为通用的服务类,其上定义了一般服务具有的共同属性,包括数据类型为字符串型(string)的Name、OntologyLocalName和数据类型为整型(int)的ID、OntologyID;CompositeProcess和AtomicProcess为两种类型的服务,CompositeProcess表示组合服务类,AtomicProcess表示原子服务类,它们均继承自服务类Process。在一个服务组合案例中只可能有一个CompositeProcess,CompositeProcess可以聚合1...*个AtomicProcess,表示一个组合服务中可以有1个或多个原子服务,该聚合关系表示为hasAtomicProcess。一个组合服务允许同一个原子服务出现多次,这种情况在具体服务执行时表示该服务被多次调用。
在图2中,AtomicProcess继承服务类Process,具有属性集(name、ID等);同时聚合1...*个Input和Output,表明一个原子服务有1个或多个输入参数类和输出参数类,该聚合关系分别表示为hasInput和hasOutput。一个原子服务通过接收输入参数,执行服务后得到输出参数,构成一个简单的服务操作过程。
在图3中,CompositeProcess自身有属性集(name、ID等),继承自服务类Process;同时聚合Start、End、Input、Output、AtomicProcess和控制结构(Sequence、Split等)。一个CompositeProcess除聚合1...*个AtomicProcess(表示为hasAtomicProcess)之外,还具有其它聚合关系聚合1个Start和1个End,表明一个组合服务只能有一个开始和一个结束,该聚合关系分别表示为hasStart和hasEnd;一个CompositeProcess聚合1...*个Input和Output,表示一个组合服务可有1个或多个输入参数类和输出参数类,该聚合关系分别表示为hasInput和hasOutput;一个CompositeProcess聚合0...*个控制结构,表示一个组合服务中可有0个或多个控制结构,该聚合关系分别表示为hasSquence、hasSplit等共五种。
组合服务执行过程大致为通过Start服务组合开始和给定组合服务的输入参数集,原子服务接受此参数集,多个原子服务根据相互之间调用关系聚集得到控制结构,原子服务自上而下执行完后得到输出结果,最终赋值给End得到组合服务的输出参数集,即组合服务的执行结果。
②、控制结构部分 在组合服务中,原子服务是按“块”结构聚集在一起的,即某几个原子服务聚集成一个块结构处理接收到的消息,然后再将处理结果发送给下面的处理块(或原子服务)。这种“块”结构被称为控制结构,是服务组合不可缺少的部分。本控制结构子模型设计了五种服务组合模式顺序结构(Sequence)、选择结构(Choice)、循环结构(Loop)、平行分支结构(Split)、同步结构(Synchronization)。
顺序结构是服务结合中的最基本结构,该结构中的各个服务是按顺序连接的,表示这些服务将按先后顺序一步步地执行处理;选择结构表示结构中有两个或多个分支,符合判断条件的分支才有可能被绑定到具体服务并执行;循环结构表示若满足所给出的条件,将会重复地执行处理过程的结构;平行分支结构是一种具有两个或以上分支的结构,当服务执行到平行分支结构时,结构中的每条分支都会被执行,分支是平行的执行的,没有先后次序之分;同步结构与平行分支结构比较相似,与平行分支结构不同的是同步结构的分支是同时执行的。
在图4中,ControlConstruct代表控制结构,顺序结构(Sequence)、选择结构(Choice)、循环结构(Loop)、平行分支结构(Split)、同步结构(Synchronization)均继承自类ControlConstruct。一个CompositeProcess分别聚合0...*个Sequence、Choice、Loop、Split、Synchronization,表示一个组合服务中包含0个或多个顺序、循环、平行分支、同步结构,该聚合关系分别表示为hasSequence、hasChoice、hasLoop、hasSplit、hasSynchronization。在实际服务组合时,可以用到这些控制结构中的一种或多种。
在图5中,Split代表平行分支结构,继承自控制结构类ControlConstruct;CompositeProcess聚合0...*个Split,表示组合服务里面包含0个或多个平行分支,该聚合关系表示为hasSplit;SplitBranch代表一条分支,一个Split聚合0...*个SplitBranch,表示一个平行分支结构里有0个或多个分支,该聚合关系表示为hasSplitBranch;同时一个SplitBranch聚合0...*个Split,表示一个分支里面还有0个或多个平行子分支,也就是平行分支的嵌套结构,该聚合关系表示为hasSplit;一个SplitBranch聚合1...*个AtomicProcess,表示一个分支由1个或多个原子服务按一定顺序链接构成,该聚合关系表示为hasAtomicProcess; 上面详述了平行分支结构的设计,其他几种结构设计原理类似。
顺序结构是多个服务按照先后顺序一步步执行处理。在顺序结构中可以包含原子服务或其它控制结构,它们之间通过linkTo属性记录上下的连结情况。例如在一个植被提取的组合服务中,先调用获取影像服务得到区域图像,再调用植被提取服务从图像上提取植被,这种服务调用先后顺序用linkTo表示。
同步结构与平行分支结构非常相似,在结构上同步结构也包括两个或多个分支。但与平行分支结构不同的是同步结构的分支是同时执行的,若一条分支不能执行,那么整个同步结构也不能执行;而当所有分支都完成后,组合服务才继续向下执行。因此同步结构是为了补充平行分支而设计的。
选择结构的每个分支为组合服务的一个可能选择路径。而每个分支内则可以是原子服务或控制结构的组合。选择哪个分支是根据条件(Condition)进行判断的,条件中会有一个表达式(Expression)描述条件。例如在植被提取服务组合中,可以有包括以下分支的选择处理当某种植被的面积大于一个数量时将面积小于一个数量的区域删除;而当该植被的面积小于一个数据量时将面积小于一个数量的区域合并。在这个例子中,植被面积就是条件,其表达式可能为“area>10”,其中area表示植被面积;当满足条件时,选择结构就会转到所属的分支。
循环结构必须满足条件才会进行循环中的处理过程,否则转到循环结构的下一步处理。若条件满足则进行循环结构的内部处理;当处理结束后会再一次进行条件判断,若条件仍然满足,则处理过程会再一次执行;否则转到循环结构的下一步进行。例如植被提取组合服务中,当提取出某种植被后,需要对植被的区域进行合并,合并的条件是“area<10”&&“distance<5”,其中area表示植被面积,distance表示不同植被区域间的距离。当条件满足时,就会执行循环结构的处理;当处理完一次后再进行条件判断,若条件仍然满足,则继续执行循环直到条件不满足为止。
③、数据传输结构部分 数据的传输是组合服务中某个服务接收消息以及将服务处理后的消息发送到另一个服务中的关系。数据传输结构模型主要由服务的输入和输出的数据传输方式构成。按照数据传输流向分为以下三种数据传输方式。
Ci-Ai方式是组合服务输入到原子服务输入的数据传输,表示服务链的某个输入将是其一个或多个原子服务的输入。Ci-Ai型有三个约束特征(1)源约束;传输的方向必须是由组合服务的输入传到原子服务的输入。(2)类型约束;输入之间的传输必须是同类型的才可能发生传输的可能。(3)数量约束;组合服务的一个输入可以传给一个或者多个原子服务的输入。所以Ci-Ai型的数据约束条件是1∶1...*的关系。
Ao-Ai方式是原子服务输出到原子服务输入的数据传输,表示原子服务的某个输出将是另一个或多个原子服务的输入。Ao-Ai型与Ci-Ai型有相同的数量约束和类型约束特征。而源约束则是从某个原子服务的输出到它之后的执行路径的某个或多个原子服务的输入,这里所指的执行路径的原子服务可能是该原子服务紧接着的下一个原子服务或都相隔若干个之后的某个或多个。
Ao-Co方式是原子服务输出到组合服务输出的数据传输,表示原子服务的某个输出将是组合服务的输出。Ao-Co型也有三个约束特征(1)源约束传输的方向中由原子服务到组合服务。(2)类型约束必须是同类型的输出之间的传输。(3)数量约束只能是一个输出到另一个输出,因此Ao-Co型是1∶1的关系。
如图6所示,模型设计了以上三种不同的数据传输方式。输入参数类Input和输出参数类Output继承自Parameter类,Parameter类表示服务组合时所用的参数集合,具有属性集(name、ID、Ontologytype等,在地理服务分类本体库中定义了参数属于哪个类型用ontologytype表示,比如一个参数是点坐标数据,其数据类型为point)。Process为通用的服务类,因此一个Process聚合1...*个Input和Output,表示一个服务类有1个或多个输入参数和输出参数,输入参数负责接收数据供服务类使用,输出参数负责保存服务执行结果,该聚合关系表示为hasInput和hasOutput;Input与自身关联,该关联关系表示为ImportFrom,它表示一个原子服务的Input可以从组合服务的Input那里导入数据,属于Ci-Ai方式数据传输;一个Input关联0...*个Output,该关联关系表示为AssignFrom,它表示一个原子服务的Input可以从另一个原子服务的Output那里得到数据,属于Ao-Ai方式数据传输;Output与自身关联,该关联关系表示为AssignTo,它表示一个原子服务的Output可以向组合服务的Output赋数据,属于Ao-Co方式数据传输。
(2)、将以上得到的三个服务相关子模型按照一定业务逻辑整合起来,组成一个空间信息服务组合整体模型,即能够抽象描述地理空间信息服务组合过程的业务模型。
如图7所示,实施例将服务结构子模型(Service Model)与控制结构子模型(Control Model)通过类CompositeProcess与类ControlConstruct之间的关系Composeof连接起来;服务结构子模型(Service Model)与数据传输结构子模型(Data Transmission)通过类Process与类Input之间关系hasInput、类Process与类Output之间关系hasOutput连接起来。三部分有机结合,共同组成一个复杂的地理信息服务组合模型,描述了抽象服务组合的各种模式。图7中用虚线箭头表示子类Subclass关系,即表示一个类是另一个类的一部分;用实线箭头表示对象属性ObjectPropert关系,即两个不同类之间的关系。
(3)、服务组合设计器的生成。
步骤二得到的服务组合业务模型是一个平台相关模型(PSM),具体实施时可以在Eclipse图形建模框架(简称GMF)支持下,运用MDA原理,以该PSM模型作为源驱动模型,生成java代码,运行后生成一个图形编辑器,即服务组合设计器软件。
服务组合设计器是一个界面化软件,根据实际应用需求,用户可以使用该软件设计不同的地理信息服务组合业务流程图。设计流程大体是首先,获取服务组合需要的服务。服务组合设计器通过链接到地理本体库,用户拖动地理本体库中已定义的服务到绘图区,得到一系列需要的服务。然后,设计服务组合流程图。借助设计器上工具箱,根据各服务之间调用关系将服务链接起来,形成控制结构;同时在属性表中设置服务之间数据传输方式。最后,保存设计的流程图,输出为XML文件。XML文件表达抽象的地理服务之间组合关系,需要根据抽象地理服务找到网络上的具体服务,此过程称为服务自动匹配,匹配之后,具体服务组合起来执行得到实际结果。
实例洪水淹没服务组合是为了分析和展示一个地区三个时期(涨水前、涨水时、退水后)洪水覆盖面积的变化而设计的应用例子。该实例使用服务有以下几个 1)CreateLocation服务 服务描述数据下载服务,它可以将网络上一幅影像数据下载到本地; 输入参数inputFileURL,待输入影像的URL地址; locationName,数据文件所要下载到的本地路径; 输出参数createLocationResult,本地下载数据的文件名; 2)NDVI服务 服务描述标准化植被指数计算服务,将同一传感器在同一时间采集的同一区域的近红外、红光两个波段的影像利用NDVI公式计算植被指数; 输入参数locationName,虚拟目录; fileName1,波段影像文件; fileName2,波段2影像文件; 输出参数NDVIResult,结果文件名; 3)Binarization服务 服务描述影像二值化服务,将一幅影像数据按一定的阈值做二值化处理; 输入参数locationName,虚拟目录; fileNameForNDVI,影像文件的名称; 输出参数binarizationForNDVIResult,二值化结果文件名; 4)AllColorImage服务 服务描述设色合成彩色图像服务;根据三幅影像及一定数量的颜色设置合成彩色影像; 输入参数locationName,虚拟目录; fileName1,洪水涨水时的影像二值化影像; fileName2,洪水涨水前的影像二值化影像; fileName3,洪水涨水后的影像二值化影像; color000~color008,为合成影像所设置的8种颜色; 输出参数allColorImageResult,合成影像结果文件名; 5)GetRusultURL服务 服务描述导出影像数据的服务; 输入参数fileName,文件名; locationName,虚拟目录; 输出参数getResultURLResult,结果数据URL; 该地理服务组合设计方案首先从网络上下载同一个地区的三个时期、两个波段(对于TM传感器使用第1、2波段)共6幅影像数据作为原始待处理数据,然后按时期分成三组分别先作NDVI计算再作影像二值化处理,最后将三组分别处理完成后的三幅结果影像合并成一幅彩色图像。服务组合设计结果如图8所示。
Split为一个平行分支结构,它有三个分支SplitBranch1、SplitBranch2、SplitBranch3,分别表示该地区三个时期(涨水前、涨水时、退水后)的三个分支,Split1、Split2、Split3分别标记这三个分支的开始。SplitBranch1分支又具体有两个分支SplitBranch10、SplitBranch11,由服务CreateLocation0、CreateLocation1、NDVI0、Binarization0链接而成,CreateLocation0和CreateLocation1分别表示下载涨水前的该地区红外、红光两波段影像服务,NDVI0表示对这两个波段影像计算植被服务,Binarization0表示对计算后的影像二值化处理服务。SplitBranch2、SplitBranch3分支中的服务类似于SplitBranch1,SplitBranch2分为分支SplitBranch20、SplitBranch21,SplitBranch2分为分支SplitBranch30、SplitBranch31,其中的CreateLocation、NDVI服务被顺序标号为CreateLocation2、CreateLocation3、NDVI1、Binarization1,CreateLocation4、CreateLocation5、NDVI2、Binarization2。三条分支最终分别得到三个时期的二值化影像Binarization0、Binarization1、Binarization2;AllColorImage表示对这三幅二值化影像进行颜色合成;GetRusultURL表示将合成影像导出,保存处理结果。
实验证明,在设计此实例的服务组合流程图过程中,体现了设计器互操作性高以及出错率低的特点;得到的XML文件经过服务匹配之后,以上一系列影像处理服务组合执行后得到一幅该地区三个时期的合成图像,满足实际需求。
权利要求
1.一种基于模型驱动的地理信息服务组合设计器生成方法,其特征在于,包括以下几个步骤
步骤一,以类及类之间的关系为核心,分别建立以下三种服务相关的结构子模型
服务结构子模型,以服务类图表达服务分类以及各类服务之间关系;
控制结构子模型,以控制构件类图表达单个服务进行组合操作时执行顺序关系;
数据传输结构子模型,以参数类图表达服务之间数据流交换关系;
步骤二,整合步骤一所得服务结构子模型、控制结构子模型和数据传输结构子模型,得到一个抽象描述地理空间信息服务组合过程的业务模型;
步骤三,以步骤二所得业务模型为驱动模型,生成程序源代码,运行程序源代码得到一个供用户交互进行抽象地理信息服务组合设计的服务组合设计器。
2.根据权利要求1所述的一种基于模型驱动的地理信息服务组合设计器生成方法,其特征在于
所述的服务结构子模型建立方式为,服务类图中的服务类分为原子服务和组合服务,其中原子服务不可再分,组合服务由原子服务按业务逻辑关系组合而成;所述的控制结构子模型建立方式为,控制构件类图中的控制构件是由多个原子服务聚合成块结构而形成,依据块结构特征,控制构件分为顺序结构、选择结构、循环结构、平行分支结构和同步结构;
所述的数据传输结构子模型建立方式为,参数类图中的参数类分为输入参数和输出参数;服务组合时数据传输有三种方式,包括组合服务输入到原子服务输入的数据传输、一个原子服务输出到另一个原子服务输入的数据传输、原子服务输出到组合服务输出的数据传输。
3.根据权利要求1或2所述的一种基于模型驱动的地理信息服务组合设计器生成方法,其特征在于所述的服务组合设计器为一个界面化的图形软件;在用户通过服务组合设计器设计出地理信息服务组合业务流程图后,由服务组合设计器输出为XML文档;该XML文档将用于服务匹配中。
全文摘要
一种基于模型驱动(MDA)的地理信息服务组合设计器生成方法,属于地理信息技术。本发明以MDA的思想为基础,设计了一个从服务结构、控制结构、数据传输结构三方面描述地理空间信息服务组合的模型——一个平台相关模型(PSM),然后PSM被翻译成程序源代码,运行得到一个服务组合设计器软件。此方法专门用于抽象表达地理空间信息服务之间的组合关系,在建立统一规范的地理信息服务组合模型架构的同时,有效地降低服务组合的复杂性,提高了服务组合的效率和互操作性。
文档编号G06F9/44GK101763262SQ20091027239
公开日2010年6月30日 申请日期2009年10月13日 优先权日2009年10月13日
发明者王艳东, 黄定磊, 罗安 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1