【问题标题】:Difference between “broker”, “agent“ and “proxy”“经纪人”、“代理”和“代理”的区别
【发布时间】:2018-10-01 21:45:54
【问题描述】:

在编程代码中使用“broker”、“agent”和“proxy”这几个词有什么作用?计算机技术有什么特殊含义吗?有什么意见或例子吗?

【问题讨论】:

  • 我想,回答这些你可以在网上找到。如果您对模式实现有具体问题,可以在这里提问

标签: design-patterns proxy agent broker


【解决方案1】:

Proxy 是最初的 Gang of Four 模式之一,随后在 Web 环境中使用,并且由于正规教育的不足导致更常见的使用覆盖了原来的用法。我什至不确定互联网代理是否与代理模式匹配。好像是缓存模式。

我相信代理一词来自早期的银行时代,例如意大利文艺复兴时期的德美第奇家族。远距离通信很慢,因此代理人被授权为银行签署新业务,并被派往偏远地区。因此,当通信速度较慢时,就意味着使用代理。 您可能还想查看 Java 世界中的业务委托模式,尽管这更多地是关于封装服务目录查找,并且与代理模式中的责任委托几乎没有关系。 代理似乎是最近在我做其他事情时出现的术语, 但似乎与原始代理相同,或填补代理成为互联网代理时留下的空白。 代理的概念在早期的 Macintosh 域中被用作一种软件,它可以代表 Internet 域中的一个人运行,而用户处于离线状态,搜索和处理数据以缓存该人以后可以查看的结果。 即它是一个代理。然而,这个概念似乎已经扩展到可以自主运行、与环境交互的东西。它不再仅代表用户进行操作。它观察它的环境,并根据它内在的控制逻辑对它的环境采取行动。因此,代理在互联网或计算机系统上的概念是有意义的。病毒可以说是一种自我复制的媒介。 (如在 Matrix III 电影中)见 Wikipedia

Broker 确实通常用于消息,但我相信该术语首先出现在 Corba 的上下文中,其中 Broker(又名 Orb)用于将 API 请求“处理”到适当的执行软件。从这个意义上说,代理非常像服务总线的核心部分——即服务代理。术语消息代理来自使用消息传递系统来实现服务调用的供应商,而不是作为实时通信请求或什至使用路由器本身进行代理的服务调用。 实际上,Broker 是按比例放大的 Facade 模式。

【讨论】:

  • 查看上一个答案中给出的参考资料,Kurose 是一个计算机网络特定文档,因此很自然地给出了网络上下文中使用的代理的含义。 Russell 和 Norvig 专注于 AI,因此使用在他们的上下文中不断发展的术语,对于他们来说,为不同的上下文使用不同的术语可能是合理的。
【解决方案2】:

还有其他含义,但我认为这三个术语在相同的上下文中与电信技术相关。

Broker 指的是 Message Broker,它是一个中间应用程序,可以转换和执行其他操作以改善实体之间的通信。您可以在Hohpe and Woolf找到更多信息

代理服务器使用Kurose definition 是指“代表原始Web 服务器满足HTTP 请求的网络实体。Web 缓存具有自己的磁盘存储并保存最近请求的对象的副本在这个存储中。”

代理可以是很多东西。它指的是应用程序,可能是在后台运行的服务或 Web 服务。通常,代理是一个自主且面向目标的实体。考虑到代理和代理以某种自主方式执行某些任务,它们可以被视为代理。这是一个很长的讨论。

有一个特定的社区研究代理和多代理系统,对于这种情况,我们可以从Russell and Norvig 的定义开始,它说“代理是可以被视为通过传感器感知其环境并作用于该环境的任何事物通过执行器”。这个定义也符合上面所说的。

【讨论】:

    猜你喜欢
    • 2016-06-01
    • 1970-01-01
    • 2018-06-03
    • 2014-01-02
    • 2011-10-12
    • 1970-01-01
    • 2016-06-24
    • 2018-06-16
    • 1970-01-01
    相关资源
    最近更新 更多