已阅读5页,还剩46页未读, 继续免费阅读
(计算机应用技术专业论文)基于j2ee的工作流引擎设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于j 2 e e 的工作流引擎设计与实现 摘要 企业为取得市场生存和竞争的优势,适应瞬息万变的市场环境,需要快 速响应市场需求,不断调整自己的组织模型和业务流程。工作流技术正越来 越广泛地应用在各种领域,其应用的一个重要分支就是企业经营过程重组 ( b u s i h e s sp r o c e s sr e e n g i n e e r i n g ,b p r ) 。工作流管理系统是实现计算机 辅助协同工作的工具,能够实现工作流程的全部或者部分自动管理功能,方 便人员、资源的合理配置、工作流流程监督、审查并提高工作效率。 在工作流管理联盟( 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 ) 给出的参 考模型中,工作流引擎是工作流管理系统的核心,是企业经营过程的任务调 度器和企业资源分配器。在采用工作流支持其经营过程的企业,工作流引擎 可以看成是企业的业务操作系统,它的功能包括解析过程定义、创建过程实 例并控制其执行、调度各项活动等,因此工作流引擎的性能和可靠性就直接 决定了企业经营过程的运行效率和安全性。本文在参考工作流联盟关于工作 流参考模型规范的基础上,对工作流引擎的功能划分成层次模型,并采用 e j b 、j m s 、j n d i 等j 2 e e 分布式技术,给出了工作流引擎的体系结构,论述 了一种工作流引擎的设计和实现方案。同目前国内基于d b m s 的工作流引擎 相比,该引擎在独立性、安全性、跨平台、可扩展性、执行效率、资源利用 率等核心问题上,均具有了一定的优越性。 关键词:工作流参考模型工作流引擎j 2 e e 基于j 2 e e 的工作流引擎设计与实现 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 em u s tr a p i d l y r e s p o n s et h er e q u i r e m e n t so f m a r k e t ;c o n s t a n t l ya d j u s tt h e i ro r g a n i z a t i o nm o d e l a n dt h e i rb u s i n e s sp r o c e s s 1 1 1 ew o r k f l o wt e c h n i q u ei u s ta p p l i e di nv a r i o u s r e a l m sm o r ea n dm o r eb r o a d l y , a ni m p o r t a n ta p p l i e db r a n c ho f w h i c hi st h e b u s i n e s sp r o c e s sr e e n g i n e e r i n g t h ew 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 o r 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 r a t i o nw o r k i n g ;i tc a nr e a l i z et h em a n a g e m e n t o f w 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 ti 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 d1 - 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 f w o r k f l o w t oi m p r o v e w o r k i n ge f f i c i e n c y a c c o r d i n gt ot h er e f e r e n c em o d e lg i v i n gb yt h eo r g a n i z a t i o no f t h ew o r k f l o w m a n a g e m e n tc o a l i t i e n , 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 t s y s t e m 。w h i c hi st h et a s ks c h e d u l e ra n dd i s t r i b u t o rr e s o n r c o so ft h ee n t e r p r i s e b u s i n e s sp r o c e s s i nt h ee n t e r p r i s eo fw h i c hb u s i n e s sp r o c e s ss u p p o r t e db y w o r k f l o w , w o r k f l o we n g i n ec a l lb es e e nb u s i n e s so p e r a t i n gs y s t e mo ft h e e n t e r p r i s e ,w h i c hi n t e r p r e t st h ep r o c e s sd e s c r i p t i o n , c o n t r o l st h ei n s t a n t i a t i o no f p r o c e s s e sa n ds e q u e n c i n go fa c t i v i t i e s a n ds oo n t h e r e f o r et h ep e r f o r m a n c ea n d r e l i a b i l i t yo fw o r k f l o we n g i n ed e t e r m i n et h ee 佑c i e n c ya n ds e c u r i t yo ft h e e n t e r p r i s eb u s i n e s sp r o c e s sd i r e c t l y t h i sp a p e rb e i n gb a s e d o nw o r k f l o w r e f e r e n c em o d e lw h i c hp u t t e df o r w a r db yw o r k f l o wm a n a g a m e n tc o a l i t i o n , d i v i d e s t h ef u n c t i o n so fw o r k f l o we n g i n ei n t oh i e r a r c h i c a lm o d e l , a d o p t s d i s t r i b u t eo b j e c tc o m p u t i n gt e c h n i q u eo fe j f b 、j m s 、j n d i 、d i s c u s s e st h e s t r u c t u r eo fw o r k f l o we n g i n e ,a n de x p l a i n sar e f e r e n c et ot h ed e s i g na n d r e a l i z a t i o no f t h ew o r k f l o we n g i n e c o m p 撕n gd o m e s t i cw o r k f l o we n g i n eb a s e d o nd b m s t h ew o r k f l o we n g i n eo ft h ep a p e rh a sc e r t a i ns u p e r i o r i t yo f i n d e p e n d e n c e ,s e c u r i t y , c r o s s p l a t f o r m ,e x p a n s i b i l i t y , e f f i c i e n c y , a n dr e s o u r c e s u s ef a c t o r k e yw o r d s :w o r k f l o wr e f e r e n c em o d e l ;w o r k f l o we n g i n e ;j 2 e e 2 基于j 2 e e 的工作流引擎设计与实现 1 1 背景 第一章绪论 据研究统计,现代企业的日常活动有7 0 以上都是由两个或两个以上的 员工共同参与的,比如生产流程、业务流程、各类行政申请流程、财务审批 流程、人事处理流程、质量控制及客户服务流程等。一项工作,经过一个步 骤处理后再转往下一站的连续步骤,称之为“工作流”。工作流就是业务流 程的计算机化或自动化。企业或组织内有许多繁琐复杂的流程,这些流程构 成了企业或组织的日常运营活动。通过现代的技术手段将这些流程自动化, 并对其进行有效地管理以提高企业运作效率,降低成本,增强规范和标准化 就是工作流自动化管理软件需要解决的问题。 工作流技术是实现企业业务过程建模、业务过程仿真分析、业务过程优 化、业务过程管理与集成,最终实现业务过程自动化的核心技术。对企业利 用工作流方法进行业务过程的建模和深入分析不仅可以规范企业的业务流 程,发现业务流程中的不合理环节,进而对企业的业务流程进行优化和重组, 而且所建立的业务流程模型本身就是企业非常重要的知识库和规则库,可以 成为指导企业实施计算机管理信息系统的模型,因此意义十分重大。 工作流管理技术作为一种过程建模和流程管理的核心技术,可以和其它 应用系统有效结合,生成符合企业需求的各种业务管理系统,如办公自动化 系统、项目管理软件、p d m 系统、客户关系管理系统、供应链管理系统、e r p 系统等。这些采用工作流技术作为核心开发的业务管理系统最大的特点,也 是这些系统与传统应用软件系统最大的区别是:具有高度的灵活性,可以按 照企业的具体需求,快速灵活地生成应用软件系统,并且在客户业务流程发 生变化时,能迅速的进行重组来满足客户的需求。 工作流系统作为一种业务软件,以规格化的流程描述作为输入,维护流 程的运行状态,并在人和应用之间分派活动。工作流管理系统( w f m s ) 是定 义、创建、执行工作流的系统。它是一种特殊的计算机支持的协同处理软件 系统( c s c w ,c o m p u t e rs u p p o r t e dc o o p e r a t i v ew o r k ) 。具有工作流功能的 基于j 2 e e 的工作流引擎设计与实现 软件系统在开发时有很大的重复性,工作流管理系统就是将这类软件公共的 部分,如:流程控制部分( 工作流执行服务器,工作流引擎) 、管理部分等, 抽象出来形成一种软件开发平台,用户只需要将他们的工作控制流程描述出 来( 这一步通过系统的建模工具进行) ,该平台软件就可对它们的控制流程 进行自动执行和有效地管理,而不需要对每次不同的应用重复地开发。 1 2 工作流产品现状 近年来随着对工作流产品需求的不断扩大,国内外许多公司推出了不同 的工作流产品,如:i b m 的m o s e r i e sw o r k f l o w ,f i l e n e t 公司的v i s u a l w o r k f l o ,a c t i o nt e c h n o l o g i e s 公司的m e t r o ,西安协同数码公司的协同 工作流系统,清华大学的c i m f l o w 等。这些不同的工作流产品各有特点, 但是难于实现互操作,以及与其它应用系统的集成。为此,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 ) ,提出了有 关工作流管理系统的一系列规范,以期实现工作流技术的标准化和开放性。 目前该组织的成员已经超过了2 0 0 个,其中包括软件厂商、科研机构与咨询 机构。1 9 9 4 年1 1 月2 9 日w f m c 发布了工作流系统参考模型( w o r k f l o w r e f e r e n c em o d e l ) ,它详细描述了w f m s 的各主要组成部分,各部分的功能 及相互之间的接口。在本文中,我们以工作流管理联盟的定义、术语、概念 为标准。 i j 小结 本章对工作流、工作流管理系统、工作流产品进行了简单的介绍,论文 的第二章的是对工作流技术进行了详细的阐述,在论文的第三章是对工作流 实现平台j 2 e e 技术介绍,论文的第四章论述了一种基于j 2 e e 平台的工作流 引擎的设计与实现,论文的第五章是对本文所做工作的总结和对下一步工作 的展望。 6 基于j 2 e e 的工作流引擎设计与实现 第二章工作流技术 网络出现之后就产生了工作流,工作流是一个与业务过程重构、业务自 动化等概念相关的技术。工作流管理系统是使工作流实现自动化的软件,它 对工作流进行规划( 定义出各项活动及其之间的关系) 和优化,并控制工作 流的运行。所谓工作流的运行,就是在计算机的控制和管理下,根据工作流 中定义的活动规划,使某个企业中的所有人和设备按部就班地参与活动,并 生产出相应产品或中间产品的过程。可见,工作流管理系统必须遵照一定的 工作流模型来规划工作流,并且使工作流实现自动化。工作流模型是以方便 地对业务过程进行理解、评价和重构为出发点而提出的对业务过程概念层次 的描述。目前,工作流元模型和工作流管理系统还没有一个统一的标准,也 没有影响力大的商业产品。于1 9 9 3 年8 月成立的w f m c 的全称是w o r k f l o w m a n a g e m e n tc o a l i t i o n ( 工作流管理联盟) ,其主要职责就是负责工作流管 理系统的标准化工作,提出了建议成为标准的工作流元模型和通用的工作流 管理系统的体系结构。 2 1 工作流概念的界定 2 1 1 工作流 十几年来,不同的研究者对工作流分别提出了不同的定义。到目前为止, 对于工作流仍没有完全统一的定义。我们列举如下一些有代表性的定义,它 们分别从不同的角度对工作流概念进行了描述,可以使我们对工作流的一些 基本特征有一定的理解。 1 ) 工作流管理联盟的定义 工作流是一类能够完全或者部分自动执行的经营过程,根据一系列过程 规则,文档、信息或任务能够在不同的执行者之间传递、执行。 2 ) g i g ag r o u p 的定义 工作流是经营过程中可运转的部分,包括任务的顺序以及由谁来执行、 支持任务的信息流、评价与控制任务的跟踪、报告机制。 7 基于j 2 e e 的工作流引擎设计与实现 3 ) i 叫a l m a d e nr e s e a r c hc e n t e r 的定义 工作流是经营过程中的一种计算机化的表示模型,定义了完成整个过程 所需用的各种参数。这些参数包括对过程中每一个单独步骤的定义、步骤间 的执行顺序、条件以及数据流的建立、每一步骤由谁负责以及每个活动所需 要的应用程序。 4 ) a m i ts h e t h 的定义 工作流是涉及到多任务协调执行的活动,这些任务分别由不同的处理实 体来完成。一项任务定义了需要做的某些工作,它可用各种形式来进行定义, 包括在文件或电子邮件中的文本描述、一张表格、一条消息以及一个计算机 程序。用来执行任务的处理实体可以是人,也可以是计算机系统( 比如一个 应用程序、一个数据库管理系统) 。 5 ) w 韫p v a nd e ra a l s t 的定义 工作流是系列工作的偏序集。工作的序列可以有多种方式,比如工作 x 与y 满足x y 当且仅当x 在y 开始之前就己经就绪。 以上这些对工作流的定义是用非形式化语言对工作流所进行的描述,虽 然各有不同,但基本上都达成了这样的一个共识:工作流是经营过程的一个 计算机实现,而工作流管理系统则是这一实现的软件环境。这些工作流的定 义分别反映了经营过程如下几个方面的问题,即经营过程是什么( 由哪些活 动、任务组成,也就是结构上的定义) 、怎么做( 活动间的执行条件、规则 以及所交互的信息,也就是控制流与信息流的定义) 、由谁来做( 人或者计 算机应用程序,也就是组织角色的定义) 、做得怎样( 通过工作流管理系统 进行监控) 。 2 1 2 工作流管理系统 为了实现对业务过程的工作流管理,需要有相应的软件系统的支撑。此 种软件系统我们就称为工作流管理系统( w o r k f l o wm a n a g e m e n t s y s t e m , w f m s ) ,也有人称为工作流系统。根据工作流管理联盟的定义,工作流管理 系统是“一种在工作流形式化表示的驱动下,通过软件的执行而完成工作流 定义、管理及执行的系统”,其主要目标是对业务过程中各步骤( 或称活动、 基于j 2 e e 的工作流引擎设计与实现 环节) 发生的先后次序及同各步骤相关的相应人力或信息资源的调用等进行 管理而实现业务过程的自动化。当然,此种管理可能会在不同的信息及通信 环境下实现,所涉及的范围可以小至一个几人的工作组,也可以大到企业( 机 构) 与企业( 机构) 之间。 2 1 3 过程 工作流管理系统用来对工作流程进行运行管理,被管理的流程我们称之 为过程( p r o c e s s ) 。按照工作流管理联盟给出的定义,过程是“一个或多个 相互关联的程序或活动的集合,来共同实现业务目标或达到某种目的,一般 是在一个组织结构中定义功能角色和相互关系的上下文”。人们一般将工作 流程、过程等术语交叉使用。 2 1 4 活动 一个过程是由许多相互关联的任务组成的,每一个任务就称之为一个活 动( a c t i v i t y ) 。工作流管理联盟给出的活动的定义是“活动是一段工作的 描述,形成过程中的一个逻辑步骤”。一个活动可以是人工活动,也可以是 工作流( 自动的) 活动,人工活动不支持计算机自动化处理。工作流活动需 要人力和( 或) 机器资源来支持处理过程。在有的文献中,将过程中的一个 活动称为任务( t a s k ) 。 2 1 5 实例 每一个定义好的过程可以被多次启动执行,我们每一次的运行成为一个 实例( i n s t a n c e ) 。实例有过程实例和活动实例,一次过程的执行称之为过 程实例,而一个过程实例中,一次活动的执行称之为活动实例。一个实例是 一个活动或过程的一次与其它实例分离的执行线程。 2 1 6 工作项 工作项( w o r ki t e m ) 是指在一个过程实例中一个活动的内容被参与工 9 基于j 2 e e 的工作流引擎设计与实现 作流的执行者所要处理的工作。 2 2 工作流参考模型 1 9 9 4 年1 1 月2 9 日,w f m c 发布的工作流参考模型,如图1 所示,它 详细描述了工作流系统的有关概念,并在此基础上给出了w f m s 的主要组成 部分、各部分的功能以及相互之间的接口。 2 2 1 过程定义工具 图1 工作流参考模型 主要功能是给用户提供一种对实际业务过程进行分析、建模的手段,并 生成业务过程的可被计算机处理的形式化描述( 过程定义) 。目前已有许多工 具可以用于对商业过程的分析、建模、描述及记录,包括非形式化的和复杂 的形式化的工具。工作流模型本身并不关心这些工具的本质以及在定义过程 时怎样交互,这些工具可以作为对工作流产品的补充或者是一个独立的产品 工具集。如果工作流产品提供了自己的过程定义工具,它的过程定义将被包 含在工作流产品之中,可以通过程序接口进行访问。如果使用了独立的产品 定义了过程,需要在必要的时候进行过程定义转化。过程建模或设计活动的 1 0 基于j 2 e e 的工作流弓l 擎设计与实现 最终输出是可被工作流引擎运行解释的过程定义。 过程定义工具与工作流执行服务之间的接口也被称作过程定义输入输 出接口,接口的本质是一个交换格式和a p i 调用,它支持对过程定义的转 化。 2 2 2 工作流执行服务 工作流执行服务提供了一个运行环境,在这个环境中,利用一个或多个 工作流引擎进行过程实例化或激活,通过与必要的外部资源进行交互负责解 释和激活部分或全部过程定义,完成工作流过程实例的创建、执行与管理, 如过程定义的解释,过程实例的控制( 创建,激活,暂停,终止等) ,在过 程各活动之间的游历,并生成有关的工作项通知用户进行处理等,为工作流 程的进行提供一个运行时的环境。 它由一个或多个创建、管理和执行工作流实例的工作流引擎组成,应用 程序通过工作流应用程序接口来访问这种服务。在参考模型当中,构成工作 流执行服务的过程控制逻辑与定义活动过程的应用工具以及用户任务是相 分离的。这种分离性为特定的工作流应用集成、更为广泛的工业标准和应用 工具提供了机会。外部可访问资源通过以下两个接口之一与特定执行服务相 作用:客户应用接口,即接口2 ,工作流引擎通过这个接口与工作项列表处 理器相作用,后者负责根据用户资源组织工作,并从工作项列表中选择和提 升单个的工作项,应用工具的激活是在工作项列表和最终用户的控制下进行 的;触发应用接口,即接口3 ,它使工作流引擎直接激活一个特定的工具从 事特定的活动;特别是对基于服务器的应用,只要一个特定的活动需要使用 由用户参与的工具,它就会通过工作列表接口正常触发,从而为用户安排任 务提供了更大的灵活性。 工作流引擎负责工作流执行服务中的部分或全部运行控制环境,它为工 作流句柄提供运行环境。其功能主要有:对过程定义进行解释;控制过程句 柄的创建、激活、暂停、终止等;对过程活动进行引导,包括顺序或并行操 作、限期安排、工作流相关数据的安排等;特定参与者的授权;识别用户关 注的工作项和支持用户相互作用的接口;维护工作流控制数据和相关数据, 基于j 2 e e 的工作流引擎设计与实现 为用户传递相关数据:激活外部应用和连接工作流相关数据的接口;为控制、 管理、审计而进行监视等。在由多个工作流引擎组成的工作流执行服务中, 不同的工作流引擎分工负责不同的过程的处理。这种分工可能由过程的类型 决定,例如,特定的引擎负责特定类型的过程的处理;也可能由其他的分配 机制决定。 2 2 3 工作流客户应用 它的作用是给用户提供一种手段,以处理过程实例运行过程中需要人工 干预的任务。每个这样的任务就被称为一个工作项,它包括处理上的一些要 求及待处理的数据对象等。w f m s 将为每一个用户维护一个工作项列表,它 表示当前需要该用户处理的所有任务。 工作项列表处理器负责在活动需要人力资源时跟最终用户进行交互,它 可能是工作流产品的附加部分,或者是用户自己编写的。工作流通常跟其他 办公服务,如电子邮件、工作安排等一起集成在一个公共的桌面环境中,为 最终用户提供一个统一的任务管理系统,这就需要在工作流执行服务和工作 流客户应用之间提供一种灵活的通信机制,以支持许多不同的可能会遇到的 运作系统的构造。在工作流模型中,客户应用和工作流引擎之间通过工作项 列表作为接口界面进行相互作用,工作项列表是工作流引肇分配给特定用户 的工作项队列。工作流引擎在分配工作项时要访闯工作项列表,工作项列表 处理器在检索工作项交给用户处理时也要访问工作项列表。工作项列表里单 个工作项的激活是在工作流客户应用或最终用户的控制下进行的,在工作流 客户应用和工作流执行之间定义了多个过程,例如向工作项列表添加新项、 从列表中移走已完成的工作项、暂停工作项等。工作项列表处理器可以直接 或在最终用户的控制下唤起应用程序,跟工作项相关联的数据是工作列表处 理器唤起应用程序所必要的信息。工作项列表可能包含同一过程的不同活动 句柄或不同过程的工作项,一个工作项列表处理器可跟几个不同的 工作流引擎相互作用。 1 2 基于j 2 e e 的工作流引擎设计与实现 2 2 4 工作流机直接调用的应用 指工作流执行服务在过程实例钓运行过程中调用的,用以对应用数据进 行处理的应用程序。在过程定义中包含这种应用程序的详细信息,如类型、 地址等。目前已有的几种方式来执行这些程序,包括应用代理、某种标准的 互换机制、本地过程调用、远程执行调用、0 r b 等。 在异构的产品环境里,一个特定的w f m s 实现几乎不可能具有足够的逻 辑来对付所有潜在应用的触发,因此需要一种机制来将应用或工作流相关数 据转化为公共格式或编码。针对特定应用工具( 如字处理器) 所产生的数据 类型的应用,需要许多工作流系统来做专门处理,在其他情况下,特定应用 的触发可以通过标准的转化机制如o s i t p 或x 4 0 0 来完成,还可以借助 “应用代理”来加以实现。也可以开发利用标准a p i 集与工作流执行服务 进行通信的应用工具,用它接受数据、信号、事件响应等。这些a p i 可以被 应用工具或应用代理当作前端与其他应用进行交互,而无需专门的工作流知 识。 2 2 5 工作流管理工具 其功能是对w f m s 中的过程实例的状态进行监控与管理,如用户管理, 角色管理,审计管理,资源控制等。 系统管理和监控接口的目的主要是为了让多个工作流服务共享一个公 共的管理和监控系统,可以通过在w a p i 集合中提供特定的命令来完成管理 和监控功能。也可以利用c m i p 和s n m p 这两个已经存在的协议来设定状态和 获取统计信息。系统管理和监控主要有以下几项内容:( 1 ) 用户管理,包括 创建、删除、暂停、修改用户或工作组的权力;( 2 ) 角色管理,包括定义、 删除、修改角色、角色分配;( 3 ) 审计管理,查询、打印、新建、删除审计 跟踪或事件日志;( 4 ) 资源控制,设立、修改过程或活动并发层次,询问资 源控制数据;( 5 ) 过程监控,改变过程定义或过程句柄的操作状态,控制过 程定义版本,改变活动状态,分配活动属性,终止过程句柄等。 基于j 2 e e 的工作流引擎设计与实现 2 3 小结 本章依据w f m c 制定的标准,对工作流相关概念的定义和工作参考模型 进行了详细阐述。论文的下一章是对j 2 e e 的平台的介绍。 1 4 基于j 2 e e 的工作流引擎设计与实现 第三章j 2 e e 平台介绍 3 1j 2 e e 的概念 目前,j a v a2 平台有3 个版本,它们是适用于小型设备和智能卡的 j a v a2 平台m i c r o 版( j a v a2p l a t f o mm i c r oe d i t i o n ,j 2 m e ) 、适用于 桌面系统的j a v a2 平台标准版( j a v a2p l a t f o r ms t a n d a r de d i t i o n , j 2 s e ) 、适用于创建服务器应用程序和服务的j a v a2 平台企业版 ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ,j 2 e e ) 。 j z e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理 相关的复杂问题的体系结构。j 2 e e 技术的基础就是核心j a v a 平台或j a v a2 平台的标准版,j 2 e e 不仅巩固了标准版中的许多优点,例如”编写一次、随 处运行“的特性、方便存取数据库的j d b ca p i 、c o r b a 技术以及能够在 i n t e r n e t 应用中保护数据的安全模式等等,同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅 缩短投放市场时间的体系结构。 j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高 可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台, j 2 e e 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强 有力支持,完全支持e n t e r p r i s ej a v a b e a n s ,有良好的向导支持打包和部署 应用,添加目录支持,增强了安全机制,提高了性能。 3 2j 2 e e 的优势 j 2 e e 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的 机制: 基于j 2 e e 的工作流引擎设计与实现 3 2 1 保留现存的it 资产 由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投 资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的( 而不是 激进的,全盘否定的) 方式建立在已有系统之上的服务器端平台机制是公司 所需求的。j 2 e e 架构可以充分利用用户原有的投资,如一些公司使用的 b e at u x e d o 、i b mc i c s ,i b me n c i n a ,i n p r i s ev i s i b r o k e r 和n e t s c a p e a p p l i c a t i o ns e r v e r 。这之所以成为可能是因为j 2 e e 拥有广泛的业界支持 和一些重要的企业计算领域供应商的参与。每一个供应商都对现有的客户 提供了不用废弃已有投资,进入可移植的j 2 e e 领域的升级途径。由于基于 j 2 e e 平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系 统和硬件也能被保留使用。 3 2 2 高效的开发 j 2 e e 允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去 完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开 发时间。高级中间件供应商提供以下这些复杂的中间件服务:( 1 ) 状态管理 服务,让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地 完成程序开发:( 2 ) 持续性服务,让开发人员不用对数据访问逻辑进行编码 就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程 序更易于开发与维护;( 3 ) 分布式共享数据对象c a c h e 服务一让开发人员 编制高性能的系统,极大提高整体部署的伸缩性。 3 2 3 支持异构环境 j 2 e e 能够开发部署在异构环境中的可移植程序。基于j 2 e e 的应用程序 不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于j 2 e e 的程 序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十 1 6 基于j 2 e e 的工作流引擎设计与实现 分关键的。j 2 e e 标准也允许客户订购与j 2 e e 兼容的第三方的现成的组件, 把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 3 2 。4 可伸缩性 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性 去满足那些在他们系统上进行商业运作的大批新客户。基于j 2 e e 平台的应 用程序可被部署到各种操作系统上。例如可被部署到高端u n i x 与大型机系 统,这种系统单机可支持6 4 至2 5 6 个处理器。( 这是n t 服务器所望尘莫及 的) j 2 e e 领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶 颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸 缩的系统,满足未来商业应用的需要。 3 2 5 稳定的可用性 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需 要。因为i n t e r n e t 是全球化的、无处不在的,即使在夜间按计划停机也可 能造成严重损失。若是意外停机,那会有灾难性后果。j 2 e e 部署到可靠的操 作环境中,他们支持长期的可用性。一些j 2 e e 部署在w i n d o w s 环境中,客 户也可选择健壮性能更好的操作系统如s u ns o l a r i s 、i b mo s 3 9 0 。最健壮 的操作系统可达到9 9 9 9 9 的可用性或每年只需5 分钟停机时间。这是实时 性很强商业系统理想的选择。 3 3j 2 e e 的四层模型 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应 用组件根据他们所在的层分布在不同的机器上。事实上,s u n 设计j 2 e e 的初 衷正是为了解决两层模式( c i i e n t s e r v e r ) 的弊端,在传统模式中,客户端 担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易, 但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议一一 1 7 基于j 2 e e 的工作流,1 | 擎设计与实现 通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在 j 2 e e 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一 个多层化应用能够为不同的每种服务提供一个独立的层,以下是j 2 e e 典型 的四层结构:运行在客户端机器上的客户层组件;运行在j 2 e e 服务器上的 w e b 层组件;运行在j 2 e e 服务器上的业务逻辑层组件:运行在e i s 服务器 上的企业信息系统( e n t e r p r i s ei n f o r m a t i o ns y s t e m ) 层软件,如图2 所示。 j 2 e e 应用程序组件:j 2 e e 应用程序是由组件构成的,j 2 e e 组件是具有独 立功能的软件单元,它们通过相关的类和文件组装成j 2 e e 应用程序,并与 其他组件交互。j 2 e e 说明书中定义了以下的j 2 e e 组件:应用客户端程序和 a p p l e t s 是客户层组件;j a v as e r v l e t 和j a v a s e r v e rp a g e s ( j s p ) 是w e b 层 组件;e n t e r p r i s ej a v a b e a n s ( e j b ) 是业务层组件; 客户层组件,j 2 e e 应用程序可以是基于w e b 方式的,也可以是基于传统方 式的; w e b 层组件,j 2 e ew e b 层组件可以是j s p 页面或s e r v l e t s 按照j 2 e e 规范,静态的h t m l 页面和a p p l e t s 不算是w e b 层组件。 业务层组件,业务层代码的逻辑用来满足银行,零售,金融等特殊商务 领域的需要,由运行在业务层上的e n t e r p r i s eb e a n 进行处理。有三种企业 级的b e a n :会话( s e s s i o n ) b e a n s ,实体( e n t i t y ) b e a n s ,和消息驱动 ( m e s s a g e d r i v e n ) b e a n s 会话b e a n 表示与客户端程序的临时交互当客 户端程序执行完后,会话b e a n 和相关数据就会消失。相反,实体b e a n 表 示数据库的表中一行永久的记录当客户端程序中止或服务器关闭时,就 会有潜在的服务保证实体b e a n 的数据得以保存消息驱动b e a n 结合了会 话b e a n 和j m s 的消息监听器的特性,允许一个业务层组件异步接收 j m s 消息 企业信息系统层,企业信息系统层处理企业信息系统软件包括企业基础 建设系统例如企业资源计划( e r p ) ,大型机事务处理,数据库系统,和其它 的遗留信息系统例如,j 2 e e 应用组件可能为了数据库连接需要访问企业 信息系统 基于i z e e 的工作流g l 擎设计与实现 3 4 j 2 e e 的结构 图2j 2 e e 架构图 这种基于组件,具有平台无关性的j 2 e e 结构使得j 2 e e 程序的编写十 分简单,因为业务逻辑被封装成可复用的组件,并且j 2 e e 服务器以容器的 形式为所有的组件类型提供后台服务。因为你不用自己开发这种服务,所以 你可以集中精力解决手头的业务问题。 3 4 1 容器和服务 容器设置定制了j 2 e 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 ) 寻址,远程连接等服务,以下 列出最重要的几种服务: 1 9 基于j 2 e e 的工作流引擎设计与实现 j 2 e e 安全( s e c u r i t y ) 模型可以让你配置w e b 组件或e n t e r p r i s eb e a n , 这样只有被授权的用户才能访问系统资源每一客户属于一个特别的角色, 而每个角色只允许激活特定的方法。你应在e n t e r p r i s eb e a n 的布置描述中 声明角色和可被激活的方法。由于这种声明性的方法,你不必编写加强安全 性的规则。 j 2 e e 事务管理( t r a n s a c t i o nm a n a g e m e n t ) 模型让你指定组成一个事 务中所有方法间的关系,这样一个事务中的所有方法被当成一个单一的单 元当客户端激活一个e n t e r p r i s eb e a n 中的方法,容器介入一管理事务。 因有容器管理事务,在e n t e r p r i s eb e a n 中不必对事务的边界进行编码。要 求控制分布式事务的代码会非常复杂。你只需在布置描述文件中声明 e n t e r p r i s eb e a n 的事务属性,而不用编写并调试复杂的代码。容器将读此 文件并为你处理此e n t e r p r i s eb e a n 的事务。 j n d i 寻址( j n d il o o k u p ) 服务向企业内的多重名字和目录服务提供了 一个统一的接口,这样应用程序组件可以访问名字和目录服务 j 2 e e 远程连接( r e m o t ec l i e n tc o n n e c t i v i t y ) 模型管理客户端和 e n t e r p r i s eb e a n 间的低层交互。当一个e n t e r p r i s eb e a n 创建后,一个客 户端可以调用它的方法就象它和客户端位于同一虚拟机上一样 生存周期管理( l i f ec y c l em a n a g e m e n t ) 模型管理e n t e r p r i s eb e a n 的创建和移除,一个e n t e r p r i s eb e a n 在其生存周期中将会历经几种状态。 容器创建e n t e r p r i s eb e a n ,并在可用实例池与活动状态中移动他,而最终 将其从容器中移除。即使可以调用e n t e r p r i s eb e a n 的c r e a t e 及r e m o v e 方 法,容器也将会在后台执行这些任务 数据库连接池( d a t a b a s ec o n n e c t i o np o o l i n g ) 模型是一个有价值的 资源。获取数据库连接是一项耗时的工作,而且连接数非常有限。容器通过 管理连接池来缓和这些问题。e n t e r p r i s eb e a n 可从池中迅速获取连接。在 b e a n 释放连接之可为其他b e a n 使用。 2 0 基于j 2 e e 的工作流引擎设计与实现 3 4 2 容器类型 j 2 e e 应用组件可以安装部署到以下几种容器中去: e j b 容器管理所有j 2 e e 应用程序中企业级b e a n 的执行, e n t e r p r i s eb e a n 和它们的容器运行在j 2 e e 服务器上。 w e b 容器管理所有j 2 e e 应用程序中j s p 页面和s e r v l e t 组件的执行。 w e b 组件和它们的容器运行在j 2 e e 服务器上。 应用程序客户端容器管理所有j 2 e e 应用程序中应用程序客户端组件的 执行。应用程序客户端和它们的容器运行在j 2 e e 服务器上。 a p p l e t 容器是运行在客户端机器上的w e b 浏览器和j a v a 插件的结合。 3 5 j 2 e e 的核心a p i j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接口( a p i s ) 和协议构 成,它对开发基于w e b 的多层应用提供了功能支持,下面对j 2 e e 中的1 3 种 技术规范进行简单的描述( 限于篇幅,这里只能进行简单的描述) : 3 5 1 j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) j d b ca p i 为访问不同的数据库提供了一种统一的途径,象o d b c 一样, j d b c 对开发者屏蔽了一些细节问题,另外,j d c b 对数据库的访问也具有平 台无关性。 3 5 2j n d l ( j a v an a m ea n dd i r e c t o r yi n t e r f a c e ) j n d ia p i 被用于执行名字和目录服务。它提供了一致的模型来存取和操 作企业级的资源如d n s 和l d a p ,本地文件系统,或应用服务器中的对象。 基于j 2 e e 的工作流i 擎设计与实现 3 5 3e j b ( e n t e r p r i s ej a v a b e a n ) j 2 e e 技术之所以赢得某体广泛重视的原因之一就是e j b 。它们提供了一 个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年下半年度上海市荣誉军人疗养院招聘8人备考题库参考答案详解
- 2026年下半年四川资阳市雁江区人民医院人才招聘笔试题库带答案详解(综合题)
- 2026重庆垫江公益岗招聘3人模拟试卷含完整答案详解【考点梳理】
- 2026广东第二师范学院汕尾市城区教育集团面向全国招聘7名高中教研员导师备考题库及参考答案详解(模拟题)
- 2026年池州市精信人力资源服务有限公司招聘(三)考前冲刺密卷附完整答案详解(各地真题)
- 2026北京大学口腔医学院(医院)招聘1人(第9批)考前冲刺试卷含答案详解【达标题】
- 2026贵州黔东南州三穗县教育系统公开招聘社会化服务教师及保育员228人笔试题库及参考答案详解【黄金题型】
- 2026年中宁县机关事业单位助理岗位见习笔试题库附参考答案详解(B卷)
- 2026天津市公交文化传媒发展有限公司社会选聘广告事业部经理的1人考前冲刺试卷(历年真题)附答案详解
- 2026山东青岛海发国际贸易集团有限公司招聘10人笔试题库标准卷附答案详解
- 嗜铬细胞瘤围术期麻醉管理
- 2024年10月高等教育自学考试《00051管理系统中计算机应用》试题
- 农用提灌站管护协议书
- 2025年家庭医生签约服务培训大纲
- 青海2025年03月西宁市城北区面向社会公开招考47名编外聘用人员笔试历年参考题库考点剖析附解题思路及答案详解
- JJF(有色金属)-非接触式激光引伸计校准规范
- 2025年离婚协议书范本(无争议)
- 2025内镜室院感工作计划
- 高中数学解题思想与方法大全
- 桂花雨(课件)(共23张PPT)
- 高中物理教学发展总结
评论
0/150
提交评论