Web服务和SOA之前有什么?

3

我对分布式、协作、跨组织编程范式的历史很感兴趣 - 网络服务和面向服务的架构现在是事实标准,但之前有什么呢?SOA已经取代了哪些模型?

谢谢


4
SOA和Web服务是两个完全不同的东西。SOA更多地是一种方法论,而Web服务则是标准。 - this. __curious_geek
3
它们可能是完全不同的东西,但它们也是相辅相成的技术。SOA建立在Web服务制定的标准之上。我认为你有点过于追求细节了 :) - MalcomTucker
他并不是过分拘泥于细节。有些网络服务并不关心面向服务架构,而面向服务架构也包含了除了“网络服务”之外的其他内容。 - John Saunders
4个回答

3
我想,可能有RPC - 这实际上就是SOAP所做的事情,只是它们没有在一个标准协议(SOAP的情况下为http)之上搭载数据负载。因此,CORBA、DCE-RPC和ONC RPC都做了同样的事情,但只在内部网络上进行,而不是在互联网上。
还有EDI作为在不同实体之间交换数据的“标准”。这实际上是一种定义数据负载将看起来像什么的方法(类似于SOAP的XML部分)。
但这些仍然不是真正的SOA,它们提供相同的功能,但最大的区别是人们如何考虑使用它们。一旦你可以编写机器对机器的“网站”,并让不同的机器通过它们相互通信,它就开始流行了。以前可以使用CORBA等方式,但这并不容易或广为人知。我们有几个术语用于有效地描述同一件事情 - SOA、SaaS、Web服务...都是同一件事情(但在“咨询”差异方面可以赚很多钱;))

2

也许是“数据孤岛”?

即使在企业内部,服务也没有以标准化的方式共享。这就是为什么会使用诸如BizTalk之类的产品:通过标准接口让“数据孤岛”之间进行通信。


2
我不认为你会找到任何已被SOA所取代的东西。你会发现计算机程序的组织方式已经有了进展,以利用SOA类型的原则。至于已经相当普遍使用的编程模型,嗯,让我们看看......CORBA、RPC、更通用的客户端-服务器应用程序。当然,在计算机之间的通信之前,使用各种约定进行进程之间的通信。
SOA作为将大问题分解成小问题并组合结果的哲学,自人类开始制砖而不是建造完整墙壁以来就已经被知晓和应用。当然,那时候大多是隐含的。显式的SOA声明真正开始出现是在CORBA时代,虽然SOA与Web服务无关,但HTTP和XML的出现以及随后的SOAP确实使得开发非专业化的“服务”更加容易、有价值,因此也更加普遍。

2
这段文字的英译如下:

这个PDF 《分布式计算笔记》 应该是一篇有趣的阅读材料。它是SOA之前的,可以让人了解到那个时期(1994年)的历史。

我会说分布式对象技术。在此之前是远程过程调用。 RPC是较早期的方法之一,因为Sun实现而广受欢迎。其中一个著名的应用是NFS(网络文件系统)。

随着面向对象编程越来越流行,分布式对象紧随其后。最重要的是微软DCOM(以及后来的COM+)和更为广泛的CORBA。

SOA是一种分而治之的方法,其关键在于“服务”概念。这与CORBA等对象的使用方式以及REST中的资源不同。
对象由客户端创建,其生命周期通常由客户端控制。另一方面,服务被认为是服务器提供的始终存在的。这是SOA与分布式对象不等价的原因之一。
服务也是无状态的,这意味着服务器在考虑服务请求的响应时不需要查看与客户端的交互历史记录。当最初设计RPC概念时,可扩展性并不是如此重要的问题,因此这并不是一个考虑因素。有趣的是,大规模使用RPC的用户注意到可扩展性和无状态之间的关系。NFS RFC明确提到了无状态服务器,尽管可靠性是主要关注点。无状态是服务和普通RPC之间的主要区别之一。
简而言之,我不相信SOA自古以来就存在的修正主义历史。这就像宇宙是用Lisp(或Perl)编写的一样。它也不等同于分而治之或分工。
SOA起源于上世纪90年代的某个时间点,与CORBA的发展有重叠。很难确定一个实际的日期或事件,并且有不少人声称对其进行了概念化。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接