(计算机科学与技术专业论文)基于xml和关系结构的轻量级工作流引擎.pdf_第1页
(计算机科学与技术专业论文)基于xml和关系结构的轻量级工作流引擎.pdf_第2页
(计算机科学与技术专业论文)基于xml和关系结构的轻量级工作流引擎.pdf_第3页
(计算机科学与技术专业论文)基于xml和关系结构的轻量级工作流引擎.pdf_第4页
(计算机科学与技术专业论文)基于xml和关系结构的轻量级工作流引擎.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机科学与技术专业论文)基于xml和关系结构的轻量级工作流引擎.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于x m l 和关系结构的轻量级t 作流引擎 摘要 企业为取得市场生存和竞争的优势 适应瞬息万变的市场环境 需要快速响应市场 的需求 不断调整自己的组织模式和再造自己的业务流程 业务流程的设计 优化和管 理成为企业竞争的重要手段 企业迫切需要支持其业务流程再造的信息系统的支持 随着企业应用的进展 其业务系统更加复杂 同时企业对应用系统灵活性要求的提 高 造成系统开发成本加大 风险性提高 开发商希望能有快速开发具有灵活性应用系 统的平台支持 工作流技术为企业的业务过程建模并优化业务处理过程提供了方法和技 术 本文通过对电信中数据申请关键业务的分析 在传统的关系数据库的基础上 提出 了一个适用于关键业务开发的基于x m l 和关系结构的轻量级工作流引擎的框架结构 此 工作流模型由机构模型 信息模型和控制模型三部分组成 文中深入讨论了如何采用 x m l 关系结构和轻量级理念来设计工作流引擎 并详细地给出了相关的机构模型 信 息模型和控制模型的设计原理以及具体的表示和实现方法 其引擎已经应用到实际的应 用系统中 实践证明 利用此工作流引擎可以显著地缩短关键业务的开发周期 关键词 业务过程 关系 x m l 工作流 工作流引擎 e j b j 2 e e 基于x m l 和关系结构的轻量级工作流引擎 a b s t r a c t t oa c q u i r ep r e p o n d e r a n c eo v e rg l o b a lc o m p e t i t i o n e n t e r p r i s o sm u s tr a p i d l y r e s p o n s et h em a r k e t sr e q u i r e m e n t s c o n s t a n t l ya d j u s tt h e i ro r g n i z a t i o nm o d ea n d r e c o n s t r u c tt h e i rb u s i n e s s p r o c e s s p r o c e s s sd e s i g n o p t i m i z a t i o n a n d m a n a g e m e n tb e c o m et h ei m p o r t a n tm e a s u r ei nb u s i n e s sc o m p e t i t i o n e n t e r p r i s e s i n s t a n t l yr e q u i r et h es u p p o r tf o rt h e i rb u s i t e s sp r o c e s s sr e c o n s t r u c t i o n w i t ht h ee v o l v e m e n to fb u s i n e s sa p p l i c a t i o n s e n t e r p r i s e s b u s i a e s sb e c o m e s m o r ec o m p l i c a t e d a tt h es a m et i m e e n t e r p r i s e sp r o m o t et h er e q u i r e m e n t sf a r b u s i n e s sf l e x i b i l i t y a l lt h e s er e s u l t i nt h ei n c r e a s eo fc o s to fb u s i n e s s d e v e l o p m e n t d e v e l o p e r sh o p e t of i n da s y s t e mp l a t f o r m t o r a p i d l y d e v e l o p b u s i n e s sa p p i i c a t i o n s w o r k f l o w t e c h n o l o g y f a c i l i t a r e st h i s b yp r o v i d i n g m e t h o d o l o g i e s a n d t e c h n o l o g i e s t o s u p p o r t b u s i n e s s p r o c e s sm o d e l i n g a n d o p t i m i z i n g a c c o r d i n gt ot h ea n a l y s i so ft h er e q u i r e m e n t st od e v e l o pc r i t i c a lb u s i n e s s a p p l i c a t i o n si nt e l c o md a t as e r v i c e t h i sp a p e rp r e s e n t saf r a m e w o r ko fax m l a n dr e l a t i o n s h i p b a s e d 1 i g h t w e i g h tw o r k f l o we n g i n e w h i c hi sb u i l to v e rt h e c o n v e n t i o n a lr e l a t i o n a ld a t a b a s e s y s t e m i t c o n s i s t so ft h r e e c o m p o n e n t s o r g a n i z a t i o nm o d e l i n f o r m a t i o nm o d e la n dc o n t r o lm o d e l t h er e a s o n st h a tt h e c o n c e p t so fx m l r e l a t i o n s h i pa n dl i g h t w e i g h ta r ea d o p t e dt od e s i g nt h ew o r k f l o w e n g i n ea r et h o r o u g h l yd i s c u s s e di nt h ep a p e r a l s o t h i sp a p e rs e t sf o r t ht h e p r i n c i p l e t o d e s i g n t h er e p r e s e n t a t i o na n d o ft h e w a y t o i m p l e m e n t t h e o r g a n i z a t i o n i n f o r m a t i o na n dc o n t r o lm o d e lo ft h ew o r k f l o w e n g i n e r e s p e c t i v e l y ap r o t o t y p eo ft h i sw o r k f l o we n g i n eh a sb e e na p p l i e dt oap r o j e c t a b o u tt h ed a t as e r v i c ep r o c e s si nt e l c o m w h i c hs h o w st h ea p p li c a t i o no ft h e w o r k f l o we n g i n ec a nm a r k e d l ys h o r t e nt h e c y c l eo ft h ed e v e l o p m e n tc r i t i c a l b u s i n e s sa p p l i c a t i o n s k e yw o r d s b u s i n e s sp r o c e s s r e i a t i o n s h i p x m l w o r k f i o w w o r k f i o we n g i n o e j b j 2 e e i i 基于x m l 和关系结构的轻量级工作流引擎 0 前言 目前 针对企业或者部门的计算机应用已不仅仅停鳢在诸如文档处理 公文流转以 及信息发布等这些简单的业务层面上 越来越多的企业或部门要求将信息技术的应用扩 展到关键业务中 关键业务的普遍特征是 1 是企业或部门赖以生存的 2 业务 过程往往由许多业务活动组成 业务逻辑和业务规则复杂 3 业务的完成依赖于其 中众多业务活动之间的交互和众多的业务人员的协作参与 4 涉及到的数据量经常 是海量数据 5 如果能将信息技术恰当地应用到这些关键业务中 不仅仅能够提高 工作效率 还可以减少出错的可能性 例如 产品的设计和制造过程 银行的借贷和划 账业务 还有电信数据业务申请一站服务等等 都属于相应企业或部门的关键业务 工 作流技术所具有的协调本质决定了其在关键业务的信息化过程中将扮演重要的角色 工作流是业务过程的计算模型 即将相应的业务逻辑和业务规则在计算机中以恰当 的模型进行表示并对其实施计算 业务过程是若干业务活动的集合 这些业务活动按照 定的规则前后链接在一起 相互协作 以便达到一个共同的目标 业务活动则是能够 完成特定的功能的一个实际环节 它在信息系统中通常针对具体的应用逻辑 为了对工 作流管理系统的开发起到一个指导作用 工作流管理联盟 w f m c 给出了工作流系统的 一个通用框架一一工作流参考模型 在工作流参考模型中 工作流引擎是工作流管理系 统的核心 工作流引擎是为工作流管理系统在定义时提供支持 同时在运行时提供解释 和执行服务的一组数据模型和软件 根据文献中对工作流引擎体系结构的讨论 我们认 为工作流引擎主要包括机构模型 信息模型和控制模型三种模型 前两者合称为工作流 引擎的数据模型 本文以电信大客户一站服务系统为实例 同时分析了其他不同的企业和部门的关键 业务的基本特征 针对关键业务的开发需求 在传统的关系d b m s 的基础上 讨论一个基 于x m l 季f f 关系结构的轻量级工作流引擎的具体的设计原理与实现方法 它充分考虑了关 键业务开发过程中对工作流功能的需求 利用此工作流引擎 可以使用传统的开发工具 构造出具有工作流特征的大型信息系统 本文实现的工作流引擎 既不是对工作流规范的完整实现 也不是大而全的完整的 一套开发工具 而是一个完全遵循e j b 规范的 可部署在所有标准的j 2 e e 应用服务器之 上的轻量级的工作流引擎 追求的是实用 够用 易用的原则 便于和其他的系统应用 进行无缝的集成 基于w e b 的信息系统大多由四层构成 即 客户端 浏览器 w e b 服务器 应用服务 器和数据库服务器 在实际应用中 w e b 服务器 应用服务器和数据库服务器既可以配 置在一台主机上 也可以配置在多台主机上 本文的工作流引擎处在应用服务器层上 以一个e j bj a r 包的形式存在 在形式上同系统中的其他应用相同 在功能上提供相应 的a p i s 定义工作流 执行并监控工作流的运行 开发出具有工作流特征的大型信息系 统 该工作流引擎的使用 不会对用户所使用的开发工具造成任何影响 用户还可以使 用其熟悉的 功能强大的开发工具 而不必花费大量的时间掌握新的开发工具 基于x m l 和关系结构的轻量级工作流引擎 1 国内外的研究进展 1 1 国外的研究进展 工作流的概念起源于生产组织和办公自动化领域 它是针对日常工作中具有固定程 序的活动而提出的一个概念 提出的目的是通过将工作分解成定义良好的任务 角色 按照一定的规则和过程来执行这些任务并对它们进行监控 达到提高办事效率 降低成 本 提高企业生产经营管理水平和企业竞争力的目标 实际上 自从进入工业化时代以 来 有关过程的组织管理和流程的优化工作就一直在进行 它是企业管理的主要研究内 容之一 进入2 0 世纪9 0 年代 随着计算机和网络技术的迅速发展 特别是在i n t e r n e t 应用日 益普及的情况下 工作流技术得到长足的发展 1 9 9 3 年成立了工作流管理联盟 w o r k f l o wm a n a g e m e n tc o a l i t i o n w f m c 此后 该组织颁布了一系列工作流产品标 准 包括工作流参考模型 工作流术语表 工作流管理系统各部分间接口规格 工作流 产品的互操作性标准等 这些举措加速了工作流技术的商品化 现在 许多公司都基于 这些标准推出了自己的工作流产品 综合考察目前的工作流产品市场 可以根据所实现的业务过程 底层实现技术及任 务项传递机制这三种分类方法对工作流管理系统及其产品进行分类 根据所实现的业务过程 工作流管理系统可分为四类 1 管理型工作流 a d m i n i s t r a t i r ew o r k f l o w 在这类工作流中 活动可以预 定义并且有一套简单的任务协调规则 2 设定型工作流 a dh o cw o r k f l o w 与管理型工作流相似 但一般用来处理 异常或发生机会比较小的情况 有时甚至是只出现一次的情况 这与参与的用户有关 3 协作型工作流 c o l l a b o r a t i v ew o r k f l o w 参与者和协作的次数较多 在一 个步骤上可能反复发生几次直到得到某种结果 甚至可能返回到前一阶段 4 生产性工作流 d r o d u c t i o nw o r k f l o w 实现重要的业务过程的工作流 特 别是与业务组织的功能直接相关的工作流 与管理型工作流相比 生产型工作流一般应 用在大规模 复杂的和异构的环境下 整个过程会涉及许多人和不同的组织 根据底层实现技术 可将工作流产品分为三类 1 以通讯为中心 以电子邮件为底层的通讯机制 这种类型的工作流管理系统适 合于协作型工作流和不确定型工作流 而不适合生产型工作流 2 以文档为中心 基于文档路由 它同外界应用的交互能力有限 许多基于表的 管理型工作流可以用以文档为中心的工作流实现 3 以过程为中心 这种工作流系统对应生产型工作流 它们一般建立在数据库之 上 有自己专用的通信机制并且提供了同外部进行交互的接口 根据不同工作流系统所采用的任务传递机制的不同 市场上的工作流产品有可以划 分为四类 基于x m l 和关系结构的轻量级工作流引擎 1 基于文件的工作流系统 以共享文件的方式来完成任务项传递 这种类型产品 开发得最早 发展最成熟 其产品品种较多 2 基于消息的工作流系统 通过用户的电子邮件系统来传递文档信息 这种类型 的产品一般都提供与一种或多种电子邮件系统的集成接口 3 基于w e b 的工作流系统 通过w w w 来实现任务的协作 这一类产品起步较晚 在 9 5 年以后 但是发展迅速 其市场前景十分看好 许多供应商纷纷改进原有产品或丌 发新产品以增加对w e b 的支持 4 群件与套件系统 虽然这一类产品与上面介绍的三类产品在任务传递方式上有 很大程度的重叠 但是在这里却有必要把它们单独划分成一类 因为这一类产品都需要 依赖于自己系统的应用基础结构 包括消息传递 目录服务 安全管理 数据库与文档 管理服务等 它们本身就构成了一个完整的应用开发环境 目前 市场上工作流产品发展迅速 比较著名的有i b m 的m q s e r i e sw o r k f l o w u 1 t i m u s 的u l t i m u sw o r k f l o ws u i t e a c t i o nt e c h n o l o g i e si n c 的m e t r o 等 其功能特 性分述如下 1 m q s e r i e sw o r k f l e w 是i b m 公司推出的最新工作流管理产品 是i b m 的商业集成 软件m q s e r i e s 中的一部分 m q s e r i e sw o r k f l o w 是以i b m 的消息队列产品m q s e r i e s 为底层 支持 m q s e r i e s 为m q s e r i e sw o r k f l o w 中的各个部分提供可靠的消息队列 整个系统是 通过消息队列来进行通信联系 因此不需要i d l 调用或r p c 等其它通信机制 m q s e r i e sw o r k f l o w 是i b m 公司在f l o w m a r k 基础上进行改进后得到的工作流产品 它 属于生产型的工作流管理系统 f l o w m a r k 的主要目标是实现企业的文档路由 d o c u m e n t r o u t i n g 和过程自动化 p r o c e s sa u t o m a t i o n 这也是传统的工作流产品的典型特 点 m q s e r i e sw o r k f l o w 不仅考虑了企业对于数据传输的要求 还为整个企业内人员 数据 应用和经营过程的管理提供了一个过程自动化的系统工具 它还允许外部人员通 过i n t e r n e t 或i n t r a n e t 参与到企业的经营过程中 m q s e r i e sw o r k f l o w 能够支持多种操 作系统 允许客户端和服务器实现跨平台操作 它能够对各种异常情况进行有效的处理 这使得m q s e r i e sw o r k f l o w 适合需要大量人员合作和需要集成异构应用 如供应链管理 保险业 订单管理 信用卡管理等等 的企业和机构 m q s e r i e sw o r k f l o w 的目标是方 便地对企业内的各种经营过程进行重组 将企业内的各种异构的应用程序集成起来 最 终实现电子商务 2 u l t i m u s 的u l t i m u sw o r k f l o ws u i t e 是一套具有弹性化结构 操作简便并支持 i n t e r n e t i n t r a n e t 的企业工作流自动化系统 是一套结合m i c r o s o f tb a c k o f f i c e 与 i n t e r n e t 技术 能提供企业明显效益且易于导入的工作流程自动化解决方案 u l t i m u s w o r k f l o ws u i t e 不需要任何程序编写 便能提供完成的i n t e r n e t i n t r a n e t l 作流管理 功能 透过m i c r o s o f ta c t i v e x 与j a v a s c r i p t 技术 u l t i m u s 使得企业用户能以图形操作 界面设计 测试 模拟 监控与评价工作流程 并能让使用者通过w e b 浏览器填写电子 表单及使用工作流所有功能 是一个基于w e b 的工作流产品 u l t i m u s 特别适用于企业将 i n t e r n e t i n t r a n e t 与日常管理或办公自动化结合的工作 3 a c t i o n 技术公司为知识工程师提供了一套基于w e b 的工作流管理软件 a c t i o n m e t r o 它不仅能够管理确定的过程 并且对过程中不可预见的问题 要求和机 遇也可以进行控制 还为用户提供了管理不确定的协作和任务的工具 用户可以用 基于x m l 和关系结构的轻量级工作流引擎 a c t i o n 技术公司提供的工具在整个企业甚至企业之间建立一个基于w e b 或c s 的工作流 管理环境 a c t i o n 技术公司的产品将i n t e r n e t 技术与s o l 的事务处理技术结合起来 提 供了内置的安全措施 即使对于最复杂的 广泛分布的和需要不断修改的工作流也能保 证经营过程的一致性 其产品能够运行在多个服务器的分布环境下 支持各种工业标准 女h o d b c j a v a a c t i v e xc o r b a s m t p m i m e 等 具有良好的可扩展性和灵活性 从而 可以保证用户在i t 方面的投资得到充分的利用 a c t i o n 技术公司的工作流产品基于对话行为的模型 在活动的请求者和活动的执行 者之阔要对完成的活动达成协议 基于对话机制的模型强调让用户满意 而不是完成某 一项任务 在对话行为模型中 在请求者和完成者之间需要四个交互步骤来完成一个活 动 首先活动的请求者请求活动的完成者完成一项任务 接着双方对于要完成的活动和 活动是否满意的条款达成一致 然后活动的执行者完成该项任务 最后活动的请求者对 于活动的完成情况是否满意给出评价 与传统的工作流技术相比 a c t i 0 1 3 m e t r o 更适合 于基于知识的工作流 它能够较好地支持用户与信息源之间的交互 如信息获取 用户 协商 发现并解决问题 进行汇报等 1 2 国内的研究进展 工作流技术在国内的研究起步较晚 产品相对较少 一方面对工作流技术认识不够 重视 另一方面与国内系统软件开发能力不足有关 但是已经有一些公司开发出了工作 流产品 如 西安协同数码股份有限公司与西北大学开始合作开发出t s y n c h r o f l o w 一协同工作 流管理系统 重庆长松网络信息有限公司开发出了c s n e te b p a3 0 长松通用工作流支撑平台 以 及基于该平台的业务流程自动化管理系统 上海维泰软件公司开发的工作流程管理软件w i s e f l o w 清华大学计算机系在国家高技术研究发展计划 8 6 3 计划资助下开发的一个基于 w w w 的工作流管理系统w o w w w i 3 面临的问题 工作流技术并不被人们普遍看好 许多首席信息官 c i o 不确信其能力和利益 目前的工作流技术的一个问题就是太过刻板 因为工作流是先于应用构造的且由一些集 中的权威强制执行的 所以这种刻板性是不可避免的 但是 对参与者而言缺乏自由度 导致工作流管理系统显得很不友好 结果是它们经常被忽略 最终被放弃 这种刻板性还会难以适应灵活的特别的推理 导致生产力的损失 而这正是人类智 能的强项 当例外发生时 刻板的工作流管理工具表现得不正常 灵活性的需要就体现 出来了 设计不良的工作流只能挂起 而灵活的工作流就会让人工依据可获得的信息来 作决定 另一个问题是系统需求很少是静态的 一个工作流的设计上下文在其生命期内很难 4 基于x m l 和关系结构的轻量级工作流引擎 对所有细节都保持可用性 对未包括在工作流模型中的任意扩展而言 动态的需求几乎 是必需的 在实际应用中 应用的企业还是较少 应用的范围窄 效果不理想 这里与产品的 全面性 集成性有关 也有企业应用的状况及工作流产品供应商的经营策略有关 具体 有以下几点 1 工作流底层环境的建立 工作流管理系统必须建立在底层通信的基础上 才能实现分布计算 这要额外付出 经费和精力进行构筑 这是企业所不希望的 从而限制了在企业中的广泛应用 2 标准化程度差 不同的厂商所提供的工作流产品具有自己独立的一套工作流模型 工作流定义语 占 a p i 函数 但难于在不同系统之间进行交互 集成的效果不理想 不能方便地在不 同系统问进行应用对象的重复利用和数据的方便交流 3 系统的集成性不理想 工作流管理系统没有达到真正地集成 还是在自己独立地运行 处理一些行政上的 简单的流程业务 不能很好将o a e r p c r m 等具体事务处理系统紧密地联系在一起 达 到数据录入一次即可有效的目的 4 实现的复杂性 实施一个完整的工作流管理系统 是一个复杂的过程 要了解其它应用系统的业务 进行流程处理分析 业务流程的改造 管理规程和操作规范建立等 并且还必须有不同 软件供应商的全力配合 原因是企业不可能在短的时间内了解所有系统的来龙去脉 并 得以实现 5 系统的安全性 系统中对于并发访问和异常错误缺乏正确和可靠的支持 一旦系统出现非正常退 出 如何恢复数据并保证数据的一致性还需要解决 6 企业管理者的观念改变 一个系统实施的好与坏 与企业的管理者有密切的关系 要改变手工管理中不合理 的流程方式 充分借助计算机应用系统来指导工作 设想一个管理者都不经常进入企业 的计算机应用系统 那么 如何能够使该系统发挥作用和提高管理水平 任何一个应用 系统实施成功标记就是 成功 使用 7 工作流产品供应商的经营策略 现在市场上见到的工作流产品多是大而全的产品 不仅有工作流引擎 也附带复杂 的开发工具 是一套非常庞大的开发平台 首先 其自身所附带的开发工具对用户开发 系统是否够用尚且不论 其次 单就用户需要熟悉新的开发工具就要花费大量的时间 精力 同时 由于产品功能复杂 势必价格昂贵 造成整个系统费用过高 最终客户难 以接受 1 4 研究意义及创新点 目前工作流技术的研究同益受到人们的重视 不仅有大学和研究机构在开展多项研 究 产品供应商也在不断地推出新的产品 来补充应用中存在的不足 研究的主要问题 基于x m l 和关系结构的轻置级工作流5 1 擎 包括三个方面 工作流的理论基础 包括 体系 模型 语言 接口等 工作流实现技 术 包括 性能 可靠性方面的研究 工作流技术的应用 包括 实施方法 应用集成 等 论文研究的意义在于通过利用新的技术 探索开发工作流的新的方法 开发出结构 更加清晰 功能更加灵活的工作流产品 论文的研究成果直接应用到我们的项目开发中 并且为开发工作流产品提供开发经验 论文力求体现出技术的先进性 任何事物的发展都表现出螺旋上升的特性 技术的 进步也不例外 数据关系的表示从最初的网状 层次发展到关系 关系数据库的简洁 方便给人们留下了深刻的印象 但是单纯的关系很难描述数据之间本来的联系 x m l 的 出现为数据之间联系的描述提供强有力的工具 x m l 的层次性正好反映了数据的本来联 系 因此 只有把x m l 和关系数据库结合起来才能描述事物的本来面目 另外 论文的 技术先进性 不仅表现在数据模型表示的先进性 还表现在整个体系架构的先进性 工 作流技术飞速发展是在w e b 的出现后发生的 因此 不基于w e b 的工作流产品是没有生命 力的 基于x m l 和关系结构的轻盈级工作流引擎 2 工作流引擎 整个工作流引擎完全由j a v a e j b 实现 采用c s 及b s 结构 是基于x m l 及关系结构 的轻量级工作流引擎 与其他基于关系结构的轻量级工作流引擎不同是 该工作流引擎 充分利用了功能强大的x m l 语言 充分利用了x m l 的层次性 使得工作流引擎使用较少的 关系数据库表就能实现其强大的功能 使得整个工作流引擎结构更加简洁 层次更加清 晰 易于实现 该工作流引擎的实现遵循e j b 规范 可部署在任何一个j 2 e ej 报务器上 充分发挥j 2 e e 的分布式 跨平台特性 极易于构建基于w e b 的应用 同时 也易于和系 统中的其他应用进行无缝集成 2 1 工作流管理的相关基本概念 工作流的概念起源于生产组织和办公自动化领域 他是针对日常工作中具有固定程 序的活动而提出的一个概念 目的是通过将一个具体的工作分解成多个任务 角色 通 过一定的规则和过程 约束这些任务的执行和监控 达到提高企业生产经营管理水平 在2 0 世纪8 0 年代中期发展起来的工作流技术为企业更好地实现经营目标提供了先进的 手段 9 0 年代随着计算机和网络技术的发展 该技术得到了快速地发展 1 9 9 3 年工作流管理联盟成立 制定了相关的系列标准 同时给出了工作流的定义是 工作流是一类能够完全或者部分自动执行的经营过程 它根据一系列过程规则 使文 档 信息或任务能够在不同的执行者之间进行传递与执行 当然 还有其他的一些定 义 但基本上都说明 工作流是经营过程的一个计算机实现 雨工作流管理系统则是这 一实现的软件环境 使用工作流来作为经营过程的实现技术 首先要求工作流系统能够反映经营过程的 如下几个方面的问题 经营过程是什么 活动 任务 怎么做 条件 规则 由谁 来做 组织 角色 用户 做的怎样 监控 2 2 与x m l 关系结构及轻量级相关的一些讨论 目前 软件开发的一个普遍现象是软件产品的规模和功能越来越向大型化和复杂化 的方向发展 而本文所提出的基于x m l 和关系结构的轻量级工作流引擎却强调其小型化 的特征 许多工作流产品从数据存储到运行环境往往都有自己的一整套独特的体系结 构 它们除了具备了工作流的基本功能外 还同时宣称可以任意集成第三方的应用 甚 至有的还嵌入了程度不等的应用开发的功能 但是 开发人员真正需要的可能并非这些 复杂特性 基于x m l 和关系结构的轻量级工作流引擎 2 2 i 工作流设计的中心 所谓工作流的设计中心指的是由谁来定义和开发工作流的应用 那么 工作流的设 计中心到底应该在哪里 p a t r i c i as e y b o l dg r o u p 的r o n n im a r s h a k 曾经对这个问题进 行过一些有益的论述 1 完全由实际的业务人员来负责工作流应用的定义和开发 一些工作流产品也大 力提倡这一点 的确 实际的业务人员对自己的业务规则最为熟悉 但他们对计算机技 术了解不多 因此 这只适合简单的工作流应用 一旦业务逻辑比较复杂尤其是面对关 键业务时 要他们将业务逻辑转换为工作流并且自己定制相应的应用逻辑 则非常困难 2 业务人员和专业技术人员相结合 工作流产品提供图形化的界面供业务人员 或者结合专业人员 定义业务逻辑和规则 具体的应用逻辑则由专业开发人员完成 应用的开发可以利用工作流所提供的集成开发工具 也可以利用第三方的开发工具 可 能存在的问题是如果使用工作流产品所集成的开发工具的话 则其所提供的开发应用的 功能是否足够 另一方面 如果使用第三方的开发工具的话 又该如何实现工作流机制 的集成 3 还有一种观点认为 要建立真正复杂 灵活而且可扩展的应用系统 必须将工 作流的开发融合到信息系统的开发过程中 从整个信息系统的角度来定义工作流中的业 务规则 任务流转以及相关角色 甚至更有一种极端的观点认为应该把业务规则硬编码 到具体的应用中 如果业务规则比较稳定的话 这种方法可以得到非常紧凑的应用系统 其缺点是系统的重构和复用非常困难 我认为 对于关键业务 第2 或者是第3 种模式是可行的 但必须有一个恰当的工 作流引擎的支持 否则会显著地增加实际开发的难度和工作量 2 2 2 为什么要基于x m l 所谓基于x m l 的工作流弓l 擎是指工作流引擎中的关键数据模型 如信息模型 是由 x m l 语言来描述的 x m l 以一种开放的自我描述方式定义数据结构 在描述数据内容的同 时能突出对结构的描述 从而体现出数据之间的关系 工作流引擎的数据模型中的信息 模型部分具有很强的结构性 层次性 用单纯的关系很难描述清楚 即使能够描述清楚 了 也存在很多冗余信息 因此 工作流引擎的核一t l 部分最适宜用x m l 来描述 做到关 系与层次的有机结合 2 2 3 为什么要基于关系结构 所谓基于关系的工作流引擎指的是工作流引擎中的数据模型 即机构模型和信息模 型 全部通过关系结构来表达 从技术角度来说 使用关系结构来表达工作流引擎中的数据模型可以降低工作流引 擎丌发过程中的技术难度和工作量 具体表现在 1 与工作流引擎相关的各种控制 数据 包括业务活动的状态数据 可以存储在数据库系统中 2 与此相关的数据的 基于x m l 和关系结构的轻量级工作流引擎 完整性可以由数据库管理系统来维护 3 利用关系结构可以方便地定义工作流引擎 中的各种数据格式和数据结构 从开发应用系统的角度来看 在同一数据库环境下为开发者提供一个基于关系结构 的工作流引擎 并且如果这个工作流引擎所提供的功能可以方便地嵌入到应用的开发环 境中 则可以降低开发应用的难度 这是因为 1 针对关键业务的应用系统通常会 采用一个常规的关系数据库系统作为后台的支撑 2 应用系统的开发者往往会采用 一种他们所熟悉的并且适合此数据库系统的前端开发工具来开发具体应用 这些前端开 发工具一个显著特征是开发功能强大 但一般不具备工作流机制 因此 采用基于关系 结构的工作流引擎很容易与应用的开发环境做到无缝的集成 2 2 4 为什么要采用轻量级 轻量级的工作流引擎指的是从够用 灵活和低成本的设计原则出发 不追求工作流 引擎的功能的完备和复杂 只是实现其中必不可少的功能和特征 在设计工作流引擎时 主要考虑对其数据模型的定义和解释 活动之间的协调以及任务的分配和控制等功能提 供支持 而不支持诸如提供内建 b u i i t i n 的应用开发工具 对应用数据的定义和完 整性维护 完善的异常处理以及长事务控制等功能 我们之所以采用 轻量级 这一特征来刻画工作流引擎主要出于如下考虑 1 许多现有的工作流产品都在不同程度上提供了对外部工具的集成功能 部分产 品还提供了基于表单的应用逻辑的定制和开发环境 但是 外部工具的多样性和复杂性 决定了对外部工具的集成难以做到无缝 而工作流产品内建的开发工具除了与流行的开 发工具不兼容外 其开发功能往往都比较简单 因此 对于简单的应用 例如公文流转 订单的审批等 这些产品是合适的 但是 如果是开发关键业务的应用系统 特别是 行业应用系统 现有工作流产品所能提供的开发功能是远远不够的 2 许多针对d b m s 的开发工具提供了极强的应用开发手段 但是这些开发工具往往 不具备对工作流的机制的支持 而现有的工作流产品由于其出发点不同 很难与其他开 发环境有机地融合在一起 因此开发人员往往苦于找不到一套合适的工作流支撑系统来 开发具有工作流特征应用 3 具有工作流特征的应用的形态千变万化 要想在工作流系统中对不同的应用 包括应用数据 进行统一的表示往往不遂人意 利用这种所谓灵活的工作流系统开发 出来的应用在实际运作过程中反而表现不灵活 因此 另外一种相反趋势是 应用的逻 辑仍旧由专用的应用开发工具去完成 工作流引擎只管理相关的控制数据 对应用数据 只提供必要的关联手段将其与控制数据联结在一起 4 目前已经有许多中间件产品 各种应用服务器 t p 等 提供了对应用事务包括 长事务的控制能力 对事务控制有特殊需求的应用系统可以使用这些产品 新西兰m a s s e y 大学的t a g g 等学者对工作流引擎的描述曾经使用过 轻量级 这一术 语 但其侧重点在于如何构造一个 瘦客户端 我们的侧重点则是设计一个充分支持 工作流特征的小型内核 它可以无缝地嵌入到传统的应用开发环境中 综上所述 基于 h f l 和关系的轻量级工作流引擎是这样一种产品 它可以在传统的 关系数据库基础之上利用x m l 定义工作流数据模型 它利用e j b 实现工作流引擎的控制逻 q 基于x m l 和关系结构的轻量级工作流引擎 辑 它提供了一系列比较完备的a p i s 应用的开发者可以将这些a p i s 嵌入到自己的应用 系统中从而实现具有工作流性质的信息系统 基于x m l 和关系的轻量级工作流引擎的适 用对象并非应用系统的最终用户 而是利用专用开发工具构造相应应用系统的专业开发 人员 它为开发人员提供了驱动工作流的机制的支持 从而构造出各种灵活的具有工作 流特征的应用系统 其具体表现形式为 一套表结构 一组建模工具和一系列供实际应 用调用的a p i s 2 3 实现的功能 该工作流引擎实现以下规范 1 1 子流程 n e s t e d 一个流程可以调用其他子流程 该子流程可以是不同组织中的流程 便于流程共享与 权限划分 2 同步 异步 s y n c h r o n o u s a s y n c h r o n o u s 一个流程调用其他子流程 可以以同步的方式 即在子流程执行期间 主流程一直等 待其返回 子流程返回后 主流程从调用点继续执行 也可以以异步方式 即主流程调 用子流程后 不等待其返回 继续执行 此时主流程和子流程同时执行 工作流子流成的异步执行 图2 1 工作流程的异步执行 f i g u r e2 la s y n c h r o n o u ss u bw o r k f l o w 苎三兰坚 塑差墨堕塑塑鳖里堡三堡鎏 兰 一 以下为工作流子流程的同步执行 图2 2 上作流程的同步执行 f i g u r e2 2s y n c h r o n o u ss u bw o r k f l o w 3 事件 e v e m 通过接收一个x m l 消息触发的等待状态 事件触发后 流程继续进行 事件主要用于同步 同步点 一一一一 图2 3 同步 f i g u r e2 3s y n c h r o n i z a t i o n 4 变量 v a r i a b l e 变量用于保存运行时数据和从外部获得的数据 例如 j a v a 组件和收到的x m l 文 档 也可通过工作流活动设定的常量 在工作流中 变量有多种用途 例如 在判定节 点中判定条件 或保留工作流运行时信息 5 业务操作 b u s i n e s so p e r a t i o n 工作流引擎可以调用其他业务操作 自动记录流程中的实时信息 2 4 数据模型 基于x m l 语言及关系结构的轻量级工作流引擎的数据模型包括机构模型和信息模 l l 基于x m l 和关系结构的轻量级工作流引擎 型两部分 机构模型描述的是企业或者部门的组织机构关系 及隶属其内的用户 权限 和角色等 信息模型则定义工作流引擎中所用到的各种控制数据 通过数据模型 可以 方便地描述关键业务的业务规则 活动的依赖关系以及任务的指派等特征 它们都通过 统一的关系结构及层次结构来定义 图2 4 给出了基于关系结构及x m l 语言的轻量级 工作流引擎的数据模型图 其中信息模型中所用的数据部分使用x m l 表示 参见x m l 定义部分 用来描述业务规则 只给出关键部分 2 4 1 机构模型 图2 4 工作流引擎数据模型图 f i g u r e2 4d a t am o d e lo f w o r k f l o we n g i n e 与机构模型相关的表主要有o r g u s e r r o l e u s e r i n o r g u s e r i n r o l e 表之间的关系已经在图中标出 下面将有重点地对每个表的作用及 其中的一些含义作出一些解释 基于x m l 和关系结构的轻量级工作流引擎 o r g 和u s e r 分别表示组织机构和用户 u s e ri no r g 则把用户和组织机构联 系起来 组织机构在整个工作流中起着重要的作用 把工作流定义 用户 角色和权限 组成一个可管理的单位 用户为执行相应组织机构中的工作流的实体 某用户属于该组 织机构 是该用户能够执行该组织机构内的工作流的必要条件 o r g 和u s e r 的定义为全局唯一 一个用户可属于一个或多个组织 r o l e 进一步扩展了机构模型的建模能力 关系u s e ri nr o l e 在u s e r 和 r o l e 之间建立起来关联 在机构模型中引入角色这一概念主要是为了增强任务指派的 能力 在同一个组织内 角色定义是唯一的 一个用户可属于一个或多个角色 流程定义中的每个任务既可指派给某一个u s e r 又可指派给某一个r o l e 当某个任 务指派给某个r o l e 时 具有该r o l e 的用户 即用户是该r o l e 的成员 可执行该任务 从而增加了任务指派的灵活性 组织 用户和角色之间的关系 见下图 罱盘 舶僚 魏位 蒋 q 稿辘 图2 5 组织机构 用户和角色关系图 f i g u r e2 5o r g a n i z a t i o n u s e ra n dr o l er e l a t i o n 基于x m l 和关系结构的轻量级工作流引擎 在该例子中 有两个组织 大连通信和沈阳通信 每个包含他们的自己的角色复核 资源确认和费用确认 表2 i 机构 角色及用户关系 t a b l e2 lo r g a n i z a t i o n u s e ra n dr o l er e a t i o n 2 4 2 信息模型 信息模型的核心是业务活动及其规则的表示 不同的工作流引擎对此有不同的处理 方式 是整个工作流引擎设计的核心 本工作流引擎使用x m l 对该部分进行表示 其 x m l 样例在下面给出 与信息模型相关的表结构主要有业务活动及规则的模板定义 w o r k f l o w d e f 工作流所属组织的定义w o r k f l o w o r g 工作流实例定义 i n s t a n c e 包括工作流运行过程中的变量值 任务列表及汇聚状态等1 已完成任务及 下一步需要进行的任务列表定义t a s k 以及日志信息s t a t s 节点类型 每个工作流由若干个节点构成 每个节点在同一个工作流中以节点l d 来唯一表示 每个节点同时指明其节点类型 本工作流引擎对节点类型作如下分类 s t a r t 开始节点 不针对具体业务环节 工作流中的第一个节点 其元素大 致如下 1 2 3 t r u e l f a l s e t r u e l f a l s e t r u ej f a l s e t r u e l f a l s e 2 1 4 基于x m l 和关系结构的轻量级工作流引擎 元素解释如下 i d 一节点i d r u n w a y 一运行方式 当运行方式为m a n a u l 时 该流程 为主流程 通过系统提供接口启动执行 当运行方式为c a l l e d 时 该流程为子流程 只 能通过其他流程调用执行 当运行方式为e v e n t 时 该流程为由事件触发的流程 当收 到该工作流定义的特定事件时 启动该流程 当运行方式为t i m e d 时 该事件有一个定 时器来触发 当到达特定时间时 该流程被启动 n e x t s 一流程中下一个偿1 节点 a c t i o n s 一 调用系统中预定义的一个 组 活动 如变量赋值 任务指派 调用其他应用等 是系统 中预定义的活动 参见2 5 4 系统a c t i o n d o n e 结束节点 不针对具体业务环节 表明相应流程的结束 其元素大致 如下 1 2 3 元素意义同前 t a s k 任务节点 任务节点对应实际的业务环节 该任务既可自动执行 又 可与客户交互执行 视其中的设置而定 原则上为可交互的环节 因为自动执行的环节 可作为其中的a c t i o n 活动来执行 其元素大致如下 1 2 3 n a m e 4 5 6 元素解释如下 n a m e 节点名称 a c t i v a t e d 该任务执行时 需要执行的a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论