Graph + AI 中国峰会火热报名中,点击探索图分析更多可能! 了解详情
写点什么

克服 SOA 实施过程中的障碍

2008 年 9 月 30 日

Jonathan Mack 说,现在 SOA 实施“并不像许多分析机构或 Web 研讨会所指出的那样普遍”。原因很简单:成功的 SOA 实施是颇具挑战性的。Jonathan Mack 概述了三大挑战:

  • 解决早于 SOA 的架构——将现有企业资产整合到 SOA 里去。
  • 说服公司采用 SOA——用具体的事实(而不是总体的陈述)阐述为什么 SOA 能够产生与其成本相称的效益,得公司涉众(stakeholders)信服。
  • 设计最有效的 SOA 路线图——定义实现 SOA 愿景的过程。

虽然大部分 SOA 实践者们提倡在现有企业应用之上构建一个瘦服务层、尽量重用已经存在的功能,但这样实施的挑战性常常比通常认为的要大得多。Jonathan Mack 指出:

过去构建的遗留系统(legacy systems)是一些零散的批处理或在线处理程序,它们必须按特定的顺序组合起来才能产生有意义的业务功能。那些遗留的处理程序是用于满足实际需要的, 它们常常是根据实际开发流程得到的、而不是与具体的功能相对应。从服务的观点来看,这些程序缺乏一致性和含义。

关于解决这一问题的实际办法,Jonathan Mack 概述如下:

  • 为你将构建的服务增加一个瘦服务层作为过渡。所以要创建一些便于插入服务层的组件,以便遗留系统的程序员们可以按他们过去的方式进行工作(即用明确定义的输入输出来设计程序)。
  • 从一开始就在服务层中留好监控与异常处理钩子(hooks)。SOA 最重要的优点之一,就是它可以精确监控应用的活动。
  • 若服务(service)比点对点的交互(point-to-point interaction)更具优势,那就构建专门的服务。应为服务的构建定义和发布明确的标准。最重要的一则标准就是:该服务存在多个客户。
  • 不要迷信卓越中心(Centers of Excellence)。确保拥有一个小型团队,选择成员时应特别注重他们与其他开发者协同工作的能力。从一开始就通过合作共同构建将来作为服务层基础的公共服务。
  • 尽量构建直接与主机(mainframe)交互的原子服务,尽量用 ESB 软件来构建合成服务。保持原子服务层与合成服务层的分离。

可重用性(reusability)是 SOA 的一大卖点。不幸的是,这常常是一种信念,而非事实。能够支持这一观点的数据很少很少。Jonathan Mack 说:

要使重要涉众(stakeholders)信服,你的阐述要更加具体才行。虽然用图来解释“SOA 如何能帮助解决错综复杂的 系统所面临的问题”很不错,但公司里的涉众想更具体地知道这一努力将如何产生与成本相称的效益。而且,他们很擅长分辨 ROI 预估里数字的虚实。不论 你采用何种方式实施 SOA,假如你希望被认真对待的话,你就必须提供非常实在的数字。

至于 SOA 路线图,最近出现了两种流行的 SOA 实施途经:

  • 企业级(自上而下的)SOA 实施途经:风险很高,最初预算要几百万美元。另外,根据不同的规模与复杂程度,这类项目的耗费基本无法准确预估。
  • 草根级(自下而上的)SOA 实施途经:将 SOA 元素(包括服务和基础设施)作为现有业务驱动的 IT 任务来实现。这种途径一般不会成功。一来,最终得到的服务仅限于特定的业务问题,对企业的其他部分来说可能不适用(甚至是错的)。二来,构建 SOA 层所需的时间与开销将有损于项目里的其他业务需求。

Jonathan Mack 提出的另一种途径是:

逐步构建 SOA。大部分厂商已经觉悟过来,认识到了这是最合理的途径。然而,这做起来并不容易。企业服务总线 (Enterprise Server Bus,ESB)的核心元素——对不同系统间的信息进行转换与转化的能力,以及路由消息的能力——以及用于传递消息的消息传递基础设施,这些必须从一开始 就要具备。公共(共享的)服务(如登录、监控和异常处理等)也应该是最早实现的。

