实施 SOA 的简单步骤

 
 


级别: 初级

金 戈, IBM软件部企业集成解决方案架构师, IBM 中国软件开发实验室 SOA设计中心
姚 辉 ([email protected]), IBM 中国SOA 设计中心高级工程师, IBM 中国软件开发实验室
赵 勇 ([email protected]), IBM 中国SOA 设计中心工程师, IBM 中国软件开发实验室
谭 佳, IBM 中国SOA 设计中心工程师, IBM 中国软件开发实验室

2006 年 12 月 26 日

《SOA 采纳步骤和价值分析》是本系列文章的第一部分。本文前半部分首先概览了实施 SOA 的简单步骤,然后介绍了贯穿本系列文章的示例场景。在文章的后半部分着重介绍了IBM SOA 成熟度模型和SOA评估框架,并分析了示例场景中采纳 SOA 的步骤和价值。

引言

以服务为中心的业务活动管理与监控是最近出现的一种热门的IT技术,它的目的在于帮助企业管理人员实时获悉企业运营状况,了解企业的战略实施进展。 《SOA 快速指南 1 2 3》系列文章是笔者近年来在 SOA 项目实施中的经验结晶。该系列文章结合一个汽车贷款流程, 介绍了在 SOA 的环境下如何基于 IBM 的现有产品构造业务活动管理解决方案,详细阐述了每个实施步骤中使用的 IBM 的方法学、技术和产品。希望通过本文的介绍,能够帮助读者理清业务流程管理所包含的基本概念,并了解构建解决方案所需要的基本步骤。

 




回页首

 

1. SOA 实施步骤总结

SOA 快速指南 1 2 3

本系列是 IBM 中国软件开发实验室 SOA 设计中心近年来在 SOA 项目实施中的经验结晶。

 

  • 项目概述
  • 第 1 部分:SOA 采纳步骤和价值分析
  • 第 2 部分:服务建模
  • 第 3 部分:服务实现及架构设计
  • 第 4 部分:快速实现服务集成模型
  • 第 5 部分:逐步实现服务和持续集成
  • 第 6 部分:以服务为中心的业务活动管理与监控

 

SOA是一个既简单又复杂的技术。简单地说,SOA就是一组设计原则,这些设计原则既有SOA特有的,如服务是第一概念[CBDI],业务和IT对齐,为灵活而构建;也有被早已被业界广泛接受和使用的,如松散耦合、隔离关注、模块化、可重用性等。复杂地说,SOA是由这些设计原则衍生出的各种技术,如SOA成熟度模型、服务建模方法学、SOA编程模型、企业服务总线、服务注册库等。

同样,对SOA的采纳(Adoption)形式也具有从简单到复杂各种形式。一个分布式企业IT系统全面向SOA转型固然是SOA,而像HousingMap.com这样将Google Map提供的Web服务和Craiglist提供的Web服务集成起来提供全新的业务模式也不能不算SOA。笔者作为主要的技术人员主导或参加了若干SOA的实施案例,这里面有短暂的SOA试点项目,也有大跨度的SOA实施。从实践的角度而言,笔者认为一般的SOA的实施项目应该包含如下步骤:

0. SOA采纳步骤和价值分析:由于客户现有IT环境和业务环境的不同,采纳SOA的价值和采纳的步骤也会相应不同。对任何一个企业或者是应用提供商,在采纳SOA之前最好深刻理解SOA的内涵和外延,并客观分析采纳SOA的好处以及带来的风险,并实际情况规划SOA实施的步骤。

1. SOA监管:和传统技术不同的是,SOA是一个横向的技术,它不仅影响IT系统的设计者和开发者,它更需要改变业务部门对IT系统的看法,也需要运营部门改变系统运营的方式。几乎所有的相关人的活动都会围绕着服务模型和服务元数据。因此服务模型和服务元数据质量直接决定着企业向SOA转型的效果。简单的说,SOA监管通过建立适当组织和流程保证服务模型和服务元数据在创建时和运行时的质量。可以预见的是,一个企业采纳了SOA后,SOA监管会成为企业IT部门的重要任务之一。

2. 服务建模:如何根据服务建模方法学创建符合SOA设计原则的服务模型是实施SOA中及其重要的一步。发现服务候选、决定服务暴露和进行服务规约是这一步的重要内容。

3. 服务实现和架构设计:根据确定的服务模型,结合现有IT环境确定服务和服务组件的实现策略,并设计用于实现服务的基础架构(如ESB、流程服务引擎、人工服务容器等)是也是实施SOA过程中及其重要的一步。服务组件划分、服务实现决策和服务基础设施设计是这一步的重要内容。

4. 以服务为中心的开发和集成:在SOA的实施项目中,开发和集成的模式都会发生相应的变化,服务会成为开发阶段的中心概念。服务模型映射到编程模型,逐步实现服务,并在服务层次上进行持续的集成是这一阶段的主要内容。

