SOA用户指南-3.2 SOA项目实施过程
 

2009-06-30 作者:中国电子技术标准化研究所 来源:csdn

 

3.2 SOA项目实施过程

SOA既是对IT规划设计和基础设施方面的重大改革,也是应用开发和业务部门应用上的极大改进。SOA项目的实施不仅涉及IT部门,而且涉及企业从上到下、从业务到IT的全面参与。在项目实施的过程中,必须首先由企业或组织的最高层做出决策,对IT系统及各项目实施路线做出整体规划,然后由相关业务部门与IT部门深度合作并分步实施,逐步取得SOA项目的成功,并最终给企业带来效益。

3.2.1 实施过程关系图

SOA项目实施过程关系图如图3-1所示。

图3-1 SOA项目实施过程关系图

整体而言,企业的IT系统建设是逐步进行的,对于一个具体的SOA项目,其实施过程总体上由3个过程组成:

1.规划过程

规划过程的目的是基于企业或组织的业务发展需求,确定信息IT系统建设的总体规划,并明确即将启动的具体SOA项目的范围及目标。此过程分为两个阶段:业务与IT规划阶段、需求规划阶段。具体各阶段说明见后续章节相关内容。

2.实施过程

实施过程是SOA项目建设的执行阶段,此阶段需要用户的项目团队与指定的软件公司实施团队共同合作推进,在实施阶段应注意及时沟通,避免不必要的风险。如图3-1所示,SOA实施过程为一个持续更迭的阶段,包括:服务规划及设计、服务开发及测试、服务部署、服务注册发布、服务运维及监控5个阶段。具体各阶段说明见后续章节相关内容。

3.治理过程

治理是贯穿规划过程和实施过程的策略和工作指南,其过程在SOA项目中比在普通IT项目中更为重要。在SOA中,业务人、IT人员、服务使用者和服务提供者均处于不同环境中,由不同的部门开发和管理,无论从项目全过程中角度,还是服务全生命周期角度,均需要进行大量的协调工作,并且所有的协调工作必须基于统一的管理策略、原则和机制来实现。关于上述内容在后续章节中有详细阐释。

3.2.2 业务与IT规划

业务规划和IT规划的目标是面向用户的高层决策者、CIO和业务主管,在帮助其理解SOA的商业价值的基础上,对于组织采纳SOA来进行信息化建设的方向、目标、行动、任务、原则、策略、资源等进行综合分析,最终就是否采用SOA来进行信息化建设做出宏观决策,并建立SOA总体规划蓝图,其关系图如图3-2所示。

图3-2 业务与IT规划关系图

一方面,企事业单位或组织的决策部门和业务部门需要进行业务规划,通过对企业愿景、内外部环境、资源约束、风险等方面的梳理和分析,确定企业的业务策略及需要解决的业务问题;另一方面,在业务规划的驱动下,IT部门的CIO以及团队需要从信息化的角度,对当前组织已有IT系统的功能、性能、问题、基础架构、平台、标准以及需要满足的需求等各方面进行评估和规划,确定IT整体的建设策略、建设路线以及组织结构。

在业务和IT规划过程中,在如下方面需要双方依次进行研究和磋商:

1.是否要采纳SOA

  • 业务当前问题和需求是什么,现阶段是否有必要、有条件在信息化建设中采纳SOA?
  • 采纳SOA,到底可以解决什么关键问题?—此处可参考本指南中的SOA效益及适用场景内容。
  • 采纳SOA,是否具备相应的基本条件?比如:高层决策者对SOA具有全面的理解和一致的认识,具有采纳SOA所需的预算,信息化建设水平较高,具有较高素质的信息化专业队伍等。

2.采纳何种SOA策略

  • 到底应该在什么层次、什么级别上采纳SOA?
  • 是在战略级别上还是战术级别上?是全面铺开还是局部试点?
  • 具体而言什么业务单元需要SOA?如何排定需求优先级?把哪个作为切入点和突破口?

3.需要如何投入资源

  • 采纳SOA需要哪些资源投入?
  • 现有的资源条件是否满足要求?
  • 采纳SOA需要哪些政策、制度、指南、标准方面的配套?

在此过程中,两方面人员在规划过程中经过反复沟通和协商并达成一致后,最后决策出是否采纳SOA以及总体采纳思路。

3.2.3 需求规划

需求规划阶段工作是:通过对业务及IT的目标进行综合分析,确定当前所要实施的SOA项目目标以及项目实施方案。

