




已阅读5页,还剩46页未读, 继续免费阅读
(计算机应用技术专业论文)mda在科学工作流建模中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着工作流的不断发展,出现了多种工作流语言和服务编排语言,而每一种 服务编排引擎只执行一种语言,缺乏可移植性。因此,在实现科学研究的流程化 和自动化的同时,如何高效地利用分布式环境中的w e b 服务资源,实现科学工 作流的可移植性是科学工作流建模研究中的重要问题。 本文采用模型驱动方法进行科学工作流建模研究。此方法既可以应用于w e b 服务组合,在u m l 模型中对w e b 服务进行描述,将多个w e b 服务进行编排。 又可以使科学工作流的模型建立独立于具体的技术平台,创建流程模型,不考虑 具体平台技术的p i m ( 平台无关模型) ,直接通过模型转换技术生成平台相关模 型p s m 。通过m d a 方法对科学工作流进行开发不但可以解决w e b 服务的编排 问题,还提高了科学工作流的可重用性。本文主要对科学工作流的m d a 开发流 程进行研究,首先采用p i m 平台无关模型建模,使用u m l 活动图描述工作流程; 然后,选取b p e l 为p s m 平台相关模型的建模语言,设置模型转换规则,即u m l 到b p e l 的映射规则,生成b p e l 工作流程。最后,通过计算化学领域中的一个 典型示范应用验证了应用m d a 开发科学工作流程的可用性和所生成工作流脚本 的可执行性。 关键词:科学工作流、m d a 、u m l 、b p e l a b s t r a c t t h e r ea r ev a r i o u sw o r k f l o wl a n g u a g e sa n do r c h e s t r a t i o nl a n g u a g e s ,a se a c hl a n g u a g e w a so n l yi m p l e m e n t e do ni t so w n e n # n e ,a l lw h i c ha r el a c ko fp o r t a b i l i t y t h e r e f o r e , h o wt ou t i l i z ew e bs e r v i c e so nd i s t r i b u t e de n v i r o n m e n tw i t ht h es c i e n t i f i cr e s e a r c ho n a u t o m a t i cp r o c e s si st h ek e yp o i n ti ns w fm o d e l i nt h i sp a p e r , t h ea u t h o rh a sd o n et h er e s e a r c ho ns w fm o d e lb a s e do nm d a ( m o d e l d r i v e na r c h i t e c t u r e ) o n t h eo n eh a n d ,i t a p p l i e s t ow e bs e r v i c e s d e v e l o p m e n t i nu m lm o d e l ,w ed e s c r i b et h ew e b s e r v i c e sa n do r c h e s t r a t et h e m o n t h eo t h e rh a n d ,t h ea b s t r a c tl e v e lo fs w fm o d e ld e v e l o p m e n th a sb e e nr a i s e d , i n d e p e n d e n to ft e c h n o l o g ye n v i r o n m e n t f i r s t l y , w en e e dt oc r e a t et h ep r o c e s sm o d e l , t h ep i mw i t h o u tc o n s i d e r i n go fp l a t f o r m s e c o n d l yt h ep i mt r a n s f o r mi n t op s mw i t h m o d e lt r a n s f o r mr u l e i nt h i sw a y , r e s e a r c ho ns w td e v e l o p m e n tw i t hm d ac o u l d s o l v et h es e r v i c e so r c h e s t r a t i o na n di n c r e a s et h er e u s a b i l i t y i nt h i sp a p e rt h ea u t h o r h a sd o n et h er e s e a r c ho ns w fm o d e lb a s e do nm d a , t h em o d e lo fp i mu s i n gu m l a c t i v i t yd i a g r a m s ,t h em o d e lo ft h ep s mw i t hb p e la n dt h em a p p i n gr u l e sb e t w e e n u m la n db p e l f i n a l l y , w ev a l i d a t e dt h eu s a b i l i t yo fm d ao ns w fa n d p e r f o r m a b i l i t yo fw o r k f l o ws c r i p tv i aat y p i c a le x a m p l ei nt h ef i e l do fc o m p u t a t i o n a l c h e m i s t r y k e yw o r d s :s c i e n t i f i cw o r k f l o w , m d a , u m l , b p e l 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下 独立进行研究所取得的成果。学位论文中凡引用他人已经发表或 未发表的成果、数据、观点等,均己明确注明出处。除文中已经 注明引用的内容外,不包含任何其他个人或集体已经发表或撰写 过的科研成果。对本文的研究成果做出重要贡献的个人和集体, 均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:叠燃日 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产 权归属兰州大学。本人完全了解兰州大学有关保存、使用学位论 文的规定,同意学校保存或向国家有关部门或机构送交论文的纸 质版和电子版,允许论文被查阅和借阅;本人授权兰州大学可以 将本学位论文的全部或部分内容编入有关数据库进行检索,可以 采用任何复制手段保存和汇编本学位论文。本人离校后发表、使 用学位论文或与该论文直接相关的学术论文或成果时,第一署名 单位仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名:黼旃导师签名 日期: 武s 冯 j 第二章关键技术研究 1 1 研究背景 第一章绪论 工作流的概念源于生产和办公时过程的概念,在工业化过程中由一系列的工 作步骤有效组成的产品制作过程成为最初的工作流程【1 】。随着1 9 9 3 年8 月第一 个工作流技术标准化的工业组织二工作流管理联盟( w o r k f l o wm a n a g e m e n t c o a l i t i o n ,w f m c 2 ,3 】) 的成立,工作流技术的研究与开发进入了一个新的热潮。 随着工作流技术已被越来越多的人认可,出现了众多与之相关的学术研究组织、 标准规范、工作流引擎以及商业产品。在工作流技术被业界广泛应用发展的同时, 其技术和应用研究也引起了科研学者的极大重视。 近年来,随着工作流技术的不断发展,科学家和领域工程师越来越多地借助 工作流技术来管理和处理大量的数据集,在科学领域中利用工作流的自动化和流 程化等特点来表示和管理复杂分布式科学计算【4 】。科学工作流可以利用分布式 资源和数据创建动态应用,也可以通过集成多个科研团队实验工作流中的不同部 分来提高组织和协作能力。科学工作流正处于研究高峰,学术界组织和召开了众 多的专题会议【5 ,6 ,7 ,8 ,9 ,1 0 ,1 1 】,众多科研组织也对科学工作流的发展做出了重大 贡献 1 2 ,1 3 。 为了在科学工作流中更加充分地利用共享的w e b 服务,面向编排和协调 w e b 服务的服务协作逐渐引起研究者的重视 1 4 ,1 5 ,1 6 。科学工作流的建模中如 何通过w e b 服务使科学工作流对分布式资源加以充分利用,成为目前工作流技 术研究领域的热点问题。同时,我们在计算化学e - s c i e n c e 研究与示范应用的项 目中通过科学工作流进行建模实现编排w e b 服务的科学工作流程,也需要对科 学工作流的建模进行相关研究工作。工作流需要编排复杂的w e b 服务,对服务 进行人工编排不但费力而且容易出错。因此,出现了多种工作流语言和服务编排 语言用于解决这类问题,如b p e l 1 7 、w s c i 【1 8 】和b p m l 1 9 ,但每一种引擎 只执行一种语言,缺乏可移植性,使得开发者难于选择服务编排语言和引擎。为 了减少科学工作流中服务编排的复杂性,并使得模型独立于工作流语言及服务编 排语言,我们使用模型驱动开发的方法进行科学工作流的建模。根据m d a 的 第二章关键技术研究 思想,在w e b 服务模型的转换中,使用动态行为的平台无关模型p i m 来定义 工作流流程,并将p i m 转换成平台相关模型p s m 。 1 2 国内外研究现状 工作流建模技术的研究受到越来越多的关注,研究人员提出了多种方法用于 工作流的建模。目前主要有活动网络图【2 川、基于p e t r in i 拘 2 1 、对话型【2 2 】、 基于状态和活动图【2 3 】、基于事务模型【2 4 】和图形化建模方法【2 5 】等。而科学工作 流项目也采用不同的工作流语言在各自的分布式环境中不断进行研究与探索。 目前,科学工作流的研究也在不断探索中,对科学工作流模型进行了分类与 研究,工作流模型设计决定了工作流组件定义和组成的方式【2 6 】。在工作流建模 中,主要包括工作流结构、工作流模型规范、工作流组成系统三个方面。工作 流结构表示任务之间的时间依赖关系,它一般可分为有向非循环 ( d i r e c t e d a c y c l i cg r a p h ,d a g ) 或者有向循环图( n o n - d a g ) 。 一般地,科学家可以使用工作流语言,比如s c u f f ( s i m p l ec o n c e p t u a lu n i f i e d h o wl a n g u a g e ) 、b p e l ( b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e ) 作为基于语言的 建模方式进行w e b 服务编排;另外,也可以使用基于图形的建模方式来组装工 作流。相比基于语言的建模方式,图形表示更加直观,能够支持普通科学家使用。 工作流语言更有利于存储和传输,然而,最终执行时,图形化表示需要转化为工 作流描述语言支持的语言形式,才能被工作流引擎执行。 目前主要的科学工作流项目及其采用的工作流语言有: t a v e m a t a v e r n a 是e s c i e n c e 项目m y g r i d 2 7 的组件之一,是一个开源的支持生物信 息学虚拟实验研究的工作流工具,支持生物学家以结构化的、可重复的、可验证 的方式来描述和执行它们的实验过程。其主要特色是网状的工作流,基本的容错 处理和p r o c e s s o r 的半自动选择。另外,t a v e r n a 项目组提供了工作流语言s i m p l e c o n c e p t u a lu n i f i e dh o wl a n g u a g e ( s c u f f ) 和图形化界面两种方式用于工作流的创 建,图形化方式为方便科学家使用,而s c u f f 语言以编排w e b 服务为目的【2 8 1 , 作为整个工作流系统的中间处理和交换的语言。为实现w e b 服务编排,在s c u f f 中定义多个包含用户信息的w e b 服务作为工作流的参与者p r o c e s s o r s 2 9 】。s c u f f 2 第二章关键技术研究 工作流语言由f r e e f l u o 引擎支持运行。 d i s c o v e r y n e t d i s c o v e r y n e t 是英国e p s r c 资助的另一个项目,是建立在u n i f o r mi n t e r f a c e t oc o m p u t i n gr e s o u r c e s ( u n i c o r e ) 【3 0 m 格系统之上的一个软件集合,用于管 理数据库的存取和知识发现的过程。d i s c o v e r y n e t 提出了一种新的用于知识发现 流程管理的标准规范语言d p m l ( d i s c o v e r yp r o c e s sm a r k u pl a n g u a g e ) ,该语言 的主要目标是操作和管理知识发现过程,以及记录过程的历史信息。通过d p m l 创建的工作流可以被封装为可运行的w e b 服务,并可以通过w e b 服务接口被其 他用户访问,以此实现工作流的可重用性【3 1 】。d p m l 的工作流程可以由 d i s c o v e r yn e t 的工作流执行引擎处理,其工作流引擎由a m b i t ( a c q u i r i n g m e d i c a la n db i o l o g i c a li n f o r m a t i o nf r o mt e x t ) 提供。 k e p l e r k e p l e r 是由s c i e n c ee n v i r o n m e n tf o re c o l o g i c a lk n o w l e d g e ( s e e k ) 3 2 】和 p t o l e m yi i 3 3 等多个项目组合作开发的一个项目,主要目标是开发一个开源的、 支持科学工作流设计、部署和执行的科学工作流系统。它是建立在开源的p t o l e m y 可视化建模系统之上的。k e p l e r 支持拖拽方式来创建和执行工作流,并且采用 以一种x m l 建模语言m o m l ( m o d e l i n gm a r k u pl a n g u a g e ) 语言作为工作流执 行语言。k e p l e r 使用面向a c t o r 的设计模式,将p t o l e m y l i 中的抽象a c t o r 作为一 个包装器,使得w e b 服务、g r i d 服务等都能作为应用程序中的一个组件【3 4 】。 这样,当科学家创建工作流时,只需要通过选择合适的组件( 也称为a c t o r ) ,然 后将他们放置在设计面板上进行服务编排。m o m l 的工作流程由k e p l e r 独立开 发的科学工作流引擎执行。 t r i a n a : t f i a n a 【3 5 是由英国c a r d i f f 大学所提供的一个开源的分布式问题解决环境, 能够支持信号、文本和图像处理以及重力波检测等科学问题的处理。t d a n a 的主 要目标是为网格应用程序创建j a v a 中间件。t r i a n a 使用x m l 语言来表示组件定 义和工作流。t r i a n a 可以对w e b 服务进行合成,允许用户发现、编排、调用和发 布原子或组合服务,然后在p 2 p 或者网格中间件中执行这些服务1 3 6 。t f i a n a 中 用户可以使用图形化界面编排复杂的w e b 服务,同时t r i a n a 允许用户共享服务 3 第二章关键技术研究 编排,如支持b p e l 的一个子集,并能将它的工作流导出到b p e l 中。在t r i a n a 中,循环和执行分支都由特定的组件来处理。t r i a n a 内部的工作流表示是基于对 象的,特定的j a v a 对象代表单个组件实例和所连接任务的层次,并采用有向循 环图表示工作流。t r i a n a 工作流使用独立开发的t r i a n a 引擎执行工作流程。 p e g a s u s p e g a s u s 【3 7 f l jn s f 美国国家科学研究基金会支持的网格项目g r i p h y n 支持, 主要应用于天文学、生物信息学和药物研究领域。p e g a s u s 完成复杂抽象的工作 流到网格环境中具体资源的映射,将创建好的w e b 服务提交给网格环境【3 8 】。使 用d a x ( d i r e c t e da c y c l i cg r a p hi nx m lf o r m a t ) 对抽象工作流进行描述,通过 d a x 可以映射生成j a v a 的a p i ,或任何类型的脚本语言等可执行格式。p e g a s u s 为用户提供p o r t a l 环境填写元数据属性,同时工作流系统在用户输入的基础上自 动化工作流程并将它映射为可执行格式后,d a g m a n 3 9 执行在这个可执行工作 流中指定的作业。工作流程使用d a g m a n 引擎执行工作流程。 a s k a l o n a s k a l o n 【4 0 】是由奥地利自然基金资助的a u r o r a 项目中的集群计算和网格 计算的一个编程环境。a s k a l o n 工作流系统利用网格计算的强大功能来简化科学 工作流的开发过程,优化科学应用流程。a s k a l o n 利用创新工具和服务支持面向 并行和分布式网格服务和w e b 服务的应用【4 1 】。a s k a l o n 系统设计支持任务级工 作流,运行环境将工作流描述映射到网格资源中,不仅对资源进行设置,将资源 供应到工作流运行中自动执行。a s k a l o n 支持图形化工作流应用,使用u m l 活 动图对工作流程进行建模和描述,然后映射为a g w l ( a b s t r a c tg r i dw o r k f l o w l a n g u a g e ) 【4 2 i 吾言后运行并保存。a g w l 是基于x m l 致力于描述科学网格应 用的工作流语言,可以定义包括计算任务和用户交互的一系列活动,支持用户通 过这些基础活动,如控制流、数据流等,来编排网格工作流应用,其工作流使用 独立开发的a s k a l o n 工作流执行引擎。 1 3 研究现状分析 工作流已经发展了若干年,相关产品也有很多,但其中绝大部分都是国外产 品,如i b m 的m q s e r i e sw o r k f l o w ,f l o w m a r k ,l o t u s 的d o m i n ow o r k f l o w ,a c t i o n 4 第二章关键技术研究 w o r k f l o w ,u l t i m u sw o r k f l o w 等,科学工作流研究项目有t a v e m a ,d i s c o v e r y n e t , k e p l e r ,t r i a n a 等。国内近几年也开始这方面的研究与开发,如基于网格平台的 科学工作流研究,其中有华中科技大学基于服务的网格工作流应用项目和上海大 学网格工作流资源调度研究项目等。科学工作流仍然处于探索性研究中,科学工 作流建模的进一步研究和实现对于国内科学工作流的发展具有十分重要的意义。 越来越多的开源软件系统都可以作为w e b 服务在分布式环境中使用,而w e b 服务由于它高度的灵活性、可重用性和可维护性,已经迅速被工业和学术界所认 可。大量w e b 服务资源在科学工作流使用,使得w e b 服务技术在科学工作流的 研究中变得更为重要。这样,科学工作流通过各种工作流语言对大量的w e b 服 务进行使用和编排。以上科学工作流项目,一般选取工作流建模方法是基于工作 流语言的,同时也有图形化工作流和工作流语言互相转换。上述各科学工作流项 目中均采用各自的工作流语言对分布式环境中的大量资源进行工作流编排。随着 工作流的不断发展和深入研究,多种工作流语言和服务编排语言同时存在,而每 一种服务编排引擎只执行一种语言,缺乏可移植性,使得开发者难于选择服务编 排语言和引擎。为了减少科学工作流中服务编排的复杂性,同时使模型独立于工 作流语言及服务编排语言,文中使用模型驱动开发的方法进行科学工作流建模。 文中拟采用模型驱动框架m d a ( m o d e ld r i v e na r c h i t e c t u r e ) 【4 3 】进行科学工 作流建模研究。一方面,它可以应用于w e b 服务开发,在u m l 模型中对w e b 服务进行描述,并将多个w e b 服务进行编排、整合【4 4 】。同时,m d a 使软件开 发的抽象层次提高到模型的高度,首先创建流程模型,p i m ( p l a t f o r mi n d e p e n d e n t m o d e l s ) 不考虑具体平台技术的平台无关模型,然后通过模型转换技术生成p s m ( p l a t f o r md e p e n d e n tm o d e s ) 平台相关模型,可以通过不同的模型转换规则将一 个p i m 转换成多个不同的p s m 。这样,通过m d a 方法对科学工作流进行开发 不但可以解决w e b 服务的编排问题,还建立独立于工作流语言的流程模型,使 建模从重复性开发中解脱出来,提高的科学工作流模型的可重用性。 1 4 本文的主要工作和论文结构 本文研究的主要方向是采用模型驱动的方法进行科学工作流建模的设计与 实现。主要工作分为平台无关模型、模型转换、平台相关模型,并通过科学工作 5 第二章关键技术研究 流的具体实验对工作流建模方法进行实验。 本人工作的主要内容包括: 1 介绍了工作流及科学工作流的发展,对已有的科学工作流建模方式进行 研究和分析,并提出选取模型驱动框架进行科学工作流程的建模。 2 阐述了应用m d d 开发的基本思想,研究了m d a 关键技术,详细分析 了其开发生命周期,阐述了该方法在实现工作流建模的意义,并且研究了文中使 用的模型转换框架m t f 。 3 p i m 和p s m 模型研究,选取u m l 为建模语言,采用u m l 活动图对科 学工作流进行流程描述,并对工作流程实现所需要的模型的基本元素、扩展方法 ( 通过p r o f i l e 实现对u m l 模型的定制) 和模型设计,实现平台无关模型p i m 。 选取b p e l 作为平台相关模型,对流程描述所需的基本元素进行研究,并建立平 台无关模型和平台相关模型间的映射规则,阐述了使用m t f 进行p i m 到p s m 的模型映射中模型转换的详细规则,实现p i m 到p s m 的转换,生成p s m 模型。 4 给出科学工作流的模型驱动开发的实现细节,并结合计算化学中分子优 化计算的应用实例,分析了应用目标进行模块设计,详细说明了整个流程开发的 过程,证明了m d a 方法对于科学工作流的开发和应用的可行性。 本文包括六个章节,各章的内容组织如下: 第一章:绪论。分析了课题的研究现状,说明采用模型驱动方法对科学工作 流进行建模的原因。 第二章:模型驱动开发技术研究。介绍模型驱动开发和模型驱动框架的基本 概念,对模型驱动框架的开发生命周期和模型转换这一关键步骤进行研究。 第三章:分析和研究p i m ( 平台无关模型) ,即u m l 建模及其扩展机制与作 为科学工作流流程描述的u m l 活动图。 第四章:分析和研究p s m ( 平台相关模型) b p e l 的建模机制和基本元素,并 对文中使用的p i m p s m 的模型转换框架进行进一步研究。 第五章:采用m d a 方法实现科学工作流的计算化学工作流的实验流程,从 p i m 定义到模型转换规则定义,生成p s m ,即b p e l 工作流程的详细描述。 第六章:结论与展望。总结了研究和开发工作,对现有工作的不足之处提出 改进,展望了系统下一阶段的发展方向,为后续工作奠定了基础。 6 第二章关键技术研究 第二章关键技术研究 2 1 模型驱动开发m d d 模型驱动开发( m o d e ld r i v e nd e v e l o p m e n t ,m d d ) 的方法是以创建软件模型 为中心而非传统的以程序代码为中心的软件开发方法【4 5 】,将整个软件开发过程 用模型来统一表示,消除开发过程中各种参与者之间的隔阂,并使用u m l 对模 型进行了标准化定义。如图2 - 1 所示,模型驱动开发方法具有五个关键要素:全 功能代码产生、模型可执行、模型代码关联、基于模型的自动化测试和实时框架。 图2 - 1 模型驱动开发方法简图 全功能代码产生是指由模型产生的代码是产品质量级的代码 ( p r o d u c t i o n q u a l i t yc o d o ,能够直接应用于最终的目标环境。基于模型的执行和 自动化测试实现了将系统测试提高到设计层面( 模型层) ,因此在系统设计开发 的初期就可以发现缺陷并进行及时改进,从而减少开发成本;模型代码关联表示 两者保持实时的一致性,当模型发生改变时代码也随之改变,保证二者具有一致 的语义。实时框架提供了一组用以解决实时领域内公共问题的通用策略,这些策 略可以被重用、定制、裁剪、特化甚至被替换,能够为映射到不同目标环境的全 功能代码的产生、模型的可执行、模型的自动化测试、模型与代码的关联等提供 支持【4 6 】。 7 第二章关键技术研究 2 2 模型驱动框架( m d a ) 对象管理组织( o m g ) 提出了模型驱动构架( m d a ) ,它的关键之处在于 将系统的模型作为软件开发过程的核心部分,工作流的开发过程是通过对工作流 的建模行为驱动。m d a 作为一项前沿技术,还存在许多有待进一步解决的问题, o m g 依然在努力改进和完善它。 m d a 是o m g 提出的新的方法学,是一种基于u m l 、m o f 、x m i 和c w m 以及o m g 自己的c o r b a 工业标准的框架【4 7 】。它改变了传统的以代码为中心 的软件开发模式。使用建模语言来代替编程语言进行软件开发,使用模型转换技 术生产出代码。m d a 试图使系统开发标准化,目标是建立一套完整的标准,用 这个标准建立与实现无关的、可映射于任何平台的模型,支持软件设计和模型的 可视化,以标准化的方式存储机器可读和高度抽象的模型,并进行数据交换等操 作。简言之,m d a 将系统的功能描述和系统在特定平台上的实现分离开来,通 过模型描述系统的功能、结构和行为。 2 2 1m d a 的模型 m d a 使软件开发的抽象层次提高到模型的高度,模型是软件开发过程中关 注的焦点,软件开发是由对软件系统的建模行为驱动的,其开发工具是形式化的 模型,也是可以被计算机理解的模型。 模型是对系统的一部分结构、功能或行为的正式规约【4 8 】。模型是一种系统 规约,它可以对结构进行规约,也可以对系统功能或者系统行为进行规约;同时, 这种规约必须使用一种严格定义且没有歧义的语言来定义,它必须是正式的。所 以模型是通过一种完整、严格定义了语法和语义的建模语言来表达的。以下是控 制m d a 中使用模型的基本因素:模型帮助人们表达和交流复杂的思想;根据环 境许多不同种类的元素能够被模型化并提供了符合实际的不同的视图;不论是分 析的问题还是具体方案中,模型的所有级别上都存在公用性;应用不同类型模型 的思想和模型表示法之间转换提供了一种良好的开发、重用和公用方法的方式; o m g 提供了一个概念性的框架和一系列表示模型、模型关系和模型间转换的标 准。模型驱动框架中的模型开发都需满足上述要求。 8 第二章关键技术研究 以下是m d a 中的主要几类模型: 平台无关模型( p l a t f o r mi n d e p e n d e n tm o d e l ,p i m ) 。p i m 开始描述信息系统的 架构,开始处理一些普遍的技术问题( 如事务) ,涉及到了系统的类、关系等等。 但是这些都是基于一个具有高抽象层次、独立于任何实现技术的前提之上。这种 设定使得p i m 可以被映射到一个或多个特定的技术平台,具有通用性。 平台相关模型( p l a t f o r ms p e c i f i cm o d e l ,p s m ) 。p s m 是p i m 转换的结果, 它是为某种特定的实现技术平台设置的,在p s m 中定义了某种技术平台下可用 的实现来描述系统。例如,b p e l 的p s m 是用b p e l 语言表述的工作流模型。 它通常会包含b p e l 特有的元素,如“r e c e i v e 、“r e p l y 、“i n v o k e ”等等。关系数 据库p s m 则包含“表、“列、“外键”等术语。 代码模型。m d a 最初的构想中,代码是由p s m 模型在代码生成器中的转换 而自动生成的,而实际上代码也可以被看作是一个p s m 模型。这样在平台的转 换中,也可以把p i m 直接映射为代码模型。这么做的好处是减少了转换的次数, 降低了模型管理的复杂性。 2 2 2m d a 的开发生命周期 根据o m g 的标准,可以把m d a 严格划分为四个阶段:业务的需求分析、 平台无关模型( p i m ) 、平台相关模型( p s m ) 和代码四个阶段。m d a 的整个开 发过程就是对实际问题进行建模,并转换模型,直至生成可执行代码的过程 4 9 1 。 m d a 开发过程的主要步骤如图2 2 所示。 9 第二章关键技术研究 i ,。一需求务析,。 j i 抽象建模 i 平台无关模型 j l 转换工具 j 弘 i 平台相关模型 自够二。j o j i 转换工具 翳二? ? ”| j 。 , 代码模型 。a 一, 。, 图2 - 2m d a 开发过程 m d a 提高软件开发行为的抽象级别,提出了将业务逻辑定义为精确的高层 抽象模型。而m d a 的创新之处就在于把p i m 到p s m 的变换自动化,从而获得 了生产效率的提高。同时,对系统的变更可以通过修改p i m 并重新生成p s m , 再从p s m 生成代码来实现程序的变动。这样,开发人员最终可以脱离繁琐而重 复的低级编码工作,从而可以更多地关注业务逻辑层面的开发。 p i m 是m d a 定义的具有高抽象层次、独立于任何实现技术的平台独立模型。 p i m 只描述业务逻辑和功能,和实现技术无关,它独立于具体的实现平台【5 0 】。 我们可以根据实际业务逻辑的需求,定义精确描述业务的p i m 。对需求分析进行 抽象建模,然后用u m l 或x m l 等建模语言来描述p i m ,并将其作为m d a 的 输入。 通过转换工具将p i m 变换为一个或多个平台相关模型。p s m 是为某种特定 的实现技术平台设置的,在p s m 中定义了某种技术平台下可用的实现来描述系 统。其中,将p i m 变换成一个或多个p s m 是m d a 开发过程中最复杂的一步1 5 0 。 通常情况下,从p i m 到p s m 的变换需要手动来定义映射规则,但是这样的 变换只要被定义一次,就可以在开发过程中多次使用这个变换规则。同时,可以 1 0 第二章关键技术研究 定义p i m 到不同p s m 模型之间的映射规则,使得同一业务逻辑可以生成不同平 台环境中的运行代码,而变更时也只需要修改p i m 模型即可,充分体现的开发 过程中的一致性和可重用性。 2 3 模型转换 模型转换就是利用转换规则实现从源模型到目标模型的自动生成,也是 m d a 开发中最复杂的问题。从元模型的观点来看,模型转换是将源模型中一个 或一些模型元素变换为目标模型中一个或二些模型元素的描述 5 0 1 。其本质就是 把不一致的模型通过相关转换规则,使之达到一致性1 5 1 1 。 目前主要的转换方法有: ( 1 ) 直接操控方法 通过提供一个内部模型表示和一些操控模型的a p i 来实现模型转换,一般 以面向对象框架的方式来实现。但用户必须要通过使用某种编程语言如j a v a 来 实现这些转换规则,也称为手动转换方法。 ( 2 ) 结构驱动的转换方法 以结构为驱动的模型转换方法明显的分为两个阶段:为目标模型创建相关的 多层体系结构,然后在目标模型中设置属性和索引。在整体的框架中确定了调度 和应用的策略,用户只需要关心如何提供转换的规则。 ( 3 ) 利用x s l t 进行模型转换和代码生成 x m l 和x m i 是利用x s l t ( e x t e n s i b l es t y l e s h e e tl a n g u a g et r a n s f o r m a t i o n s ) 【5 2 进行模型转换的基础,而x m i 通常作为模型的存储语言,因此扩展样式语 言转换x s l t 成为一种实用的模型转换语言。另外利用x s l t 可以方便地进行代 码生成以及逆向过程。 ( 4 ) 基于模式的模型转换 保留成功的模型变换方案,并将这些方案包装成模式,以便将来在模型变换 中复用该模型变换方案。基于模式的模型转换的基本思想是:使用设计模式定义 转换规则,从而得到更加符合设计的目标模型。每条规则包括一个设计模式,可 以采用模式的源模型元素以及一组约束 s 3 l 。 ( 5 ) 基于元模型的模型变换 第二章关键技术研究 利用元模型之间的映射进行模型转换的方法1 5 0 1 。这种方法的思想是:在元 模型层次上建立两个模型元素之间的变换规则,当进行模型转换时,根据变换规 则的定义从源模型生成目标模型。 文中采用基于元模型的模型变换方式。p 1 m 到p s m 的转换实质上是一个从 源模型到目标模型的映射过程。在m o f 元模型构架下,所有的元模型都基于 m o f 元元模型定义,这使得模型转换可以通过使用m o f 结构定义在建模语言 之间的转换规则。如图2 3 所示为完整的m d a 模型转换框架。元语言是源语言 和目标语言的元模型,用元语言描述的转换规则能清楚地表示源语言和目标语言 之间的关系。这个框架普遍适用于基于m o f 体系的模型转换。 图2 3 模型转换框架 我们通过r a t i o n a l s o f t w a r e m o d e l e r 建立模型映射项目使用平台。r s m 使用 的模型转换工具c o m i b m x t o o l s t r a n s f o r m c o r e t r a n s f o r m a t i o n p r o v i d e r s 提供的 e c l i p s e 插件模型转换工具m t f 实现模型转换。m t f ( m o d e lt r a n s f o r m a t i o n f r a m e w o r k ) 是一个基于转换规则的执行引擎,基于该框架可以很方便地定义模 型转换规则,实现各种模型之间的转换。其转换原理为:在两个模型之间定义转 换规则,每条规则都包含一些转换约束。在两个模型之间执行转换规则,如果所 有规则的约束都被满足,则说明源模型和目标模型符合转换规则。相反,如果有 一些规则的约束未能满足,则启动和解,即修改目标模型f 或者源模型,要根据 配置的映射方向来决定) 的某些模型元素,从而修复约束。当所有的约束都被修 复时,说明转换成功,此时源模型和目标模型符合转换规则。 第三章p l m u m l 模型 第三章p i m u m l 模型 3 1 科学工作流平台无关模型( s w f p i m ) 科学工作流的平台无关模型( s w f p i m ) 同样需要具有高抽象层次,是独 立于任何实现技术的工作流模型。s w f p i m 只描述科学工作流中的实验流程的 部分,与具体实验平台无关。模型的建立一方面需要基于工作流管理联盟所制定 的工作流技术标准以及对工作流理解的基础之上,一方面需要根据实验的实际需 求,定义精确、描述合理流程的s w f - p i m 。 从m d a 的角度来看,工作流建模技术已经很好满足了过程分析与业务重组 的需要。目前,存在几种不同的方法对工作流进行定义,它们所输出的业务过程 模型也存在格式上的差异。为了提高业务模型的交互性和可移植性,我们采用 u m l 作为工作流定义的p i m 标准。从需求模型到u m l 活动图的生成需要根据 科学实验的实际需求进行工作流建模,在模型设计的分析过程中,将实际的实验 流程进行建模,绘制相关的流程图形描述( 状态图,活动图等) 。 3 2u m l 活动图 u m l 活动图( u m l a c t i v i t yd i a g r a m ) 【5 4 是u m l 中描述系统的动态行为 的图形建模工具之一。u m l 活动图是面向流程的,可以在多个a c t i o n 的任务中 定义控制流和数据流,而这些a c t i o n 都为了实现一个活动( a c t i v i t y ) 。它表现为 从活动到活动的控制流,描述活动序列,并且支持对并发行为和条件选择行为的 表述,还支持数据流描述。同时,u m l 还通过创建配置文件来扩展和适应实际 应用中的元模型提供轻量级扩展机制。 作为平台无关模型p i m ,u m l 活动图可以精确描述工作流流程,同时有许 多普遍的优点:它是众所周知的面向对象建模标记,在面向对象软件的开发中广 泛使用。通过定制,它还用于基于组件的软件、业务过程建模、服务建模,和系 统设计。它使用容易理解的图形标记。u m l 活动图提供了标准的图形元素,具 有较强的直观性,而且它是基于事件的,与传统的流程比较相似,更接近人们对 工作流程的直观理解。它提供丰富的语义来获取面向对象系统的关键特性。u m l 第三章p i m u m l 模型 活动图能够把工作流过程涉及到的重要对象加入到图中,采用对象传递表示信息 流,人们可以非常直观地从中了解到过程语境及交互的参与者,从而对工作流过 程有更深刻的了解 5 5 1 。u m l 活动图有足够的表达能力,能非常直接简单地描 述六种工作流原语,另外,通过起交互作用的对象流及信号机制,u m l 活动图 能够描述一些比较复杂的逻辑结构。 同时,u m l 可以通过配置文件p r o f i l e 构建与b p e l 相对应的一套语义结构 来支持建模。同时还将描述b p e l 映射,b p e l 映射可以从适合配置文件的u m l 模型自动生成w e b 服务制品( b p e l 、w s d l 、x s d ) 。 u m l p i m 方向的研究者目前是最多的,因为它非常符合m d a 最初的构想, 从大家了解最多的u m l 开始建立p i m ,然后转换为p s m ,然后生成代码。采用 u m l 建模可以和以前的技术兼容,也不缺少工具和厂商的支持。同时,当利用 u m l 转化为b p e l 模型时,我们可以很好的描述出b p e l 模型的静态特性和动 态特性,而且还可以体现出b p e l 语言本身所具有的一些特点。目前u m l 是较 为完备的面向对象建模语言,利用它可以对要构建的流程进行可视化、详述、构 造和文档化。 3 3 模型设计 3 3 1 基本建模元素 u m l 活动图主要包含下列基本元素有活动、泳道、动作节点、控制节点和 对象节点,这些元模型元素来源于u m l 2 0s u p e r s t r u c t u r es p e c i f i c a t i o n 5 6 】中各 种活动、操作模型元素。 1 活动( a c t i v i t y ) 活动由边连接节点构成,是执行某项任务的状态,它可以是实际的一项工作, 如打印,也可以是软件系统的程序,如某种数据的计算。一项操作可以描述为一 系列相关的活动,通常以一个控制节点开始,即活动起始点,但可以有多个结束 点。活动包括动作状态( a c t i o ns t a t e ) 和活动状态( a c t i v i t ys t a t e ) :动作状态表 示不可分割的原子动作,表示动作在操作过程中不可中断,且处于执行状态时不 允许发生转换,在短时间内就可以完成。活动状态,表示一个非原子的动作,它 1 4 第三章p l m u m l 模型 可以包含一组不可中断的活动或操作,而且通常需要耗费一段时间才能完成。 2 泳道( s w i m l a n e ) 为了让活动图易于阅读,可以将活动以直向、横向、或曲线进行分割和组合。 泳道代表相关动作的高级群组,又称为活动段落。每个泳道都应该有描述基本语 义的范围。通常情况下,根据活动的功能来组合,用纵向矩形来表示,属于一个 泳道的所有活动均放在其矩形符号内,名字放在其矩形符号的顶部。泳道可以直 接显示动作在哪一个对象中执行,也可以显示执行的是一项组织工作的哪一部 分,常用于表示使用案例、类别、元件、商业流程建模中的组织单元和工作流建 模中的角色。 3 动作节点( a c t i o nn o d e ) 动作节点只有在所有前提条件都满足的状况下才会执行,其中包括:呼叫动 作节点,用于呼叫活动、系统行为或动作;传送讯号,用于传送非同步讯号,可 接收输入参数;接受事件动作节点,当对象等待事件后由输出边输出,接收边接 收标记信号后,节点启动,如果没有输入边,当节点内包含活动起始节点,则节 点启动,并永远保持启动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行引流推广活动方案
- 焊工考试题 题库及答案
- 共性学法考试题及答案
- 公交操作考试题及答案
- 幼儿园教学教案设计:安全用吸管
- 房产行业考试题及答案
- 企业培训需求分析工具员工成长支持
- 安全健康作业保障承诺书3篇
- 把握文章的内在逻辑:初中语文课文深度解读教案
- 医疗用品购销及设备租赁合同
- 2025年北京市水务局所属事业单位招聘工作人员101人笔试高频重点提升(共500题)附带答案详解
- 2025至2030年中国密炼机上辅机系统行业投资前景及策略咨询研究报告
- 《T CPSS 1013-2021-开关电源电子元器件降额技术规范》
- 四川省德阳市中江县2024-2025学年九年级上学期期中考试英语试题(无答案)
- 2024年职工职业技能大赛数控铣工赛项理论考试题库-下(多选、判断题)
- 房地产行业市场调查报告
- 资金分析师职业鉴定考试复习题及答案
- 三级筑路工(高级)职业技能鉴定考试题库(含答案)
- 中职英语第三版第一册Unit1-Lesson1-课件
- 窗帘订购合同范本简单
- 人教版:生命生态安全六年级上册教案
评论
0/150
提交评论