SOA 围绕 IT 业吵闹了将近 10 年,由于整体复杂性,至今仍没有万无一失的成功实施方案。每一个新的 SOA 项目“必须有明确的务实态度,必须对成功的实施步骤(及代价)有深入的研究和理解”。

查看英文原文: Overcoming Obstacles in Implementing SOA

2008 年 9 月 30 日 22:25497
用户头像

发布了 63 篇内容, 共 22.9 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
  • 全球跨域 RPC 架构

    2018 年 9 月 12 日

  • 微博 Service Mesh 实践之路(上)

    对于一个已经上线运行多年的业务系统来说,要想从经典的微服务架构走上Istio这条看似完美的道路其实并不容易。

    2018 年 11 月 10 日

  • Axon 大会专题讨论:为什么应该使用微服务?

    在最近于阿姆斯特丹举行的事件驱动微服务大会上,来自大会组织方AxonIQ的Frans van Buul在小组讨论一开始就指出,微服务在今天已经很主流。他回顾了我们已经了解的东西,同时也思考了我们在未来几年的发展方向。

  • SOA 的未解之谜

    eBIZQ的Joe McKendrick在他最新的一篇博文中谈到了SOA周围的一些未解之谜:SOA与云计算的区别,在人们还没有完全实施SOA之前何来SOA的失败,如何度量SOA的成功等。

  • 深入理解微服务架构:银弹 or 焦油坑?

    微服务与SOA究竟有什么关系?

    2018 年 7 月 14 日

  • IBM 总结出五项 SOA 最佳实践

    尽管现在很多公司都指望用SOA实现对新出现且不断改变的经济方面需求作出更快的响应,但它们不一定都能取得一致的可测量结果。IBM在最近发布的一份白皮书中为取得SOA实施的成功总结出了五项最佳实践。

  • mySOA:敏捷的、治理的并且可持续的

    William El Kaim,Carlson Wagonlit的首席架构师,为我们带来了难得的机会去了解他与同事们在构建面向服务的架构过程中各种选择及其背后的思考。你的SOA的竞争力如何?未来几年的主要发展方向是什么?云将对现有的SOA带来哪些影响?

  • 破除误解:企业架构真的做不做都行吗?

    如果不了解企业架构,你或许能帮助企业实现一些很不错的数字化创新点,但是无法帮企业实现整体转型。

    2021 年 4 月 20 日

  • 从单体应用到 Service Mesh 的曲折历程

    微博架构是如何从一开始的单体应用一步步成长为今天的庞大规模?微博为什么要选择做 Service Mesh?

    2018 年 3 月 18 日

  • 基于 Node.js 的苏宁电商核心业务实践

    2018 年 9 月 12 日

  • 是否该重新衡量 SOA 产品了?

    Gartner分析师Roy Schulte是SOA方面的专家,他参与编写了1996年那份为业界引入SOA这一术语的Gartner报告。前不久Susan Hall对他进行了采访。此次采访试图回答这样一个问题,即是否应该重新调整对SOA的期待了?

  • SOA 为什么不“香”了?丨建设数据中台系列(三)

    SOA 所有的理念都是基于现有应用系统展开的,不管是对服务的梳理还是服务之间的交互,都是以现有应用系统为载体的,中台不同于SOA 的地方在于:中台是一种平台化思维,它并不是从系统集成的角度去思考问题,而是从架构层面上重构了整个IT 生态。相比之下,中台无疑是一种更深刻、更底层的变革,因为它完全破除了应用之间的壁垒,把企业的核心业务能力“中心化”,把它们提炼并沉淀到中台的各个业务中心上,而不是面向单一业务方向或渠道的应用系统上。这在SOA 架构下是很难实现的,因为中台的业务中心与SOA 的服务载体(即应用系统)之间有着本质区别,它们的定位和服务对象都不同,这些区别决定了SOA 依然是一种相对松散的分治式的架构,很难与中台这种更加中心化、更为强力的架构体系相抗衡。

  • SOA:我们从这里走向何处?

    “关于SOA是否已死,还是生机勃勃,又或根本未曾存在,还是消逝在新墨西哥的罗斯韦尔,争论已经足够了。不容争辩的事实是,许多组织正朝着至少将他们的业务应用产品的一部分面向服务化而努力,而这还会增长。”Joe Mckendrick谈到,那么从这里出发我们将奔向何处?

  • Dubbo 高频面试题 + 解析,赶紧学起来

    Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

    2021 年 8 月 1 日

  • 调查显示,SOA 失败?

    Assaf Arkin对最近一篇指出SOA失败的报道提出了质疑,接着ZDNet的Joe McKendrick写了篇文章来分析SOA失败的含义。

  • 2011 SOA 虚拟研讨会

    在本次虚拟研讨会上,SOA专家们分享了他们对于SOA现状以及未来趋势的观点及看法。

  • 敏捷和 SOA 是好兄弟?

    敏捷如同手套中活动的手指。SOA则是这个手套,范围便是整个企业。SOA和敏捷的大多数原则并不矛盾。当它们同时出现的时候,它们会相互促进。敏捷开发若是缺乏清晰的目标愿景和公司目标就会徒劳无获。SOA要是不知道如何利用敏捷原则使目标成为现实,将会浪费时间和金钱。

  • 专访与书摘:Nicolai Josuttis, "SOA in Practice"

    InfoQ发布了Nicolai Josuttis的新书《SOA in Practice》的样章。InfoQ对作者进行了采访,内容涉及他对SOA的看法,业界对它的一些主要误解和SOA的关键成功因素。

  • ESB 是通向 SOA 的简单解决方案吗?

    在ebizQ 6月间发布的一个播客上,IBM的Lief Davidsen讨论了如何将ESB作为实施SOA的简单解决方案使用。围绕ESB和SOA之间关系的“应该还是不应该”之争一直以来以来都相当热闹,而且这个访谈也并非最终结论。

