支持icemda的工作流引擎技术与实现毕业论文(编辑修改稿)内容摘要:
不会导致 应用软件做大面积 的 改变, 是本文研究的一个重要问题。 与课题相关国内外研究进展及成果 工作流技术综述 工作流 起源于 办公自动化领域, 它是针对日常工作中具有固定程序的活动而提出的一个概念 [1]。 提出的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事哈尔滨工业大学工学硕士学位论文 2 效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。 工 作流的标准化工作也取得了一定的进展,目前工作流的规范主要有: 工作流管理联盟 (Workflow Management Coalition, WfMC)提出的参考模型和XPDL 规范 , OMG 提出的 Workflow management facility,微软、 BEA、 IBM等联合提出的 BPEL, ebXML39。 s BPSS 等等。 其中以 WfMC 的贡献最为突出,WfMC 是 在 工作流 领域 中 第一个致力于标准化工作的 组织 , 创建于 1993 年。 WfMC 发布的参考模型定义了 工作流管理系统 和其他相关部分之间的接口 ,WfMC 的另一项成果 XPDL 规范定义了描述 工作流 声明部分的 XML 结构。 目前在国内外, 参考模型和 XPDL 被大多数学者和企业认为是 目前最好的规范。 由于研究工作流的组织和机构非常庞大,导致了 工作流的定义 也存在多种。 WfMC 对工作流的定义为: 工作流是一类能够完全或者部分自动化执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行 [2]。 Geakopoulos 给出的工作流定义 是将一组任务组织起来完成某个经营过程。 在工作流中定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成 ,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。 任务的触发顺序和触发条件用来定义并实现任务的触发、任务的同步和信息流的传递 [3]。 IBM Almaden 研究中心给出的工作流定义 为 : 工作流是经营过程的一种计算机化的表示模型,定义了完成整个过程所需用的各种参数。 这些参数包括对过程中每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需要的应用程序 [4]。 而 工作流管理系统是 一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进 工作流实例的执 行 [5,6]。 工作流管理系统在最高层上可表现为提供三个功能块的支持 [7]: (1)系统创建时间功能 工作流过程及其组成活动的定义和建模。 (2)系统运行时间的控制功能 在其运行环境中管理工作流过程,并连续地处理组成一个过程的各活动。 (3)系统运行时间 功能 用户与处理各活动步骤的 外部应用程序或者 IT 应用工具之间的交互。 哈尔滨工业大学工学硕士学位论文 3 现有的工作流 建模方法 及存在问题 模型是用文字、图形、图表、符号关系式以及实体模样等描述所认识到的客观对象的一种简化表示形式。 它是人们为了研究和解决客观世界中存在的各种问题 而对客观现实经过抽象思维后得到的 [8]。 工作流模型是对工作流的抽象表示,也就是对业务过程的抽象表示。 工作流管理建立阶段的功能主要是完成经营过程的计算机化的定义,也就是完成过程建模的任务 [9]。 由于需要在计算机环境下运行,所以,工作流模型既要让人读懂,也要让计算机能够读懂并能解释所定义的业务过程。 也正是因为如此,简单的业务过程通过语言或文字就可以表达完全,无需建立明确的模型,而描述企业经营过程的工作流则必须建立相应的工作流模型才能实现企业业务流程的工作流管理,尤其是对那些实现许多复杂的并行执行流程的业务过程 ,只有建立它们的计算机化的模型才可能对流程的执行情况进行有效的监控。 现今的 工作流建模方法主要有基于活动网络、 Petri 网、语言行为理论、活动与状态图以及扩展事务模型的建模方法。 大多数工作流研究都是从描述过程开始的,比如流程图、状态图、活动网络图以及 Keller 等人提出的 事件过程链模型 (Eventdriven Process Chain, EPC)等等。 基于 XML 的典型业务过程定义语言是 BPMI 维护的 BPML, 其他类似的语言还包括: BPQL、 WSFL、XLANG、 BPEL、 WSCDL、 XPDL 等。 基于活 动网络的建模方法是以活动和活动之间的关系为基础 对 工作流 进行建模。 这种 方法的 优点 是直观 并且 易于理解 ,因此 目前 很多 工作流管理系统都采用这种方法 建立工作流模型。 这种方法的缺点是其相关理论研究 偏少,因为这种方法强调 了工作流墨西哥能的 直观性和易理解性,而直观性和易理解性通常与系统的具体实现关系密切 [10,11]。 Petri 网是完全形式化的,可以对模型进行准确的判断和分析,非常易于计算机理解和自动实现。 因此基于 Petri 网的工作流建模和分析得到了广泛的发展。 但基于 Pertri 网的工作流模型有着模型不直观的缺点,导致了 其不易被非专业人员理解和沟通 [12~15]。 基于状态和活动图的建模方法是一种介于 Petri 网模型和图形化模型之间的建模方法。 这种方法的优点是易学习和易理解,并且比图形化模型容易验证和实现。 缺点是可视性效果和可理解性较差,模型验证工作也比基于 Petri 网的建模方法复杂 [16]。 基于事务模型的建模方法 来源 于数据库研究领域,事务处理对于维护数据哈尔滨工业大学工学硕士学位论文 4 库的正确性、一致性和出错恢复都具有重要意义 [17~19],在工作流模型中引入事务概念可以提高工作流管理系统的可靠性。 基于语言行为理论的建模方法 [20]是 从客户方和服务 方之间的语言行为交互上对工作流进行建模, ActionFlow 就是采用语言行为理论的工作流模型。 工作流引擎综述 及 其不足 工作流引擎是一个为工作流实例的执行提供运行服务环境的软件,它是工作流执行服务的核心,是执行企业经营流程的“业务操作系统”的内核。 工作流引擎主要提供两类工作流执行服务:一类是负责响应来自工作流管理器接口的所有消息,这种工作流执行服务是常驻的;另一类负责维护各自的流程实例的执行,这种服务则是随着流程实例的产生而开始,随着流程实例的结束而终止的 [1]。 目前工作流引擎产品数量相当多,其中有软件制 造商所提供的商业产品,也有一些由个人或自由组织所发起的开源项目。 可以从 四 个方面进行分类 [2]: 按工作流模型分析 , 根据工作流引擎支持的工作流模型,可将其分为符合XPDL 和不符合 XPDL 的。 前者的商业产品代表有 Action Technologies ActionWorks Metor、 IBM Websphere MQ Workflow、 SAP Business Workflow 等著名软件。 开源的主要有 Shark 等。 后者现在主要包括了一些使用 BPEL 的产品。 按应用级别分 类 , 可将工作流引擎分为嵌入式工作流引擎和 独立式工作流引擎。 嵌入式工作流引擎不能单独运行,只能嵌入到系统内部作为系统的一个组件运行。 而独立式工作流引擎可单独存在,并且对远过程调用等都提供统一支持。 嵌入式工作流引擎的一个代表是开源工作流引擎 OSWorkflow,它可看作是一个嵌入在系统内部的有限状态机,简单灵活。 按实现框架分类 , 又可将工作流引擎分为基于关系数据库的、基于 .的、基于 J2EE 的、基于 CORBA 的等等。 按代码是否开源分类 , 可将工作流引擎分为开源工作流引擎与商业工作流引擎。 前者的主流代表主要有 Shark、 jBPM 和 OSWorkflow 等。 后者的主要代表有国 内 的 西安协同、中唐、有生博大、东方易维等。 分析现在的工作流引擎主要存在 如下四点问题。 (1)没有通用的工作流引擎 现今的工作流引擎产品大多数都限定在一个具体的领域 ,没有一个适合所有领域的产品。 哈尔滨工业大学工学硕士学位论文 5 (2)所支持的工作流模型种类繁多 由于工作流模型没有统一的标准,尽管WfMC 制定了统一的 XPDL 规范,但仍有很大数量的工作流引擎所执行的工作流模型不是符合 XPDL 规范的,比如支持 Petri 网等。 (3)内部执行机制各不相同 由于工作流引擎输入的模型不尽相同,也导致了各种工作流引擎的内部 执行机制各不一样,有的采用 Petri 网的令牌机制,有的则采用了有限状态机的执行方法。 (4)可集成程度差 工作流引擎不可避免得需要与外部应用程序进行交互。 当工作流引擎作为嵌入式工作时,使得工作流引擎与所嵌入的系统是紧耦合的。 而如果作为独立式工作时,工作流引擎与原先的企业业务系统的集成是一个很大的挑战。 MDA 的发展 OMG 在 20xx 年 初宣告了模型驱动构架 (Model Driven Architecture, MDA)为它的战略方向。 MDA 以计算机可以理解的模型为中心,把软件开发提升到更高一级的抽象级别 —— 模型级别 , 从而达到分离问题与业务逻辑和具体实现平台的目的,保护 开发者 已建立的“业务逻辑”安然无恙,避免了“平台易变性”的风险 [22]。 在基于 MDA 的开发过程中,开发人员把注意力转移到开发模型上, 将 更多的 精力用到 功能性需求的分析和设计,而不是过早的陷入具体的实现细节当中。 MDA 最主要的 特点 [23,24]就是软件开发的重点 是各种模型,而 不再是程序和输出, 软件 开发人员的 关键 工作是不断拓展各种模型,只有到了最后阶段才会考虑其实现。 MDA 把建模语言当作是编程语言 来用, 而不 致使当作 设计语言 来用。 它 能够创造出机器可读以 及高度抽象的模型,这些模型独立于实现的技术,以标准化的方式存储。 MDA 以一种全新的方式将 IT 技术的一系列新的趋势性技术整合在一起,这些技术包括基于组件的软件开发 (ComponentBased Software Development, CBSD)、设计模式、中间件、说明性规约、多层系统、企业应用集成以及契约式设计等等 [25]。 总之, MDA 为企业应用在不同生命周期阶段的集成提供了完备的解决方案,它提倡使用形式化的系统模型作为解决企业应用系统集成的核心,通过使用软件工程方法和工具去理解、设计、操作、发展企业 软件系统的所有方面,为提高软件开发效率、增强软件的可移植性、互操作性、可维护性和文档的可编制性提供了统一的途径。 哈尔滨工业大学工学硕士学位论文 6 国 内 外对于 MDA 的研究主要集中在两方面。 一方面是研究如何提供模型定义和转换的高自动化工具,通常是针对特定领域的,其复杂的转换规则是可以预定义的。 另外一方面是开发各种 MDA 的通用工具,它可以通过配置第三方的插件或者扩展来支持 MDA 的实现,针对广阔的应用领域实现 MDA 的解决方案。 工作流与 MDA 的结合 通过以上的分析, 传统的工作流模型都有一个共有的缺点:直观性和形式化不可兼而有之。 有的模型是直观的、 容易被人理解的, 例如活动图等; 而有的模型 是 形式化 的,很容易被计算机所理解, Petri 网是一个典型的代表。 此外,传统的工作流模型由于追求通用性, 因而 没有特殊考虑企业应用中业务流程 的 持久化数据多、多用户、业务逻辑复杂 等专有的特点。 针对上述缺点分析,可采用 MDA 的开发方法处理, 平台无关模型 (Platform Independent Model, PIM)层的 工作流模型 追求模型的直观性,采用图形化表述, 平台相关模型(Platform Specific Model, PSM)层的 工作流模型面向平台,采用 XML 文件形式描述,最后在 代码 (code)层 实现一个工作流引擎解释执行模型。 工作流建模技术在 MDA 领域的应用,使得 软件 开发者在业务流程的建模、映射和代码生成的时候,不必关注业务建模中的一些细节,摆脱了很多在构建业务逻辑流程时技术细节的困扰 [26]。 这样大大减少了程序员在进行业务逻辑编程时的工作量。 在使用了这种方法后 , 可以实现基于工作流技术,从 PIM自动生成相应的 PSM 可执行工作流模型定义。 本硕士论文的研究 内容 本论文的主要工作是采用 ICEMDA 的方法对工作流建模,并设计实现一个工作流引擎对其提供执行服务,主要的工作如 下所述: (1)ICEMDA 的工作流建模 在 ICEMDA 的环境下, 建立 ICEPIM 层工作流模型 ,它采用了 UML+的图形对企业的业务流程建立模型;而后通过扩展XPDL 定义了 PSM 层可执行工作流模型;最后在两层工作流模型的基础上,定义了一系列的自动映射规则实现转换。 (2)支持 ICEMDA 的工作流引擎研究 工作流引擎以可执行工作流模型为输入,对模型定义进行解释执行。 重点研究了工作流引擎中的路由算法和条件判断策略。 同时,定义了工作流引擎与框架和业务构件之间的交互模式,对三哈尔滨工业大学工学硕士学位论文 7 者之间的交互数据、交互格式以及交互过 程做了详细描述。 (3)设计实现支持 ICEMDA 的工作流引擎 首先总体设计了工作流引擎的体系结构,对工作流引擎进行了模块划分,方便以后的扩。支持icemda的工作流引擎技术与实现毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。