通过网络连接程序

时间:2017-11-14 11:23:30

标签: rest web-services distributed-computing middleware corba

我想深入了解通过网络提供程序之间连接的各种工具。

为澄清这个问题,我将其分为子问题:

  • 为什么某些程序组(或者使用可以使用此框架的编程语言的特定工具/框架/方法)在每个时期都很受欢迎?(I期待对已解决的问题的描述,工具的描述,为什么那些工具被认为是当时那些问题的最佳解决方案,为什么有些工具失去了人气)
  • 通过网络进行软件通信的整个历史是什么?(工具/方法的流行程度恰好达到数十年)
  • 此问题的现代解决方案是什么?

我只能区分两种重要方法。

  1. RPC,RMI及其实现(我看到this,但它是关于解决这个问题的具体问题和具体工具,我想看看这个地方网络上互联程序的整体情况存在问题。我听说过实施:ONC RPC,XML-RPCCORBADCOMgRPC,但现在有效吗?哪些是合理的?哪些更好?为什么?我希望答案不是基于意见的,所以我接受像#34; 技术的答案比问题X的技术B更好,因为...... "只有有可靠的研究/统计或事实)。我听说RPC和RMI在10年前很受欢迎。他们还在吗?

  2. 网络服务RESTSOAP

  3. 我想念一下吗?也许有一些技术可以全新解决问题?也许有些技术可以被视为RPC(RMI)和Web服务的替代品?对于任何任务,我们可以用REST替换RPC(RMI)吗?我们是否可以仅通过REST替换现有任务的RPC(RMI)?我应该将技术分离为RPC和Web服务,还是以其他方式分离?

2 个答案:

答案 0 :(得分:1)

问题“我错过了什么”:是的。

非常流行的通信模式是所谓的事件驱动或消息驱动协议。这种类型的协议通常用于分布式系统,例如Web应用程序,微服务和IoT环境。通信是异步完成的,允许构建可扩展和松散耦合的系统。

事件驱动系统有许多不同的框架和方法,如WebSockets,WebHooks,Pub-Sub和Messaging-Librarys,如AcitveMQ,OpenMQ,RabbitMQ,ZeroMQ和MQTT。

希望此信息有助于您的研究。

答案 1 :(得分:0)

作为部分答案,我可以就RabbitMQ的使用向您提供反馈。 作为解释here,它提供了许多不同的使用方法:

  • RPC通过实现"回调"队列
  • 一对一,一对多路由策略,通过整个基础架构传播您的事件并定位到正确的目的地。

它具有保持消息的能力,以避免在出现崩溃时丢失数据,但也有一些插件可以增加可能性(例如x-delayed plugin)

这种用Erlang编写的技术非常强大,在程序之间的通信方面是必须尝试的。