我一直在抵制任何个人职业投资,因为我的特定工作领域并不需要它,因此无法学习这个缩略词。我很好奇是否值得我花时间,或者它是否会是另一种最终会消亡的计算时尚。
答案 0 :(得分:67)
两者都是。
从实际工程的角度来看,Service Oriented Architecture有利有弊。它松散耦合,这很好,因为拥有“小块,松散连接”是适用于Unix的可靠设计策略,并且在软件工程师中有许多支持者。
然而,像任何其他软件一样,它需要非常仔细的设计:你可能有一个糟糕的SOA,就像你可以有一个坏的东西,因为该领域是更新的,最好的做法还没有充实。它通常表现出比其他架构方法更差的性能。在这一点上,大多数大玩家(如Google)似乎认为它最适合不同系统之间的互操作(他们的APIs实际上是SOA的定义),但不适用于单个系统的内部架构(他们使用)他们自己的Protocol Buffers。
对于那些对工程没有任何了解的经理来说, SOA 是一种时尚。他们喜欢它,因为a)它听起来又新又热,而b)它里面有“服务”这个词,这让它们感觉很有用。问他们中的一半,“服务台”和“面向服务的架构”之间的区别是什么,他们很难告诉你。答案 1 :(得分:18)
对于工具供应商而言,这是一种非常好的方式,可以让您购买大量的东西(例如ESB),顾问可以计算大量的计费时间,而Gartner可以购买更多的魔力象限。
我认为这不是一个“时尚”;这是自网络到来以来一直存在的一个想法的演变:分布式组件。 CORBA和DCOM都是专有的分布式组件体系结构。 SOA使用HTTP作为其通用线路协议,可以通过防火墙中的端口80。所有其他标准(如XML,WSDL等)都试图使客户端可以发现并自动理解这些标准。重要的是理解这一切背后的想法,而不是太过于大肆宣传。
它似乎适用于亚马逊,雅虎等等。对于像我们这样的凡人来说,也可能有一些东西。
我看到一些担忧:
Latency附带分布式组件。如果一切都是服务,通过企业服务总线进行通信以实现更好的解耦,那么它又如何快速?我们可能有创造一个美丽,脱钩,企业的猪的危险。
设计很难。没有人能就什么是服务达成一致。你的企业应该有多少人?十?数百?成千上万的?他们一定要细粒度吗?
如果您的雇主传统上通过项目模式资助工作,那么长期服务如何适应这种模式?
答案 2 :(得分:17)
从某种意义上讲,这将是一种时尚,会有一些人会说“从现在开始,一切都需要成为SOA”。然后过了一段时间,来自SOA的好东西将会保留,而更有争议或更少有用的东西将会消失。
答案 3 :(得分:6)
关于SOA最重要的事情是,它不是真正的技术,它是将IT基础架构组织为可以组合的一堆可重用服务的一种方式,而不是一堆需要额外的应用程序的当前规范必要时努力整合。
当然,要完成这项工作需要技术,但如果你没有(重新)以这种方式组织你的IT,那么“学习”或购买该技术就毫无意义。
我认为SOA的基本思想是合理的,并且留在这里(虽然它可能在每种情况下都没有用)。另一方面,SOA-as-a-technology是一种会流行的流行语。
答案 4 :(得分:5)
我个人认为这是一种时尚。目前云计算很大,就像大型机一样,但桌面出现并接管了。现在我们要回到大铁......
答案 5 :(得分:3)
我在一家医疗设备和软件制造公司工作,而SOA在这里不是时尚,它是必需品。由于遗留系统以及创建这样一个相当开放的系统的成本,这方面的进展很慢。
此讨论的另一个角度是贵公司是否计划创建一套产品或仅创建一种产品。
答案 6 :(得分:2)
在概念或想法方面,如果有人想到这一点并且事物被证明是一种好的解决方案,那么就没有时尚,而不是时尚。虽然如果你购买法拉利并在破土动工的土路上运行它,当然这是一种时尚。 松耦合在今天至关重要,任何直接与客户合作的有经验的顾问或程序员都会告诉你事情总是在变化,没有什么是永恒的,因为在第一次分析中讨论过,根据我的经验,SOA原则证明了它们的价值。曾经与其他程序员合作过的100%的客户告诉我,在某个时刻,另一个人决定在某个时刻重新开始,或者表示某个请求无法实现。 SOA是困难客户的最佳解决方案,大多数客户都很难,但您需要做的就是保持衡量标准。 如果您在30个国家/地区拥有100个分支机构并且计划快速增长,那么ESB是一件好事。 在我看来,现在所谓的软件顾问和软件销售人员从未在他们的生活中编写过一行代码,他们从未见过自己的分析,开发,交付,变更请求管理和所有循环的过程。这就是为什么在真正的软件人眼中他们似乎在说虚假的原因。当然他们说虚假,但那是因为他们不知道他们在说什么,不是因为他们所谈论的事情是虚假的。 随着时间的推移,基于Web的应用程序和云计算正在接管越来越多的SOA将越来越强大,因为除了系统到系统的通信之外别无选择,考虑到众多平台,操作系统,编程语言,当然程序员。 不要仅仅因为喜欢这个词而让那些因为无知的人所做的大惊小怪而误入歧途。
至于缓慢的问题,我会给你一个提示:尝试通过JSON进行交流,你不会相信你的眼睛;)。
答案 7 :(得分:1)
假设您的意思是“面向服务的体系结构”,有些应用程序对它很有用,但它会像其他时尚一样随处可见。与任何此类市场一样,有一个技能短缺的窗口。如果你在合适的时间进入,你可以很好地完成它。当它在主流媒体上大肆宣传时,你可能已经太晚了,因为其他所有汤姆,迪克和哈利都会在任何市场机会下降。
如果您在SOA相关的领域工作,请务必抓住它。
在许多方面,它与分布式应用程序的概念相同,分布式应用程序在很多代技术(SNA,Sun RPC,DCE,CORBA,EJB,DCOM和现在的Web服务)中已经过时了。
在其他方面,可以将编排系统视为将组件集成到整个应用程序中的一种方法。如果您有一系列组件可以公开有用的设计服务,那么您可以构建一个漂亮,灵活的应用程序架构。
一旦尘埃落定,SOA的明显杀手级应用程序将是 - 显而易见的。我想说一个窗口可以收取不成比例的咨询费用,知道如何拼写SOA现在可能已经关闭了。如果您想将它用于某些事物,或者与其他技能或经验相结合,可以将其用于制作可销售的东西,请学习它。否则,请对其进行概述,并在需要时深入挖掘。
答案 8 :(得分:1)
如果一种“时尚”是“一种在短时间内以极大的热情接受的时尚;一种狂热”。那么SOA不是一种时尚。 SOA已经存在了一段时间 - 自从基于SOAP的RPC(即XML Web服务)以来。从那时起已经有好几年了,而不是死亡,SOA只在其WCF化身中蓬勃发展。所以我认为SOA远非流行。
答案 9 :(得分:1)
我认为这不是一种时尚。只是创建可以与其他系统交互的开放系统比创建封闭系统更困难。我认为那将永远是真的。
如果使用XML Soap等标准化“协议”传输数据,也会始终存在性能损失。
答案 10 :(得分:0)
SOA实际上并不是一项糟糕的技术我认为它通常是错误的并且被误解了。有些场景确实最适合SOA。
但是有一些地方可以避免SOA。仅供参考,这是SOA的一个缺点,它通常很慢。