【问题标题】:Why did we require standards like RMI, Corba etc? [closed]为什么我们需要 RMI、Corba 等标准? [关闭]
【发布时间】:2014-01-29 09:09:19
【问题描述】:

如果我的问题听起来很幼稚,请原谅。

我无法理解这一点。我不明白 RMI、CORBA 等背后的动机?我的意思是如果这个想法是使用其他地方可用的功能并且可以通过网络访问其他地方,为什么我们不能只使用像 HTTP 这样的协议。事实上,一个软件应用程序/模块/包应该做的就是在网络上可用并发布它可以提供的服务类型。然后当有人请求服务时,只需使用结果数据进行响应。由于 HTTP 和 TCP 是这样的通用协议,使用它们意味着整个 Internet 都可以访问它们。这就是我们在 Web 服务中所做的。

那么,RMI、CORBA 和其他此类标准背后的动机是什么?

请提供一些历史和观点。

这个问题的精神与:CORBA, RMI and SOA

【问题讨论】:

  • Arent(很多?全部?)通过 HTTP 的 RPC 调用? SOAP 请求是 RPC 请求,.. WSDL 是 RPC,...
  • 因为人们不能同意
  • 发明了很多东西,各有利弊,如果你不喜欢一件事或者它不适合你的需要,何必费心呢。要求和可能性会随着时间而变化,..
  • 排队或并行处理、不同的性能(较低的 OSI 网络层)、可访问性(如“端口 80 无论如何都打开”)、安全性、阻塞 - 非阻塞、同步异步、握手、参数验证(每个协议定义,或单独在应用程序中),.. 很多不同!
  • 看看一些日期。 RPC:Sun,1983,在一个化身中,还有其他的。 CORBA:OMG 1989。HTTP:Berners-Lee,约 1990。RMI:Sun 1995。互联网商业化:1990 年左右。 Web 服务:1990 年代后期。而且我希望你不要真的认为 HTTP 是一切的答案。

标签: rmi rpc corba


【解决方案1】:

这在某些方面就像问为什么存在不止一种编程语言。有人发明了网络和通过网络传输数据的想法。有人发明了使用数据远程触发操作的想法——客户端/服务器模型。有人发明了将客户端/服务器交互抽象为看起来更像函数调用的东西的想法,并且您拥有 RPC(远程过程调用)协议的一般类别。有人把它做成面向对象的,而你有 CORBA;有人用 Java 封装了 CORBA,而你有 EJB。以此类推。

旧版本仍在使用,因为现有代码使用它们,如果你想与这些机器对话,你必须使用它们的语言......而且因为它们完全足够,就像旧的编程语言一样完美足够的。较新的语言表达能力更强,更方便,更好地融入了新语言使用的概念。

欢迎来到计算。眨眼,你就会错过一代人的发展。 (诚​​然,现在比以前少了一点。)

【讨论】:

  • 当然,还有@DanFromGermany 指出的所有问题。灵活性与便利性与效率的不同权衡。许多个月前,我曾经写过一个基于多播数据报的协议,当时我们需要大规模并行更新网络上的 300 台机器,否则这些机器无法快速处理任务……选择工具以适应任务。
猜你喜欢
  • 2011-05-27
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多