




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)面向领域的服务描述与集成方法的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
东南大学硕士学位论文 摘要 随着软件行业的不断发展,计算机软件的应用不断深入到社会各行各业中。但是由 于各种应用领域之间差异很大,软件开发人员对于应用领域的知识很难有深入的了解, 从而难以与领域专家对某个领域问题在认识上达成一致。同时,由于领域专家缺乏软件 设计相关的知识,他们并不能在第一时间把自己的设计方案变为可执行的程序。因此如 何快速地构建领域应用软件成为现代软件开发的一大难题。目前有很多技术思想着力于 解决领域应用软件的设计开发问题,如领域驱动设计、模型驱动架构等等。这些技术思 想都关注领域专家与软件设计人员的交流问题,力图产生一个规范的领域模型来解决软 件设计问题。这些方法可以归结为使领域模型的设计更接近于软件模型。这样会产生一 个问题就是在规范领域模型的时候容易丢失领域本身所固有的概念或特征。本文以面向 服务的软件设计思想为基础,为服务自身加上包含领域信息的能力,使领域应用到软件 设计的映射更加便利。 本文针对现有的领域软件设计方法存在的问题,提出一个以包含领域信息的服务描 述方法为基础,以工作流为集成手段的领域应用软件设计方法。首先分析服务的领域特 征类型,确定领域服务的描述方法,并提出在服务领域特征信息的基础上设计服务集成 为工作流的方法。然后提出了领域服务的设计、发布、查找、集成以及调用的机制,并 详细阐述了系统的实现技术。最后以网络教学领域应用为例,验证系统的可行性。 关键词:面向领域,s o a ,工作流 a b s t r a c t c o m p u t e rs o f t w a r ei sn o ww i d e l yu s e db yv a r i o u si n d u s t r i e si nt h ew o r l df o l l o w i n gt h eg r o a t d e v e l o p m e n to ft h es o f t w a r ei n d u s t r y , h o w e v e r , d u et os i g n i f i c a n td i f f e r e n c e sa m o n gd i f f e r e n td o m a i n s , o u rs o f t w a r ed e v e l o p e r sh a sb e e ni nad i 伍c u l ts i t u a t i o nt or e a l l yu n d e r s t a n dh o wt h o s ed o m a i n sa r c o p e r a t i n g m e a n w h i l e , al o to fd o m a i ne x p o r t sh a v es i m i l a rp r o b l e m so nh o w t ot r a n s f o r mt l l e i rd e s i g n s & s o l u t i o n st op h y s i c a ls o f l 、j v a r et oh e l pt h e mi m p r o v et h ej o be f f i c i e n c i e s o b v i o u s l yt h e r ea r ed i s c o n n e c t s h e r eb e t w e e ns o f t w a r ed e v e l o p e r sa n dd o m a i ne x p e r t s ,b u ta tt h es a m et i m et h e r ea r co p p o r t u n i t i e sh e r ef o r u st oi m p r o v et h ec o m m u n i c a t i o nb e t w e e nb o t hs i d e s a sw ea l lk n o w , t h ep r o b l e mw eh a v er i g h tn o wi s h o wt oc o n s t r u c td o m a i n - s p e c i f i cs o f t w a r ei nat i m e l ym a n n e ra n dm a k ei tw o r k t mn o w , al o to fe f f o r t s h a v eb e e np u to nt h i sa r e aa n dm a n yt e c h n i q u e sa r cb e i n gu s e d , i e d o m a i n - d r i v e nd e s i g n ,m o d e l - d r i v e n a r c h i t e c t u r ee t c t h e s et e c h n i q u e sa r ef o c u s i n go nh o wt oc o n n e c td o m a i ne x p e r t sw i t hs o f t w a r ed e v e l o p e r s , a n dt r y i n gt oc r e a t eag e n e r i cm o d e lf o ro n es p e c i f i cd o m a i n i fw er e a l l yl o o ki n t oh o wt h e s et e c h n i q u e s 羽屯d o i n g ,w ec a nf i n dt h a tt h o s es p e c i f i cm o d e l st h e ym a d ef o rc e r t a i nd o m a i ni sq u i t ec l o s et ot h en o r m a l s o r w a r em o d e l s oa c t u a l l yt h o s es p e c i f i cc o n c e p t sa n dc h a r a c t e r i s t i c sa r en o tb e e nc a p t u r e df o rt h a t d o m a i ni nt h ep r o c e s so fs u m m a r i z i n gt h em o d e lf o rc e r t a i nd o m a i n ir e c o g n i z e dt h i ss i t u a t i o na n dh a v e b e e nt r y i n gt ol o o kf o raw a yt oi m p r o v et h i ss i t u a t i o n t h i sp a p e ri st r y i n gt oi n t r o d u c 冶a n o t h e rc o n c e p tt o f i g u r eo u tt h ei s s u ew eh a v et o d a y , w h i c hi s ,e n r i c h i n gt h o s es e r v i c e s 谢t l lt h ec a p a b i l i t yo fc a p t u r i n gt h e d o m a i n - s p e c i f i ci n f o r m a t i o na n dp h y s i c a l l ym a p p i n gt h o s ed o m a i nd e m a n d si n t os o f i v a r ed e v e l o p m e n t p f o c c g sb a s e do nt h ep h i l o s o p h yo fs o ai ns o m v a r ed e v d o p m e n tp r o c e s s t ob em o r es p e c i f i c ,t h i sp a p e ri sp r o p o s i n ga ni n t e g r a t e dm e t h o dw h i c hi sd r i v e nb yt h ew o r k f l o w b a s e do nt h ea s s u m p t i o no fc a p t u r i n gt h ed o m a i n s p e c i f i ci n f o r m a t i o ni nt h ed e s c r i p t i o no fs e r v i c e f i r s t l y , id i da na n a l y s i s0 1 1t h ed o m a i nc h a r a c t e r i s t i c so ft h o s es e r v i c e s ;s e c o n d l yic h o s et h er i g h tm e t h o do nh o w t od e s c r i b et h ed o m a i ns e f v i c e s ,a n dt h e nc r e a t e dam e t h o do fi n t e g r a t i n gs e r v i c e si n t ow o r k f l o wb a s e d0 1 1 t h ec h a r a c t e r i s t i c so ft h o s es e r v i c e s ;t h i r d l yic r e a t e dt h em e c h a n i s mo fd e s i g n i n g ,d i s t r i b u t i n g ,f i n d i n g & c a l l i n gt h o s ed o m a i ns 酬c e s ,a n ds t a t e das y s t e m a t i ct e c h n i q u et oi m p l e m e n tt h a ts t e pb ys t e p ;f i n a l l yi t o o ka ne x a m p l eo f u t i l i z i n gt h i sm e t h o di nn e t w o r ke d u c a t i o na r e a ,w h i c hh a dp r o v e dt h a ti ti sf e a s i b l e 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用 过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示了谢意。 研究生签名:l 羔日期: 丕丝星:f : 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可 以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研 究生院办理。 研究生签名:导师签名: 扯日期: i i i 第一章概述 1 1 研究背景 第一章概述 软件设计方法是随着应用需求的变化而发展的。最初,软件的功能主要集中在科学计算方面。 在计算机硬件条件低下,对软件性能要求异常苛刻的情况下,程序被设计为一个密不可分的整体。 随着软件规模的扩大,软件危机的产生促使人们寻求实现软件可重用的方法,软件工程与面向过程 设计方法满足了大量的以数据为中心的应用需求。软件规模进一步扩大后,面向过程设计方法也暴 露出很多问题。由于不符合人们对现实世界的认识,人们很难把现实问题映射为面向过程设计的模 块。于是面向对象的设计方法诞生了。这并不是说面向对象设计方法一定优于面向过程设计方法, 不同需求的应用需要不同的设计方法,如对于工程计算,面向过程的方法就可能比面向对象的方法 更加适合。如果解决逻辑推理、机器证明等人工智能方面的问题,我们可能就需要采用面向逻辑的 技术和方法。如果是设计知识库和专家系统,我们还可以选择面向规则的程序设计技术。所以,新 的设计方法往往对应了新的应用需求。在经历了面向过程设计与面向对象设计以后,应用需求的特 点变得复杂多变,相应的软件设计方法也有了各种各样的变化。 1 2 存在问题 随着软件业的不断发展,软件的功能已不仅仅局限于科学计算或是事务处理。越来越多的行业 使用计算机软件来完成各种信息相关的工作。由于软件深入到各种应用领域内部,软件的设计也涉 及到各种领域知识。仅仅掌握程序设计相关技术已经很难设计出满足领域应用需求的软件。在现实 世界中存在无数的应用领域,每一种应用领域也有成千上万的领域应用。由于各个应用领域知识组 成的不同,很难有一个通用的模型涵盖所有的应用领域。因此,在设计领域应用软件时,软件设计 人员不得不或多或少掌握一定的领域知识。这一过程是领域软件设计的关键所在。但是了解一个完 全陌生的应用领域是一个十分艰难的过程,要不断地和领域专家达成共识,以使软件的设计不会偏 离需求。 在开发领域软件时,由于软件设计人员往往并不熟悉这种领域的知识,所以并不能直接把用户 的需求转变为软件模型。在这之前,需要系统分析师与领域专家交流协商,建立共同认可的领域模 型,然后再由软件设计师根据领域模型生成软件模型。所以领域软件的开发要经历需求、分析、设 计三个阶段。大致过程如图1 1 : 在图l - l 中,系统分析师首先要分析领域专家提出的应用需求,然后建立一个领域模型的原型, 并与领域专家交流,根据领域专家所提供的领域概念不断地完善这个原型。这个阶段对于领域专家 和系统分析员来说都是艰难而又关键的。当他们达成一致的意见后,可以确立最终的领域模型。由 于软件设计师并没有参与领域模型的设计,在将领域模型转变为软件模型时,必须有系统分析师的 帮助。如果分析师在确立领域模型时没有充分考虑软件模型的设计,在这一步会遇到很大的困难, 甚至要返工重做领域模型。 可见,系统分析人员不仅要掌握程序设计的相关知识,同时还必须了解一些领域知识。如果缺 乏领域知识,系统分析人员很难建立正确的领域模型。一个错误的领域模型会使软件设计的所有工 作付之东流。如果缺乏软件开发的相关知识,则建立的领域模型难以转化为软件模型,使程序的设 计工作举步维艰。 东南大学硕士学位论文 领域软件开发职能分工图 系统分析师领域专家软件设计师 - - o o o o o o o l i d 筠 - - - o o # - - - - - 二,二二:甲- 一 帷 v 帮助修改领域模型l i 提出领域模型原型 - 嚣 确定领域模型 求 - o - - - o - o _ q 弋:二:二二 - a d - i i d o - - v 解释领域模型 卜i 理解领域模型 i 建立软件模型 基 魁 o - o o o o 1 d - - o ,- - - - - o o v 图1 1 领域软件开发职能分工图 无疑,无论是确定领域模型还是转换领域模型到软件模型,都需要领域知识与软件知识的结合, 进行全局的考虑。不论是新知识的学习还是不同角色之间的交流都需要消耗大量的精力与时间。有 限的软件开发人员很难满足近乎无限的领域应用软件需求。要解决领域应用软件的开发问题,可以 从以下几个方面考虑: 1 2 1 领域模型的积累与重用 从图1 1 可见,领域软件开发的有很大一部分工作集中在领域模型的建立方面。领域模型的确 立需要大量的领域知识与软件设计知识。可是在以往的领域软件设计中,往往以公司项目为单位, 一旦某个项目完成后,领域模型也就失去了存在的价值。可是这个领域模型花费了专家和分析师大 量的心血,只为一个项目服务显然是一种很大的浪费。同时,由于每一次开发领域应用软件都要建 立一次领域模型,原有的经验与教训很难得到保留,使得建立一个较为完善的领域模型十分困难。 而一个不完善的领域模型可能会使领域软件的后续开发或维护工作变得异常艰难。这种问题在早期 的软件开发过程中也存在过。当时的解决方法是使用面向组件和面向服务的软件设计思想。面向组 件或面向服务的思想要求服务之间有标准的、独立与实现的接口。这样的方法对于通用性很强的服 务来说非常适用,人们可以跨越不同的设计平台甚至不同的通信手段用相同的接口调用服务,大大 提高了服务的可重用性。但是,不同的领域模型之间的差异很大,使用完全相同的服务接口定义标 准很难表达领域模型的特色,甚至可能使之退化为软件模型。可是,如果领域模型的设计没有一个 通用的指导原则,就很难找到一个简单的方法将其转换为软件模型。这给分析师与设计师之间的交 流造成很大的障碍。 要实现领域模型的复用必须以领域为单位定义一系列的标准,同时这些标准领域模型必须有转 化为标准服务的方法。这可以参考x l l 技术。肌可以为不同的应用定义s c h e m a ,属于相同应用 的文档不必再去考虑文档格式的设计问题。不同应用的x m l 文件对应不同的s c h e m a ,拥有不同的 2 第一章概述 格式。同时不论根据什么s c h e m a 写出的文档都符合x m l 规范,都可以使用d o m 或者s a x 来解 析。而对于领域应用软件来说,我们希望领域模型成为领域应用软件设计的s c h e m a ,成为领域应用 服务设计的参考表准。如图1 - 2 : 1 2 2 领域模型到软件模型的平滑过渡 领域模型是领域专家知识的体现,有着很多领域所特有的概念与结构。而软件模型是软件设计 师知识的体现,包含了很多计算机程序设计所特有的概念。领域模型很好地体现了领域特征,但并 不能明确指出领域软件的设计结构。要开发领域应用软件必须要将领域模型转变为软件模型。但是, 领域模型反映了现实世界中的各种概念,不同的应用领域建立的模型之间有很大的差异。这不仅使 得领域模型难以建立,也使得建立的领域模型缺乏转换到软件模型的通用有效的手段。 领域模型难以转换到软件模型的原因很多,大致可以分为3 个方面: 1 领域模型太过独特,包含太多的领域特征。因为领域知识相对于软件知识来说范围要广很多, 软件设计师往往缺乏对领域知识的了解,不能快速地理解领域模型。领域模型反映的是特定领域内 的知识结构,与计算机软件相近的领域可以很容易地建立起设计师可以理解的领域模型,但与计算 机领域相隔较远的应用领域有很多难以用计算机软件相关概念来表达的内容,建立的领域模型也更 难为软件设计师所理解。 2 软件设计模型难以容纳领域特征。在现有的软件设计模型中很少有自定义的软件结构,大多 数的软件模型为了通用性的目的使用若干固定的结构来表示软件的组成。由于软件模型中的结构都 有确定的转变为代码的方法,这些结构相对于领域应用来说处于较低的层次。这些低层次的结构固 然减少了后续的编码工作量,但也完全抛弃了领域中的所有特征。一旦领域模型发生变化,软件模 型可能会有很大的改变。这是因为在领域中看似很小的差异在软件设计中可能会有很大的结构变动。 这主要是由于领域模型与软件模型之间的距离过大所造成的。如果能够在软件模型中引入少量表达 领域特征的机制可以大大减小领域模型与软件模型之间的差距,不仅可以减少设计软件模型的工作 量,也使以后的维护工作更加容易。 3 领域专家、分析师与设计师之间交流存在障碍。领域专家与分析师在建立领域模型的时候缺 乏一个共同的语言表达方式。这不仅加大了领域模型建立的难度,也使他们之间存在“误解”的可 能。一旦分析师错误理解了某个领域概念,轻则需要重新协商领域模型,重则影响后续的软件开发 工作。曾经有人建议使用统一的语言来建立模型,比如u m l ,但事实是让所有的领域专家都去了解 这样一个软件相关的知识是不现实的。分析师与设计师之间交流同样存在这样的问题,不过由于他 们都有计算机软件相关的知识,解决起来相对比较容易。 由此可见,领域专家与分析师、领域模型与软件模型之间的关系是问题的关键。上述3 个问题 的解决方法可以解释为他们所处的位置的变更,见图1 3 。第一个问题需要将领域模型中的概念加以 规范化、形式化,使它更接近于软件的实现。第二个问题需要扩展现有的软件模型,使之能够包容 3 东南大学硕士学位论文 一定的领域特征。第三个问题要求领域专家了解一定的软件知识,减少交流过程中的障碍。 - - - - - i i , , 端点的地址( a d d r e s s ) 它是一个网络地址,通过它,端点可以被寻址。 端点的绑定( b i n d i n g ) 它指明了与端点进行通信的额外细节,包括传输协议( 如t c p 、 8 第二章相关技术研究 h t r p ) 和编码策略( 如文本、二进制) ,安全需求( 如s s l 、s o a p 消息安全) 等。 端点的契约( c o n t r a c t ) 它指明由该端点暴露的操作,被这些操作使用的消息,以及消息交 换模式( m e s s a g ee x c h a n g ep a t t e r n s ,m e p ) ,如单向、双向和请求答复。 通过允许使用包含不同绑定和端点契约( q o s ) 的复合端点( m u l t i p l ee n d p o i n t s ) 来暴露相同的 功能( 服务) ,这些定义有效地扩展了基于w s d l 的服务定义。它通过使用元数据( m e t , a d a m ) 来完 成面向服务实体( s o ) 与面向对象实体( o o ) 概念之间的映射。如表2 1 所示: 表2 1s o 实体与0 0 实体对应表 s o 实体0 0 实体标注 服务契约接口 使用 s e r v i c e c o n t r a c t 标注接口 服务操作方法 使用 o p e r a t i o n c o n t r a c t 标注接口方法 实现类 类 使用 s e r v i c e b e h a v i o r 标注类,它由服务契约接口派生。 实现方法方法 使用 o p e r a t i o n b e h a v i o r 数据契约类 使用 d a t a c o n t r a c t 标注类, d a t a m e m b e r 标注成员 由于同样的服务可以用不同的端点来展示,w c f 中的服务调用具有很好的可扩展性。同时由于 使用元数据作为面向服务实体与面向对象实体之间的关联,服务信息的描述更加丰富。 但是,w c f 并没有为自定义的服务接口元数据提供更多的支持,使用w c f 仍然难以准确描述 领域服务的特征。 ( 二) j b i 模型 。 j b i 是由容器和插件( p l u g i n ) 组成的可插入式架构。这个容器托管使用消息路由进行通信的 插件组件。架构上,组件通过一个抽象的服务模型( 一个消息传递模型,位于任何特殊协议或消息 编码之上的抽象层中) 进行交互。 在基于j b i 的实现中,服务之间并不直接交互。取而代之的是,采用类似e a i 实现中广泛应用 的消息代理架构,j b i 容器扮演在服务之间路由消息的通用中介,如图2 - 2 : 圃回囤 s e n a o 。 决定服务 领域特征是独立于服务的存在。虽然领域模型或是软件模型都可以用服务来组成,但是服务仅 仅是领域特征的载体。一个服务可以有多个领域特征,一个领域特征也可以加诸于多个服务至 上。领域特征是在分析应用领域的基础上建立的,是在领域服务或领域服务流程设计之前产生 的。而领域服务或服务流程的设计是面向领域应用的,是随领域应用需求变化而变化的。这就 要求领域服务的设计必须在领域特征所能表达的范围内。领域特征不会随服务的变化而变化, 也不会因为没有使用它的领域服务而消失。 领域特征是描述性的,并不包含任何处理逻辑。领域特征只是对领域概念的抽象,只表达了“是 什么”的概念,至于“怎么做”是服务应该处理的问题。对于相同的领域特征,不同的领域应 用需要不同的处理方式,这就需要设计不同的领域服务或流程来实现。而高层应用领域使用低 层或相邻应用领域所提供的服务之前必须了解、引用相关的领域特征,来了解服务所提供的功 能与限制。领域特征的描述是多种多样的,每一种领域特征都需要定义它的描述方式。由于领 域特征不包含处理逻辑,它的定义为处理领域特征的应用提供解析方式。 领域特征贯穿领域服务的整个生命周期。领域特征不仅存在于领域服务或服务流程的设计工作 中,发布、查找过程也需要领域特征描述,甚至在运行时也需要领域特征的帮助。这样的设计、 运行方式可以最大程度地保持领域特征,使整个开发、使用过程在领域知识的控制之下。 3 2 2 领域特征分析 3 2 2 1 领域特征关系 如同面向对象设计模型存在各种对象关系,领域特征也不是孤立存在的。不同的领域特征之间 往往存在各种关系。领域特征之间的关系也是领域模型的重要组成部分,相互关联的领域特征表达 了各种领域概念。 一独立式的特征 这种特征比较特殊,往往是应用领域边缘知识的体现。这类特征与领域内的其它特征关系比较 疏远,却往往在其它应用领域内有一个完整的关系网络。这种特征往往是应用领域与其它领域之间 的接口,具有非固定的取值范围,并且在本应用领域内缺少较为明确的处理方式,往往作为提供辅 助信息的手段,一般不用于服务集成与运行时,而是用于服务设计、查找时。这类特征往往简单地 表达“有什么特征”这样的概念。由于这些特征并没有在本应用领域内形成完整的体系结构,它们 所表达的内容往往是不精确的。 以网络教学领域为例,如果我们对某种教学服务有一些特殊的要求,就可能要使用独立式领域 特征。比如要求授课者必须是江苏的教授,如果说授课者的职称还可以归结为网络教学领域的特征 的话,地域性的要求明显不是网络教学领域的概念。为了提供这样的服务,我们只能把授课者个人 信息作为领域特征,而不区分其中的具体内容。这种方式并不能表现领域的特色,只能是简单的信 息查找、匹配。由于地域信息不在网络教学领域的考虑范围内,我们没有办法使具有“南京”特点 的授课者满足“江苏”的需求。因此,独立式的特征只能在领域模型中提供简单的辅助信息,这甚 至使它失去了成为领域特征的资格,只能是普通的特征。 二、依赖式领域特征关系 依赖式领域特征集往往用来表达这样的领域概念关系:某个领域特征必需在另一个或多个领域 特征取特定值存在的情况下才有意义。依赖特征是被依赖特征的更详细的说明。这类特征集一般自 成一个封闭的整体,所以也可以把它们设计成为一个更复杂的领域特征。这种特征关系简单明确, 能够表示大部分的领域概念。 将若干领域特征设计成为依赖关系而不是使用一个复杂的领域特征的好处是可以方便地扩展其 中的某个依赖特征而不影响整个领域特征体系的构成,没有使用这个依赖特征的领域服务或领域应 1 5 东南大学硕士学位论文 用无需改变自身的逻辑,减少领域模型的维护代价。 被依赖领域特征由于必需明确表达某种条件的存在与否,它的取值必须包含枚举的类型,领域 特征的类型参见3 2 2 小节。但这并不意味着被依赖特征只能包含决定一个依赖特征的枚举信息, 它可以是多个领域特征的依赖对象,也可以与其它特征一起共同为某一个领域特征所依赖。仍然以 网络教学应用为例,我们使用各种讲解方式来讲授一个知识点,所以抽象出一个“讲解方法”的领 域特征,它的取值有“介绍”、“推理”、“例证”,而例证又分为正例与反例2 种,于是抽象出依赖特 征“用例”,取值有“正例”与“反例”。同样,我们可以把推理分为归纳与演绎。这时,推理方法 特征依赖于讲解方法取值为推理。我们还可以设计一个依赖于例证与另一个领域特征“内容来源” 取值“资料”的特征“比较方向”,分为“横向比较”与“纵向比较”,因为实验性的例证无须关注 比较方向问题。它们的结构见图3 2 : _ 讲解方 图3 2 讲解方法特征关系 在图3 - 2 中,不同的讲解方法对应不同的领域特征,每一个讲解方法可以对应零到任意多个领 域特征。在设计讲解方法的时候,我们不必过多地考虑细节问题,用例特征和比较方向特征都可以 在扩展领域模型的时候加入,不使用具体例证方法的应用也无须关注这两个特征,这是把它们设计 为单一复杂结构的特征所不具备的优势。 三、萌导式领域特征关系 领域中有很多领域特征是由其它的领域特征到出的,这类特征可以归纳为引导式领域特征。引 导式的领域特征的取值完全依赖于其它领域特征的取值。这类特征往往是为不同的使用者提供不同 的特征表现方式。引导式领域特征的意义在于把领域内不同人员的视角所反映的内容统一起来,使 本质上同样的概念有多样化的表现形式,减少对同一个概念理解上的偏差。 引导式领域特征是关系领域特征描述的一种方法,是先于领域服务与领域应用存在的,这就为 领域服务与流程的设计减少了计算与类型转换的工作。但是,大量的引导式特征会使领域模型复杂 化,也加大了使用时的困难,过少的引导式特征又不能完全满足应用的需要,留下大量的数据处理 工作给领域服务或流程。因此选择合适的引导式领域征十分重要。 引导式领域特征关系也有很多种类: 相互引导式特征关系。这类特征自身都能完整地表达同一个领域概念,只是表现形式有所不同 而已,任何一个特征都可以导出其它特征。如图3 3 : 图3 3 相互引导式特征关系图3 - 4 单向引导式特征关系图3 5 多元引导式特征关系 1 6 第三章面向领域服务描述与集成 单向引导式特征关系。这类特征类似于数据库中视图的概念,它们根据已有的一个或多个特征 决定自己的取值,但不能根据自身的取值逆向决定其它的特征。单向引导式的特征可以隐藏特 征的各个细节问题减少不必要的分析处理过程。比如成绩是一个领域特征,而等级就可以是成 绩的导出特征。获得成绩就可以得出等级,而根据等级并不能推导出成绩。如图3 _ 4 : 多元引导式特征关系。有这样的一些特征,它们中的任何一个都可以被其它的若干个特征导出。 它们的关系类似于一个不满秩的矩阵,并且没有哪一个特征是必不可少的。只要有足够的特征 就可以描述剩余的所有特征。一个简单的例子是对于长方体可以使用长、宽、高与体积4 个特 征中的任意3 个来决定最后一个特征。矩阵引导式特征关系可以使从不同角度对同一个事物的 描述在领域模型中达成一致,减少概念不匹配的情况。如图3 5 : 3 2 2 2 领域特征类型 根据领域特征的不同含义,领域特征的类型也是多种多样的。不同类型的领域特征表达不同类 型的概念,与其它领域特征的关系也不尽相同。领域特征由特征名与特征值组成。特征可以用x m l 来表示。首先需要定义t r a i t 元素以及它的f l a m e 属性。一个领域特征应该有如下的x m l 描述结构: 内容 根据特征内容的不同,可以把特征划分为不同的类型: 一标记式领域特征 这是最简单的领域特征类型,特征名本身已包含足够的信息来描述一个领域概念,并不需要任 何特征值来做进一步说明。这类领域特征的作 用主要是标记一个满足了特定条件的服务或流 程。这类特征往往具有很广的应用范围和较小 的使用几率,因为如果应用范围很窄并且这个 范围内有很多服务关注这个特征就应当设计一 个只包含“存在”与“不存在”的枚举类型来 完成同样的工作,这样可以更容易地制定特征 的处理逻辑。使用标记式领域特征可以使用简 短的描述内容表达尽可能多的含义,而忽略不 常用的特征标记,突出重点特征的描述。如图 3 6 : 领域服务 特征 特征 特征 特征o 特征q 标记特征 图3 6 标记式领域特征 标记式领域特征没有特征值,也可以认为它只能取一个固定的值,可以对应为c 语言中的v o i d 或c a m l 语言中的u n i t 类型。 标记式领域特征的定义可以用x m l 表示为: 标记式领域特征可以表示为: 二枚举式领域特征 枚举式领域特征的特征值只能在有限的集合中选取。枚举( e n u m ) 中的枚举值( t o k e n ) 本身 具有标记的作用,表示满足一个互斥条件集中的一个条件。在这个意义上枚举的作用与c 什中的枚 举类似。枚举式领域特征还可以包含与枚举值相关的数据,不同的枚举值可以对应不同的数据。这 种结构可以用来将具有依赖关系的领域特征集表示为单一的领域特征。比如图3 3 的例子可以表示 为一个复杂的枚举式领域特征,介绍、推理、例证的类型可以分别为u n i t 、枚举“推理方法”、一个 包含枚举“用例”与枚举“比较方向”的结构体。在这一点上,枚举也类似于卅中的联合。 枚举式领域特征是领域特征依赖关系的基础,简化了各种条件判断逻辑。另一方面枚举是一种 开放的类型,可以在以后不断添加新的枚举值来完善它的功能。 枚举式领域特征的定义可以用x m l 表示为: 1 7 东南大学硕士学位论文 类型1 类型2 其中,类型一般为 ,表示这只是一个标记。同样,我们可以赋予t o k e n 其它类型,可以是另一个枚 举、数字或是任何特征可以具有的类型。 枚举式领域特征可以表示为: t o k e nn a m e 或者 t o k e nn a m e = 其它类型的值 在第2 种定义中,其它类型指的是定义t o k e nn a m e 时所指定的类型,如果不是u n i t 的话。 三、信息式领域特征 信息式领域特征包含一个特定类型的数据,不同类型的数据可以由不同类型的操作。信息式领 域特征并不包含一个明确的条件判断,但它有更具体的信息可以供条件判断所使用。数据的操作并 不是领域意义上的处理逻辑,而是与类型相关的低层的处理方法。一方面为了减少领域特征所包含 的程序设计相关知识,类型上的操作必须足够简单,另一方面类型所提供的操作必须满足引导式领 域特征关系定义的需要。 信息式领域特征相对于枚举式领域特征的优势在于它更加丰富的表达能力以及必要的相关操 作。绝大多数的引导式领域特征都需要使用信息式领域特征,并以其操作作为导出其它特征的手段。 信息式领域特征有如下2 个主要类型: 1 文字型特征。这类特征使用见单的文本来描述某种信息,主要用于特征信息描述与特征的匹配 具有很少的操作方法。 2 数据型特征。这类特征使用可计算的数据来存储特征信息,主要用于定义引导式领域特征关系, 有大量的操作方法。 除此之外信息式领域特征还可以是自定义的类型,只要这个类型有简单的文本表现方式 枚举式领域特征的定义可以用x m l 表示为: 类型的定义是领域模型建立过程总的必要步骤,使用自定义的类型可以使领域特征更好地表达 领域概念。 枚举式领域特征可以表示为; 特征值的文本形式 西、集合式领域特征 很多情况下一个领域特征需要通过多方面的描述来表达一个领域概念。如果需要描述的内容的 数量与含义十分确定,可以把它组合成为一个结构式的领域特征,如果事前并不能完全了解描述内 容的各个方面,可以使用集合式的领域特征来定义。集合式的领域特征中所包含的内容都是自解释 的,在定义领域特征时并不能完全了解它们的含义。集合式领域特征一般包含独立式的领域特征集, 这些领域特征往往是标记式或信息式特征。集合式特征为标记式领域特征提供了广阔的应用空间, 标记式领域特征使集合式特征更能突出重点表达能力。 集合式领域特征也可以包含某种类型的特征序列以反映,比如一个讲解方法特征可以包含一系 列的特征值描述它所使用的一系列的文档。这种集合式特征的内容由于具有确定的类型,往往具有 和信息式特征相近的使用场合。 集合式领域特征的定义可以用x m l 表示为: t r a i t d e f n a m e r ”特征名冬 1 8 第三章面向领域服务描述与集成 类型要求 其中类型要求是对所包含的特征进一步的说明,一般包含标记特征的集合式特征可以忽略类型 要求。 集合式领域特征可以表示为: 特征值1 特征值2 五、结构式领域特征 如果一个特征可以使用明确的、有限数量的其它特征类型来表达的话,最好不要为它单独设计 一个包含各种操作的自定义类型,而是将它设计为一个结构式领域特征。结构式领域特征是领域特 征的自然组合,它们的组合逻辑是符合领域逻辑的,它们的操作与处理也应该尽可少地涉及程序设 计的范畴。 结构式领域特征包含命名的成员特征类型,不周的成员可以有不同的类型,但两个同类型结构 式领域特征应该具有相同的结构。 结构式领域特征的定义可以用x m l 表示为: 成员类型名称或定义l m e m b e r u a m o f f i = 成员名2 冬成员类型名称或定义2 其中成员类型定义可以是一个e n u m 元素、c o l l e c t i o n 元素、t y p e 元素或s t r u c t 元素 结构式领域特征可以表示为: 特征值1 特征值2 3 3 领域服务描述 3 3 1 领域服务概述 领域特征的定义反映了领域中的重要概念,这些概念的定义只是对领域知识的归纳与抽象,并 没有提供解决领域实际问题的方法。也就是说领域特征仅仅是领域概念的一个静态的反映,并不能 反映领域事务或应用这样具有动态特征的概念。 领域服务是用来解决领域事务与应用的基本功能块。如果说领域特征是领域概念的体现,领域 服务就是领域逻辑的体现。在本文中,领域服务是在根据领域特征模型分析领域应用之后的产物, 虽然不同的领域应用可以共享相同的领域服务,领域服务的设计还是根据一个具体的领域应用生成 的。领域服务模型的建立是在领域特征模型之上,根据实际应用的不同创建或引用一系列的服务而 1 9 东南大学碗学位论文 构成的,如图3 7 图3 7 应用领域与特征模型 领域服务使用领域特征来表达其领域含义,每一种服务都包古相同类型的领域特征,同种服务 在领域服务模型中具有相同的地位及调用方式。为了使不同的领域应用所建立的服务具有统一的表 现形式服务的类型是在领域应用之间麸享的。服务类型的定义介于特征模型与服务模型之间。定 义了服务类型之后,服务在领域模型中的地位也就确立f 来,不管什么应用都不会对服务所表达的 领域含义产生歧义。 相对于软件模型中的服务,壤域服务包含了领域相关的含义,并且简化了服务调用的接口信息n 相对来说领域服务县有以r 的特征: 1 领域服务是领域意义上的功能块它可能需要多个软件服务来实现也可能多个领域服务使 用同一个软件服务来实现。 2 领域服务具有多样化的调用与实现形式,调用方式在定义顿域服务类型的时候度确立。同一 类服务具有相同的谓用方式,服务接口细节问题的处理交由实现领域模型的相关平台来处理。具体 处理方式参见第4 章领域服务模型。 3 领域服务以领域特征作为服务查找与调片j 接口的主要信息,它不同与w e b 服务使用u d d i 与w s d l 分别定义服务查找与调用接口两方面的内容领域特征的存在能够全方位地描述服务的具 体信息。 4 领域服务贯穿于领域应用程序设计的各个阶段。领域服务不仅是构建领域应用程序或流程的 素材,也可以作为服务与流程开发、服务发布与查找的支撑服务。 5 领域服务只有在领域模型中才有意义一旦失去了领域模型的支持包括特征与服务类型的 定义,领域服务不能发挥任何作用。因此领域服务只有不像w e b 服务那样可以在任何环境中被使 用,领域服务只有在特定的领域环境中才能成为一个完整的服务。 第三章面向领域服务描述与集成 3 3 2 领域服务设计 领域服务与w e b 服务不同,不同类型的领域服务具有不同的表现形式。因此,在设计领域服务 之前必须定义领域服务类型。服务类型的设计应当遵循自项向下的设计方法,首先确定“大块”的 服务。这类服务具有明确的领域含义,很容易指出它们应当包含怎样的领域特征。然后将服务逐步 分解,直到成为具有领域含义的最小功能块。一旦一个服务不能继续划分下去,说明这个服务包含 了领域最基本的行为逻辑,我们称之为“元服务”。 元服务的确立表示领域服务模型框架的完成, 是领域专家知识的集中体现。尽管元服务包含明确的领域含义,元服务类型的定义需要很多的程序 设计知识。因为元服务的实现方式决定了其它服务可能的实现方式。服务的实现参见第四章。 元服务的设计需要遵循以下原则: 1 具有明确的领域含义 2 不能划分为更小的元服务 3 元服务的特征对服务的实现具有指导意义 4 具有相似领域逻辑的元服务应当设计为一个服务类型,并能够通过领域特征明确地反映出它 们之间的区别 5 应当尽可能地独立于具体的领域应用,以方便服务的复用。 以上几点中第5 点需要在可复用性与简洁性之间做出权衡,通用的服务必然相对复杂,不利于 服务的设计与应用。 设计元服务类型之后需要设计其它高层的服务。这些服务的设计应尽可能地利用元服务的领域 特征,使用领域中的概念将它们组合在一起。 领域服务的设计包括服务类型定义与服务模型建立两个部分,这是一个相互交织的过程。从功 能上来看,领域服务的设计是由领域应用引导的,是针对某一特定服务而设计的,这就要求先确定 领域服务的功能,即它所描述的内容,然后确定它的形式即服务类型的定义。但是从服务的使用角 度来看,首先要了解服务的类型是什么,然后对服务的领域含义即领域特征做出要求。所以领域服 务模型的设计是一个不断修改、完善的过程,过早地确定领域服务模型可能会给后续的领域应用带 来困难。 3 3 3 领域服务结构 领域服务不同于其它s o a 技术中的服务,它的调用信息不能表现它全部的领域特征。要确定领 域服务的功能、接口等描述信息领域服务必须包含其它服务没有的描述内容。 首先领域服务需要描述它所在的应用领域。相近的应用领域可能会使用同样的服务发布、查找 平台,所以首先要确定服务所在的应用领域,必要情况下可以使用子领域来描述。比如一个“讲解” 服务处于网络应用领域下的网络教学子领域中。 其次应该提供领域服务的类型信息。服务的类型信息决定了服务的功能以及调用方式以及运行 方式等。 服务的类型决
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 澳大利亚图文课件
- 知识产权培训实施情况课件
- 知识产权培训基地建设课件
- 2025年数字人设计面试题集
- 知识产权培训入高校课件
- 钢筋识图基础知识培训课件
- 知识产权培训会议纪要课件
- 漏电保护器安全知识培训课件
- 2025年安全生产安全文化建设面试题及答案
- 2025年安全员安全知识试题
- 从2025年河南中考语文试卷中分析阅读理解如何提分
- 《智能建筑供配电与照明》课件(上)
- 公共打印区域管理办法
- 2025至2030中国电子束灭菌服务行业项目调研及市场前景预测评估报告
- 模锻工艺培训课件
- 土石方工程计量计价课件
- 血液透析导管感染
- 第27课 中国特色社会主义的开创与发展 课件 中外历史纲要(上)
- 静脉溶栓病例汇报
- 国家电投集团招聘考试试题及答案
- 2025届黑龙江省龙东地区数学八下期末学业质量监测试题含解析
评论
0/150
提交评论