发现更多内容

第十三周课后练习

Binary

阿里开发7年大牛:Android事件分发机制及设计思路,分享PDF高清版

欢喜学安卓

android 程序员 面试 移动开发

管理笔记【10】十二条给管理者的人事管理经验

俊毅

28天写作

关于星座的趣谈「Day 2」

道伟

28天写作

1.1 Go语言从入门到精通:开发环境搭建

xcbeyond

Go vscode 环境安装 28天写作

工作日志2-20

技术骨干

浅谈EMC电磁兼容设计—概念篇

不脱发的程序猿

28天写作 二月春节不断更 电路设计 EMC 电磁兼容

(28DW-S8-Day2) 在线教育的本质

mtfelix

28天写作 在线教育的本质特点

如何检测社交网络中两个人是否是朋友关系(union-find算法)

Silently9527

程序员 算法和数据结构 union-find

魂牵梦绕——俄罗斯方块效应

Justin

心理学 28天写作 游戏设计

刚学会 C++ 的小白用这个开源框架,做个 RPC 服务要多久?

HelloGitHub

c++ GitHub 开源 RPC

十二周作业&总结

胡益

Eureka 部分机制记录

PCMD

Spring Cloud 原理 Eureka

SICP 习题解答 1.6

十元

第五周作业-线下核销优惠券流程图

隋泽

产品经理训练营

用形象比喻理解大数据技术Hadoop、NoSQL、Spark

守护石CTO

nosql 大数据 kafka hadoop spark

架构师训练营第七周作业 - 命题作业

阿德儿

28天瞎写的第二百四十天:我与正念的故事

树上

冥想 28天写作 正念 焦虑 平静

【vue2 & G6】快速上手

学习委员

前端 可视化 数据可视化 G6 antv/g6

架构师训练营第七周作业 - 学习总结

阿德儿

第13周学习总结

Binary

android开发需要学什么!最全面试考点与面试技巧,已拿offer附真题解析

欢喜学安卓

android 程序员 面试 移动开发

一岁宝宝

Ian哥

28天写作

技术随笔:Rest Api设计中处理业务错误的一些思考

御剑

架构 RESTful

创业公司如何搭建自己的领导班子

一笑

28天写作

笑说设计模式-小白逃课被点名

happlyfox

28天写作

Koa中间件体系的重构经验

智联大前端

node.js 前端 单元测试 重构 koa

Kafka.04 - Kafka 部署

insight

kafka 2月春节不断更

详解SSH 框架中对象调用流程

华为云开发者社区

spring hibernate struts SSH 框架

一种C++中支持界面调用函数的实现方法

长不胖的Garfield

甲方日常 92

句子

工作 随笔杂谈 日常

克服SOA实施过程中的障碍-InfoQ