架构面向服务的技术

标签: 架构 服务 技术 | 发表时间:2011-12-24 14:31 | 作者:
出处:http://news.cnblogs.com/

在其新作 《架构面向服务的技术》中,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

本文链接



相关 [架构 服务 技术] 推荐:

架构面向服务的技术

- - 博客园_新闻
在其新作 《架构面向服务的技术》中,Philip Wik 总结了使用面向服务的技术搭建解决方案的三大阻力:. 如何在恰当的细节和抽象层次上为复杂的事物建模. 服务技术架构(Service Technology Architecture,后简称 STA)的基础元件是什么. 如何提升 STA 解决方案的速度和质量.

SOA面向服务架构

- - 人月神话的BLOG
今年在这点上谈的比较多,也逐步开始落地实施,将SOA咨询和实施方法论从系统间真正的引入到系统内,将面向对象的需求分析方法和SOA思想进一步融合,从业务建模到系统用例建模,从流程分析到服务识别和分析,从业务组件化到系统模块化,这些工作都逐步开始落地实施. 这样做的好处就是进一步的体现SOA可复用组件的价值,真正的做到业务组件化和组件能力化.

谈微服务架构

- - 人月神话的BLOG
其实在前面很多文章谈到SOA,特别是系统内的SOA和组件化的时候已经很多内容和微服务架构思想是相同的,对于微服务架构,既然出现了这个新名称,那就再谈下微服务架构本身的一些特点和特性. 从这个图可以看到微服务架构的第一个重点,即业务系统本身的组件化和服务化,原来开发一个业务系统本身虽然分了组件和模块,但是本质还是紧耦合的,这关键的一个判断标准就是如果要将原有的业务系统按照模块分开部署到不同的进程里面并完成一个完整业务系统是不可能实现的.

微服务与架构师

- - 乱象,印迹
因为工作的关系,最近面试了很多软件架构师,遗憾的是真正能录用的很少. 很多候选人有多年的工作经验,常见的框架也玩得很溜. 然而最擅长的是“用既定的技术方案去解决特定的问题”,如果遇到的问题没有严格对应的现成框架,就比较吃力. 这样的技能水平或许适合某些行业,但很遗憾不符合我们的要求. 软件架构师到底应该做什么,又为什么这么难做好,这都是近来的热门问题,我也一直在和朋友们讨论.

应用架构和技术架构

- - 人月神话的BLOG
在这里再谈下应用架构和技术架构的关系和边界问题,这里的说明和标准的TOGAF会有一些区别,仅为个人理解的一些点滴记录. 首先再说下应用架构,应用架构是和业务架构有强烈的映射关系的一个架构,应用架构要说明的是整体企业内部信息化建设和规划应该分为哪些应用系统去建设,应用系统间的集成关系是如何的. 即我们常说的应用架构和应用集成架构.

面向服务与微服务架构

- - CSDN博客推荐文章
最近阅读了 Martin Fowler 和 James Lewis 合著的一篇文章  Microservices, 文中主要描述和探讨了最近流行起来的一种服务架构模式——微服务,和我最近几年工作的实践比较相关感觉深受启发. 本文吸收了部分原文观点,结合自身实践经验来探讨下服务架构模式的演化. 面向服务架构 SOA 思想概念的提出已不是什么新鲜事,大概在10年前就有不少相关书籍介绍过.

Instagram的技术架构

- - 标点符
Instagram 被 Facebook 以10亿美金收购. 而在被Facebook收购前的一个月,整个团队才7名员工. 2011年: 3 位工程师. 2012年: 5 位工程师. 坚持 DRY(Don’t Repeat Yourself)原则. 使用通知/信号机制实现解耦. 我们大部分工作使用Python来完成,只有逼不得已的时候,才会用C.

eaby技术架构变迁

- - CSDN博客架构设计推荐文章
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭. 最近在infoq上面看到 ebay介绍其系统架构变迁以及系统设计分享方面的讲座,其中陈述了ebay从1995年到2006年之间系统架构的变化过程. 从这里,我们可以学习到许多宝贵的经验来设计一个大容量,高并发,分布式的系统.

业务架构、信息架构、技术架构三位一体

- -
        客户天天打电话要修改产品功能,简单的一个需求可能要做一个月. 产品越改越笨重,为了赶工期bug越来越多.         产品从初级版到现在已经四个年头,相关的程序员来去换了三批,在补丁上打补丁是常有的事,很多功能只是开了个头,换个项目经理就被遗忘. 我们总是害怕客户在这个产品上提出新的需求,只要客户还用得过去,能不改就不改.

图解Flickr的服务器架构

- Adam - 服务器运维与网站架构|Linux运维|互联网研究
前Flickr的架构师  Cal Henderson,在 Flickr: Web Services 这个PPT中,有对其架构比较全面的阐述. Flickr运维团队的John Allspaw,有两个讲LAMP的幻灯,Hardware Layouts for LAMP Installations 和  capacity planning for LAMP,但应该是Flickr架构演进和运维的一些经验总结,其中也透露一些服务器架构.