SOA项目目标包括成果性目标和约束性目标两大类,主要是需要在一定的成本及时间限度内完成项目的建设内容并达到预期目标,包括SOA系统、子系统的功能、非功能和用户界面描述等。

SOA项目实施方案主要包括项目的实施范围、进度规划、质量控制方法、成本预算、团队计划、风险管理计划、技术规划和产品选型方案等。

在IT系统规划中需要考虑系统的规模,建议第一个SOA项目要限定项目大小,不要选择太大,保证在一定时间内可以顺利实施完毕,确保项目的成功并使业务人员体会到SOA的特点和价值。通过项目经验的积累,为后续SOA项目开创一个良好的局面和环境。SOA本身特点支持项目的递进式实现,可以采用不断滚动改进的方式实施项目。

同时需要强调的是,在SOA项目实施方案中需要特别考虑标准问题。SOA项目所涉及的标准包含两方面:业务标准和技术标准。确定和采纳合适的标准体系,将有利于保证IT系统的建设质量,同时提升其持续利用与扩展能力。

项目具体的实施包括两方面内容:一方面要建设基础设施,另一方面围绕服务采用不断迭代的方式进行业务功能实现。由于SOA项目建设核心是“服务”,所以本书后续的阶段重点围绕第二方面进行介绍。

3.2.4 服务规划及设计

服务规划及设计阶段的工作是:进行业务的分析和梳理,使业务流程能够映射到IT流程,并进行服务建模,以确定所需要的服务集和服务实现策略。

在业务分析层面,目的是对业务及业务流程进行清晰的建模,此阶段具体实施中可依据一些国内外知名的业务分析方法论来完成。在IT层面,需要用服务建模方法来指导如何将业务模型转化为实现 SOA 所需要的模型,通过发现和定义与业务对齐的“服务”,使“服务”成为业务与IT之间的桥梁,从而让IT与业务能更好地互动。

此过程中,需要用户的业务人员参与进来,共同完成业务服务定义、业务流程定义、业务数据分析和组织架构确定等内容。对于相应的服务及流程,需要基于实际情况确定是利用已有IT系统进行服务化封装实现还是重新开发新的服务来实现。同时,用户方还需要与专业实施团队共同确定总体技术架构及所采用的技术、标准、工具和产品。

主要规划和设计的内容如下:

  • 组织结构、业务布局分析。
  • 相关业务部门功能及需求分析,业务流程分析以及业务建模。
  • 服务规划,根据业务分析和建模结果,分析识别所需的服务,对服务的层级进行合理划分,对服务的分类和聚合进行设计。识别和规划服务过程中,基本原则是要确保基于标准的服务可以被重新组合和利用并成功地用于典型行业应用环境中的各种系统中。
  • 服务定义和描述,包含具体的服务名称、服务的操作、输入消息、输出消息,业务目标、业务规则、业务事件,非功能性需求等服务的定义,服务之间关系的描述,服务之间的依赖关系和包含关系。
  • 服务实现策略,确定如何实现所需的服务,可以自行开发、外部采购或者集成遗留IT资源。

3.2.5 服务开发及测试

SOA项目中的服务开发即服务实现,其与传统IT项目开发有较大差别。“服务”是SOA项目开发阶段的核心概念,包括单个功能的服务,也包括流程类的服务。

服务开发是将业务服务的定义进行真正的技术实现。在传统项目中几乎所有的代码都需要编写实现,而在SOA实现中,可以选择自行开发和手工编码,也可以调用或购买已有的内外部服务,实现过程更多采用参数配置、组装、流程定义等技术,代码编程工作量会减少。在服务具体的技术定义、开发和组装中,用户可以基于现有基础设施情况以及服务设计阶段的业务服务定义,选择采用Web Service、SCA/SDO技术或其他传统技术逐步实现单业务功能服务、组合类服务或流程类服务。

服务测试是保证服务开发正确有效的手段,与服务开发交叉进行。服务测试包括对单个服务的单元测试,也包括对于组装类服务或服务流程的集成测试。服务测试工作主要是基于服务定义和描述中的功能和性能指标,采用一定的测试工具、技术和标准规范,对服务进行质量测试和评估,并根据测试的结果来决定服务的开发是否合格。在SOA项目中,服务的测试与传统的测试也不同,为保证服务能与其他服务互联互通,对服务的标准符合性测试及互操作性测试更为重要。

3.2.6 服务部署

此阶段是根据SOA项目目标、通过部署工具将所开发的各类服务及流程部署至用户的物理环境内,比如用户的应用服务器、流程服务器、门户服务器等。对于单个服务,部署后的服务可以被终端用户、其他IT系统或服务实际调用;对于多个基于服务的流程,部署后可形成完整应用系统,从而为用户业务提供相应的IT支持。

