03 | SOA时代:成功理论与失败实践
三种代表性的服务拆分架构模式
烟囱式架构(Information Silo Architecture)
- 深入了解
- 翻译
- 解释
- 总结
SOA架构在软件架构领域中的成功理论与失败实践是本文的主题。文章介绍了SOA架构的发展历程和相关概念,探讨了其在技术上的优势和失败的原因。SOA架构在解决分布式环境下的服务注册、发现、隔离、治理等主要技术问题方面取得了成功,但最终未能成为一种普适的软件架构。文章指出,SOA架构过于严谨精密的流程与理论,导致软件开发的全过程需要专业人员才能驾驭,限制了其普及。此外,过度的复杂性和严格的规范定义也成为了其失败的原因。文章还提到了SOA架构的发展历程和相关概念,以及对其成功和失败进行了深入分析。总的来说,本文通过对SOA架构的介绍和分析,展现了其在软件架构领域中的重要性和影响,为读者提供了对SOA架构的全面了解和思考。
请先领取课程
全部留言(49)
- 最新
- 精选
- 贵子我有一个重大发现,但是IBM力推的,我们都要冷静冷静
作者回复: u got it
2020-12-08766 - J.Smile经典语句:任何事物一旦脱离了人民群众,最终都会淹没在群众的海洋之中,就连信息技术也不曾例外过。
作者回复: 毛主席老人家的高度有好几层楼那么高。
2020-11-3043 - tt微内核架构的目标就是可扩展,内核只有最最核心的功能。插件可以理解为适配器,所以微内核架构,我的理解就是适配器模式或者模板模式,他的目标是可扩展。但是各个模块如何通信,没有具体规定。我开发过一个数据处理系统,最核心的功能模型基本没有变过,但是扩展了好多功能,类似于这个微内核。 事件驱动架构是关于模块如何交互的,目标是解耦又可以互相协作。 有了这两点前置条件,诞生了SOA。 老师在文中提到的体现SOA更具体的几条特性,SOAP相当于数据的通讯和编解码;ESB相当于通讯模型,SDO和SCA描述了系统内的节点。 这些都是现在开发都有的概念,就类似于JSON、protobuf,HTTP,MQ,服务节点。 可能它太追求概念的形式化表达了,引入大量名词,就类似于思维被语言结构限制,所以失败了吧。
作者回复: soa也不能说就是失败了,的确辉煌过一段时间,有过许多成功解决问题的案例。 现在soa不流行了,大量的专业概念导致学习曲线陡峭肯定是一方面原因,但不仅仅如此,现在最流行的技术,kubernetes、istio等,哪一个不是以学习曲线陡峭而出名。把一门技术做得既能解决问题,又足够简单,是很高的目标了。
2020-11-2313 - hqx看完老师的介绍,反倒发现soa确实是个好东西呀。嘿嘿
作者回复: 技术没有好坏,对于适合的场景,soa可以是个好东西
2020-11-278 - Jxin回答: 1.使用过。 2.愿意,每个阶段都会有新的追求和挑战,没必要因为可能会出现枯燥的工作节奏而因噎废食的放弃工业化方向的追求。 本话题的疑虑: 1.面向服务模型可以分为面向服务资源模型(更贴合OO的思想)和面向服务行为模型。 2.在SOA架构下,感觉是偏向面向服务行为模型的。而一但组件是面向服务行为模型,且软件整体的功能是通过编排组件来实现,就很容易写出面向过程的结构(行为可以拆得很细小)。 3.在sls和互联网服务化架构盛行的现在,OO该何去何从?松散灵活和收敛笨重又该如何权衡?
作者回复: oo是以符合人类视为的视角去抽象问题。在计算机出现都头30年里,编程是完全不提oo的,都是以人类去适应计算机的视角来编写程序,“程序=算法+结构结构”的观点盛行。到了上世纪末期,计算机性能有富裕,oo的思想才开始出现,此时以符合人类视为的方式去写程序,尽管从性能和资源的角度不是最优的,但从能够让程序达到更大规模的角度是更有利的。 但是分布式系统中,网络的瓶颈和许多额外的问题,决定了运行效率并未出现富余,所以分布式的第一原则就是不要分发对象。毕竟我们必须先保证程序能够正确地运行,再去追求程序设计得更好。 Martin Fowler: First Law of Distributed Object Design: Don't distribute your objects
2020-11-2636 - Geek_f455c8linux的设计是不是也算一种微内核的架构呢,上层系统应用调用每个方法,各应用之间隔离!放大了看,各大公司的基础平台组件是不是也可以看成微内核的一种架构呢,上层的应用都建立在对内核系统的服务之上
作者回复: 只是做个比喻,将linux比喻为kernel,将各种软件比喻为plugins,这是合情合理的。 但是要稍微提醒一句,操作系统理论中“微内核”(macrokernel)是一个有预设定义的词汇,一般来说linux不属于微内核架构,所以这个比喻放在这篇文章下面是合适的,单独拿出来说就容易有歧义。
2020-11-2335 - 而立斋老师在讲事件驱动架构之后,提到soap协议的诞生使得面向服务架构开始登上历史舞台。事件驱动架构跟soap协议有什么不可告人的秘密吗?
作者回复: 不可告人的秘密……应该没有吧。 原文的意思是,Event-Driven(前置条件1) and SOAP(前置条件2) == true,所以SOA可以登上历史的舞台。
2021-01-294 - walnut你是否愿意软件开发向着工业化方向发展,让软件类似工业产品制造那样,可以在规范、理论、工具、技术的支持下,以流水线的方式生产出来? 个人以为软件不可能能像工业产品一样流水线生产。就算有,也会有聪明人改进之。万事发展都是螺旋式上升,都是在不断发展变化的。就像人月神话中说的,没有银弹。
作者回复: 期望工业化地解决全部软件问题不太现实,但工业化地解决软件中一部分问题,尤其是较初级、较低端的一部分问题,我认为是有可能的。就是有可能那时候大家并不愿意承认那些也属于“软件开发”的范畴了。 下面文字引至网上的新闻: 可以和印度软件业相比较的是,中国的低端制造业务,譬如衣服,鞋子,玩具,箱包。 已经做到了高度的市场化,分工合理化,中国形成了领带,纽扣,拉链。。。等各种门类齐全, 零件生产流水线,产量大,生产成本低。对应到印度软件,就是其流程清晰,管理严格。从需求分析-系统设计-功能设计-开发-测试,环环相扣, 每一个环节的流程监督和质量控制都做到位。同时印度的软件公司更象软件工厂,几千上万人的软件公司不在少数。一年产值几亿几十亿美圆。
2020-12-193 - 小高思考题:互联网行业的产品是不适合这种模式的,因为需求一直在变,软件变更就会频繁,这对开发者来说是一种噩耗。但是对于那种有苛刻要求的,比如工控系统类的软件系统是可以按照这种标准的。课后感悟:SOA感觉太重了,实在不适合互联网行业的软件开发,这就促使了后面的敏捷开发诞生吧,个人感悟,望老师指正!
作者回复: 技术没有好坏,只有合适,soa(以及任何一种架构)有适合的场景,也有不适合的
2020-11-27 - Geek_17f1e0Soap用过,本身特别复杂。使用起来没有框架简直不可能。当时用的axis去解析wsdl file。本身复杂,学习曲线也大。回来的rest明显简单很多。
作者回复: 这个星期更新的3节课会讨论到各种远程服务的问题。
2020-11-24