【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

架构面向服务的技术

  • 2011-12-23
  • 本文字数:2535 字

    阅读完需:约 8 分钟

在其新作《架构面向服务的技术》中,Philip Wik 总结了使用面向服务的技术搭建解决方案的三大阻力:

  • 复杂性 如何在恰当的细节和抽象层次上为复杂的事物建模?
  • 沟通——设计元素 服务技术架构(Service Technology Architecture,后简称 STA)的基础元件是什么?
  • 执行——为成功而做调整 如何提升 STA 解决方案的速度和质量?

在 Wik 看来,最重要的事情是,要记住在处理实际问题时:

……我们必须承认,有些问题是不需要答案的,我们也无法弄清出所有事物的本质,因为思维和符号是有限的……我们必须面对高深莫测的未知。但是,我们只能在这迷一般的世界里行动,不过我们有框架的帮助。框架是蓝图,它指引我们想象、计划、开发、测试、部署并稳固我们的架构。

Wik 认为,面向服务技术解决方案的两个最重要的框架是开放组织服务集成成熟度模型(OSIMM)开放组织架构框架(TOGAF)

OSIMM 之所以重要,是因为它一个用于创建增量 SOA 实施路线图的流程,而且它清晰地定义了每个阶段的业务收益。此外,它还包含一个用来评估当前及未来的 SOA 成熟度的量化模型。至于 TOGAF ,其企业架构框架有助于回答下列问题:如何构建可达成业务目标的系统?

接着,Wik 介绍了 STA 设计的两个基本元素——原则和模式。他说:

原则是强制性标准……他们来自于常识及人们的共识。原则又是一个先验命题,可能合理但却无法证实……即便我们未能符合某个原则,或者我们忽略了它,它一样在那里。

谈及指导 STA 的主要原则时,Wik 搬出了著名的《SOA 设计原则》,其中包括服务松耦合、标准化服务契约、服务自治、服务无状态化以及服务可组合性等。Wik 提醒,在使用这些原则时:

若基于这些原则的具体应用去搭建架构,而忽视了原则本身,这样的做法是不对的。因为,它会走向追逐技术和锁定技术的境地,而非向业务目标前进。

谈到设计模式时,Wik 再一次力荐广为接受的《SOA 设计原则》

最后,在谈到为成功而做调整时,Wik 建议使用敏捷开发的每天的scrum 改进责任划分和沟通;通过XP 的结对编程改进质量和速度。他断言这些都是根本要素,因为它们支撑着那些引领STA 走向成功的高层原则,如透明性、沟通、质量和速度等。

Wik 在文章末尾说道:

面向服务的技术的根本是,简化系统以符合企业目标;简化流程以实现目标。我们不反对人们花精力去掌握那些有助于实施 STA 的工具,但是,为了实现目标,可能需要我们放弃一些旧工具。TOGAF、UML 和敏捷 /XP 是很好的工具,然而有时候我们需要扔掉这些工具才能正确地看待这满世界的服务。

尽管本文不乏许多有趣的观点,但是有些想法却令人迷惑。首先,Wik 为何弃用“SOA”而采用“SOT”就未交代清楚。而 SOT 这一词汇通常指那些诸如 Web Services 或 SCA 之类的东西,即能够简化 SOA 实施的技术,可是 Wik 把它与 SOA 混用。事实上,本文中的大多数引用、原则和模式都借用自 SOA。再者,文中很大篇幅在关注业务目标和业务驱动力。从前,技术的主要驱动力不是它们,而是实现的简单性。

另一个问题来自本文的标题,我们通常无法架构技术,而是使用技术。所以,对技术的架构的含义也不是一下子就能理解的。

最后,尽管诸如敏捷、XP 和社交工程在软件开发中都非常重要,这些东西如何直接应用于架构也不是那么显而易见。尽管有无数的出版物讨论这一话题,但这仍然没有定论。

此文在英文站一经发布,即引来了众多读者的回应,现摘录几篇评论以飨各位:

读者 Roopesh Shenoy 说到:

在我看来,这听起来像是把简单问题复杂化,可是根本不需要这么复杂。我一直认为,架构师使用 OSIMM、TOGAF 或其他框架就如同开发经理们执着于使用成熟的技术(如 java)一样——没有人会因为使用这样的技术而被解雇。其实,我们可以从优秀的实践中学到更好的东西,比如 Amazon 的整个 AWS 基础设施。

读者 Konstantin Ignatyev 说到:

本文再次对 IT 做了错误的假设: 指导原则:“正确地做事”
目标:创新和质量
优势:视野和纪律

对于极少数 IT 人来说的确是这样的,但是对于大多数人来说并非这么回事。据统计,人们习惯于安于“现状”——现状会使他们感到舒服。IT 比业务更抵制创新的原因也是如此。所以,使用 TOGAF 或其他框架的目的不仅是创造一份安定的工作,而且其真正意图是让 IT 变成一个受人尊敬的职业(如医生和建筑师),有一组原则可教化从业者,使他们忠于工作,使业务人员不再因为要求走捷径和其他傻事而自毁前程。

