HENXU-SOA的业务规划和建模方法_09(实践案例介绍“汽车

上传人:hjk****65 文档编号:173566448 上传时间:2022-12-11 格式:DOC 页数:16 大小:70.50KB
收藏 版权申诉 举报 下载
HENXU-SOA的业务规划和建模方法_09(实践案例介绍“汽车_第1页
第1页 / 共16页
HENXU-SOA的业务规划和建模方法_09(实践案例介绍“汽车_第2页
第2页 / 共16页
HENXU-SOA的业务规划和建模方法_09(实践案例介绍“汽车_第3页
第3页 / 共16页
资源描述:

《HENXU-SOA的业务规划和建模方法_09(实践案例介绍“汽车》由会员分享,可在线阅读,更多相关《HENXU-SOA的业务规划和建模方法_09(实践案例介绍“汽车(16页珍藏版)》请在装配图网上搜索。

1、 本文由war007贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 面向服务体系架构的业务规划和建模方法 实践案例介绍汽车贷款 肖勇 北京恒讯时代信息技术有限公司 xiaoy SOA架构项目的模式 发现 构建和测试 组合 流程整合 人员整合 信息整合和管理 收集需求 建模和仿真 设计 财务透明 商业/IT 调整 过程控制 应用程序和服务管理 身份识别和权限管理 监控商业标准 北京恒讯时代信息技术有限公司 2 SOA 实施步骤总结 0. SOA采纳步骤和价值分析 1. SOA监管 2. 服务建模 3. 服务实现和架构设计 4. 以服务为中心的开发和集成

2、 5. 服务管理 北京恒讯时代信息技术有限公司 3 SOA采纳步骤和价值分析-业务场景介绍 北京恒讯时代信息技术有限公司 4 SOA采纳步骤和价值分析-业务场景介绍(续) 在业务流程中起到枢纽作用的信贷员,通过不同的方式访问不同 的系统,获取申请人的相关信息,同时通过电子办公系统向信贷 经理提交贷款审批申请.多样化的人机界面既增加了对信贷员的 IT技能要求,也极大的降低了信贷员的工作效率. 北京恒讯时代信息技术有限公司 5 SOA采纳步骤和价值分析-SOA 评估框架和 SOA 成 熟度模型简介 评估框架主要分析企业IT系统在如下四个方面的特性: 1. 组织和流程:企业是否有实施SOA的经验,实

3、施SOA的范围多大, 企业是否规划过需要实现的SOA的能力,业务部门是否理解SOA实施的 价值和过程,特别是业务部门参与重要性,是否有系统的方法指导服 务的发现和设计,业务部门在服务的发现和设计中参与的程度如何; 2. 应用:目前应用如何暴露可重用的逻辑?应用间连通的实时和异 构特性如何?企业开始在多大构建复合应用? 3. 架构:目前企业应用集成现状?企业应用的组件化程度如何?是 否存在服务模型?范围多大? 4. 基础架构:基础架构如何保持可扩展性和灵活性保证满足业务部 门的需要?基础设施如何响应业务流程性能的变化?是否存在统一的 安全架构和规范? 北京恒讯时代信息技术有限公司 6 SOA采纳

4、步骤和价值分析-REVIEW:SOA成熟度模型将 SOA成熟度划分为7个层次: L1. 孤立的:大多数为孤立应用,存在集成也基本上以数据集成为主;当需求 发生变化时,需要大量的琐碎的架构调整; L2. 集成的:应用间存在大量集成,但是以点到点的连接方式为主,应用程序 的重构主要通过数据集成完成; L3. 组件化的:将主要的或关键的应用从功能角度进行了组件划分,原有的 J2EE/.Net等应用通过重构实现这些组件,组件间的集成通过组件接口和相互 间的契约完成; L4. 简单服务:存在业务部门内的服务模型和构建在服务上的业务流程集成; L5. 组合服务:存在企业范围内和企业间的服务模型,已经在服务

5、模型基础上 完成价值链集成; L6. 虚拟化服务:基础设施如服务器和存储已经完成虚拟化,服务运行在这些 虚拟化的基础设施之上;基础设施,服务组件,服务,业务流程被极大解耦; 通过对基础设施的监控和管理来保证服务质量; L7. 动态配置服务:服务可以根据业务策略和IT策略进行动态组装; 北京恒讯时代信息技术有限公司 7 SOA采纳步骤和价值分析-示例场景的 SOA 现有成熟 度和目标成熟度分析 1. 组织和流程:无论是在贷款业务部门,还是在其他业务部门,都没有进行 过SOA的实施;业务人员普遍认为SOA是技术层面的事情,是IT部门的事情,业 务部门在SOA实施中没有任何责任; 2. 应用:构建在

6、主机上的核心银行系统业务逻辑体现为CICS的事务,业务逻 辑划分清晰,但是逻辑和表示紧耦合,而且其业务逻辑划分和整体需求有一定 差距,该银行已经构建EAI的基础设施,核心银行系统的业务逻辑可以通过EAI 中的消息总线访问;房贷和车贷系统分布构建在J2EE和.Net平台之上,设计系 统时对组件化考虑的很充分,主要的业务逻辑都构建在公共的组件基础之上, 如果其他系统需要访问房贷和车贷系统,需要进行点到点的集成;保险公司担 保网关是外部系统,已经服务化. 3. 架构:企业消息总线可以连通除房贷和车贷系统以外的大部分系统,但是 消息总线中介能力不强,主要集中在消息转换,对重复业务逻辑的访问需要应 用层

7、处理; 4. 基础架构:服务器,存储和网络设施异构性很大,业务系统性能的调控相 当刚性;已经具有统一的安全架构,如认证,授权和加密; 综合分析可见,对于整体企业而言其SOA成熟度,位于L2和L3之间;房贷和车 贷系统SOA成熟度位于L3. 北京恒讯时代信息技术有限公司 8 SOA采纳步骤和价值分析-示例场景的 SOA 采纳步骤 和价值分析 第一步:以汽车贷款审批流程为中心进行SOA试点 ( L2/3 - L4 ) 第二步:重构贷款系统以实现贷款部门的服务模型,并将业务流程实现为 复合应用 ( L2/3 - L4 ) 第三步:以消息总线的改造为中心,构建SOA监管组织和流程,并创建企业 服务模型

8、和企业范围内SOA的基础架构;( L4 - L5) 第四步:逐步迁移主要业务流程为复合应用,并完善SOA监管和服务模型; (L4-L5) 这一步主要是在前一步的建立的SOA基础架构之上逐步将应用迁 移到复合应用.实际上第三步和第四步应该是融和在一起的; 第五步:围绕价值链整合实现快速响应IT系统; (L5) 当完成SOA基础设施 建设和复合应用迁移后,企业已经具备条件进行流程优化和价值链整合. 这种条件下,无论是IT层面的调整,还是业务层面的调整,都可以通过服 务模型和企业服务总线隔离变化,从而使用尽量小的代价完成对变化的适 应,也即达到快速响应的IT. 北京恒讯时代信息技术有限公司 9 SO

9、A 实施步骤总结 0. SOA采纳步骤和价值分析 1. SOA监管 2. 服务建模 3. 服务实现和架构设计 4. 以服务为中心的开发和集成 5. 服务管理 北京恒讯时代信息技术有限公司 10 Review:服务建模方法论介绍 需要特别指出的是,SOMA的出现并不是要替代OOAD或者CBD,正如CBD 需要借助OOAD一样,SOMA也要借助OOAD和CBD进行实现层面的建模. 与OOAD和CBD相比较而言,SOMA贯穿整个IT建设的生命周期,在项目 规划,设计,实施,运行中都起到重要的作用.本项目就不展开阐述 了,相关信息可见参考资料. SOMA另外一个显著的特点就是将IT与业务对齐.在具体的

10、实施过程 中,SOMA将业务特性,如:业务目标,关键业务指标等,延伸到IT的 分析和架构决策过程,从而缩小业务与IT之间的差距.具体来看,业 务组件模型(或者类似业务分析方法论的结果),端到端的业务流程 以及关键业务指目标是SOMA的三项主要输入,SOA的实现则是SOA的输 出,从这也可以看出SOMA的定位是在业务和IT之间. 北京恒讯时代信息技术有限公司 11 服务建模-Review:SOMA分为服务发现,服务规约以 及服务实现三个阶段(服务发现) 服务发现:采用自上而下,自下而上和中间对齐的方式,得到服务 的候选者. 自上而下 (业务领域分解)方式从业务着手进行分析,将业务进行领 域分解,

11、流程分解,以及进行变化分析. 自下而上(已有资产分析)方式的目的是利用已有资产来实现服务,已 有资产包括:已有系统,套装或定制应用,行业规范或业务模型等. 中间对齐(业务目标建模)方式的目的是帮助发现与业务对齐的服务, 并确保关键的服务在流程分解和已有资产分析的过程中没有被遗漏. 北京恒讯时代信息技术有限公司 12 服务建模-Review:SOMA分为服务发现,服务规约以 及服务实现三个阶段(服务规范,服务的实现) 服务规约:定义实现服务的服务组件的细节,包括,数据,规则,服务,可配置概要,可能的 变更,同时还会涉及到消息,事件的定义和管理. 经过服务发现的阶段,得到候选服务目录,接下来就需要

12、决定暴露哪些服务.理论上所有的服 务候选者都可以暴露为服务,但是一旦暴露为服务,该服务候选者就必须满足附加的安全性, 性能等方面的要求,企业还必须为服务的规划,设计,开发,维护,监管支付额外的开支,因 此会根据一定的规则来决定将哪些服务候选者暴露为服务.这些规则包含以下几个方面: 业务对齐:该服务候选者可以支持相关的业务流程和业务目标. 可组装:该服务候选者满足技术中立,自包含以及无状态等特点,同时还满足复合应用的相 关非功能性需求. 可重用:该服务候选者可以在不同的应用,流程中重用,从而减少重复的功能实现,降低开 发和维护的成本. 基于企业应用开发的经验,还可以有其他一些方面的考虑.在决定暴

13、露特定的服务候选者为服 务以后,服务规约还需要定义服务的消息,非功能性需求以及服务之间的依赖关系,组合关系. 服务实现:根据对业务领域的理解和现有IT系统的分析,将服务的实现分配到相应的服务组 件,并决定服务的实现方式.具体的实现方式,可以由已有系统暴露相关功能为服务,或者重 新开发相关功能提供服务,也可以由合作伙伴来提供服务.无论采用哪种方式,都需要对于关 键点进行技术可行性的分析. 北京恒讯时代信息技术有限公司 13 服务建模-流程建模 定义和建模业务流程是提升业绩的关键因素.业务流程是一种可变的交互模 式,当某个组织在实现特定的业务目标时,在该组织的组件及其环境之间发生 了这些交互.业务

14、流程通常很复杂,因为在应对独特而瞬息万变的环境时,人 们会不断进行大量的更改.没有正式的流程文档和流程管理系统的话,这些流 程复杂性就会使组织遇到不必要的障碍和瓶颈.一个良好构建的业务流程模型 可以帮助您定位和排除那些隐藏的低效,高成本以及带来延迟的业务活动. 下面比较以下流程建模与服务建模的关系 首先,进行着两项活动的角色有明显的不同,流程建模一般由业务人员或者业务咨询 专家进行,而服务建模由SOA架构师在业务专员的支持下进行. 其次,两项活动看待研究对象的角度不同.流程建模从组织结构,业务流程及相关资 源的角度来看待业务,流程建模关注业务活动之间的流动;服务建模则利用服务 业务与IT的契约

15、来分析业务,服务建模关注业务活动之间的层次化和组合关系. 除了上面两点不同以外,这两项活动还是相互依赖,迭代进行的.粗粒度的流程模型 是服务建模的重要输入之一,帮助SOA架构师了解业务需求.服务建模的过程发现并 规约了服务,产生的结果服务列表以及服务的主要业务属性帮助业务人员准确的 定义流程模型中的业务活动和业务项.但是服务建模中IT的成分如安全性,可靠性, 流程建模并不关注; 流程建模中的模拟运行和优化又和服务建模没有直接的关系. 北京恒讯时代信息技术有限公司 14 服务建模-流程建模 北京恒讯时代信息技术有限公司 15 服务建模-实例分析:汽车贷款业务的相关组件 北京恒讯时代信息技术有限公

16、司 16 服务建模-实例分析:汽车贷款业务工作流程 北京恒讯时代信息技术有限公司 17 服务建模-实例分析:服务发现(确定) 自上而下方式 通过对业务流程的分解,可以得到服务的候选者.每一个业务活动的单元都是 服务的候选者. 中间对齐方式 通过与业务分析人员或业务咨询顾问的协作,可以获取服务建模的输入业 务目标.在本示例中,业务指标为降低成本和降低欺诈风险,并且通过销 售成本,自服务比例和坏账率这三个关键业务指标来度量业务目标的实施情况. 部分服务候选者可以与关键业务指标联系起来,例如:评估信用等级以及审批 等服务候选者可以降低坏账率. 自下而上方式 通过对现有IT环境的分析,可以掌握现有系统

17、的基本信息.了解到核心系统可 以提供获取存,贷款记录的功能. 根据与业务目标的联系,与现有系统功能的映射,可以验证自上而下分析方法 的结果,或者发现自上而下分析方法的遗漏.结合业务领域的分析,可以得到 服务候选者列表. 由于服务候选者比较多,可以采用领域分解的结果来将服务候选者进行分类. 领域分解的工作通常由资深的业务专家来进行,在本示例中,基于示范的目 的,确认目标业务流程所涉及的业务范围包括客户服务和风险控制,并将它们 作为分类的依据,得到服务候选者目录 北京恒讯时代信息技术有限公司 18 服务建模-实例分析:流程分解 服务 1 汽车贷款流程 1.1 确认购车价格 1.2 评估信用等级 1

18、.2.1 查询存款记录 1.2.2 查询贷款记录 1.2.3 计算信用等级 1.4 审批 1.6 担保 1.7 发放贷款 业务对齐 Y Y Y Y Y Y Y Y Y 北京恒讯时代信息技术有限公司 可组装 Y Y Y Y Y Y Y Y Y 可重用 Y Y Y Y Y Y Y 19 服务建模-服务 服务 1 汽车贷款流程 1.1 确认购车价格 1.2 评估信用等级 输入 1 汽车贷款流程 carModel Applicant 输出 Application carPrice creditResult 业务事件 applyResult 信用等级报警 业务规则 非功能性需 求 基于存款,贷款记录 的

19、信用评估业务 规则 性能(略) 性能(略) 性能(略) 1.2.1 查询存款记录 1.2.2 查询贷款记录 1.2.3 计算信用等级 Applicant Applicant applicant, depositHistory,l oanHistory Application Application loanRequest depositHistory loanHistory creditResult 1.4 审批 1.6 担保 1.7 发放贷款 approveResult assureResult loanResult 审批结果通知 授权额度业务规则 可用性(略) 贷款发放通知 北京恒讯时代信

20、息技术有限公司 20 服务建模-实例建模小结 实际项目中,服务规约会比较复杂,既包括具体的服务的操作,输 入消息,输出消息,也包括相关联的业务目标,业务规则,业务事 件,此外,非功能性需求等方面也是需要在服务实现以前定义.上 表仅仅列举几个方面做简单的示意. 除了对单个的服务本身进行规约,服务规约还包括服务之间关系的 描述,例如服务之间的依赖关系和包含关系. 在本示例中,汽车贷款流程由其他服务组装而成,评估信用等级由 查询存款记录,查询贷款记录和计算信用等级组装而成;执行审批 以前,必须先完成评估信用等级,因此从业务的角度来看,审批服 务依赖于评估信用等级. 北京恒讯时代信息技术有限公司 21

21、 SOA 实施步骤总结 0. SOA采纳步骤和价值分析 1. SOA监管 2. 服务建模 3. 服务实现和架构设计 4. 以服务为中心的开发和集成 5. 服务管理 北京恒讯时代信息技术有限公司 22 服务实现和架构设计-SOA参考架构 北京恒讯时代信息技术有限公司 23 服务实现和架构设计-服务实现 无论怎样进行服务建模,服务最终都将由不同的服务组件来实现. 因此服务实现是衔接服务建模和组件详细设计的关键步骤.服务实 现首先将服务分配到相应的服务组件,然后逐个分析服务实现方式 并进行技术可行性的验证. 在服务发现的过程中,根据业务领域的分析结果将服务按照业务范 围进行分类.在服务实现的过程中,

22、将业务范围直接映射到服务组 件,从而实现业务与IT的一致性. 客户服务业务组件将实现贷款流程,查询存贷款记录,发放贷款 等服务.风险管理业务组件将实现评估信用等级,审批,担保等 服务. 北京恒讯时代信息技术有限公司 24 服务实现和架构设计-实例分析 映射已有功能服务:如查询存款记录,查询贷款记录和担保.其好处非常明显,就是重用已 有功能,保护企业的投资;避免重复功能的存在,降低维护成本.但是在选择的过程中,需 要考虑传输协议,消息格式的差异,是否可以通过引入中介来弥合服务调用者和实现者之间 的差距.需要特别提出的是担保服务,该服务由合作伙伴提供,通过中介将外部的服务进行 映射(还需要重点考虑

23、安全性相关的问题),在业务流程中就可以无缝的使用了. 新建流程服务:如汽车贷款流程,评估信用等级.前者是一个长流程(Long Running),由 于有人工活动的参与,使得长流程的执行不能在可预期的短时间(如:几秒钟)内完成,需 要相关人员在完成自己的任务以后,流程才能进入下一步,常常是几天甚至几个月才能完成 整个流程;后者是一个短流程(Micro Flow).在传统的方案中,业务流程通常采用硬编码 的方式将多个功能组装起来;与之相对,这里推荐采用工作流(如BPEL)的方式将服务组装起 来,从而达到灵活组装,灵活应对变化的目的. 新建人工服务:如审批.人工服务是相对于自动化服务而言.自动化服务

24、通常由IT系统来提 供,不用人为的干预;人工服务则是由企业的员工,合作伙伴员工或者最终用户来执行,但 是它同样具备完整的服务描述.采用统一的服务描述来定义人工服务,可以将人工服务与自 动化服务统一对待,除了可以在多个应用之间重用人工服务以外,还可以在服务实现从人工 活动迁移到IT系统的过程中保持系统的柔性. 新建业务规则服务:如计算信用等级.由于这部分功能不稳定,会随着国民经济的发展,物 价水平以及社会环境的变化而变化.将易于变化的这部分逻辑从稳定的架构中剥离出来,可 以增强IT应对业务变化的能力.采用业务规则来实现相应的服务,可以相对灵活的进行修改 来适应业务的变化,业务规则引擎已经在大量的

25、行业得到广泛的应用. 新建功能服务:如确认购车价格.针对以前没有的功能,或者以前采用人工方式完成的功 能,现在可以引入自动化服务来提高业务流程的运行效率.在这里实现了新建功能服务以 后,也能在其他的应用中逐步引入,从而达到在企业范围内重用的目的. 北京恒讯时代信息技术有限公司 25 服务实现和架构设计-实例分析 北京恒讯时代信息技术有限公司 26 服务实现和架构设计-架构设计实例 北京恒讯时代信息技术有限公司 27 服务实现和架构设计-技术性的选择 ESB实现机制: 选择一:WebSphere Enterprise Service Bus 优点:内置的转换,路由中介,并且可以通 过客户化中介扩

26、展;采用标准的编程模型(SCA, SDO). 选择二:WebSphere Message Broker 优点:灵活的转换,路由能力;对负载均衡,高可用性上有很好的支持;支持基于MQ的可 靠传输;支持多样化的连接方式. 结论:此场景主要是业务部门级别应用,涉及的应用大多数都采用标准化技术,如: XML,Web Service等,也没有特别的分布式应用的需求.因此采用选择一,并利用 WebSphere Adapter for CICS将非标准化的CICS应用连接到WebSphere Enterprise Service Bus.在随着企业向SOA全面转型的以后,建议引入Message Broker

27、作为企 业服务总线的骨干,当前方案中的WebSphere Enterprise Bus作为一个业务部门级 别的节点接入骨干,形成整个企业的服务总线. 应用服务的集成: 选择一:Web Service 优点:支持分布式调用;跨平台;支持开放性标准. 选择二:EJB 优点:支持分布式调用;支持不同的J2EE中间件平台. 结论:企业服务总线是基于J2EE的实现,采用EJB的方式暴露应用服务,具备更好的性能. 因此选择方案二.即使将来希望采用Web Service方式,在WebSphere Application Server 上也能够很方便的将EJB(Session Bean)暴露为Web Serv

28、ice. 北京恒讯时代信息技术有限公司 28 服务实现和架构设计-技术产品的选择 选择一:通过Web Service访问贷款系统. 优点:支持开放性标准. 选择二:直接通过JDBC访问贷款系统数据库. 优点:支持分布式调用;性能较高. 结论:通过Web Service 访问贷款系统,应用层访问的方式,保证业 务的完整性,隔离具体的业务实现.同时避免直接访问数据库带来的 安全策略等问题.因此采用选择一. 北京恒讯时代信息技术有限公司 29 SOA 实施步骤总结 0. SOA采纳步骤和价值分析 1. SOA监管 2. 服务建模 3. 服务实现和架构设计 4. 以服务为中心的开发和集成 5. 服务管

29、理 北京恒讯时代信息技术有限公司 30 服务实现和架构设计-技术产品的选择 保险公司的多样化支持 由于各家保险公司的IT建设水平参差不齐,因此架构需要能够支持不同形式的接入. 对于能够独立提供服务网关的保险公司,采用Web Service或者socket的方式通过ESB接入. 对于不能提供服务网关的保险公司,可以实现一个人工服务,该人工服务遵循与合作伙伴服务同 样的服务规约.可以让保险公司的人员访问该人工服务,或者由银行职员通过传真,电话确认信 息,然后访问人工服务. 上面这两种形式的担保服务,对于业务流程是透明的,ESB会根据用户选择的保险公司,将请求路 由到保险公司的服务网关或者人工服务.

30、在保险公司建立或者升级自己的服务网关的时候,系统 只需要配置或者修改ESB就可以满足业务的需求. 评估信用等级的变化 现阶段,国内还没有统一的信用评估方案,随着相应的业务环境变化导致对信用评估带来的变 化,是可以预计到的. 短期的变化可能是信用评估的规则发生变化.由于每年各地的平均收入水平变化,信用评估的规 则可能相应的调整.基于业务规则实现的计算信用等级服务,可以灵活的进行规则的修改. 长期的变化可能是引入统一的信用评估平台.由国家或者第三方机构提供一个全国范围内统一的 信用评估平台.只需要将现有的评估信用等级业务子流程替换为外部的统一信用评估平台提供的 合作伙伴服务,通过ESB来弥合传输协

31、议和消息格式的不同,整个业务流程依然保持不变. 通过对上述变化场景的简单分析,验证了架构的可扩展性.当然这种可扩展性只能是在一定的程 度上满足业务的变化,也只有通过对业务变化的前瞻性分析,对系统架构进行修正,才能更好的 保证架构的可扩展性.这整个过程是一个迭代进行的过程. 北京恒讯时代信息技术有限公司 31 以服务为中心的开发和集成-项目实施的准备工作 已经了解到,通过业务价值分析和服务建模,经过服务架构的分析 和设计,我确定需要实现的服务接口和消息规约,以及服务之间的 调用关系.现在的任务就是如何实现和构建这样一个以服务为中心 的应用系统. 实现相应的集成模块,由架构组在整体层面上把握路线,

32、建立集成 模型.后面将进一步讨论如何逐步实现服务和持续集成服务. 首先简单分析一下项目的目标,此时能得到的输入是前面的输出 (服务规约,服务实现决策以及系统架构), 目标就是获得相应的输出:一个以服务为中心的应用系统. 北京恒讯时代信息技术有限公司 32 以服务为中心的开发和集成-采取以下的基本步骤 来实现项目的目标 1 项目准备:准备相关的软件:硬 件环境和组件开发团队. 2 在开发环境中定义服务:使用 WID工具定义服务的基本元素. 3 决定服务之间的物理关系和服务 集成模型:主要是得到服务集成的 顺序和路径. 4 逐步实现服务:使用模拟服务的 方法快速实现服务和快速测试. 5 持续集成服

33、务:根据服务模型的 顺序持续的集成服务,构建完整的 应用系统. 服务编号 S0 S1 S2 S3 S4 S5 S6 S7 S8 服务名称 汽车贷款流程服务 确认购车价格 查询存款记录 查询贷款记录 发放贷款 评估信用等级 计算信用等级 审批 担保 确认系统将要提供以上服务: 北京恒讯时代信息技术有限公司 33 以服务为中心的开发和集成-产品支持 北京恒讯时代信息技术有限公司 34 以服务为中心的开发和集成-产品支持(续) 北京恒讯时代信息技术有限公司 35 以服务为中心的开发和集成-团队组成 北京恒讯时代信息技术有限公司 36 以服务为中心的开发和集成-团队组成 通常项目团队的分组可能面临两种

34、选择: 一种是水平分组:按照应用的水平层次进行分组,如UI相关,流程相关,中介相关, 服务实现后台系统等. 一种是垂直分组:按业务功能划分,以业务流程为中心,功能相关的UI,流程,模 块,后台系统为一组. 在以服务为中心的SOA项目中,推荐将项目以服务为中心分为2个大的Work Stream: 1 服务实现: 包括新的服务和对现有服务的包装,这样实现的服务将作为基本的服务组件分 布在服务模块中,等待互相调用和被流程等方式进行编排. 2 服务集成 包括从UI到业务流程,或者SCA之间的装配. 这样考虑主要是因为服务的实现是可以独立的完成(强调SOA中的Service是粗粒度的 业务服务),而服务

35、的集成主要体现在流程以及服务模块之间的装配,这样的划分对 于项目将来的持续集成有着非常重要的意义. 每个Work Stream之中,可能需要按业务或者技术侧重分成若干小组,同时Work Stream之中,根据人员技能的不同,每个开发人员的角色会有侧重.各Work Stream 之间需要保持相应的交流,对于一些重要的技术人员或者领域专家,可以在Work Stream之间实现共享, 北京恒讯时代信息技术有限公司 37 以服务为中心的开发和集成-人员技能要求 北京恒讯时代信息技术有限公司 38 以服务为中心的开发和集成-服务消息规约示例 北京恒讯时代信息技术有限公司 39 以服务为中心的开发和集成-

36、服务接口规约示例 北京恒讯时代信息技术有限公司 40 以服务为中心的开发和集成-业务对象设计 1 引用:在WID中,虽然在业务集成视图提供了可视化的编辑BO的方式, 但仍然会不时的打开BO对应的XSD定义文件,进行一些手工的操作. 2 继承:请注意WID支持BO之间的继承关系,其实现是通过XSD的 extension来实现的,WSDL中的消息也是通过XSD来定义的,因此也支持继 承.在一个复杂的系统中,业务对象不可能都是一个独立的存在,因此在 定义BO的时候,可能需要考虑继承.并且,更关注模块之间共享的BO,这 些BO作为消息线索,将串联起主要的业务流程,具有非常明显的业务含义. 3 映射:在

37、更为复杂的情况下,WID 支持BO之间的Mapping和 Transformer ,从而支持接口之间的Mapping,当然,也可以使用 Mediation模块里面的XSLTTransform来实现消息的转换. 北京恒讯时代信息技术有限公司 41 以服务为中心的开发和集成-服务接口 服务接口的定义在目前的WID中实际上支持两种定义方式,WSDL和Java接 口,但一般情况下,模块之间的接口使用WSDL,因为WSDL扩展性和通用 性都比较好.而模块内部,可能使用WSDL,也可能使用Java.如果相应 的一个Java服务组件不得不引用一个无状态的SessionBean,就不得不使 用该SessioB

38、ean的接口来定义这个组件的接口.在使用WSDL接口定义的 时候,尽量不要过早的在Process中绑定接口,因为一旦接口的参数的数 据组织格式发生变化,Process的调用接口和分配变量部分会发生很大的 变化. 如果希望暴露的接口和相应的组件接口不尽相同,可以使用接口映射, 接口之间的映射就需要用到业务对象的映射,而且也可以使用Mediation 来做,实际上完成的功能基本上是一样的. 北京恒讯时代信息技术有限公司 42 以服务为中心的开发和集成-业务对象的映射 在特定情况下,因为效率,事务等的需要,不得不在SCA中直接集 成EJB,并且无法使用WSDL轻易的实现映射,尤其是当数据种隐含 若类

39、型对象或者隐含特定的业务逻辑.对于常见的J2EE系统,会遇 见诸如Vector,List,HashMap这样的参数类型,对于这些弱类型 的Java对象,虽然WSDL提供了Any 类型,但是一般不太容易交互, 所以对于这种情况,就不得不需要使用良定义的Java对象来包装参 数,或者将包装后的方法暴露成Web Service,或者直接手工实现 Java和SDO的转化. 对于UI的重用性,有时候也要涉及BO和Java对象之间的转化,对于 这些情况,推荐使用自己编写的TransformerFactory来生成每个对 象和SDO的转化类.本项目中,实现的TransformerFactory实际上 是一个

40、Java代码生成器. 北京恒讯时代信息技术有限公司 43 以服务为中心的开发和集成-服务与模块映射关系 1 购车贷款审批流程模块 2 信用评估流程模块 3 中介模块 4 贷款系统包装 5 保险担保系统包装 6 汽车价格查询模块 北京恒讯时代信息技术有限公司 44 以服务为中心的开发和集成-实现服务集成模型 SCA作为SOA的编程模型,可以带来显著的价值,易于集成,实现高 灵活性和高开发效率.到目前为止,完成了服务和消息的定义,项 目中将独立的实现服务模块,UI,和后台系统,所有的这一切都是 为了集成,集成为最终的应用程序.本项目的目标就是要以服务为 中心,持续集成. 首先关注服务集成的模型,服

41、务集成的模型主要只服务之间关系建 立的计划安排和实现步骤.为什么需要一个服务集成模型?主要有 以下两点的考虑: 1 降低风险 2 最大限度利用资源 使用自动化的测试和基于模拟服务的持续集成将是实现目标的主要 手段. 北京恒讯时代信息技术有限公司 45 SCA模块内部的集成示意图 集成(或组装)是SCA中非常重要的概念,可以想象如果的应用程 序是一辆汽车,我服务就是汽车零件,服务模块这是汽车中的大型 部件,最终,需要通过组装来实现SOA应用,并且由于组件之间的 良定义的接口,组件都是可以替换的.在 SCA的编程模型下,模块 之间的集成主要依赖于SCA调用和BPEL 北京恒讯时代信息技术有限公司

42、46 以服务为中心的开发和集成-系统的集成 北京恒讯时代信息技术有限公司 47 以服务为中心的开发和集成-系统的集成(服务和 服务模块的逐步实现 ) 其中:UI1指大厅用户界面,UI2指网络用户; L1,核心系统; L2,贷款系统;L3,保险系统. 北京恒讯时代信息技术有限公司 48 以服务为中心的开发和集成-不建议模块之间的过 早绑定 因此凡是与绑定相关的工作,除非必要,不然都不要先实现,每个 模块应当聚焦于该模块自身的功能.延时绑定的可能会带来以下两 点好处: 1 在开发过程中绑定方式等各种条件会随着认识的深入和项目的进展而 变化,过早的绑定往往可能需要重新设置,当然使用WID工具,这样的

43、变 更往往不是很耗费时间,但是变更带来的单元测试和集成测试以及重新 部署等工作,可能会消耗比较多的时间. 2 单元测试阶段可以隔离组件间的影响,专注于组件内部的测试,不需 要过早的建立组件之间的联系,以免得到扩散的测试结果. 北京恒讯时代信息技术有限公司 49 以服务为中心的开发和集成-业务流程模块 在SOA的环境下,流程作为集成服务的主要手段,起着非常 重要的作用,通常情况下,业务流程是最接近展现层,流 程向下集成不同的SCA模块,向上提供了用户交互和服务调 用的功能,主要被UI集成.WPS中的BPEL流程引擎提供了丰 富和功能强大的API,很容易的可以被JSP,SWT等客户端工 具集成.

44、关于具体的BPEL开发,这里不打算详细介绍.在WPS6和WID 中,流程的实现更为简单,只需要简单的拖拽和设置,就 能完成一个业务流程的建模.当然IBM也提供了更为复杂和 专业的WBM(WebSphere Business Modeler),用于完整的 业务流程建模,使用WBM导出的模型文件,WID可以直接射 程业务流程组件. 对流程中的每个活动,可以增加业务事件的监控,设定CEI 的消息,以实现业务监控的相关功能. 在单独实现流程的时候,需要定义一些模拟的后台实现, 使得开发人员专注于流程本身(分支,选择,子流程 等),所有的Parnter的实现可以先使用Java 组件的方 式,使用伪代码或

45、者上文提到的测试数据生成器. 业务流程本身是要定义在一个SCA的模块中,尽量使得这个 模块只包括流程的逻辑,这样从部署,测试,变更控制等 角度来看,都具有很重要的意义. 当这部分工作完成后,看起来这个就是一个完整的流程, 包含了预定的业务功能,部署在自己的测试环境中,使用 BPC Explorer 可以进行测试,观察流程在测试数据的运行 情况下是否符合项目的预期,人工活动的交互是否满足等. 此时的测试还是比较简单的单元测试,主要测试流程的完 整性,流程调用和一些简单的业务逻辑. 北京恒讯时代信息技术有限公司 50 以服务为中心的开发和集成-业务流程示例 业务流程示例 业务流程模块中会包 含人工

46、服务,需要注 意对于包含人工活动 的流程,需要设定流 程类型为 longrunning,同时 需要设置相关的事务 属性和会话属性, 北京恒讯时代信息技术有限公司 51 以服务为中心的开发和集成-SCA的注意点 在SCA的世界里,所有的服务都是SCA的服务,但是只不过是绑定 的形式不一样,这符合一般的思维模式,比如服务本身的逻辑可 以类比于是MVC模式中的model,而多种不同形式的绑定就相当于 View.通常在WID中一般实现一个SCA模块的过程如下所示: 1 确定模块内的服务组件:定义服务组件; 2 确定模块的接口:定义组件的导出; 3 确定模块要引用的SCA服务:定义组件的导入; 4 确定

47、内部服务组件的实现方式:采用流程,中介,业务规则或是 Java实现组件的业务逻辑; 5 确定组件之间的关系:采用流程,连线或者Java代码编排服务. 北京恒讯时代信息技术有限公司 52 以服务为中心的开发和集成-ESB的实现 ESB的实现实际上就表现为采用中介模块虚拟化原有服务,利用路由实现 连通性,利用Mediation实现服务的适配.它能够显著的增加业务逻辑的 灵活性,隔离底层服务的区别,提供虚拟化的统一的业务服务视图. WID很明显的将中介模块和普通的SCA模块区分开来,只有在中介模块中 才能使用中介组件,中介组件主要实现服务的路由,消息的转换等工作. 在考虑一个服务中介组件的时候,首先

48、需要确定中介的类型,尽量将相 关的中介逻辑都要放在一个mediation组件中. 一个中介模块中可能有多个中介消息流,在这些消息流之间流动的除了 消息外,还有一些上下文,可以在每个中介节点中读写上下文,实现局 部的消息传递. 北京恒讯时代信息技术有限公司 53 以服务为中心的开发和集成-新建服务模块 在SOA的项目实践中,对于新建服务,实现方式上有两种选择: 1 独立完成,如采用传统J2EE等方式,实现后采用SCA包装.这样的考虑 主要是现有业务模式已经比较成熟,有很多可重用的设计模式和框架, 类包的支持,使得新建的服务可以和容易的实现.因此,在实现新建的 服务后,以Web Service或者

49、JMS或者EJB的方式暴露出来,在SCA中集成 他们,在流程中调用SCA,这是一种比较理想的实现方式. 2 直接在SCA模块中实现业务逻辑.适当情况下,业务逻辑可以存在于 SCA的组件中,比较常见的是Java组件或者业务规则组件,状态机等.这 样做可以减少在不同的层次之间的调用和映射,提高效率. 具体考虑服务的实现方式可能基于不同的应用会有不同的结果,推 荐新建服务使用最适合的方式实现,然后使用SCA模块进行调用和 集成,这样才能体现SCA的优点,一旦后台系统发生变化,SCA作为 中间层会向上屏蔽这些区别.这样所有SCA服务所在的中间层也就 是一个ESB. 北京恒讯时代信息技术有限公司 54

50、以服务为中心的开发和集成-后台系统包装 SOA将现有系统作为可重用的IT资产管理,重用的方式就需要将这 些系统包装成为服务,被业务系统集成和使用.IBM的产品家族为 集成现有系统提供了很多的途径,包括Adapter,EJB,Web Service,JMS等方式. 例如,在例子中,房贷系统使用的是基于Command模式的EJBFacad 来实现,不得不使用Java组件包装在后台系统,首先实现Java对象 到Java对象的Mapping,然后在实现包装系统的Java对象到SDO的映 射. 使用以上技术,将现有系统映射成为SCA模块,现有系统的功能通 过该SCA的导出,被暴露成可重用的标准化的服务接

51、口,作为进一 步集成的基础,通过重用实现了价值的最大化. 北京恒讯时代信息技术有限公司 55 以服务为中心的开发和集成-服务模拟和集成测试 由于项目进度的不均匀性,以及服务实现和服务装配2个不同开发路线 上的进度的不均衡,在实际的SAO项目中,经常会发生开发被阻塞或者 成员处于等待集成的状态中,因此非常有必要实现一些模拟的服务来供 进行单元测试和集成测试. 组件测试:对于Java组件,状态机,业务规则或者中介等组件,他们内 建的业务逻辑应该首先经过组件级别的单元测试,才会被允许集成.对 于组件的集成,可以使用ITC(Integration Test Client)来完成.ITC 提供了Emul

52、ator 的方式测试流程的运行和连贯性,全部采用人工活动 来模拟输入. 同样如果相应的逻辑被封装在Java代码中,以服务组件作为门面的话, 可以采用传统的方法如JUnit对相应的代码进行测试.注意,此时的测 试因为 1 缺乏Runtime 的上下文环境; 2 缺乏真实的业务环境. 所以此时的测试不见得能够说明问题,但是作为单元测试,能够保证组 件在测试条件下正常工作,就算为集成和集成测试打了一个好基础. 北京恒讯时代信息技术有限公司 56 以服务为中心的开发和集成-模拟客户端 在UI的工作没有完全完工之前,需要一个模拟的客户端,来和流程交 互,测试流程的功能.当流程和后面的模块集成后,就可以一

53、直测试到 后台系统,同样对于SCA的模块在单元测试的时候,也需要的一个模拟 的客户端. 使用ITC 首先可以使用WID的Integration Test Client,从右键菜单 Test Component进入该测试界面,ITC会自动生成界面供选择希望测 试的接口的方法,并可以输入参数,开始测试.ITC会将测试结果和测 试过程中捕获的异常以可视化的方式展现出来.ITC适用于所有的SCA模 块,包括流程模块.在ITC中如果不希望每次都要输入测试参数,可以 选择将测试参数保存进一个数据池,并将该次测试保存为配置文件,就 可以自动加载了. 使用BPC Explore 对于流程模块,如果已经和后台系

54、统或者虚拟服务连 接,可以使用BPC浏览器来测试流程模块.该方法简单快捷,但是可能 不太容易进行持续的,自动化的测试.值得注意的是,很显然在BPC浏 览器的后台,服务器端的代码是在调用BPE的API进行流程的交互,因此 可以自己手工编写测试代码去调用BPE API与流程容器交互,写出专门 的针对流程的自动测试代码. 北京恒讯时代信息技术有限公司 57 以服务为中心的开发和集成-评审和重构 可能的评审和讨论内容如下: 1 业务对象(BO)和服务接口(WSDL)的定义,包括对象映射和接口映射. 此时的评审主要是要邀请客户的业务专家,客户的技术决策人员,对BO的定义,接口 的约定,与后台系统的差距,

55、实现的连通性,整体结构的合理性,进行探讨. 对于发现的不合理的地方,需要重构的BO和接口,当经过一定的返工,再讨论后,可 以以某种契约形式固定这些接口和BO,作为进一步开发的基础. 在修改BO的时候,如果添加和删除BO中的属性,可能需要手工删除import的那个xsd. 添加和删除WSDL接口中的参数,可能会造成流程调用该服务时的参数格式的问题,可 能需要手工修改WSDL文件. 2服务的组装和服务的实现,服务的组装和实现包括流程,中介,组件的调用 等,在开发过程中,可能会产生如下的变化: 1 人工服务的实现可能会被机器服务取代; 2 服务的绑定方式会发生变化; 3 由于接口的变化和BO的变化带

56、来的影响; 4 服务实现的变化,例如:可能由Java实现转化为Business Rule实现. 北京恒讯时代信息技术有限公司 58 以服务为中心的开发和集成-持续集成 通常情况下流程集成,SOA应用和一般的应用从UI的角度看起来并没有 太大的区别.因此在UI的实现上,常见的方式都能够适用,最终的装配 可能有2种形式: 1 UI+BPEL; 2 UI+SCA 调用. 无论是那种情况,UI的model可能都是对应SDO,因此可能需要适当的方 式做一些SDO的转化,可以在JSF中直接使用SDO作为数据源进行展现, 而且这也是一种比较合理的做法. 对于UI和BPEL流程的集成,可能会使用一些BPE的A

57、PI,在JSP或者 Action中启动一个流程,并持续的和流程交互,UI的输入会被映射到流 程的人工服务. 对于UI和SCA的集成 也会用到WPS中的SCA API,具体可以参考相关的 Sample推荐 UI,Process和SCA 各司其职,主要的业务功能仍然使用其 最适合的方式,SCA和流程主要作为集成的手段,这样,对于开发部 署,变更等,系统具有更大的灵活性.在流程模块中,尽量不包含流程 以外的业务逻辑,业务功能应当在业务流程之后的SCA模块中实现. 北京恒讯时代信息技术有限公司 59 以服务为中心的开发和集成-持续测试 根据定义的集成模型,和持续的集成,迭代的开发,最终所有的集成会在预

58、定的时间完成,此 时需要进行完整的全面测试,测试路径将涵盖UI,流程,SCA模块和后台系统. 可以先测试一个流程中的一个功能,保证从UI到后台系统的连通性,验证体系结构的可行性. 注意如果对整个结构没有把握的话,这个过程可能提前.通常情况下,具备基础的SOA开发经验 的工程师和架构师在设定的架构,都能够满足运行时候的需要,而不会产生全面集成时的大的 架构变更. 业务功能测试是一项很巨大的工作,最好确保有一些自动测试代码和log分析工具来协助进行测 试,目前IBM公司也在开展一些SOA testing 方面的工作,希望将来会有整套的方法论和测试工 具支持SOA测试. 部署也应该进行测试,以保证相

59、应的开发平台和最终的运行环境匹配,因此当开发进行到一定 的程度,应当进行部署方面的测试,部署的测试主要是进行部署和连通性测试,保证环境的问 题尽早暴露.因此部署测试应该在至少全部的应用框架都能够运行,但是功能尚未全面完成的 时候开始的. 一个具体的SOA项目可能会有数十个部署单元,构建自动部署的脚本是十分必要和明智的,可以 帮节约很多的人力和时间,尤其在项目的后期,进行持续的测试和改进的时候,会频繁的部署 和测试.一般使用基于ANT的自动化部署脚本,可以方便的解决问题. 使用Ant工具和jacl部署脚本以在项目过程中积累的测试用例和测试代码,最终将完成从开发到 部署到测试的自动化集成. 最终的

60、测试脚本会首先从CVS上下代码,然后基于预先配置的类路径自动构建项目,然后实打包 项目的EAR文件,然后是部署,最后是使用前面完成的测试代码,自动运行测试脚本,打印测试 结果.这样项目的开发团队可以实现很高的开发效率.这里重复强调一点,因为采用很多动态 的技术和弱类型的对象,SCA编程模型对运行时的要求变得更高,很多问题只能在运行时才会发 现,因此,持续的测试和自动化的测试将会使得相应的SOA开发达到事半功倍的效果. 北京恒讯时代信息技术有限公司 60 以服务为中心的开发和集成-总结 回顾整个的开发过程,有如下的关键体会: 1 借助新的SOA编程模型来保证设计和实现阶段服务模型的一致性. 服务

61、模型包括服务的消息,接口,服务之间的关系等,认为服务模型的概念 会一直延伸到SCA模块的层次.在的实现中借助工具,使用SCA编程模型保证 了服务模型从消息定义到服务实现的一致性. 2 通过服务集成模型来降低SOA项目的实施风险: 服务集成的模型包括SCA内部的装配和SCA模块之间装配,以及这些装配的时 间,进度,资源的安排.一旦项目的服务集成模型被定义,开发和测试的进 度也就基本确定. 3 利用分层和映射来提高SOA开发和运行时的灵活性: SOA采用分层的方法来隔离关注,层次之间以及层次的对象之间,服务之 间,经常会需要映射,这是SOA项目实践中非常关键的一个问题. 4 利用持续的自动化的测试来提高SOA实施的质量和效率: 推荐采用测试代码的方法进行测试,除了灵活性的考虑,更多的是看重自动 化测试带来的优点.对于SOA架构下的复杂应用,自动化的测试具有相当重 大的意义. 北京恒讯时代信息技术有限公司 61 SOA 实施步骤总结 0. SOA采纳步骤和价值分析 1. SOA监管 2. 服务建模: 3. 服务实现和架构设计 5. 服务管理 小结-样例(社保行业) 4. 以服务

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!