扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者: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 应用于更大的项目,实现 IT 战略中确定的重用好处。
然后可以通过进行以下工作建立 SOA 治理框架:
正如我们所知的,SOA 的主要好处在于,它允许组织实现灵活且响应能力强的业务模型,可以灵活而敏捷地响应快速变化的业务需求。为了实现灵活性和创新,组织需要将其业务流程拆分为可管理的部分。它必须允许应用程序逐渐提高其模块化程度,并能简化管理和支持业务中的变更所需的底层 IT 基础设施。在实现此模型的过程中,务必尽早定义正确的方法,包括用于支持 SOA 的治理结构,并要在此过程中牢记所有业务目标(而不是技术功能)。
确定技术与上市时间之间的实际的平衡关系非常重要,因为成本在 SOA 开发过程中扮演非常重要的角色。您还需要对持续灵活性和一次性的效率收益进行权衡,并在各种应用程序投资组合中进行投资(可以的情况下),以支持资产重用。通过在多样化的应用程序投资组合中投资,而不是仅仅集中在单个打包应用程序或技术上,可以减少风险和创建在很多领域和程度上改进业务的机会。
从业务流程的角度而言,建议您:
创建计划
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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者