我对分布式,协作式,跨组织编程范例的历史感兴趣 - 现在Web服务和SOA事实上已经存在,但之前发生了什么?哪些模型已被SOA取代?
由于
答案 0 :(得分:3)
好吧,我想有RPC - 这就是SOAP的真正含义,只是他们没有在标准协议(SOAP的情况下为http)之上捎带数据有效负载。所以CORBA和DCE-RPC以及ONC RPC都做了同样的事情,但只能通过内部网络,而不是通过互联网。
还有EDI作为在不同实体之间交换数据的“标准”。这实际上是一种定义数据有效负载外观的方式(类似于SOAP的XML部分)。
但这些仍然不是SOA,它们提供相同的功能,但最大的区别在于人们如何使用它们。一旦你可以编写一个机器到机器的“网站”并让不同的机器通过它们相互通信,它就会起飞。例如,你可以在使用CORBA之前做到这一点,但它并不那么容易或广为人知。你可以说这已经发生了,因为我们有几个术语用于实际上相同的东西 - SOA,SaaS,Web服务......所有相同的事情(但是很多钱可以通过差异来'咨询'))
答案 1 :(得分:2)
也许 Silos ?
......服务不是在整个企业中共享的,至少在标准方式中是这样。这就是为什么使用像BizTalk这样的产品:通过标准接口让孤岛相互交谈。
答案 2 :(得分:2)
我真的不认为你会发现任何被SOA取代的东西。您会发现在组织计算机程序以利用SOA类型原则方面取得了进展。对于已经合理使用的编程模型,让我们看看...... CORBA,RPC,更通用的client-server应用程序。当然,在process-to-process communication之前使用各种惯例进行计算机到计算机的通信。
SOA作为一种将大问题分解为小问题然后组成结果的哲学已经知道并应用,因为人类开始制作砖而不是建造完整的墙。当然,这主要是隐含的。 SOA的显式语句真正开始出现在CORBA中,虽然SOA独立于Web服务,但HTTP和XML的出现,以及SOAP,真正开始使非专业“服务”的开发更容易,更有价值,因此常见的。
答案 3 :(得分:2)
这个pdf A Note on Distributed Computing应该是一本有趣的读物。它是SOA之前的,并且可以直截了当地描述历史(1994)。
我会说分布式对象技术。在它进行远程过程调用之前。 RPC是早期的方法之一,并从Sun实现中获得了普及。其中一个着名的用途是NFS(网络文件系统)。
随着面向对象编程变得越来越流行,遵循分布式对象。最重要的是Microsoft DCOM(以及后来的COM +)以及更广泛的行业CORBA。
SOA是一种分而治之的方法,它严格依赖于服务的概念。这与CORBA等人使用的对象不同,并且与REST中的资源不同。
创建对象,其生命周期通常由客户端控制。另一方面,假设服务始终由服务器提供。这就是为什么SOA不等同于分布式对象的原因之一。
服务也是无状态的,这意味着服务器在考虑对服务请求的响应时不需要查看与客户端交互的历史记录。在最初设计RPC概念时,这不是一个考虑因素,因为可伸缩性不是那么重要的问题。有趣的是,RPC的大规模用户确实注意到了可伸缩性和无状态之间的关系。 NFS RFC明确提到了无状态服务器,但主要关注的是可靠性。无论如何,无国籍是服务和普通旧RPC之间的主要区别之一。
简而言之,没有。我不相信自从时间开始以来SOA的修正主义历史。不仅仅是用Lisp(或Perl)写的宇宙。它也不等同于分而治之或分工。
SOA在九十年代的某个时刻开始作为一个概念。与CORBA的发展重叠。要确定一个实际的日期或事件要困难得多,并且对它的概念化提出了不止一些要求。