5. 服务管理:以上的步骤主要侧重在功能层次上如何一步步实现SOA,而服务管理则侧重于在SOA实施中如何实现非功能性需求,这包括服务性能、服务安全等。

本系列文章将围绕SOA的实施步骤组织,但是SOA监管和服务管理不在本系列文章的范围内。

 




回页首

 

2. 示例场景介绍

本系列文章所涉及的场景是一个汽车贷款审批业务流程,从申请人提交申请到汽车销售商接受贷款并发货(或者申请人接收拒绝通知)。

从银行的业务角度,该业务流程的外部参与者包括最终用户(申请人、汽车销售商)和合作伙伴(保险公司),内部参与者包括业务执行人员(信贷员)以及风险管理人员(信贷经理)。从技术实现的角度,该业务流程既包含自动化的内部功能(查询存贷款记录)和外部功能(保险公司提供担保),也包括人工活动(信贷经理审批)。因此,该场景具备一般业务流程的典型性,基于该场景的SOA实施示例具备更大的借鉴意义。


图1:汽车贷款审批流程


图2:现有业务环境

从图2可以看出,信贷员是整个业务流程的枢纽,负责与客户、信贷经理、相关应用系统打交道。这种业务模式既增大了信贷员的工作强度,也增加了过程中的操作风险以及道德风险。


图3:现有 IT 环境

从图3可以看出,在业务流程中起到枢纽作用的信贷员,通过不同的方式访问不同的系统,获取申请人的相关信息,同时通过电子办公系统向信贷经理提交贷款审批申请。多样化的人机界面既增加了对信贷员的IT技能要求,也极大的降低了信贷员的工作效率。

 




回页首

 

3. SOA 评估框架和 SOA 成熟度模型简介

如上所述,SOA是由一些设计原则衍生出的一系列技术。和传统的方法不同的是,SOA的这些衍生技术遍布企业IT生命周期,以及企业IT系统的各个层次。为了评估一个企业的实施SOA的程度,我们需要一个覆盖全面的评估标准和一种对成熟度的划分。SOA评估框架就是这里说的评估标准,而SOA成熟度模型就是一种对SOA成熟度的划分。SOA的评估框架和SOA成熟度模型是了解企业IT和业务环境现状,分析企业采纳SOA的步骤和价值的重要工具。这里我们以IBM的SOA评估框架和SOA成熟度模型为例进行介绍。

IBM的SOA评估框架主要分析企业IT系统在如下四个方面的特性:

1. 组织和流程:企业是否有实施SOA的经验,实施SOA的范围多大,企业是否规划过需要实现的SOA的能力,业务部门是否理解SOA实施的价值和过程,特别是业务部门参与重要性,是否有系统的方法指导服务的发现和设计,业务部门在服务的发现和设计中参与的程度如何;

2. 应用:目前应用如何暴露可重用的逻辑?应用间连通的实时和异构特性如何?企业开始在多大构建复合应用?

3. 架构:目前企业应用集成现状?企业应用的组件化程度如何?是否存在服务模型?范围多大?

4. 基础架构:基础架构如何保持可扩展性和灵活性保证满足业务部门的需要?基础设施如何响应业务流程性能的变化?是否存在统一的安全架构和规范?

同时,IBM的SOA成熟度模型将SOA成熟度划分为7个层次:

L1. 孤立的:大多数为孤立应用,存在集成也基本上以数据集成为主;当需求发生变化时,需要大量的琐碎的架构调整;

L2. 集成的:应用间存在大量集成,但是以点到点的连接方式为主,应用程序的重构主要通过数据集成完成;

L3. 组件化的:将主要的或关键的应用从功能角度进行了组件划分,原有的J2EE/.Net等应用通过重构实现这些组件,组件间的集成通过组件接口和相互间的契约完成;

L4. 简单服务:存在业务部门内的服务模型和构建在服务上的业务流程集成;

L5. 组合服务:存在企业范围内和企业间的服务模型,已经在服务模型基础上完成价值链集成;

L6. 虚拟化服务:基础设施如服务器和存储已经完成虚拟化,服务运行在这些虚拟化的基础设施之上;基础设施、服务组件、服务、业务流程被极大解耦;通过对基础设施的监控和管理来保证服务质量;

L7. 动态配置服务:服务可以根据业务策略和IT策略进行动态组装;

 




回页首

 

4. 示例场景的 SOA 现有成熟度和目标成熟度

我们对示例场景中SOA现有成熟度分析总结如下:

1. 组织和流程:无论是在贷款业务部门,还是在其他业务部门,都没有进行过SOA的实施;业务人员普遍认为SOA是技术层面的事情,是IT部门的事情,业务部门在SOA实施中没有任何责任;

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

