(计算机软件与理论专业论文)传统数据库资源在eai中的集成实现.pdf_第1页
(计算机软件与理论专业论文)传统数据库资源在eai中的集成实现.pdf_第2页
(计算机软件与理论专业论文)传统数据库资源在eai中的集成实现.pdf_第3页
(计算机软件与理论专业论文)传统数据库资源在eai中的集成实现.pdf_第4页
(计算机软件与理论专业论文)传统数据库资源在eai中的集成实现.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

传统数据库资源在e a i 中的集成实现 摘要 传统的企业由于缺少不同系统相互集成的技术,导致很多关键的信息被封 闭在相互独立的系统中,部门问重复着冗余的工作,这直接导致了企业工作效 率的降低和运营成本的上升。企业的业务流程会同时涉及到多个应用系统,因 此要求这些系统能够协同,但接口、架构的不统一往往使得这些本应紧密集成 的应用系统成为了一个个“信息孤岛”。 企业应用集成( e n t e r p r i s e a p p l i c a t i o ni n t e g r a t i o n ,e a i ) 通过中间件作为 粘台剂来连接企业内外各种业务相关的异构系统、应用以及数据源,从而满足 e c o m m e r c e 、e r p 、数据库等重要系统之间共享和交换数据的需要。 本文首先简要介绍e a l 背景知识及一个e a i 平台一w e b m e t h o d si n t e g r a t i o n p l a t f o r m ,然后就一个具体的e a i 项目( 尼桑公司的e a i 项目一n c i c ) 的需求, 系统结构,实现及测试作了详细描述,给出了集成企业传统数据库资源的一个 中间件( 流服务) 的具体逻辑设计及实现过程。 关键词: e a i ,w e b m e t h o d s ,流服务,流步骤 i m p l e m e n to f t r a d i t i o n a ld a t a b a s er e s o u r c e si n t e g r a t i o n i ne a i a b s t r a c t t r a d i t i o n a le n t e r p r i s e sl a c k e dt e c h n i q u et oi n t e g r a t ed i f f e r e n ts y s t e m s ,s oag r e a t ed e a l o fk e yi n f o r m a t i o nw a si s o l a t e di ni n d e p e n d e n ts y s t e m s m a n yd e p a r t m e n t sd i ds a m ea n d r e d u n d a n tw o r k ,i tr e d u c e dt h ee n t e r p r i s e se f f i c i e n c ya n di n c r e a s e dt h ec o s t e n t e r p r i s e s b u s i n e s sf l o ww o u l dr e l a t et om a n ya p p l i c a t i o ns y s t e m s ,i td e m a n d e dt h o s es y s t e m sc o u l d c o o p e r a t ew i t he a c ho t h e r s ,b u tt h ed i s u n i t yo fi n t e r f a c ea n da r c h i t e c t u r em a d et h o s e s y s t e m sb e c o m es o m e l o n e l yi n f o r m a t i o ni s l a n d s ” e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o nu s e sm i d d l e w a r ea sb o n dt oc o n n e c tm a n yk i n d so f e n o r m o u ss y s t e m sa n da p p l i c a t i o na n dd a t ar e s o u r c ei ne n t e r p r i s e ,s os o m ei m p o r t a n t s y s t e m sl i k ee c o m m e r c ea n de r pa n dd a t a b a s ei ne n t e r p r i s ec o u l ds h a r ea n de x c h a n g e d a t a t h ed i s s e r t a t i o nf i r s t l yg i v e sab r i e fi n t r o d u c t i o no fe a ib a c k g r o u n dk n o w l e d g ea n d o n ee a ip l a t f o r m w e b m e t h o d si n t e g r a t i o np l a t f o r m ,a n dt h e nd e t a i l e d l yd e s c r i b e so n e m a t e r i a le a ip r o j e c t ( n i s s a nc o e a ip r o j e c t - n c l c ) i n c l u d i n gt h er e q u i r e m e n t ,s y s t e m s t r u c t u r e ,r e a l i z a t i o na n dt e s t i n g ,g i v e sm a t e r i a ll o g i cd e s i g n a n dr e a l i z a t i o no fa m i d d l e w a r e ( f l o ws e r v i c e ) t h a ti n t e g r a t e st h et r a d i t i o n a ld a t a b a s er e s o u r c ei ne n t e r p r i s e k e y w o r d s : e a i ,w e b m e t h o d s ,f l o ws e r v i c e ,f l o ws t e p 致谢 时光如梭,三年的硕士研究生生活即将进入尾声,在各位老师的指导和同学们 的帮助下,我在各个方面都取得了一些成绩。衷心感谢我的导师吴国风副教授! 几年 来,导师在学习、研究、生活等各个方面给予我悉心的指导和帮助。她诲人不倦的良 师风范,严谨务实的治学态度,使我在学业上受益匪浅。在此,我谨以最诚挚的心情 向我的导师吴国风老师表示衷心的感谢! 在此,我还要感谢我的同学张忆,沈俊峰和方华等,当我在学习、生活上遇到 困难和挫折时,他们给了我巨大的关还和无私的帮助。同时还要感谢我的父母和亲人, 是他们的支持和关爱给予了我动力和信心,使我顺利完成了学业。 向计算机与信息学院的王新生j 徐静等老师付出的辛勤工作表示感谢。 最后,衷心感谢评阅、评审、出席论文答辩会的各位专家在百忙中给予悉心的指 导! 顾巍 2 0 0 6 年4 月2 0 日 第一章绪论 1 1 引言 我们生活在一个信息化的时代。据统计。在过去的l o 年中,全球企业在 信息系统上一共投资1 8 万亿美元。巨大的投资为企业建立了众多信息系统, 以帮助企业进行内外部业务的处理和管理工作。现代企业在i t 系统的帮助下 不断提升自身发展,同时也越来越依赖于i t 系统,造成了“i t 就是企业,企业 就是i t ”的现状,i t 系统的复杂化、更新缓慢严重制约了企业业务的发展。 根据m e t ag r o u p 的统计,经过相当一个时期不断的i t 系统建设,一家 典型的大型企业平均拥有4 9 个应用系统,3 3 的i t 预算是花在传统的集成上, 通过零星的“点对点”连接,使众多的“信息孤岛”联系起来,以便让不同的系统 之间交换信息。这使得企业的应用系统看起来像一张复杂的蛛网。 孤立的信息系统无法有效地提供跨部门、跨系统的综合性的信息,也无法 实现实时的信息存取和对业务流程的透视,无法实现对客户、供应商、项目、 订单、资产等的全面掌控,无法实现企业价值链的全面的、彻底的透视和控制。 于是,企业对应用整合的需求应运而生。 1 2e a i 概述 1 2 1 企业i t 的早期发展 2 0 世纪5 0 年代末到6 0 年代初,企业具备了早期应用。这些应用大多是用 来替代重复性劳动的一些简单设计。这时的应用范围为账户支付、工资单管理 等类似的内容。当时并没有考虑到企业数据的集成,企业应用惟一的目标就是 用计算机代替些孤立的、体力性质的工作环节。 2 0 世纪6 0 年代中期,继第一代应用之后,更深入辅助企业生产的应用出 现,诸如库存管理、生产控制和早期的财务管理等。这些应用远比第一代的企 业应用复杂,但这些应用的思想还仅仅是支持企业业务的一部分,并且企业数 据的访问控制技术还不完善,仍然没有企业数据集成的概念。 2 0 世纪6 0 年代末到7 0 年代初,数据库的技术开始出现,对企业数据的检 索不再是贯穿文件的操作。磁盘存储和数据库技术使企业能够直接访问数据, 这让企业应用上升到了一个全新的阶段在线联机处理应用。在线联机处理 把计算机变成了一个在企业中前所未有的完全革新的角色,计算机应用不再是 一个后台的、无足轻重的应用,它现在是企业中前台的、中心位置的角色。这 些在线联机应用是根据局部需求开发的,在不同的部门或企业间开始出现早期 电子数据交换( e d i ) ,即企业数据集成的概念开始出现。但这些数据集成还仅仅 是小范围的小火花,距离企业应用集成还很遥远。 进入到2 0 世纪8 0 年代,好像所有的企业应用都不能满足企业新的需求。 但是企业并没有能力开发新功能,因为i t 人员绝大多数的精力都花在对已有 系统的维护上。最初这些维护的工作事实上是对应用系统的集成工作,这是一 个巨大挑战,很多公司的技术人员都试图在企业系统整体概念的指导下对已经 存在的应用进行重新设计,以便让它们集成在一起。然而这种努力收效甚微。 于是维护变成为对已有系统添j n 牢b 丁,以使其具备最初时并未设计的功能。 传统的企业由于缺少不同系统相互集成的技术,导致很多关键的信息被封 闭在相互独立的系统中,部门间重复着冗余的工作,这直接导致了企业工作效 率的降低和运营成本的上升。 8 0 年代中期,c s 结构的应用开始出现。企业应用集成软件本身就是一种 中间件的技术,当中间件技术出现,企业应用集成具备了发展的可能思想 上的基础。 这段时间诞生了信息总线软件,信息总线软件提供了企业应用集成最基础 的内容信息交换。这一层次的e a i 的系统集成框架,主要解决的是企业内 部应用系统间的信息麸享的问题。解决方案的构建的出发点是整体考虑企业应 用系统i t 建设,统一建设信息交换基础,消除了点对点集成企业应用的混乱 局面。 1 2 2e a i 的历史发展 9 0 年代,e r p 应用开始流行的时候,同时也要求它们能够支持已经存在的 应用和数据,这就必须引入e a i 。e a l ( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ) ,顾名 思义是企业应用集成。对e a i 的需求首先来自与企业将它们的主机系统转换成 c s 结构系统的过程中,其次是利用e r p 建立企业骨干信息系统。企业迫切需 要一种方法,让它们少写程序,无须巨大的费用,就可以将各种旧的应用系统 和新的系统集成起来。其他推动e a i 市场的因素还有供应链管理( b 2 b 集成) 、 基于流程的业务处理以及w e b 应用集成。 随着企业各种应用的迅速增加以及更多地把自己的业务转向电子商务, e a i 方案对企业的重要性也日益显现。越来越多的企业开始采用e a i 解决方案 将企业内部的应用软件与外部客户和供应商的应用软件进行链接,实现数据流 和业务运作的自动化,从而达到业务的实时与快速。 e a i 与电子商务的结合为企业快速实现业务的自动化提供了可靠的保证, 呈现在我们面前的将是一个同时具有数据自动化和业务流程高度可塑的企业 管理框架,从而进一步加快端到端的电子商务应用集成,包括供应链管理、客 户关系管理和e r p 系统相关联的门户网站、前端应用、后端应用等。 企业对e a i 需求的增长,给软件行业提供了发展的空间。9 0 年代诞生了大 量的e a i 产品和供应商。其中比较有代表的包括v i t r i a 、w e b m e t h o d s 等,他们 在e a i 的发展过程中积极思考,完善e a i 的理论领域并在实践上做出了积极的 探索。 9 0 年代初,c o r b a 作为开放的分布式应用组件技术诞生,催生了一批中 间件。但是,由于c o r b a 并没有很严格的约束,开放的理想并没有完全实现: 每个不同的c o r b a 实现之间不能良好兼容。c o r b a 在一些缺乏其他技术有 力支持的领域得到了发展,具备了相当数量的应用。但是c o r b a 并没能参与 到企业应用集成的发展。 9 0 年代中后期到现在,j a v a 技术和j 2 e e 的诞生,发动了软件行业新一波 的发展。基于j 2 e e 的中间件技术( 应用服务器) 在吸取传统的私有中间件的经验 和c o r b a 的教训的基础上,定义了宽严适度的规范,诞生了一批j 2 e e 应用 服务器。基于j 2 e e 的j c a ( j 2 e e 连接器体系结构j 2 e e c o n n e c t o r a r c h i t e c t u r e ) 成为了e a i 范畴的第一个正式的规范,用于解决应用与应用的互相访问,结束 了e a i 领域没有开放标准的历史。 e a i 的核心是使用中间件连接企业应用。有多种不同类型的中间件可以提 供e a i 的功能。在选择e a i 中间件时需注意以下的基本特征: ( 1 ) 通过中间件将不同的应用连接起来,保证应用的独立性,在不需要修 改应用自身的业务逻辑的同时,又解决了数据共享问题。 ( 2 ) 对核心共享业务数据模型的处理与支持。 ( 3 ) 实现业务流程自动化。确保各个部门在采用不同的系统的同时可以协 同完成同一个工作。 ( 4 ) 支持应用架构的不断变更。可以方便地重新配制以增加或去除系统而 不会影响其它系统。 ( 5 ) 能够提供实时接口和批处理接口,能够提供同步和异步接口。 ( 6 ) 必须保证数据的安全,只有目的应用可以读取。 ( 7 ) 良好的性能和数据吞吐量,并且具有灵活的可扩展性以适应企业的发 展。 ( 8 ) 必须具备恢复机制,当数据传输过程中发生连接中断等异常时可以确 保数据的恢复。 ( 9 ) 对流程管理提供预定义的通用模型与行业模型。 ( 1 0 ) 既能够提供实时接口和批处理接口,又能够提供同步和异步接口。 1 3w e b m e t h o d s 简介 1 3 1 全面业务透视简介 因特网和开放标准的广泛运用要求企业和业务伙伴之间能进行实时的系统 集成。对此,企业面临的挑战就是要通过构建一些能跨企业内外各应用、信息 系统和人工操作的复合型解决方案,将原先分散的不同系统资产整合到强大而 高效的业务流程中。 全面业务透视( g l o b a lb u s i n e s sv i s i b i l i t y ) 是扩展型企业和基本业务流程的 实时综合视图。不论企业扩展到多大规模,都可以通过它全局查看整个企业的 每个客户、供应商、项目、订单以及资产的详细信息。 要实现全面业务透视,企业就必须将员工、系统和业务真正集成起来,实 现企业应用、数据库和w e b 服务之间的信息共享,同时还必须确保数据的完 整性。这些应用所支持的流程还要能在应用之间无缝运行,业务管理者则应能 轻松且实时地定义和管理业务流程,这样才能使企业保持灵活性和竞争力。 全面业务透视主要通过部署一个集成网络来实现,而且这个集成网络要建 立在w e b m e t h o d s 所提供的成熟而全面的集成技术之上,同时并辅之以能使企 业快速投入生产的方法、工具和最佳业务实践。全面业务透视可使企业集成其 各种不同性质的系统,充分利用w e b 服务,并管理业务流程、行业标准及协 议。一旦投入使用,“全球业务透视”便会成为可重复使用的战略性公司资产, 随时准备提供下一代集成的能力,以满足部署和管理复杂业务流程的需要。 i 3 2w e b m e t h o d s6 简介 w e b m e t h o d s6 是一个提供全面业务透视功能的集成平台,使用该集成 平台,客户可以更有效地集成和管理跨整个企业的业务流程,实现对业务和i t 资源的全面透视。该集成平台提供的基础架构和连接逻辑能够让不同资源连贯 而统一地运作。它执行的基本工作包括根据既定的业务规则在不同的资源间传 递信息、分发文档,以及调用目标系统上的流程。同时,它还可以控制集成逻 辑,执行数据转换和验证操作,并支持不同资源间的同步( r p c 和请求响应) 和异步( 消息传递) 交互模式。 将要集成的资源连接到w e b m e t h o d si n t e g r a t i o np l a t f o r m ,而不是彼此直接 连接,就可以创建一个可高度扩展的安全骨干,用来建立关键任务型的企业集 成网络,从而提供和管理业务的全局视图。平台通过集成现有的系统,实现企 业对信息技术投资的充分利用,无需部署新的独立系统或是对现有应用系统进 行大规模的调整。 1 3 3w e b m e t h o d s6i n t e g r a t i o np l a t f o r m 组件 w e b m e t h o d s6 i n t e g r a t i o n p l a t f o r m 由用于设计、执行和管理集成解决方案 的3 类组件构成: ( 1 ) 设计时组件包括: w e b m e t h o d sm o d e l e r w e b m e t h o d sw o r k f l o wd e s i g n e r w e b m e t h o d sd e v e l o p e r ( 2 ) 运行时组件包括: w e b m e t h o d si n t e g r a t i o ns e r v e r w e b m e t h o d sb r o k e r w e b m e t h o d sa d a p t e r s w e b m e t h o d s m a i n l a m e w e b m e t h o d sw o r k f l o w ( 3 ) 管理组件有: w e b m e t h o d sa d m i n i s t r a t o r w e b m e t h o d sm o n i t o r w e b m e t h o d sm a n a g e r 分别介绍如下: 1 设计时组件 设计时组件用来构筑、测试和部署要在w e b m e t h o d si n t e g r a t i o np l a t f o r m 上运行的集成解决方案。 w e b m e t h o d s m o d e l e r 是一个用于设计和实施业务流程的图形化工具。业务 流程是指系统、人员和业务伙伴等多方参与而形成的多步交互,此交互可以是 完全自动化的操作( 仅涉及计算机系统之间的交互) ,也可以包含不同程度的 人工参与( 如检查和审批步骤) 。 w e b m e t h o d sw o r k f l o wd e s i g n e r 用来开发和部署人工参与的工作流,即由 一或多个人员执行的步骤组成的工作流。人工工作流由任务序列构成, w o r k f l o wd e s i g n e r 可以将这些任务模型化,并定义工作流参与者的角色。 w e b m e t h o d sd e v e l o p e r 是一个综合的图形化开发环境,可用于建立、编辑 和测试集成逻辑。同时它还提供其他编辑器和工具,用于创建支持集成解决方 案执行的各种对象。例如,可以使用d e v e l o p e r 来创建数据验证要使用的文档 类型和模式,定义那些发布某些文档时启动服务的触发器。d e v e l o p e r 还提供 了专门的编辑器来创建特定运行时组件的逻辑,包括: ( 1 ) 适配器服务调用后台资源上特定流程的服务( 例如,查询客户数据库 应用系统) 。 ( 2 ) 适配器通知后台系统发出的警报,要求对集成平台上的动作进行初始 化。 ( 3 ) w e b 服务定义语言( w s d l ) 文档将集成服务提供给外部客户作为 w e b 服务的接口定义。 ( 4 ) 事务处理定义集成平台用来向主机电脑提交事务处理的接口定义。 2 运行时组件 运行时组件执行集成解决方案,并在资源间传送信息、转换和验证数据、 执行集成逻辑,并调用目标系统上的流程。 w e b m e t h o d si n t e g r a t i o ns e r v e r 是平台上的核心运行时组件,是执行集成逻 辑的主要引擎,也是要集成系统和应用的切入点。一或多个适配器会运行于 i n t e g r a t i o ns e r v e r 上,并与要集成的应用系统或系统进行直接交互。i n t e g r a t i o n s e r v e r 是联系集成平台和企业外部系统的中心点。通过在i n t e g r a t i o ns e r v e r 上执行集成逻辑,来完成将一个资源中检索到的数据传递到另一个资源的具体 操作。集成逻辑位于称为服务的工作单元中,该服务在i n t e g r a t i o ns e r v e r 上 运行。在集成解决方案中,服务用于从资源中检索或接收数据、执行计算、应 用业务规则、执行数据转换,以及将数据传递到其他资源、系统和流程。 w e b m e t h o d sb r o k e r 是一个高速的消息路由器,是平台“消息传递骨干”的主 要组件。它使用发布和订阅模型来启用异步消息传递解决方案,此模型是一个 以消息为基础的解决方案,通过消息代理器进行消息( 带文档) 的匿名交换。 在此模型中,产生信息的应用系统会将信息置于要发布到b r o k e r 的特定类型 文档中。因此需要该信息的应用系统就需订阅这些特定类型的文档。b r o k e r 的 作用是维护不同类型文档的订户列表,并在信息生成者( 发布者) 和信息使用 者( 订户) 之间传送文档。在集成解决方案中,i n t e g r a t i o ns e r v e r 和w o r k f l o w s e r v e r 等w e b m e t h o d s 组件既是发布者也是订户。当b r o k e r 收到发布的文档 时,就会将该文档排列到其所属类型的文档队列中,供需要的订户订阅。订户 便可从文档队列中接收该文档,而这一操作通常会触发处理该文档的订户系统 上的某一动作。 w e b m e t h o d sa d a p t e r s 运行于i n t e g r a t i o ns e r v e r 上,可将企业内后台资源 ( 如客户数据库) 的数据或业务逻辑连接到集成平台。可借助适配器在集成解 决方案中整合资源,而无需编写复杂的定制资源代码,也无需了解基础的资源 细节。所有的基础工作,包括连接资源、管理通信、对数据进行编码和解码, 以及通过资源的a p i 调用进程等,都由适配器执行。i n t e g r a t i o ns e r v e r 要求 每种资源都配有一个与之交互的适配器。w e b m e t h o d s 提供了可用于大量数据 库和业务系统的适配器。运行时,i n t e g r a t i o ns e r v e r 通过适配器服务初始化后 台资源中的进程。后台资源又会通过适配器通知在集成平台上进行初始化动 作,该通知会向平台发出更改警报,要求调用其他系统和应用系统的动作。 w e b m e t h o d sm a i n f r a m e 组件位于集成平台的i n t e g r a t i o ns e r v e r 和主机之 间。它通过t c p i p 或s n a ( 系统网络体系结构) 网络与主机进行通信。根据 主机电脑功能的不同,w e b m e t h o d sm a i n f r a m e 组件可以使用基于界面或基于消 息的事务处理来提交请求。 w e b m e t h o d sw o r k f l o w 指导w o r k f l o w d e s i g n e r 中定义的人工工作流的执 行,还经常用于处理非自动化流程中的异常。其组件由w o r k f l o ws e r v e r ( 凭 借在适当的时间将消息发送给适当的参与者来协调工作流的执行) 和 w o r k f l o w c l i e n t ( 参与者用来查看并完成其未决任务) 组成。w o r k f l o w c l i e n t 可通过为任务定制的j a v a 或h t m l 用户界面,向参与者提供任务的相关信 息。 6 3 管理和监控组件 管理和监控组件用来配置、监控和管理w e b m e t h o d si n t e g r a t i o np l a t f o r m 上运行的资源和流程。 w e b m e t h o d sa d m i n i s t r a t o r 以基于浏览器的单一界面来配置和管理平台上 的所有w e b m e t h o d s 服务器。它充当平台上w e b m e t h o d s 服务器( i n t e g r a t i o n s e r v e r 、w e b m e t h o d sm a i n f r a m e 组件和b r o k e r ) 的管理界面门。用户可以直接 将浏览器指向服务器,继续打开该服务器的管理界面。 w e b m e t h o d s m o n i t o r 是一个管理工具,可用来检查集成平台正在处理或已 经完成处理的业务流程、服务和文档实例。除了查看流程、服务和文档的状态 信息之外,用户还可以使用m o n i t o r 来执行控制任务,如挂起或恢复业务流程, 或者编辑文档并重新提交。 w e b m e t h o d sm a n a g e r 是一个基于开放式管理界面以及x m l 、s o a p 和 h t t p 开放标准的系统管理工具。它帮助操作员或管理员监督集成平台以及企 业内其他系统和应用的运行情况,并迅速作出判断。例如,它可以判断出失败 是由适配器造成还是由后台资源本身引起。同时它还会提供一个全面视图,帮 助用户判断是否可以通过调整业务流程运行的软硬件或网络来改善业务流程。 1 4 本文主要工作及内容安排 1 主要工作 传统的企业应用整合概念仅指企业内部不同应用系统之间的互连,以期通 过应用整合实现数据在多个系统之间的同步和共享。本项目工作的重点在于将 e a i 技术扩展到业务整合( b u s i n e s si n t e g r a t i o n ) 的范畴,业务整合相对e a i 来说是一个更宽泛的概念,它将应用整合进一步拓展到业务流程整合的级别。 业务整合不仅要提供应用系统之闯的互连,同时要实现存在于企业内部应用与 应用之间,本企业和其他合作伙伴之间的端到端的业务流程的管理。 我们为项目开发的流服务不仅使用j d b c ,文件适配器等技术标准类适配 器作为数据接口实现了应用接口层的集成。使用x m l 作为数据格式的统一描 述语言实现了应用整合层的集成,还实现了端到端的业务流程整合层的集成, 使得流服务成为业务流程逻辑的具体实现者。 2 内容安排 第一章介绍e a i 的由来和现状,以及专业的e a i 厂商w e b m e t h o d s 公司的 集成平台的组件模块。 第二章介绍了w e b m e t h o d s 的d e v e l o p e r 流服务开发平台的基本知识。 第三章较详细地描述了我们为尼桑公司开发的e a i 二期项目的需求分析, 系统结构,以及其中一个服务的逻辑分析及具体实现。 第四章介绍了对上一章所描述服务的测试情况。 7 第五章是对本文的工作做了总结,同时描述了e a i 的前景以及下一步还需 要做的工作。 8 第二章流服务设计基本概念 2 1 流服务( f 1 0 w s e r v i c e ) 的基本概念 w e b m e t h o d s 中的流服务不仅是一个消息中间件,更是企业业务流程逻辑的 实现者。w e b m e t h o d s 的i n t e g r a t i o ns e r v e r 通过调用这些流服务来实现对企 业业务流程的全面分析管理,满足企业内部各应用系统、企业与客户、合作伙 伴之间的业务需求,实现端到端的业务流程,顺畅企业内外的数据流、信息流 和业务流。 2 1 1 流服务的结构 流服务是由w e b m e t h o d s 的流语言编写的,这种语言允许在一个单一的服务 中压缩一系列的服务,并管理其中的数据流。例如,可以创建一个流服务从购 买者处获得购物订单,运行该流服务后将订单提交给内部订货系统。集成服务 如下: ( 1 ) 获得购买者的购物订单; ( 2 ) 在审计文件中写一条日志以记录本次订购; ( 3 ) 执行信用检查; ( 4 ) 提交本次订购给订购系统。 流服务的结构如下图所示: 图2 - 1 流服务典型结构 在一个流服务中可以调用任何类型的服务( 包括其他的流服务) 。例如,一 个流服务可以调用由你创建的服务,由w e b m e t h o d s 提供的其内建的服务,或 者w e b m e t h o d s j d b c 适配器。流服务由w e b m e t h o d s 的开发组件d e v e l o p e r 创 建,被储存在w e b m e t h o d s 集成服务器( i n t e g r a t i o n s e r v e r ) 的x m l 文档中。 在w e b m e t h o d s 中,管道是一个通用术语,用于描述特定的数据结构,该 9 结构中的输入输出值被包含在流服务中。它允许流服务中的流步骤共享这些数 据。流服务的输入数据成为管道的初始内容,管道将收集流服务执行过程中所 有子服务的输入输出数据。当流服务中的某一个子服务运行时,它可以访问此 刻管道中所有的数据。 f l o w s e r v i c et h ep i p e l i n e o n u r n ;0 1 - 1 2 3 4 t 。 i n v o k ep u r c h :l o g p on a m e :张三 p h o n e :3 3 4 4 5 5 6 o u t p u t 7 l n u m :14 7 2 5 8 3 6 9 a c c t :1 4 7 2 5 8 3 6 9 l n v o k ej r t o t a l :5 6 7 8 p u r c h :c r e d i t 产u t h q t y : 2 0 n l l t n t 。a u t h n h m ;h f 9 9 1 2 3 4 5 图2 - 2 管道结构 如上图所示,管道中的数据( o n u m ,n a m e ,p h o n e ) 作为服务p u r c h :l o g p o 的 输入数据,该服务的输出数据又进入管道,并成为下一步服务的输入数据。构 建一个流服务时,须使用d e v e l o p e r 组件详细描述管道中的数据如何映射到流 中的服务上。 输入输出参数是流服务需要输入的和由它生成的需要输出的字段名和类 型。例如,一个流服务可能采用两个字段( 一个a c c o u n t n u m b e r ( a c c t n u m ) 和一个d o l l a r a m o u n t ( o r d e r t o t a l ) ) 作为输入数据,产生一个a u t h o r i z a t i o n c o d e ( a u t h c o d e ) 作为输出数据,那么它的输入输出数据类型可能如下图所示: 图2 - 3 输入输出结构 定义输入输出参数是创建一个流服务创建过程的一部分。 2 1 2 流步骤( f l o ws t e p ) 的结构 一个流服务包括一些流步骤。一个流步骤是运行时i n t e g r a t i o n s e r v e r 所执 1 0 行的基本工作单元。w e b m e t h o d s 的流语言提供了用于调用其他服务的流步骤, 以及可以让开发者在管道中编辑数据的流步骤。 w e b m e t h o d s 的流语言提供了一个控制步骤集以控制流服务的执行流程,其 控制作用有: ( 1 )以某一字段值为条件决定执行路线; ( 2 ) 不断尝试一个执行序列直至成功( 失败) ; ( 3 ) 对数组中的每个元素重复执行一个动作序列。 在下图所示的流服务中,控制步骤被插入到一个循环中,循环包括流服 务的子集以及一个分支。 p u c h :s u b m l t p o 一个l o o p 重复执行 一系列流步骤 一个b r a n c h 选择 执行特定的流步骤 i n v o k ep u r c h :g e t o r d e r s l o o pp u h a s e o r d e r s i n v o k ep u r c h :l o g o r d e r i n v o k ep u r c h :c r e d i t a u t h b r a n c ha u t h o k i n v o k ep u r c h :p o s t p o i n v o k ep u r c h ;b o u n c e o p 图2 - 4 流步骤典型结构 流服务中可包含的流步骤的类型共有七种,现简要介绍之: 1 i n v o k e 在一个流服务中,可以用流步骤i n v o k e 调用另一个服务。i n v o k e 可用 于: ( 1 ) 调用任何类型的服务,包括其他的流服务和w e b s e r v i c e 连接器; ( 2 ) 调用任何在本地w e b m e t h o d si n t e g r a t i o ns e r v e r 上的当前流服务的开 发者有权调用的任何服务; ( 3 ) 调用任何w e b m e t h o d si n t e g r a t i o ns e r v e r 内建的服务。 流步骤i n v o k e 的服务特性指名了运行时将要被调用的服务。当在流服务 中插入一个i n v o k e 步骤时,d e v e l o p e r 会自动将被调用的服务名分配给 i n v o k e 的服务特性。 w e b m e t h o d s 库提供了大量内建的服务可供调用,包括传送数据的服务, 实现一些数学操作的服务,从x m l 文档解析数据的服务,以及操作数据库的 服务等。w e b m e t h o d s 内建的服务储存在w m p u b l i c 包中,我们在开发中用到了 大量包中的服务。 2 m a p 流步骤m a p 用于调整一个流服务中任何一处的管道中的内容,它的作用 有: ( 1 ) 通过连接,添加和去除管道中的变量等手段来调整管道的内容,以使 管道供其在流服务中的后续步骤所使用: ( 2 ) 一个流步骤完成后可能会在管道中添加了一些宇段,而后续步骤不再需 要这些字段,则可在此处插入一个m a p 以清除这些字段; ( 3 ) 在管道中移动变量或给变量赋值; ( 4 ) 为一个流服务的输入参数作初始化工作; ( 5 ) 将一种文档格式映射到另一种文档格式。 3 b r a n c h 流步骤b r a n c h 用于在流服务运行时按照相关变量值决定执行步骤的分 支。例如,在货物订购的处理过程中,如果变量p a y m e n t t y p e 是“c r e d i t c a r d ”, 那么后续步骤向一个方向执行;如果p a y m e n t t y p e 是“c a s h ”,那么后续步骤向 另一个方向执行。 b r a n c h 的作用有: ( 1 ) 按变量值选择分支:由有关变量值决定哪一个子步骤被执行。在流服 务运行时,流步骤b r a n c h 将变量值和它的每一个目标标签做比较,执行其 标签值与变量值相匹配的子步骤; ( 2 ) 按表达式值选择分支:在流服务运行时,流步骤b r a n c h 将计算每 一个子步骤的标签中的表达式的值,执行第一个其表达式值为t r u e 的子步骤。 作为分支选择的变量必须是一个s t r i n g 类型的变量,必须是一个当 b r a n c h 步骤被执行时管道中存在的变量。 在创建一个b r a n c h 流步骤时,可以包含与空值匹配的子步骤。在 b r a n c h 流步骤看来,如果管道中不存在变量或变量被明确设为n u l l ,则 b r a n c h 认为应选择与空值匹配的子步骤。如果管道中存在变量,但其是一个 长度为0 的s t r i n g 变量时,b r a n c h 以相同方式对待之。 4 l o o p l o o p 流步骤用于循环。对于由开发者设定的一个数组,l o o p 流步骤将 对数组中的每个元素执行一个子步骤序列,一次循环处理一个元素。例如,当 前管道中有一个描述货物订购情况的数组,其中每个元素对应一条订单,则此 时可用l o o p 流步骤来处理数组中的每一条订单。 可以在l o o p 体中包含任何有效的流步骤,包括其他的l o o p 流步骤。 必须为l o o p 流步骤详细描述输入数组,该数组中的单个元素将作为 l o o p 体中一个或多个流步骤的输入数据。运行时,l o o p 流步骤将对数组中 的每个元素执行一遍。例如,要想在l o o p 中循环处理货物订购数组中的每一 条订单,则需要使用文档列表( d o c u m e n t l i s t ) 存储该数组,每一条订单存储与 一个文档中。w e b m e t h o d s 中可用于存储数组的数据类型有: ( 1 ) 串列表( s t r i n g l i s t ) :适用于元素为字符串的情况: ( 2 ) 文档列表( d o c u m e n t l i s t ) :适用于元素为复杂数据类型的情况; ( 3 ) 对象列表( o b j e c t l i s t ) :适用于其他情况。 当在流服务中设计l o o p 流步骤时,因为l o o p 循环体中的操作是针对输 入数组中的单个元素的,所以l o o p 循环体中的流步骤的输入参数必须被设计 为单个元素,而不是整个数组。 如果l o o p 流步骤产生输出变量,i n t e r g r a t i o ns e r v e r 可以聚集这些数据, 送入管道中。为了实现这一步,必须使用输出数组参数来详细定义数组名, i n t e r g r a t i o ns e r v e r 会把循环体产生的所有数据放入数组中。 5 r e p e a t r e p e a t 流步骤用于有条件地重复执行一系列子步骤( 条件取决于这些子 步骤的成功或失败) ,它用于以下场合: ( 1 ) 如果一个流步骤系列中的任何一步失败,则重复执行该流步骤系列: 当服务访问一个外部系统( 例如:数据库,网络服务器等) 或设备时,可能会 出现暂时的失败,那么需要重复尝试。r e p e a t 流步骤可用于这种场合; ( 2 ) 重复执行一个流步骤系列,直到其中一步失败而退出:这种选择用于 只要特定环境还存在,就必须不断重复执行流步骤系列的场合。( 例如,只要 数据集中还有数据,就必须不断处理) 。 当创建一个r e p e a t 流步骤时,需设置r e p e a t o n 属性以详细描述重复条 件( s u c c e s so rf a i l u r e ) ,该条件将决定运行时子步骤系列被重复执行的情况。 r e p e a t 流步骤的c o u n t 属性决定其子步骤系列重复执行的最大次数,如果 c o u n t 属性值设为: ( 1 ) 0 :不执行子步骤系列; ( 2 ) 任何大于0 的值:该值即为重复执行的最大次数; ( 3 ) 1 或空值:只要r e p e a t o n 属性值为t r u e 就重复执行子步骤系列。 实际r e p e a t 的子步骤系列至少执行一次。c o u n t 属性描述l e 其子步骤系 列可能被重复执行的最大次数,在子步骤系列的一次执行完成时,s e r v e r 会去 检查当前的状态是否满足已设定的重复条件。如果满足( 即r e p e a t o n 属性值 为t r u e ) ,且未超出c o u n t 所限,则熏复执行子步骤系列。只有条件不满足( 即 r e p e a t o n 属性值为f a i l ) 或超出c o u n t 所限时,才会退出r e p e a t 流步骤。也 就是说,当c o u n t ) 一1 时,r e p e a t 流步骤的子步骤系列被重复执行的最大次 数实际上是c o u n t + 1 。 下述条件会导致r e p e a t 流步骤的失败: ( 1 ) r e p e a t o n 属性被设为s u c c e s s ,而r e p e a t 流步骤中的一个子步骤 失败; ( 2 ) 到达c o u n t 属性所设定的上限。 如果此r e p e a t 流步骤是另一个流步骤的子步骤,那么失败信息会传递给 它的父流步骤。 6 s e q u e n c e s e q u e n c e 流步骤将一些流步骤集组装成一个系列。s e q u e n c e 步骤是 大多数流服务所固有的。在默认情况下,流服务把所有的流步骤都看成一个系 列( 除了b

温馨提示

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

评论

0/150

提交评论