什么是SOA(面向服务的体系结构)?

tav*_*rph 56 architecture soa web-services

如果你愿意,可以叫我一个巨魔,但我是认真的:新的SOA趋势究竟与我15年前建立的客户服务架构有什么不同?我一直听到SOA,但我不知道它与我们一直以来的不同之处.

回到10年前,我的公司有多个客户(多种语言)与同一服务进行交谈.它不是XML(它是一个名为Microsoft DCOM的二进制协议),并且没有通过WSDL进行自动发现,但这是正常的,因为阅读文档同样容易.我们的系统甚至是"开放的",因为我们记录它足以让第三方与我们的服务交谈.我们不是先锋 - 我10年前所知道的其他公司都在做同样的事情.

我在当时和现在之间看到的唯一区别是现在互联网上有一项服务,而10年前,每个客户都会托管他自己的服务实例.但这不是架构问题 - 物理上的服务对使用该服务的任何人都是透明的.

那么SOA究竟与我们多年来所做的不同呢?SOA只是一个代表最佳实践的营销术语,这个实践在很久以前就已经变得普遍了吗?或者我错过了一些与我们一直在做的不同的SOA?

Mic*_*rdt 85

忘了XML.忘了WSDL.SOA不是您可以购买的技术,尽管它通常以这种方式进行营销.

SOA的真正意义在于IT 组织.SOA的重点是避免拥有大量具有隔离数据池的"应用程序",或者根本不相互通信(因此通常会重复数据),或者只是通过适配器层以低效,错误的方式进行通信或EAI系统.

对于大公司来说,这是一个严重的问题 - 他们实际上有数百个单独的应用程序集成不足.到处都有重复和不一致的数据,结果是客户生气,真钱丢失,因为计费部门不断发送已取消订单的发票,而客户服务代表甚至找不到订单,因为它在订单跟踪中被取消系统,但不是计费系统.

SOA应该通过从头开始设计每个应用程序以标准化,跨平台方式发布其服务来解决这个问题,以便其他应用程序可以访问数据而不必复制它.

从业务角度来看,这是非常需要的.流行语炒作和首字母缩略词汤只是IT公司试图在这种可取性上获利的尝试.不幸的是,这导致许多人(包括首席执行官)相信SOA是您可以购买的产品,它会神奇地使您的IT更有效率,而不会意识到这只会在您重组整个IT时才会发生(并且相当可能是您的业务部门)与SOA兼容.

  • @Devtron:为什么这么激进?*当然*我可以在SOA的上下文中定义"服务":它意味着应用程序的功能可以通过网络,通过定义明确的文档化界面获得,而且没有依赖性.那么,如果这不是一个全新的概念呢?SOA没有重新定义任何东西,它只是把应用程序设计的重点放在这个迄今经常被忽视的方面.它被用作流行语并通过炒作扭曲的事实并不意味着潜在的想法没有价值. (21认同)
  • 我可以把它弄糟!"SOA不是一种技术......应该解决......从业务角度来看......到处都是重复和不一致的数据......生气,真钱丢失" (11认同)

Chr*_*s K 13

让我使用Integration Hell的着名鞭打男孩:Telco.

回到90年代,手机公司在我家附近很多,几乎和90年代中期通信放松管制所带来的长途经销商一样充足.好吧,时间还在继续,贝尔大西洋成为Verizon的强者,并且随着公司(以及至少一个Baby Bell)吞并了公司.这些公司中的每一家都拥有适当的技术,塔式,交换设备,以及完全不兼容的计费系统.

所以该公司说,好吧,我们有这些模型用于我们如何开展业务,让我们以WSDL/SOAP/XSD的形式对我们所有的技术进行友好,一致的表述 - 我们今天拥有的每种语言和系统都可以与此接口!缓慢但肯定地,该公司正在使其所有系统都能够报告功能,被查询以用于负载和计费目的,并暴露给未来的梦想家以尚未考虑的方式利用.

任何人都可以构建SOA客户端.任何有wget和文本编辑器的人.任何人都可以解析结果(XML).

这与过去的客户端/服务器架构有根本的不同.前几天,我只是在谈论有关将Cobol和基于Smalltalk的系统连接到SOA架构的人.这是一个容易解决的问题.告诉我你可以对你的DCOM系统说同样的话.


Mr.*_*art 11

SOA 只不过是一种设计方式,模块中的模块通过"服务"相互通信.就是这样,现在接下来的问题是:什么是"服务",它与常规"方法"的区别是什么?

服务是执行单个原子业务操作的操作.这种原子性使其可以从许多模块中高度重用.然后,复杂的业务操作就是按特定顺序调用许多这些服务的编排.

SOA与特定技术无关,只是一种特定的设计方式.


nik*_*nik 7

斯图加特大学的Frank Leymann教授在谈到SOA时,将SOA作为面向服务的计算(SOC)研究工作的关键概念.他被看作被问及SOA的定义,随后的对话可能是一个很好的阅读.

请注意,我们的路线图是关于"面向服务的计算(SoC)",即面向服务的计算范例.面向服务的体系结构(SOA)是此计算范例的体系结构实现.您可以将此与"客户端/服务器计算"作为范例和"浏览器/ Web服务器"或"DB客户端/存储过程"进行比较,作为此范例的两个(各种其他)体系结构实现.

...

SOA并不是全新的.SOA的某些方面在实践中使用了很长时间.例如,看看"松散耦合":几十年来,企业正在使用可靠的消息传递技术来集成应用程序,即松散地耦合应用程序.不要误解我的意思,SOA中有新的概念,例如,在SOA中汇总的概念组合产生的概念,即它们是由出现产生的.

Web服务规范使相应的技术跨平台可用.即相应的规范不是从根本上发明新概念,而是定义这些概念和相应实现如何在异构环境中工作.由此产生的互操作性是开创性的,使SOA成为现实.

总之,SOA是成熟事物和新兴事物的混合体.

2006年4月还有一篇SoC论文参考文献.


谷歌搜索标识教授弗兰克Leymann他的 作品.

  • 我非常尊重Frank Leymann教授,他是谁,我们为什么要关心? (2认同)
  • ^我不知道他是谁,但他肯定会在头上钉上指甲,露出这个欺诈性的流行语(SOA). (2认同)