如果SOA已经死了,什么在取代它?

Bra*_*ell 23 architecture soa

如果这个问题很密集,请原谅我.

背景:我们有几个内部应用程序集成在数据库中.我们正在研究如何突破这一点,似乎转向一种架构,其中每个应用程序通过服务公开其功能,而不是调用其他应用程序的数据库,这是最有意义的.这对我来说似乎是一种面向服务的架构.当我浏览有关开始使用面向服务的体系结构的信息时,我看到很多关于本文的讨论:SOA已经死了; 长期服务.我也从Martin Fowler和Jim Webber那里看到了这一点:我的公共汽车在这方面看起来很大吗?.

题:

  • SOA已经死了,还是围绕着它的嗡嗡声?
  • 开始使用面向服务的体系结构的最佳方法是什么,以便尽可能保持简洁和简单?

smo*_*ok1 15

SOA是一个聪明的想法,但围绕它的巨大炒作让人们写"SOA现在已经死了".这不是真的,正如句子"结构编程已经死了,现在每个人都做OOP!" 并非总是如此:有时结构代码是唯一的选择,但决定应该在评估上,而不是炒作.在谈论SOA时也是如此:有时您需要SOA,有时您需要服务.

  • 因此,如果我想用数据库中的集成替换Web服务公开功能......是SOA,还是"只是服务"?两者之间的界限是什么? (6认同)
  • Web服务旨在为人们提供可扩展,有弹性的数据交换方式.实际上,这主要是Web服务的用途 - 这是交换数据的非常好的工具.它简化了机器彼此"交谈"的方式.SOA的整个概念是能够制作可重用的服务,以便其他人可以使用它们.在我看来,使用Web服务来集成您的两个数据库不是SOA(尽管您可以将此名称用于内部营销目的),它只是使用一些成熟技术的好方法. (2认同)

Jas*_*ker 10

我对SOA一无所知,但我经常看到这些技术经历了一个循环:

  1. 技术出来了.
  2. 技术是如此的美好,每个人都推荐给每个人.
  3. 人们试图将技术用于一切.
  4. 当人们意识到它不能做任何事情时,他们会生气并发布它们的博客已经死了.

我的猜测是SOA只是这些技术中的另一种.


Str*_*das 7

SOA并没有死.像每个好主意一样,它成为我们景观的一部分.电子商务一词在早期是一个很大的想法,现在我们甚至不再使用这个词了.我甚至不再使用面向对象这个术语了.

目前的炒作是云计算.把一切都放在云端.

SOA的最佳实践是在您需要的地方编写好的服务.过度使用SOA会增加延迟.如果需要高效执行代码,请在数据库中使用存储过程.如果它能够胜任,你就无法击败一个好的本地服务.

  • 同意了.服务*在需要的地方*.我参与了一个项目,其中所有数据库内容都作为服务公开,以防万一其他子项目需要它.这意味着将我们所有的数据库调用序列化为XML,将它们传递给服务层......确实非常痛苦 - 而且速度很慢. (4认同)

Spe*_*nce 5

我会说它没有死,但它现在已经落入了建筑师的工具集中,因为它现在被理解为它可以提供帮助的地方,也可能不是.

使用SOA与您的数据库交谈是没有意义的,因为您希望这种集成是紧密且高效的.但是在正确的位置使用它可以让您在组织的不同部分之间拥有良好的干净界面,并且可能允许您升级每个系统而不管其他系统.

但是在现实生活中,如果你的工资单系统出现故障,每个人都会非常不满意,只是因为你的应用程序可能会在没有其中一个组件的情况下跛行并不意味着它不会影响你的系统.

创建仅具有接口知识而不是基础系统知识的系统是不可能的(我将用以下内容告诫:"工作正常且性能良好").以网络浏览器作为一个有趣的例子,每个好的网站都以"他们使用什么浏览器并修复我的网站并利用xyz功能"开头.