3. 架构:企业消息总线可以连通除房贷和车贷系统以外的大部分系统,但是消息总线中介能力不强,主要集中在消息转换,对重复业务逻辑的访问需要应用层处理;

4. 基础架构:服务器、存储和网络设施异构性很大,业务系统性能的调控相当刚性;已经具有统一的安全架构,如认证、授权和加密;

综合分析可见,对于整体企业而言其SOA成熟度,位于L2和L3之间;房贷和车贷系统SOA成熟度位于L3。

对于SOA的转型,该企业的近期目标是希望能够在现在的现有的房贷和车贷系统之上构建复合应用以支持汽车贷款审批流程;而该企业的长远目标是构建企业范围的服务模型,并逐步改造所有的应用为复合应用,并期望实现价值链集成。由此可见,对于围绕汽车贷款审批流程的房贷和车贷系统SOA改造的目标成熟度是L5;从企业范围而言,希望现在房贷和车贷构建SOA应用,而逐步扩展到整个企业,所以其目标成熟度先是L4,然后迁移到L5。

 




回页首

 

5. 示例场景的 SOA 采纳步骤和价值分析

结合示例场景的特点和SOA转型的需要,我们建议如下SOA采纳步骤:

  • 第一步:以汽车贷款审批流程为中心进行SOA试点 ( L2/3 -> L4 )在这一步中,围绕汽车贷款审批流程进行服务建模分析,并在现有系统上构建企业服务总线。这一步的主要目标有四:第一)测量SOA可能带来的业务层面的价值,通过服务组装完成汽车贷款流程,来验证如何通过服务中介、服务替换和服务重新组装适应可能的业务变化,从而实现业务流程从建模'自动化'监控'优化的全生命周期;第二)测量SOA可能带来的IT层面价值,通过将已有系统暴露为服务,并构建ESB实现虚拟化的服务,来验证将现有系统暴露为服务的技术可行性,验证ESB如何通过实现广泛连接性、验证如何通过服务中介完成重复逻辑合并和异构系统集成、验证如何SOA架构如何适应IT层面的变化如系统集中、系统合并和系统升级;第三)深化IT部门对实施SOA的技术理解,包括服务建模方法学、SOA架构设计、相关技术和产品的成熟度(安全,性能,…); 第四)深化IT部门和业务部门对实施SOA的方法和价值理解,包括SOA背后的价值驱动,如何建立SOA组织和流程进行SOA监管等;
  • 第二步:重构贷款系统以实现贷款部门的服务模型,并将业务流程实现为复合应用 ( L2/3 -> L4 ) 在这一步中,围绕贷款部门的业务流程进行服务建模(这不仅包括贷款业务部门内部的服务,还包括可能访问到的核心银行系统的服务),并将主要业务流程迁移为复合应用。这一步的主要目标有三:第一)继续深化IT部门对实施SOA的技术理解,并培养SOA实施的各层次的技能;为企业范围内的SOA实施做技术准备,如各种SOA实施技术规范-SOA参考架构,服务模型规范,企业服务总线规范等; 第二)继续深化IT部门和业务部门对实施SOA方法和价值理解,初步建立业务部门内的SOA监管组织、流程和基础设施(如服务注册库)等;第三)验证现有SOA技术和产品在大规模应用时的成熟度;
  • 第三步:以消息总线的改造为中心,构建SOA监管组织和流程,并创建企业服务模型和企业范围内SOA的基础架构;( L4 -> L5) 这一步选择以消息总线为中心的原因在于,1)消息总线涉及主要的业务逻辑和业务流程,而且该企业在构建消息总线时已经对核心的业务进行了必要的调查和分析,这是服务建模的良好基础;2)消息总线是主要的应用集成设施,这是企业服务总线构建的良好基础。通过这一步骤,企业范围的SOA基础架构基本形成,这包括SOA监管组织和流程、企业范围内服务模型、企业服务总线和SOA参考架构;
  • 第四步:逐步迁移主要业务流程为复合应用,并完善SOA监管和服务模型;(L4->L5) 这一步主要是在前一步的建立的SOA基础架构之上逐步将应用迁移到复合应用。实际上第三步和第四步应该是融和在一起的;
  • 第五步:围绕价值链整合实现快速响应IT系统; (L5) 当完成SOA基础设施建设和复合应用迁移后,企业已经具备条件进行流程优化和价值链整合。这种条件下,无论是IT层面的调整,还是业务层面的调整,都可以通过服务模型和企业服务总线隔离变化,从而使用尽量小的代价完成对变化的适应,也即达到快速响应的IT。

本系列文章的后续部分将围绕SOA采纳的第一步 -- 以汽车贷款审批流程为中心进行SOA试点 为背景介绍SOA实施的其他步骤。

你可能感兴趣的:(SOA)