写点什么

SOA 实现八大陷阱

  • 2007-06-08
  • 本文字数:2167 字

    阅读完需:约 7 分钟

随着 SOA 渐成 IT 潮流, 越来越多的 SOA 项目启动了。有些项目彻底失败了,有些项目则勉强成功了。如何吸取这些失败项目的教训,并形成自己规划 SOA 路线图所需的远见与策略,这将是未来 SOA 项目成功实现的关键。在此我们收集了自去年以来所注意到的 SOA 实现八大陷阱,希望能为各位实现 SOA 提供借鉴。

8 与 SOA 市场的脱节

在 IT 市场各领域中很少有像 SOA 领域如此变化多端。任何 SOA 计划均需考虑市场的现状和趋势,以决定现在投资哪些平台技术,哪些则可以等待。

针对基于 Web 服务的 SOA 实现,有许多产品和平台技术可供选择。由于许多用户喜欢评估和选择不同的技术实现路线,SOA 市场竞争也必将愈演愈烈。从 Web 服务的角度来说,一个考虑的技术市场因素则是产品提供商如何对待现在正处于发展阶段的各种 Web 服务规范。厂商多样化及其各种平台与开放标技术的靠拢是 SOA 实现计划的关键考虑,但这些经常被忽视,并导致错误的决策与投资。

7 缺少 Web 服务安全计划

很多基于 Web 服务的 SOA 实现倾向从小项目开始,其 Web 服务技术的应用程度也就往往局限于特定环境下开发人员及架构师对该技术框架的了解和掌握程度。一旦 Web 服务技术在占据了 IT 架构的主导作用后,对信息安全和共享服务的访问控制也就提上了日程。Web 服务安全框架建立了一套普遍认可的安全模型,这种模型基于一系列规范并最终成为面向服务应用及企业 IT 架构等各个层面的重要组成部分。

即使你的平台供应商未能提供足够的 Web 服务安全支持,甚至你现在基于 SSL 的实现也符合当前需要,我们还是提倡密切关注潜在的变化与需求。任何缺乏 Web 服务安全考虑的计划必将导致重构甚至二次开发。如果只在急剧增加服务应用数量后才考虑 Web 服务安全问题,这种问题将显得更加严重。

6 缺少服务治理计划

在采纳 SOA 的过程中,企业组织必将面临如何控制和管理,以及演变不断增加的服务应用数量。当一个企业加快重用服务的开发时,并相应迅速增加服务应用的共享时,这种问题将更加突出。SOA 治理对企业组织的许多方面提出挑战,如资源分配、IT 人员的角色、内部标准、流程及项目周期。缺少 SOA 治理计划必将造成任何大规模 SOA 实现的失败。

5 缺少对 SOA 性能需求的理解

松耦合是需要付出代价的。以 Web 服务为基础的 SOA 引进数据处理的多层结构并由此带来了额外的性能开销。当 SOA 大规模应用时,基于消息的通讯流量相应几何增长,此时性能问题必将突显。因此,任何成功的 SOA 实现需要预先正确理解各种 IT 应用的性能需求及基础架构性能局限。这意味着对消息处理能力的大量测试,密切注意服务设计,以在各种影响性能的因素之间取得平衡。

4 缺少对 XML 数据格式的总体考虑

XML 是基于 Web 服务的 SOA 实现的核心。关于 XML 的规范是 Web 服务规范标准的基础。许多 SOA 实现过于关注服务间的数据转移,而忽略了对数据结构和效验的设计。这种忽略必将导致 XML 数据格式层的不恰当实现,由其缺陷所带来的影响将波及 SOA 应用的各个层面。

3 缺少迁移计划

缺乏迁移计划会大大减少 SOA 部署的成功机会,因为许多服务的部署与设计将导致基础架构的重新考虑。迁移计划允许公司组织有控制地阶段性实现 SOA,并从技术,架构,及组织层面进行计划。

典型的用 SOA 迁移计划包括影响分析(SOA 对现有资源、流程、特殊标准及技术的改变程度等),迁移架构(SOA 实现各阶段的架构及其最终目标架构),以及机会与风险分析(考虑 Web 及相关技术的前景与风险机会)。

2 缺少关于 SOA 的内部标准

真正的 SOA 实现需要制定并遵循一套严格的内部设计标准。缺乏标准将导致许多问题,包括不兼容的数据格式和不规则的服务接口。一套严格的内部标准可以确保封装后台逻辑的设计与服务交互的统一性。

1 以传统的分布式架构实现 SOA

SOA 实现的首要陷阱是以传统的分布式架构实现面向服务的应用,并认为 SOA 已经实现了。SOA 不是 CORBA + XML,更不是 ASP.NET+WSE。 面向服务与面向对象不同,面向对象的组件逻辑也远未能适合面向服务的应用环境。SOA 是一种完全不同的基于面向服务的架构模式,一种不同的设计范式。正确理解这些不同之处是实现 SOA 的关键所在。

注:本文中的一些概念来自《ervice-Oriented Architecture: Concepts, Technology, and Design》一书,作者为 Thomas Erl,由 Prentice Hall/Pearson PTR 出版。更多信息,请访问 www.soabooks.com