本新闻编辑 Boris Lublinsky 认为 IT 是令人尊敬的工作,他回复到:

暂不论我是否赞同本文作者 Wik 的话,但是我认为 IT 是值得尊敬的职业,所以我现在我已经干了 25 年了。而且,我也相信使用合适的框架的确是件好事。 IT 业中令人痛苦的一件事情是,“我比别人更懂”的态度往往导致人们一次又一次地打着“新技术”和“新方法”的旗号重复着 20 年前曾经犯过的错误。

Konstantin Ignatyev 这么回复 Boris Lublinsky:

只有当以下现象成立时,我才认为 IT 是一个令人尊敬的行业: 1. 不再出现《傻瓜式 HTML》或《24 小时速成 c++》之类的书籍时。你见过《24 小时速成外科医生》和《一星期成为摩天大楼设计师》之类的书吗?
2. 客户会日常地地要求底层实现和架构应该做成什么样。
3. IT 能够为“近乎标准”的应用程序设定可预见的时间表;不再花几个月的时间完成只需数周就能完成的项目。

Roopesh Shenoy 发表了他对 Konstantin Ignatyev 的不同看法:

我有点儿不太同意你的看法:

《傻瓜式 HTML》类似于介绍消化系统和呼吸系统的解剖方面的少儿书。它指引孩子们在成长为医生的路上迈出第一步,同理,这样的书能带领新手们走出变成 IT 专家的第一步。

我不太理解你第二句话的含义,但是我猜测你所说的是客户干预太多。可这几乎是每个行业都要面临的问题。

大多数有价值的项目都是非标准的应用。项目的开销和价值本就不成比例,而且是复杂且难以预测的。

我的确同意,即便是小项目,它走向失败也可能是正常的而不是意外,但这并不意味着每个与之相关的人都有错——巨大的需求导致有新人不断地加入,不断地学习。如果有东西能够证明变得优秀不是那么容易的事,那也就意味着这是一个值得尊敬的职业。

当然,成为开发者并不需要像医生那样需要多年的医学院学习和住院医的过程。但这也不是生死相关的行业,不是么?


查看英文原文: Architecting Service-oriented Technologies

2011-12-23 07:533600
用户头像

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

关注

评论

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

Tomcat异常: Unable to process Jar entry [module-info.class] from Jar

小马哥

Java maven 七日更 二月春节不断更

JUnit速查手册

jiangling500

Java JUnit

第十二周课后作业

Binary

中国科学家突破区块链核心技术

CECBC

区块链

深入 Python 解释器源码,我终于搞明白了字符串驻留的原理!

Python猫

Python 编程

松耦合

sinsy

设计模式 RabbitMQ

第十二周学习总结

Binary

10. 比找女朋友还难的技术点,Python 面向对象

梦想橡皮擦

Python 2月春节不断更 python入门

数字资产助力未来十年打赢数字经济战

CECBC

数字经济

诊所数字化从预约开始

boshi

数字化医疗 七日更 线上预约

保持模块的兼容性

Rayjun

go modules Go 语言

「架构师训练营 4 期」 第七周 - 001&2

凯迪

架构师训练营 4 期

【STM32】串口通信出现乱码(使用官方标准库)

AXYZdong

硬件 stm32 2月春节不断更

Elasticsearch dynamic mapping

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

《我们脑中挥之不去的问题》 - 卓克科普(3)

石云升

读书笔记 科普 2月春节不断更

记一次有意思的微信视频号直播

小匚

产品经理

熬夜7天,我总结了JavaScript与ES的25个重要知识点!

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

ElasticSearch.01-简介

insight

elasticsearch 2月春节不断更

深入理解gradle中的task

程序那些事

Java maven Gradle 程序那些事 构建工具

面试官系列:你对Spring事件发布和广播监听有了解吗?

后台技术汇

面试 2月春节不断更

今日出门

Nydia

华为 MPLS的数据转发流程

艺博东

华为

日记 2021年2月14日(周日)

Changing Lin

2月春节不断更

工作学习累了?试试 GitHub 上的那些简单易学的游戏项目吧!

JackTian

GitHub 开源 游戏 2月春节不断更

公路交通区块链技术的痛点问题和典型场景应用

CECBC

区块链

【LeetCode】情侣牵手Java题解

Albert

算法 LeetCode 2月春节不断更

Spring框架源码:BeanFactory与Bean的生命周期

程序员架构进阶

Java spring 源码阅读 七日更 2月春节不断更

SpringMVC专栏 第1篇 - 快速入门

小马哥

Java spring Spring MVC 七日更 二月春节不断更

机器学习笔记之:

Nydia

架构师训练营 4 期 第7周

引花眠

架构师训练营 4 期

Scrum Patterns:梳理产品待办列表(译)

Bruce Talk

敏捷开发 译文 Agile Scrum Patterns

架构面向服务的技术_SOA_Boris Lublinsky_InfoQ精选文章