服务部署包括静态和动态两种。静态部署是指服务之间的调用关系在运行前已确定,动态部署是指在应用系统运行中需要通过动态路由后确定服务调用关系。这两种部署类型需要在一定的基础设施基础之上进行。由于用户物理环境往往是基于网络的分布式环境,具体部署的类型需要根据SOA项目实施的状况和需求来定。

3.2.7 服务发布

此阶段需要将已开发完成的服务发布在服务注册中心(或服务资源库)内,以便被其他服务发现和调用。服务发布也被称为服务注册,两者含义相同,均指将已有的服务描述信息提交至公共的服务注册中心(或服务资源库)中。

服务注册中心(或服务资源库)是各类服务的统一登录目录,其功能分为两个方面:一方面,每个服务提供者可以发布其所提供的服务描述信息,供其他服务访问;另一方面,服务请求者可以迅速查找其所需的服务,以充分利用已有的服务来实现其IT系统构建目标。服务注册中心(或服务资源库)可以在单个企业或组织内部使用,可以供多个合作伙伴共享,也可以在整个行业内部或特定区域内部共享;此外,服务注册中心(或服务资源库)与服务本身的运行节点之间可以是联机方式,也可以是脱机方式。具体的范围和方式根据用户的IT规划目标和策略来确定。

需特别说明的是,服务的发布不一定在服务开发部署完成之后才进行,部分SOA项目实施过程中,服务在设计阶段被定义出来之后就可以发布在服务注册中心(或服务资源库)中,但此时的服务仅供其他服务在设计中参考,而不能被实际调用,在后续实际开发部署完成之后,服务的状态应改为真正的发布。这样做的原因是可以减少服务设计中的重复,减少后续一些不必要的开发成本,但需要配合相应服务治理策略和工具来保证对它的有效访问。

3.2.8 服务运维及监控

此阶段的运维监控分为两个方面,包括用户方的业务人员对业务流程运行状况和绩效的监控,也包括系统维护人员从IT层面对基于系统服务的管理和部署模型、对SOA系统运行状态以及服务调用状态进行整体管理、控制和监测,从而保障SOA系统稳定可靠的运行。

用户可将此过程的服务运维及监控结果与规划阶段的仿真情况进行对比,并对业务流程及服务进行功能和性能优化。

如果用户的业务需求发生变化时,用户的业务人员可在系统维护人员的协助下,对SOA系统的各类服务(包括流程服务)进行可视化调整。如果变化程度较大,原有服务及流程无法满足时,则需要重新开发新的服务,并重复整个实施过程。但此过程主要涉及的工作量是新的服务或流程,因此并不影响原有的系统运行。

3.2.9 治理过程

SOA治理是基于传统IT治理(IT Governance)的基础之上,针对SOA所特有的服务生命周期定制的SOA治理管制。它通过制定人员和角色、管理流程及决策,帮助企业管理整个SOA的生命周期。SOA治理需要采纳相应的方法论和最佳实践,通常需要有工具辅助企业最后定制并管治符合企业自身需要的治理决策。

对于用户而言,要实现SOA的效益,开展SOA治理非常关键。治理不同于管理。治理规划需要制定什么决策,而管理是制定和实施决策的过程。治理重在建立决策,而管理重在贯彻执行决策。

SOA治理强调更多的是政策、方法和策略问题,而不是技术或业务问题。治理贯穿规划和实施全过程,涉及的不仅仅是一个项目,而是更多的是从IT全局来看,横跨多个应用系统、各类流程、信息及人力资源。因此需要用户高层的重视。

SOA治理主要包括如下内容:

  • 高层的领导决策者指导组织建立满足其目标的策略,包括确定谁负责制定决策、需要制定什么决策以及使决策制定保持一致的决策。
  • 建立SOA的组织机制以及授权机制,同时保证项目实施各阶段按预定目标推进的有效控制机制。
  • 建立沟通计划、流程或协议,保证各相关方都对服务获得一致信息。比如,必须在服务提供者和服务使用者之间建立一个协议,告知使用者可以希望得到什么功能、提供者应该提供什么功能。
  • 涉及服务全生命周期,包括指导可重用资产的开发,确立如何设计和开发服务,服务的版本和质量管理,以及这些服务如何随时间增长进行更改。
  • 建立评估SOA项目成熟度以及各项性能测试的评估方法,并在SOA项目实施过程中进行监控和调整。

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织