2010-06-12 71 views
3

我对分布式,协作式,跨组织编程范例的历史感兴趣 - 现在Web服务和SOA是事实上的,但之前是什么? SOA取代了哪些模型?Web服务和SOA之前是什么?

感谢

+4

SOA和Web服务是两个完全不同的事情。 SOA更多的是一种方法,而Web服务是标准。 – 2010-06-12 09:52:54

+3

它们可能是完全不同的东西 - 但它们也是互补的,并且支持技术,SOA建立在Web服务奠定的标准之上。我认为你是一个有点迂腐:) – MalcomTucker 2010-06-12 10:04:44

+0

他不是迂腐。有些Web服务不关心SOA,而SOA包含“Web服务”以外的其他东西。 – 2010-07-27 01:14:11

回答

2

也许筒仓

......服务只是在整个企业中不共享,至少以标准方式共享。这就是为什么使用像BizTalk这样的产品的原因:通过标准接口让筒仓彼此交谈。

3

嗯,我想是有RPC - 这实际上是SOAP的内容,只是它们没有在标准协议(http的SOAP)的情况下捎带数据有效载荷。所以CORBA和DCE-RPC和ONC RPC都做了同样的事情,但只是通过内部网络,而不是通过互联网。

也有EDI作为在不同实体之间交换数据的“标准”。这实际上是一种定义数据有效载荷的样子的方式(类似于SOAP的XML部分)。

但是这些仍然不是SOA,它们提供了相同的功能,但最大的不同在于人们如何使用它们。一旦你可以写一个机器对机器的网站,并让不同的机器通过它们彼此交谈,它就起飞了。你可以在使用CORBA之前做到这一点,但这并不容易或众所周知。你可以说这是因为我们有几个术语用于有效地实现同一事物--SOA,SaaS,Web服务......都是同样的事情(但是为了区别差异而需要大量资金来“咨询”))

2

我真的不认为你会发现任何被SOA取代的东西。您会发现组织计算机程序以利用SOA类型原则已经取得了进展。至于已经在相当普遍使用的编程模型,那么让我们来看看... CORBA,RPC,更通用的client-server应用程序。当然,计算机到计算机通信之前使用各种各样的惯例process-to-process communication

SOA作为一种将大问题分解为小问题然后组合结果的哲学,自从人类开始制造砖块而不是构建完整的墙壁以来,已经知道并应用了SOA。当然,这大部分是隐含的。 SOA的显式声明确实开始出现在CORBA中,尽管SOA独立于Web服务,但HTTP和XML(以及SOAP)的出现确实开始使非专业“服务”的开发更容易,更有价值,因此共同。

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)编写的Universe。这也不等于分而治之或分工。

SOA开始于九十年代的一些点的概念。与CORBA的发展重叠。指出实际的日期或事件要难得多,并且对其概念化的要求不止一点。