科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道构建成功的 SOA 项目

构建成功的 SOA 项目

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Saugatuck Technology、Gartner 及其他公司所做的行业调查表明,无论各自的基础技术如何,很多大型企业都采用了或要将面向服务的体系结构(Service-Oriented Architecture,SOA)作为其战略方向加以采用。

作者:Tina Abdollah 来源:论坛整理 2007年12月24日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

在各个阶段对流程进行转换

  成功的 SOA 实现需要组织对其流程进行实质性的更改,传统的面向功能长期运行开发周期构建后就一成不变,需要将其更改为面向流程的增量式构建与部署流程,构建时需考虑将来的变化。总的说来,传统的开发与应用程序竖井 (Silo) 一致,实现的是紧密耦合,其结构使用组件和对象作为构建块。SOA 开发采用的是经过编排的解决方案,采用的是松散耦合,将服务作为其构建块。务必认识这些差异,并建立流程来支持转换。

  2003 年 11 月,Gartner 预测(概率为 0.7),到 2007 年,IT 专业服务将占大型企业应用程序和软件提供商 50% 以上的收益,在软件和 IT 专业服务市场之间形成了一个汇合点。到 2008 年,应用程序面向服务的开发以及面向服务的业务应用程序将使得 A 类企业将程序员的效率提高 100% 以上(概率为 0.8)。2

  对于很多企业,特别是其 IT 组织具有一定关键作用的大型企业,要讨论的问题不是是否要构建 SOA,而是什么时候 构建的问题。我们几乎已经到了企业中采用 Web 服务的巅峰时期。各个公司现在正在逐渐认识到 Web 服务和 SOA 的战术和战略好处。随着在企业中实现越来越多的有用服务,各个企业将不得不处理更大的体系结构挑战。只要跨过那个模糊点,网络上巨大的服务数量将不得不迫使各个公司采用某种方式处理 SOA。我们并不是到处都需要 SOA,而且它也不能解决所有问题。毫无疑问,很多公司仍然会构建糟糕低效的 SOA,但他们必定要采用 SOA。务必以分阶段的方式 处理流程转换,尤其要从体系结构角度加以考虑。

  采用多个阶段进行流程转换,理想的情况下应该从分层体系结构到组件体系结构,最终到 SOA。分阶段可尽可能降低风险,并允许对现有体系结构进行重用。初始阶段是通过以下方法建立分层体系结构的:

  •   创建 SOA 体系结构框架(指导方针、标准等)来指导实现项目
  •   评估现有体系结构,以支持使用该体系结构框架的 SOA 目标状态
  •   向正在进行的未采用此体系结构的项目应用组件体系结构框架

  在组件体系结构阶段,可以将 SOA 应用到小型项目,从而演示组件重用,并同时尽可能降低采用新体系结构的风险。试点项目可帮助“试试水深”。有了这个经验,项目团队然后就可以将 SOA 应用于更大的项目,实现 IT 战略中确定的重用好处。

  然后可以通过进行以下工作建立 SOA 治理框架:

  •   定义服务开发生命周期的更改
  •   定义 IT 组织模型来支持 SOA 环境
  •   建立面向服务的业务应用程序的指导原则
  •   确定新技术需求

  正如我们所知的,SOA 的主要好处在于,它允许组织实现灵活且响应能力强的业务模型,可以灵活而敏捷地响应快速变化的业务需求。为了实现灵活性和创新,组织需要将其业务流程拆分为可管理的部分。它必须允许应用程序逐渐提高其模块化程度,并能简化管理和支持业务中的变更所需的底层 IT 基础设施。在实现此模型的过程中,务必尽早定义正确的方法,包括用于支持 SOA 的治理结构,并要在此过程中牢记所有业务目标(而不是技术功能)。

  确定技术与上市时间之间的实际的平衡关系非常重要,因为成本在 SOA 开发过程中扮演非常重要的角色。您还需要对持续灵活性和一次性的效率收益进行权衡,并在各种应用程序投资组合中进行投资(可以的情况下),以支持资产重用。通过在多样化的应用程序投资组合中投资,而不是仅仅集中在单个打包应用程序或技术上,可以减少风险和创建在很多领域和程度上改进业务的机会。

  从业务流程的角度而言,建议您:

  •   将业务流程跨业务单位集中。
  •   让合作伙伴和重要客户满足服务使用者的需求,如减少手动流程、降低成本和提高性能可见性。
  •   积极地管理风险,以在竞争优势和系统性能之间求得平衡。
  •   如果组织有现有企业体系结构,则需要检查其可用性,以确定是否是基于 SOA 和开放标准,并进行必要的修改。
  •   在可能的情况下,还务必利用目前可用的模式(例如 IBM 的 Patterns for e-Business),并使用先进的开发工具来简化业务集成项目的开发工作。有关更多信息,请参见基于资产的支持。

  创建计划

  SOA 治理和采用计划对 SOA 项目的成功非常关键。需要在考虑企业业务价值的前提下尽快建立流程,采用增量的方式进行实施。组织准备情况扮演着重要的角色,可以通过使用基于服务集成成熟度模型(Service Integration Maturity Model,SIMM)的企业服务成熟度级别进行确定。早期引入过程中使用 SOA 参考体系结构和治理模型将帮助简化和加速此过程,为您的总体 SOA 转换成功带来帮助。

  SOA 是体系结构,而体系结构是一组最佳实践和模式。或者,可以这样说,SOA 是一个规程。您需要计划,还需要所需的专业知识。构建 SOA 的最佳方法是将自底向上方法(用于构建解决集成问题的服务)和自顶向下体系结构方法结合使用。体系结构方法提供流程驱动的服务(支持业务敏捷性)和目标-服务建模技术(确保考虑了长期业务目标)。

  基于资产的支持

  在今天的开发过程中,我们要处理越来越多的异类流程、工具和方法。与五年前或十年前相比,软件开发中的复杂性大幅度增加,而且将来只会进一步提高。作为架构师,您需要时时考虑新变更,并提供足够的解决方案——这些都需要在学习方面进行大量的投资。经常并没有足够的时间在开始项目前进行实际培训。在可能的情况下,请充分利用之前构建的(经过验证和测试)的资产,并尽可能减少从头开发解决方案。

  基于资产的开发支持包括方法、模式、指导原则、原理、之前构建的项目概要和存储库。在 SOA 领域,这特别重要,因为 SOA 的优势就在于其重用,允许使用者订阅满足其需求的服务。 资产可以包括:行业程序包、标准、最佳实践、原则、模式、开发指南和之前的项目存储库。

  定义解决方案时利用之前的经验教训(使用已经建立的服务和适用的资产)可帮助:

  •   实现重用。
  •   减少开发工作。
  •   尽可能降低风险。
  •   提高效率。

  不幸的是,并非所有项目都利用了资产重用。经常是这样,没有研究现有的内容就开始新项目,因此进行很多重复工作。SOMA 已被视为是支持 SOA 开发的实际 方法(或能力模式)。

  面向服务的建模与体系结构包括服务、组件和流(通常是服务的编排)的三个大步骤——标识、规范和实现。有关更多信息,请参见参考资料中的“面向服务的建模和体系结构”。SOMA 的下一版本将进行扩展,以支持从认识到实现的全部 SOA 开发过程。

  SOMA 引入了八个新的规程和其他一些功能模式。在这八个规程中,利用现有资产贯穿 SOA 开发过程的整个生命周期,从而满足资产重用的需求。在每个阶段(标识、规范、实现)的最后,都会执行名为“服务构成与合理化”(service factoring and rationalization) 的任务来支持重构流程。此任务确保我们确认拥有什么资产(包括服务)并确定哪些资产可以进入下一个阶段。这是一个迭代的过程,设计用于提供质量检查、降低风险、尽可能减少浪费和最大化重用。

  SOMA 还引入了功能模式,如资产使用 (Asset Consumption)、资产构造 (Asset Construction) 和资产治理 (Asset Governance),以处理资产开发生命周期需求(请参见图 1)。构造资产之后,将进行认证流程,以确保资产的质量和保证可重用性(属于资产治理的一部分)。认证流程将管理资产开发过程的生命周期。

  图 1. 资产开发生命周期

  资产开发生命周期

  通常,在创建解决方案之前,应该首先检查可用的内容,充分利用现有资产(方法、最佳实践、指南等等)。应该在项目计划中包括活动和任务(包括全面质量检查)。根据可重用资产的程度,这些工作将一定会帮助减小风险、降低开发成本和提高团队的效率。

  工具支持:从传统开发到 SOA

  SOA 还提出了对工具的其他需求,从业务建模、SOA 开发、SOA 测试(互操作性、组合业务服务和 BPEL 测试)、服务测定与监视一直到服务部署。

  一个工具问题是,大部分第三方供应商工具的空间占有率很高。普通安装流程本身非常复杂,非常耗时,而经常需要大的系统容量才能运行。

  或许最具挑战的任务就是让来自多个提供商的工具一起工作。各个产品通常与其他产品的集成性能并不好,而这会对开发人员的效率和项目进度造成影响。建议使用客户自动化安装、配置和测试(最低限度)脚本,以加速这些流程的执行,实现可重复性。过程文档还能在此领域提供帮助。

  工具本身无法满足所有不同用户(业务分析人员、设计人员、架构师、开发人员)的需求。例如,业务需求的建模、业务优化的建模和执行的建模将需要不同的知识和技能,或许还需要其他工具。

  总之,工具支持需要进行培训,而这应该在项目计划中尽早安排。产品选择通常在开发工作开始前进行。您必须对市场上已有的东西进行研究,并对产品的定价、功能、可支持性、培训和易用性进行比较。您可能需要根据客户的环境、业务需求和长期目标提出建议。最终将由客户作出决策。在任何情况下,最终的决策都要作为体系结构决策加以记录。

  总结

  在实现 SOA 解决方案的过程中,架构师会面临各种挑战。务必认识到,SOA 的成功需要进行多个级别的转换,并需要获得组织、人员、流程、资产和工具的支持。设计和管理大型 SOA 项目时,务必配备软件产品专家、处理组织变更管理的战略与变更顾问以及 SOA 解决方案架构师。

  获得管理人员和所有主要涉众的支持也同样重要。要管理客户期望和范围逐渐扩大的情况,需要专门的项目经理团队,并及时使用流程变更流程。有时候可能还需要采用创造性技术来与客户分担其他工作。  

  要制定有效的培训计划,您必须了解客户开发文化和当前可用的流程与技能。人员和机器方面的客户资源可用性对时间较紧的项目至关重要。必须将问题或延迟及时上报给客户的最高执行资助人。

  要提高效率和缩短开发周期,尽可能多地实现自动化也非常重要。

  为了降低风险和成本并极大地提高 SOA 成功的几率,请充分利用各种现有资产,包括人员、最佳实践、标准、程序和问题。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章