关于作者

Thomas Erl( terl@soasystems.com )是 SOA 领域的畅销书作者。他的第一本书《Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services》,提供了确立 SOA 架构的战略指导。第二本书《Service-Oriented Architecture: Concepts, Technology, and Design》是业内第一本构建 SOA 的“How-to”指南,涵盖了面向服务分析和设计的上手指南,以及对面向服务原则的全面概括。

另外 Thomas 还是 SOA Systems 公司的创始人,关注于 SOA 咨询、计划、培训服务等。SOA Systems 在 SOA 领域里的面向服务研究和对主流 SOA 方法的发展都做出了突出的贡献。更多信息,请浏览 www.soasystems.com www.thomaserl.com

查看英文原文: Top 8 SOA Adoption Pitfalls - - - - - -

译者简介:林伯仲, IONA 科技公司亚太研发中心研发经理。他和他的北京同事目前致力于 SOA 基础架构软件研发,并共同参与多个 SOA 及 Web 服务开源项目,包括 Eclipse STP Apache CXF 等。

2007-06-08 00:301886

评论

发布
暂无评论
发现更多内容

接口自动化测试中切换多套被测环境方法

测试人

软件测试

为什么现在Java后端面试越来越难了?

开心学Java

后端 架构师 java程序员 java面试 八股文

面试官:什么是高并发系统?如果让你用Java来设计,你会如何设计?

开心学Java

程序员 后端 高并发 架构师 java面试

MaxCompute Bloomfilter index在蚂蚁安全溯源场景大规模点查询的最佳实践

阿里云大数据AI技术

大数据 数据处理 布隆过滤器 数据检索 MaxCompute

AscendC从入门到精通系列(二)基于Kernel直调开发AscendC算子

zjun

算子 CANN 昇腾 AscendCL Ascend

AscendC从入门到精通系列(五)调用基于工程开发AscendC算子

zjun

算子 CANN 昇腾 AscendCL Ascend

Java程序员的编程能力要如何进阶?

了不起的程序猿

程序员 后端 架构师 java面试 Java进阶

NFT市场回暖:蓝筹项目成为复苏主力,空投潮助推价格上涨

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

Java面试中如何应对面试官抛出的Spring源码相关问题?

开心学Java

后端 架构师 java面试 spring源码 循环依赖

深入了解京东API接口:高效获取商品SKU与价格信息

代码忍者

京东API接口

膜拜!阿里自爆十万字Java面试手抄本,脉脉一周狂转50w/次

程序员高级码农

Java 编程 程序员 java面试 Java面试题

霸榜GitHub周榜!Java面试福音,逼自己一周背完上岸大厂!

程序员高级码农

Java 编程 程序员 java面试 Java面试题

AscendC从入门到精通系列(三)基于自定义算子工程开发AscendC算子

zjun

算子 CANN 昇腾 AscendCL Ascend

Navicat Premium 15 for Mac:强大数据库管理和开发利器

小玖_苹果Mac软件

如何在 Apifox 中发布多语言的 API 文档?

Apifox

前端 接口文档 swagger API接口文档 API 文档

闪迪品牌预告全新企业品牌形象,宣布即将焕新启程

Geek_2d6073

阿里架构师耗时一个月肝出这份26W字Java面试手册,在Github标星30K+

架构师之道

编程 计算机 java面试

实战技巧 DevEco Profiler 性能调优 Time

万少

鸿蒙

SD云端部署哪个好?适合SD部署的桌面云工作站

青椒云桌面

云桌面 sd云端部署 云工作站

Microsoft Office LTSC 2021 for Mac:稳定高效的办公软件套件

小玖_苹果Mac软件

考核数据管理系统(源码+文档+部署+讲解)

深圳亥时科技

集成自然语言理解服务,让应用 “听得懂人话”

不在线第一只蜗牛

人工智能

AscendC从入门到精通系列(四)使用Pybind调用AscendC算子

zjun

算子 CANN 昇腾 AscendCL Ascend

淘宝图片搜索接口(Taobao.item_search_img)

tbapi

淘宝API接口 淘宝拍立淘接口 淘宝图片搜索商品接口

面试官:DNS解析都整不明白,敢说你懂网络?我:嘤嘤嘤!

EquatorCoco

面试

原生APP外包开发流程

北京木奇移动技术有限公司

APP开发 软件外包公司 APP外包公司

Microsoft Remote Desktop for Mac:跨平台远程桌面连接利器

小玖_苹果Mac软件

webGL外包开发的技术难点

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

阿里巴巴1688 API接口深度解析:如何高效获取商品详情与关键词搜索商品数据

代码忍者

1688API接口

原生APP外包开发的费用

北京木奇移动技术有限公司

软件外包公司 APP外包公司 APP外包开发

【论文速读】| FirmRCA:面向 ARM 嵌入式固件的后模糊测试分析,并实现高效的基于事件的故障定位

云起无垠

SOA实现八大陷阱_SOA_Thomas Erl_InfoQ精选文章