




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉科技大学硕士学位论文第1 页 摘要 工作流管理系统是实现计算机辅助协同工作的工具,能够实现工作流程的全部或者部 分自动管理功能。它不仅便于工作的规范化,而且便于人员与资源的合理配置、工作流流 程的监督与审查并提高工作效率。工作流引擎作为工作流管理系统的核心,是实现工作流 管理系统的基础,吸引了来自研究机构与产业界广泛地关注。 本文首先介绍了工作流技术的发展与研究现状以及一些相关背景,然后介绍工作流管 理联盟所提出的工作流管理系统的概念和体系结构以及工作流的参考模型,接着介绍了实 现工作流引擎的j 2 e e 相关技术,包括较为流行的s p r i n g 框架、h i b e r n a t e 框架和在开发过 程中经常用到的几种设计模式。 本文从分析工作流引擎的设计目标和主要实现的功能出发,叙述了工作流过程定义的 元模型,过程与活动的状态转换和工作流运转模型以及本文所用到的过程定义语言,然后 提出一种基于轻量级j 2 e e 框架的工作流引擎的体系结构,采用开源框架s p r i n g + h i b e r n a t e 作为引擎的架构,设计与实现工作流引擎中各个功能,并给出了引擎关键技术的实现,最 后用本文所设计的工作流引擎实现一个工作流管理系统的原型。 关键词:工作流;工作流管理系统;工作流引擎;工作流模型。 a b s t r a c t w o r k f l o wm a n a g e m e n ts y s t e mi sat o o lt or e a l i z ec o m p u t e rs u p p o r tc o l l a b o m t i o nw o r k a n dc a nr e a l i z et h em a n a g e m e n to fw o r k f l o we n t i r e l yo rp a r t i a l l ya u t o m a t i c a l l y i tn o to n l v b e n e f i t st ot h es t a n d a r d i z a t i o no fw o r k ,b u ta l s oi sc o n v e n i e n tf o rr e a s o n a b l e d i s p o s i t i o no f p e r s o n n e la n dr e s o u r c e ,t h es u p e r v i s i o n ,e x a m i n a t i o no fw o r k f l o wt o i m p r o v ew o r k i n g e f f i c i e n c y w o r k _ f l o we n g i n ei st h ec o r eo fw o r k f l o wm a n a g e m e n ts y s t e ma n dt h ek e yt or e a l i z e aw o r k f l o wm a n a g e m e n t s y s t e m i th a sd r a w no ne x t e n s i v ea t t e n t i o nb yt h er e s e a r c hi n s t i t u t i o n s a n d i n d u s t r yf i e l d s t h i sa r t i c l ef i r s t l yi n t r o d u c e st h ed e v e l o p m e n to ft h ew o r k f l o wt e c h n o l o g y ,t h er e s e a r c h p r e s e n ts i t u a t i o na sw e l la ss o m er e l e v a n tb a c k g r o u n d ,t h e ni n t r o d u c e st h ec o n c e p ta n dt h e a r c h i t e c t u r eo ft h ew o r k f l o wm a n a g e m e n ts y s t e m ,w h i c hw o r k f l o wm a n a g e m e n tc o a l i t i o n p u t s f o r w a r d ,b e s i d e si n t r o d u c e st h ew o r k f l o wr e f e r e n c e m o d e l s e c o n d l y , i ti n t r o d u c e sj 2 e e r e l e v a n tt e c h n o l o g yw h i c hc a nr e a l i z et h ew o r k f l o we n g i n e ,i n c l u d i n gm o r ep o p u l a r s p r i n g f r a m e w o r k ,h i b e r n a t ef r a m e w o r ka n dm a n yd e s i g np a t t e r n sw h i c ha r eo f t e nu s e di nt h e p r o i e c t t h i sa r t i c l e a n a l y s e st h ed e s i g ng o a l sa n dm a i nf u n c t i o n so ft h ew o r k f l o we n g i n e d e s c r i b e st h eb a s i cp r o c e s sd e f i n i t i o nm e t a - m o d e l ,t h ec o n v e r s i o no fp r o c e s sa n da c t i v i t va n d t h er u n n i n gm o d e lo fw o r k f l o w a f t e r w a r d s ,i tb r i n g sf o r w a r da a r c h i t e c t u r eo ft h ew o r k i l o w e n g i n eb a s e do nl i g h t w e i g h tj 2 e ef r a m e w o r k ,a n du s et h es p r i n ga n dh i b e r n a t ef t a m e 、v o r ka s t h es t r u c t u r eo ft h ee n g i n e ,d e s i g n st h ef u n c t i o n so fw o r k f l o w e n g i n ea n dr e a l i z e st h e m i nt h e s a m et i m e ,i tp u t sf o r w a r dt h er e a l i z a t i o no ft h e m a n a g e m e n ts y s t e mi sr e a l i z e db yt h ee n g i n e k e yt e c h n o l o g y f i n a l l y , as i m p l ew o r k f l o w k e y w o r d s :w o r k f l o w , w o r k f l o wm a n a g e m e n ts y s t e m ,w o r k f l o we n g i n e ,w o r k f l o wm o d e l 武汉科技大学硕士学位论文第1 页 第一章绪论 1 1 课题研究的背景与意义 目前,大部分企业的日常办公都是由两个或两个以上的员工共同参与的,比如人事处 理流程、请假流程、生产流程、业务流程、各类行政申请流程、财务审批流程、质量控制 及客户服务流程等。一项工作,经过一个步骤处理后再转往下一站的连续步骤,称之为“工 作流”。工作流就是业务流程的计算机化或自动化。企业或组织内有许多繁琐复杂的流程, 这些流程构成了企业或组织的日常运营活动。通过现代的技术手段将这些流程自动化,并 对其进行有效地管理以提高企业运作效率,降低成本,增强规范和标准化就是工作流自动 化管理软件需要解决的问题。 工作流技术是实现企业业务过程建模、业务过程仿真分析、业务过程优化、业务过程 管理与集成,最终实现业务过程自动化的核心技术1 1 1 。对企业利用工作流技术进行业务过 程的建模和深入分析不仅可以规范企业的业务流程,发现业务流程中的不合理环节,进而 对企业的业务流程进行优化和重组,而且所建立的业务流程模型本身就是企业非常重要的 知识库和规则库,可以成为指导企业实施计算机管理信息系统的模型,因此意义十分重大。 工作流管理技术作为一种过程建模和流程管理的核心技术,可以和其它应用系统有效 结合,生成符合企业需求的各种业务管理系统,如办公自动化系统、项目管理软件、产品 数据管理系统、客户关系管理系统、供应链管理系统、企业资源计划系统等。这些采用工 作流技术作为核心开发的业务管理系统最大的特点是它们具有高度的灵活性,可以按照企 业的具体需求,快速灵活地生成应用软件系统,并且在客户业务流程发生变化时,能迅速 的进行重组来满足客户的需求。 工作流管理系统的功能包括工作流过程定义的建模功能和工作流实例运行的控制功 能。工作流引擎是整个工作流管理系统的核心,它在工作流实例运行阶段需要解析建模阶 段的过程定义;控制流程实例的创建、激活、挂起、终止等状态的变迁;根据变迁点及条 件确定流程的流向;控制流程参与者的登录及注销;主动将任务列表中的相关任务发给相 应的流程参与者;提供外部应用程序所需的数据,并传递给外部应用程序;传递相应数据 给管理、监控工具;引导确定型及不确定型流程等。 工作流引擎是为工作流实例提供运行时执行环境的软件服务器。传统工作流引擎都是 工作流管理系统不可分割的一部分,每次开发一个工作流管理系统都是从零开始,即便对 于一个具有相当丰富开发工作流经验的工程师来说也是一项艰苦的工作,因此将工作流引 擎必须实现的功能提取出来,封装成一个轻量级的工作流引擎,可以提高引擎的适应性、 复用性和灵活性。 当前,w e b 技术越来越多地应用于企业应用,采用w e b 技术已经成为新一代工作流 管理系统的主要特征,基于w e b 的工作流管理系统也成为了工作流技术的一个研究方向 第2 页武汉科技大学硕士学位论文 1 2 2 1 。j a v a 语言以其平台独立、安全面向对象等特性,j a v a b e a n s 作为j a v a 的轻量级组件技 术,获得业界越来越广泛应用。因此,采用j 2 e e 技术设计的工作流引擎可以很好地满足 这些需要。 1 2 国内外发展现状与不足 通过对国内外新技术的分析和对一些技术资料的总结,未来工作流的研究热点将着重 于以下几个方面: 1 过程建模理论与建模方法。研究如何清晰、准确地表示实际应用中的过程,特别 是研究如何以形式化的方法表示过程模型。如采用p e t r i 网方法来表示工作流模型、定义 工作流过程描述语言( 尤其是形式化语言) ,这方面的研究和发展能够支持事务的工作流 模型,可以从根本上提高工作流管理系统的正确性和可靠性。因此,关于事物工作流模型 的研究也得到了充分的重视。 2 分布式工作流的实现。在通常情况下,企业的应用一般都是运行在分布式环境上, 因此相应的工作流引擎也应该采用在分布式环境下的分布式结构。目前已经开发出了许多 分布式工作流管理系统,如i b m 的e x o t i a 、佐治亚大学计算机系开发的m e t o r 等。但是 仍然有许多问题需要进行深入的研究,如工作流模型实例到每个执行工作流引擎的分解问 题、分布式环境下的可靠性问题,分布式系统的效率和鲁棒性问题等。 3 基于w e b 的工作流。随着互联网的迅速发展和普及,许多工作流产品开始支持基 于w e b 的应用。支持w e b 的优势不仅在于不需要安装特定的客户端软件,而且便于系统 资源的统一管理。这类产品虽然起步较晚,但是发展迅速,其市场前景十分看好。 4 工作流融入事务管理。在工作流管理中融入事务管理的概念和模型方法可以显著 地提高工作流管理系统处理大规模业务应用的能力。事务管理是数据库技术中的一个重要 概念。每个事务具有原子性、一致性、独立性和持续性。事务管理充分保证了数据操作、 数据存储系统管理的正确性、可靠性和易管理性。目前这个工作已经得到许多研究人员的 重视。 5 工作流互操作性。互操作的研究主要包括工作流模型的互操作和工作流引擎的互 操作。模型互操作包括研究单个模型或多个模型内部中活动的可互操作性以及如何检测、 分析产生的冲突,并提供可行的解决方案。引擎互操作则包括系统内部协议定义、程序接 口、数据共享的可互操作以及工作流管理系统如何嵌入到其他业务系统中或如何实现与其 他异构系统的连接。工作流的互操作技术是目前研究中的一大难点。 6 工作流的稳定性。对于一个复杂的应用系统,出现异常和错误是非常正常的情况, 对于工作流管理系统不仅要求它在正常情况能够发挥作用,更重要的是要求它能够灵活的 处理各种异常情况,并且在某个结点发生错误时能够保证整个系统不会发生崩溃。目前大 多数工作流管理系统都提供了异常情况处理策略、系统容错能力、故障恢复策略、数据保 护及数据恢复方法。 目前工作流的应用虽然随着各种采用新技术的系统的推出得到越来越广泛的应用,但 武汉科技大学硕士学位论文第3 页 是总地来说人们对工作流管理系统的应用还是执一种非常谨慎的态度,根本原因在于当前 的工作流管理系统存在各种各样的缺陷与不足,主要有以下两点: 1 工作流模型描述方面。缺乏一种支持过程定义、过程演进以及过程分析的形式化 的数学模型。工作流模型的核心是对过程的定义,包括组成过程的基本活动以及活动之间 的时序关系。目前的各种工作流模型,大部分都是从直观感觉出发,以图形语言或者文本 语言来定义工作流过程。这种定义的方法实际上仅仅是处于用户层上,即对用户而言是比 较理想的方式,但并不利于实际系统的实现,也无法对工作流的本质特征进行描述,更谈 不上对过程的分析与评价。由于缺乏理论层的模型支持,使得工作流在应用的许多关键特 性上无法得到保证,包括柔性定义、过程重用、事务管理、异常处理等,这些都大大限制 了工作流在企业应用中的推广。 2 工作流执行方面。缺乏一个标准化的集成框架来支持对企业常用的分布式应用的 集成。企业在应用工作流进行业务流程的运作时,最为关心的就是工作流系统能否与企业 原有的各个应用系统( 比如制造资源计划系统、计算机辅助设计系统等) 很好地集成起来, 使它们成为一个完整的业务流程当中有机的组成部分,而不是像原来那样处于一种“孤岛 状态。但目前来看,工作流应用中的一个很大的瓶颈就是工作流管理系统所能支持的企业 应用太少,在集成的方式方法上还没有统一的标准,很大程度上要受到外部应用的限制。 因此,在工作流系统与企业应用间需要建立一个性能良好的“粘合层”,最好是独立于不 同企业应用的一个标准的集成框架,这将极大地提高工作流系统对企业应用的适应性。 1 3 本文的主要工作 本论文主要研究工作就是在工作流管理联盟提出的工作流过程定义元模型的基础上, 通过使用关系数据库建立一种较为简单的工作流模型,并遵循工作流管理联盟提出的参考 模型保证了引擎理论上的正确性,利用目前最流行的j 2 e e 轻量级框架s p r i n g 和基于对象 关系映射的数据持久化h i b e r n a t e 两种技术,使得引擎在实践上具有轻量级的良好性能。 本论文通过对工作流技术以及j 2 e e 技术的研究,对引擎的体系结构及各个模块进行了 深入的讨论。该引擎充分实现工作流引擎组件的可扩展性、可移植性、复用性和灵活性的 要求。 文章的章节安排如下: 第一章,主要介绍了工作流的研究背景和国内外的研究现状与不足,最后说明了论文 的主要研究内容问题。 第二章,首先介绍了工作流和工作流管理系统的概念和特点的基础上,阐述了工作流 管理系统的体系结构以及工作流参考模型的组成。 第三章,首先简要地介绍了一下j 2 e e 体系结构,然后具体介绍了两种比较流行j 2 e e 框架轻量级j 2 e e 架构s p r i n g 和数据持久化框架h i b e r n a t e ,最后介绍了几种开发过程 中常用的设计模式。 第四章,首先介绍本文所设计的工作流引擎的设计目标,然后描述工作流引擎的三个 第4 页武汉科技大学硕士学位论文 主要的功能,解析过程定义、控制状态转换和选择路由功能,接着根据这三个功能分别讲 述了工作流过程定义的元模型,过程与活动的状态转换和工作流运转模型,最后提出了本 文所用到的过程定义语言。 第五章,从引擎的整体结构入手,详细介绍了工作流引擎的数据模型和工作流引擎持 久层设计,以及工作流引擎主要功能模块的设计实现,并给出引擎的关键技术,最后利用 本文设计的工作流引擎实现了一个工作流管理系统的原型。 第六章,总结了全文的研究工作,归纳了引擎的实现情况和优缺点并对下一步的工作 提出了展望。 1 4 本章小结 本章首先分析了工作流的研究背景及其意义;其次分析了国内外的研究现状并指出现 有研究成果的不足;然后总结了本文所做的主要研究工作;最后给出了本文的整体组织结 构。 武汉科技大学硕士学位论文第5 页 2 1 工作流的概述 第二章工作流技术概述 工作流起源于生产组织和办公自动化领域。它是针对日常工作中具有固定程序的活动 而提出的一个概念,目的是通过将一个具体的工作分解成多个任务、角色,通过一定的规 则和过程,约束这些任务的执行和监控,达到提高企业生产经营管理水平。在2 0 世纪8 0 年代中期发展起来的工作流技术为企业更好地实现经营目标提供了先进的手段。9 0 年代 随着计算机和网络技术的发展,该技术得到了快速地发展,特别是在生产制造业领域,结 合先进的企业资源计划应用系统得到较好地应用。 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 ) 的成立标志着工 作流技术开始进入相对成熟的阶段。为了实现不同工作流产品之问的互操作,w f m c 在 工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了相关的一系列标准。 工作流管理联盟给出了工作流的定义是:工作流是一类能够完全或者部分自动执行的经营 过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执 行。 当然,还有其他的一些定义,但基本上以上定义说明了这样一个问题,即工作流是经 营过程的一个计算机实现,而工作流管理系统则是这一实现的软件环境。使用工作流作为 经营过程的实现技术首先要求工作流系统能够反映经营过程的如下几个方面的问题:即经 营过程是什么( 有哪些活动、任务组成,也就是结构上的定义) 、怎么做( 活动间的执行 条件、规则以及所交互的信息,也就是控制流与信息流的定义) 、由谁来做( 人或计算机 程序,也就是组织角色的定义) 、做得怎样( 通过工作流管理系统对执行过程进行监控) 。 因此,我们可以说工作流就是一种反映业务流程的计算机化的模型,它是为了在先进计算 机环境支持下实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的 业务模型。 2 2 工作流管理系统的概述 2 2 1 工作流管理系统定义 w f m c 给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系统,它 完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的 执行。 通常,工作流管理系统指运行在一个或多个成为工作流引擎的软件上的用于定义、实 现和管理工作流运行的一套软件系统,它和工作流执行者( 人、应用) 交互,推进工作流 实例的执行,并监控工作流的运行状态。但是,它不是企业的业务系统,很大程度上是为 第6 页武汉科技大学硕士学位论文 企业的业务系统运行提供一个范围比较大的软件支撑环境。在工作流管理系统的支撑下, 通过集成具体的业务应用软件和操作人员的界面操作,才能良好地完成对企业经营过程运 行的支持。 工作流管理系统可以用来定义与执行不同覆盖范围( 单个工作者、部门、全企业、企 业间) 、不同时间跨度( 分钟、小时、天、月) 的经营过程。按照经营过程以及组成活动 的复杂程度的不同,工作流管理系统可以采取许多不同的实施方式。虽然不同的工作流管 理系统具有不同的应用范围和不同的实施方式,但它们还是具有许多共同特性。工作流管 理系统一般都提供以下三种功能,如图2 1 所示: 过程 图2 1 工作流管理系统的特性 1 建立阶段功能:主要考虑工作流过程和相关活动的定义和建模功能。在这一阶段 要通过使用分析、建模和系统定义技术将一个现实世界的业务过程转换成可用计算机处理 的形式化定义。这个形式化定义有时被称为过程模型、过程模板或过程定义。过程定义的 表达形式可以是文字形式,图形形式或一种形式化的语言符号。 2 运行阶段的控制功能:在一定的运行环境下,执行工作流过程,并完成每个过程 中活动的排序和调度功能。在完成了过程模型的定义后,所生成的工作流模型将由工作流 执行服务软件进行实例创建并控制其执行过程。工作流执行服务对使用工作流模型描述的 过程进行初始化、调度和监控过程中每个活动的执行,在需要人工介入的场合完成计算机 应用软件与操作人员的交互。 3 运行阶段的人机交互功能:实现各种活动执行过程中用户与i t 应用工具的交互。 在工作流管理系统的运行过程中,人和应用是完成整个业务过程的主体。工作流定义工具、 工作流执行服务和任务表管理都是为完成业务过程和支持人员工作提供的运行环境。具体 来说,在整个工作流执行过程中,不同的操作人员需要完成的工作分为模型定义、人机交 互、系统运行状态监控。 2 2 2 工作流管理系统体系结构 为了能够更好的支持企业经营过程建模、分析和实施,适应世界市场的多元化趋势, 武汉科技大学硕士学位论文第7 页 工作流管理联盟提出了有关工作流管理系统的一些规范,定义了工作流管理系统的结构及 其与应用、管理工具和其它工作流管理系统之间的应用编程接口。w f m c 提出的工作流 参考模型的体系结构图,如图2 2 所示。 图2 2 工作流管理系统的体系结构图 这个参考模型的体系结构给出了抽象的工作流管理系统的功能组成部件和接口,它能 够满足工作流管理系统和产品所应该具有的主要功能特性,可为实现工作流产品之间的互 操作提供公共的基础。 从图2 2 可以看出,工作流管理系统主要有四个模块组成,这四个模块分别是: 1 工作流建模工具:就是我们通常所说的工作流设计器,主要用于图形化流程抽象 表示,用不同的元素符号代表活动或参与者以及其他相关因素,用有向线段来表示控制流。 2 工作流引擎:用于维护和解析流程的运行。 3 工作流执行服务器:为工作流引擎的正确运行提供辅助性服务。 4 工作列表( w o r k l i s t ) 处理器:对外提供接口,外部应用通过工作列表处理器来 获取和管理工作项( w o r k l t e m ) 。 2 3 工作流参考模型 为了实现工作流技术的标准化和开放性,从而支持异构工作流管理系统与产品之间的 第8 页武汉科技大学硕士学位论文 互操作,并且使得不同的工作流管理系统之间能够进行信息交换和协作,w f m c 提出了 工作流参考模型【3 1 ,如图2 3 所示。 图2 3 工作流参考模型 工作流参考模型中包括了以工作流执行服务为核心的五大构件以及构件之间交互的 五个接口。下面分别介绍五大部件及五个接口的主要功能: 模型中的五大部件: 1 工作流执行服务:它为系统提供执行时服务,是工作流管理系统的核心,由一个 或多个工作流引擎组成。工作流引擎是一个为工作流实例的执行提供运行服务环境的软 件,是工作流执行服务的核心。 2 过程定义工具:它主要负责分析、建模、描述业务过程以及对业务过程的建档, 给出工作流程的定义,并以一定的数据格式提供给工作流引擎解释。 3 管理监控工具:它负责对工作流的流动状况进行监视,并提供一系列的管理功能, 实现安全性、过程控制和授权操作等方面的管理。 4 工作流客户应用:它由用户操作和工作项列表管理器共同完成。工作项列表是指 分配给一个特定用户( 或一组用户) 处理的由工作项组成的队列。工作项列表管理器是一 个软件模块,负责管理工作项列表,并完成与最终用户的操作进行交互。 5 应用程序:它是指提供了工作流引擎接口的应用程序,可以是本地应用,也可以 是远程应用。 模型中的五个接口: 1 接口1 :工作流执行服务和工作流建模工具间的接口,包括工作流模型的解释和 读写操作。 2 接口2 :工作流服务和客户应用问的接口,约定所有客户应用与工作流服务间的 功能操作方式【1 0 】。 3 接口3 :工作流引擎和直接调用的应用程序间的接口。 4 接口4 :工作流管理系统间的互操作接口。 5 接口5 :工作流服务和工作流管理工具间的接口。 2 4 本章小结 本章在介绍了工作流和工作流管理系统的概念和特点的基础上,阐述了工作流管理系 统的体系结构以及工作流参考模型的组成。 武汉科技大学硕士学位论文第9 页 3 1j 2 e e 平台 第三章引擎相关技术 3 1 1j 2 e e 简介 目前,j a v a 2 平台有3 个版本,它们是适用于桌面系统的j a v a 2 平台的标准版( j 2 s e ) 、 适用于小型设备和智能卡的j a v a 2 平台m i c r o 版( j 2 m e ) 和适用于创建服务器应用程序 和服务的j a v a 2 平台企业版( j 2 e e ) 1 9 】。j 2 e e 可以理解为一个企业级的中间件体系或平 台,它为构造和管理、运行可伸缩的企业级业务应用提供了一系列的应用组件和一个运行 环境。 它具有以下主要特点: 1 基于j a v a 技术,继承了j a v a 技术的“一次编译,到处运行 的优点,不依赖具体 的操作系统,因此具有良好的可移植性; 2 基于多层次的分布式组件应用模型,指根据功能把应用逻辑分成多个层次,每个 层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关 的协议进行通讯,实现组件问的相互调用; 3 j 2 e e 是一种得到行业广泛支持的标准,它提供了一个多层次的分布式应用模型和 一系列开发技术规范,而规范的实现留给了厂商完成。因此,用户可以有多种选择,并且 还可以得到厂商的技术支持; 4 j 2 e e 应用编程模型要求开发者将自己的工作分成两类:商业逻辑和表示逻辑。其 余则由系统资源自动处理。不必为中间层管道进行编码,开发人员就能将更多的时间花在 商业和表示逻辑上。 3 1 2j 2 e e 体系结构 j 2 e e 是当前的主流架构之一,大多数企业采用j 2 e e 的结构设计和解决方案。j 2 e e 提供了中间层集成框架,用来满足可用、可靠及可扩展的应用需求。通过统一的开发平台, j 2 e e 降低了开发多层应用的成本和复杂度;支持e j b ;支持对现有应用程序的集成;提 高了异构环境的协同工作能力;支持打包和应用部署;增强了安全机制,提高了性能。 j 2 e e 也是开发分布式企业软件应用的平台,应用逻辑按功能划分为组件,各个应用 组件根据它们所在的层被分布于不同的物理结点。在j 2 e e 多层应用中,传统的两层结构, 被划分为了多层。一个多层应用能为不同的服务提供一个独立的层,典型的j 2 e e 架构分 为四层: 1 用户层,是用户与系统的接口逻辑,用来运行在用户机器上的w e b 浏览器。它的 功能是显示数据,用户可以输入数据或更新数据。通常使用h t m l 来构建客户层,因为 第1 0 页武汉科技大学硕士学位论文 通用浏览器都能正确地理解h t m l ,而且它能很好地分离业务逻辑和表示逻辑。 2 w e b 层,用来生成w e b 页面和w e b 页面中的动态内容,同时可以把客户端传来的 w e b 请求进行打包。使用j a v a 解决方案来构建w e b 层,可以联合使用s e r v l e t 和j s p , w e b 层通常在w e b 服务器中实现。 3 业务层,包含了企业w e b 应用的大部分业务逻辑,主要有:执行全部必须的计算 和动作、会话管理、客户层和w e b 层中数据访问的管理等。在j 2 e e 平台下,业务逻辑通 过e j b 组件进行实现,而业务逻辑层工作于应用服务器中。 4 企业信息系统层,它负责为企业的信息系统服务,包括数据库系统、事务处理系 统等。该层是j 2 e e 应用和非j 2 e e 应用的连接点。 e j b 技术是经典j 2 e e 架构中的核心技术,简单来说,它提供了业务组件的可移植性, 提供了一种可复用的j a v a 服务器端组件标准,e j b 组件负责接受、处理w e b 容器的客户 请求和连接,为企业提供了持久性、业务处理、事务处理和分布式处理能力。但是,正因 为如此,所有的数据访问都依赖于e j b ,业务逻辑通常在e j b 中实现,完全依赖于e j b 容器,系统的开销很大,一些负载都来源于e j b 。为了解决经典架构中一系列问题,j 2 e e 逐步流行起了非e j b 架构的“轻量级容器”。 3 2 轻量级框架s p r i n g 3 2 1s p r i n g 简介 s p r i n g 框架是一个流行的j 2 e e 开源产品。它提供了统一的应用架构方式、大量的中 间层模块,大大简化了传统j 2 e e 的开发模式。s p r i n g 实际上是( ( e x p e r to n e o n o n ej 2 e e d e s i g na n dd e v e l o p m e n t ) ) 一书中所阐述的设计思想的具体实现。在该书中,r o dj o h n s o n 倡导j 2 e e 实用主义的设计思想,并随书提供了一个初步的开发框架实现,而s p r i n g 正是 这一思想的更全面和具体的体现。 s p r i n g 框架是一个松耦合的框架,其耦合度被设计为最小,在各个层次上具体选用那 个框架取决于实际项目的需要和开发者的意愿。 s p r i n g 不仅解决了开发人员的实际问题,也促使他们养成良好的编程习惯,例如,接 口编程,减少耦合及提供测试。s p r i n g 提供良好的移植性,充分满足跨平台和非标准的应 用需要。s p r i n g 提供的是一种规范化的、成熟的、约束而又不失灵活的集成框架。 3 2 2s p r i n g 框架结构 s p r i n g 框架是一个分层的应用程序开发架构,它致力于在整个应用程序层面架构程 序,使程序的各个层面能协调一致,而不是互相制约,从而发挥出最大的能效,而且还能 整合现有的优秀的单层m v c ( m o d e lv i e wc o n t r o l l e r ) 框架( 如s t r u t s 框架或者w e b w o r k 框架) ,把它们组成连贯统一的架构。 s p r i n g 框架是由七个模块组成,如图3 1 所示。s p r i n g 模块构建在核心容器之上,核 武汉科技大学硕士学位论文第1 1 页 心容器定义了创建、配置和管理b e a n 的方式。组成s p r i n g 框架的每个模块或组件都可以 单独存在,或者与其他一个或多个模块联合实现。 图3 1s p r i n g 框架结构 1 c o r e 核心模块是框架中最为基础、重要的模块。它提供了控制反转和依赖注入特 性。这里的基础概念是b e a n f a c t o r y ,它提供对f a c t o r y 模式的经典实现来消除对程序性单 例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。 2 c o n t e x t 上下文模块构建于c o r e 核心模块之上,提供了一种框架式的对象访问方 法,有些像j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 注册器。c o n t e x t 模块的特性来自 于b e a n s 封装包,并添加了资源绑定,事件传播,资源装载的方式和c o n t e x t 的透明创建 等功能。 3 d a o ( d a t a a c c e s so b j e c t ) 提供了j d b c ( j a v ad a t ab a s ec o n n e c t i v i t y ) 的抽象层, 它可消除冗长的j d b c 编码和解析数据库厂商特有的错误代码。并且,j d b c 封装包还提 供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的 p o j o s ( p l a i no l dj a v ao b j e c t s ) 都适用。 4 o r m ( o b j e c tr e l a t i o n a lm a p p i n g ) 模块提供了常用的“对象关系”映射a p i s 的 集成层。其中包括j p a 、j d o 和h i b e r n a t e 。利用o r m 模块,可以混合使用所有s p r i n g 提供的特性进行“对象关系”映射,如前边提到的简单声明性事务管理。 5 a o p ( a s p e c to r i e n t e dp r o g r a m m i n g ) 模块提供了符合a o p 联盟规范的面向方面 的编程实现,让你可以定义,例如方法拦截器和切点,从逻辑上讲,从而减弱代码的功能 耦合,清晰的被分离开。 6 w e b 模块提供了基础的针对w e b 开发的集成特性,例如多文件上传,利用s e r v l e t , l i s t e n e r s 进行i o c ( i n v e r s i o no fc o n t r 0 1 ) 容器初始化和针对w e b 的应用程序上下文。当 与s t r u t s 或w e b w o r k 一起使用s p r i n g 时,该模块使s p r i n g 与其它框架很好的相结合。 7 m v c 模块提供了w 曲应用的m o d e l v i e w c o n t r o l l e r 实现。s p r i n g 的m v c 框架并 不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和w e b 第1 2 页武汉科技大学硕士学位论文 f o r m 之间。并且,还可以借助s p r i n g 框架的其他特性。 3 3h i b e r n a t e 框架 h i b e r n a t e 是一个面向j a v a 环境的对象关系数据库映射工具【1 7 1 ,它的目标是成为j a v a 中管理持续性数据问题的一种完整的解决方案。它用于协调应用与关系数据库之间的交 互,让开发者从关系数据库中解放出来从而更加专注于手中的业务问题。h i b e r n a t e 是一 种非强迫性的解决方案,我们可以利用h i b e r n a t e 提供的查询和获取数据的方法,当然也 可以使用传统的j d b c 来实现数据库的操作。 h i b e r n a t e 之所以受到如此的青睐,除了它是一个开源的项目外,它清晰的体系结构和 良好的可扩展性都吸引了众多的追随者。它能满足几乎一切持久层所要达到的目标, h i b e r n a t e 使用属性文件或者x m l 配置文件来对应不同的数据库方案,并将应用层从底 层的j d b c j t aa p i 中抽象出来,完全接管对象的持久化操作。图3 2 是一个全面解决的 体系结构方案。 t r a # 嘲e 眦。嘲e c t 8 a p p l i c a t i o n t r a # 嘲e 眦。啦i 矧8 p e r 鼢t e r , , t 0 b j o c = i 蓐 图3 2h i b e r n a t e 体系结构 图中各个对象的定义如下: s e s s i o n f a c t o r y :针对单个数据库映射关系经过编译后的内存镜像,是线程安全的。它 是生成s e s s i o n 的工厂,本身要用到c o n n e c t i o n p r o v i d e r 。该对象可以在进程或集群的级别 上,为那些事务之间可以重用的数据提供可选的二级缓存。 s e s s i o n :表示应用程序与持久储存层之间交互操作的一个单线程对象,此对象生存期 很短。其隐藏了j d b c 连接,也是t r a n s a c t i o n 的工厂。其会持有一个针对持久化对象的 必选( 第一级) 缓存,在遍历对象图或者根据持久化标识查找对象时会用到。 持久的对象及其集合:带有持久化状态的、具有业务功能的单线程对象,此对象生存 武汉科技大学硕士学位论文第1 3 页 期很短。这些对象可能是普通的j a v a b e a n s p o j o s ,唯一特殊的是他们仅仅与一个s e s s i o n 相关联。一旦这个s e s s i o n 被关闭,这些对象就会脱离持久化状态。 瞬态以及脱管的对象及其集合:指的是那些目前还没有与s e s s i o n 相关联的持久化实 例。他们可能是在被应用程序实例化后,尚未进行持久化的对象,也可能是因为实例化他 们的s e s s i o n 已经被关闭而脱离持久化的对象。 事务t r a n s a c t i o n :应用程序用来指定原子操作单元范围的对象,它是单线程的,生存 期很短。它通过抽象将应用从底层具体的j d b c 、j t a 以及c o r b a 事务隔离开。 c o n n e c t i o n p r o v i d e r :生成j d b c 连接的工厂。它通过抽象将应用从底层的d a t a s o u r c e 或d r i v e r m a n a g e r 隔离开,仅供开发者扩展实现用。 t r a n s a c t i o n f a c t o r y :生成t r a n s a c t i o n 对象实例的工厂,仅供开发者扩展实现用。 3 4 设计模式 面向对象的思想己经深入人心,但是要利用面向对象的思想开发出优秀的应用程序却 不是一件容易的事情。正是基于面向对象的思想,人们对各种应用程序进行了大量的分析、 总结、归纳出了设计模式。 设计模式并不是一种具体“技术”,它讲述的是思想,设计模式是j a v a 基础知识和j 2 e e 框架知识之间一座隐性的“桥 。它不仅仅展示了接口或抽象类在实际案例中的灵活应用 和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的j a v a 语言基础上跃进一 步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的重用。只有理 解j 2 e e 此类框架软件的精髓,那么你才能真正灵活应用j a v a 解决你的问题,甚至构架出 你自己企业的框架来。本文将设计引擎时涉及到的几种主要的设计模式做一个简单的介 绍。 3 4 1 模型视图控制器模式 基于j 2 e e 的w e b 应用系统,多数都利用模型视图控制器m v c 模式来实现其体系结 构。m v c 模式将交互式应用分成模型( m o d e l ) 、视图( v i e w ) 和控制器( c o n t r o l l e r ) 三部分。 视图( v i e w ) :代表用户交互界面,对于w e b 应用来说,h t m l 依旧在视图中扮演着 重要的角色,但一些新的技术已层出不穷,它们包括f l a s h 和像x h t m l 、x m 姒s l 、 w m l 等一些标识语言和w e bs e r v i c e s 。随着应用的复杂性和规模性,界面的处理也变得 具有挑战性。一个应用可能有很多不同的视图,m v c 设计模式对于视图的处理仅限于视 图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流 程的处理交予模型( m o d e l ) 处理。 模型( m o d e l ) :就是业务流彻状态的处理以及业务规则的制定和企业数据。业务流 程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结 第1 4 页武汉科技大学硕士学位论文 果。业务模型的设计可以说是m v c 最主要的核心。目前流行的e j b 模型就是一个典型的 应用例子。 控制( c o n t r o l l e r ) :可以理解为从用户接收请求,将模型与视图匹配在一起,共同完 成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择 什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数 据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户 的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。 3 4 2 控制反转模式 控制反转i o c 是一种用来解决组件( 实际上也可以是简单的j a v a 类) 之间依赖关系、 配置及生命周期的设计模式,其中对组件依赖关系的处理是i o c 的精华部分。i o c 的实际 意义就是把组件之间的依赖关系提取( 反转) 出来,由容器来具体配置。这样,各个组件 之间就不存在硬编码的关联,任何组件都可以最大程度的得到重用。运用了i o c 模式后我 们不再需要自己管理组件之间的依赖关系,只需要声明由容器去实现这种依赖关系。就好 像把对组件之间依赖关系的控制迸行了倒置,不再由组件自己来建立这种依赖关系而交给 容器。i o c 具有以下几个优点: 1 因为组件不需要在运行时寻找合作者,所以他们可以更简单的编写和维护。由于 同样原因,便于编写测试代码,使类的测试更容易。 2 不需要外部依赖。能在任何环境下开发和测试组件,而不需要特殊的部署环境, 像j n d i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学课件评语大全初中版
- 课件《水浒传》教学课件
- 2025年安全管理考试题库与答案系统
- 机电城消防知识培训总结课件
- 2025年工业生产自动化工程师技能鉴定考试试题及答案解析
- 2025年钢琴演奏家专业技能测评试卷及答案解析
- 2025年电梯安全知识问卷及答案
- 2025年电子商务法律顾问专业技术考核试题及答案解析
- 2025年电商运营总监职业技能评定试题及答案解析
- 请假应用文课件
- 胃肠疾病预防与健康管理
- 2025年全国新高考英语II卷试题解析及复习备考策略(课件)
- 全球化背景下文化自信的传承与创新
- 合规监督概念课件
- 电力变压器智能数字孪生体的构建与展望
- 无锡金栢精密模具有限公司搬迁项目环评资料环境影响
- 放射防护监测原始记录表模板
- 2025-2030中国奶酪行业市场发展现状及竞争格局与投资前景研究报告
- 垫资过桥合同协议
- 规范化司法所模板
- 水泥混凝土旧路面拆除施工方案
评论
0/150
提交评论