SOA、Web 服务与优势保持
SOA 是一个使用得有些过量的首字母缩写,被从高级管理人员到开人员等各方面的人用(滥用)来传达多种(有时候是不一致的)语义。在我看来,面向服务的体系结构是一个框架,用于将业务流程和支持技术基础结构作为标准化且管理良好的组件——服务——进行集成,可以对服务进行组合、重用和调整以满足不断变化的业务优先级。
SOA 新手认为 SOA 和 Web 服务是等效的。可能存在不使用任何 Web 服务,而使用现有 IT 资产(从大型机事务到基于对象的系统)的基于 SOA 的有效解决方案。而且,我曾经看到过几个从部门级别发展出来的不是有效 SOA 应用程序的 Web 服务实现。这些 Web 服务岛通常并不完全遵循所有的核心 SOA 原则和特征——它们可能不是松散耦合、未抽象、不可重用、未组件化或不是独立于平台和协议的,最重要的是,它们可能不提供真正的业务价值。
由于 Web 服务提供了一个 Level 字段,供基础结构和应用程序供应商进行创新和互操作,很多规范、概要、术语都使得这一混淆扩大化了。Web 服务仅是一个标准和技术的集合(还有很多其他技术支持选项),用以实现基于 SOA 的解决方案。
在快速发展的全球经济环境中,企业要保持竞争优势,必须保持足够的灵活性。通过使用 SOA 原则将 IT 基础结构与核心企业流程结合,可以提供和保持这个优势。因此,理解和采用 SOA 所面临的问题不是如何或为什么,而是什么时候?基于 SOA 的企业解决方案已被证实能简化业务操作、提高效率、降低成本及消除冗余。
不过,为了获得这些好处,必须正确地应用 SOA。必须具有相应企业范围内的远景和转换路线图,必须有业务执行人员的财务支持和承诺,并由有经验的架构师以增量迭代的方式进行部署。这些增量步骤应该首先针对关键业务问题进行,最终的解决方案应该能提供业务价值。这样可以帮助保持和促进使用 SOA 进行端到端企业转换。在采用 SOA 的过程中,SOA 将不断遇到各种重大的挑战,其中包括政治和文化的多样性。
从纯技术角度而言,SOA 平台(包括工具和运行时)也在经历着巨大的转变。开发工具环境包含大量的建模工具、行业根深蒂固的场景、重用模式、方案和丰富的可视表示和控件以及模拟技术。运行时也同样在不断发展,从而提供增强的服务质量、声明性的和基于策略的管理和吸引人的管理和监视 Dashboard(针对 IT 事件和业务事件),并使用具有自我修复功能的自动工具进行检测。我们正处在对解决方案生命周期的每个方面进行改革的浪尖上,而 SOA 则是关键的催化剂。不过,从长远来看,如果我们不谨慎的话,这个抽象和易用性可能会使 IT 架构师或开发人员和计算机科学与技术的根本基础脱离联系。