5

What's it responsible when using words “broker”, “agent“ and “proxy” in programming code? Are there any specical meanings in the Computer Technology? Any opinions or examples?

T.S.
  • 18,195
  • 11
  • 58
  • 78
lei li
  • 147
  • 2
  • 7
  • 1
    I think, answer to these you can find online. If you had specific question about pattern implementation, you could ask here – T.S. Mar 27 '19 at 22:20

2 Answers2

2

There are other meanings but I think in the same context these three terms would be associated with telecommunication technologies.

Broker would refer to Message Broker which is an intermediary application that may translate and perform other actions to improve communication among entities. You can find more information in Hohpe and Woolf

Proxy server using Kurose definition refers to "a network entity that satisfies HTTP requests on the behalf of an origin Web server. The Web cache has its own disk storage and keeps copies of recently requested objects in this storage."

Agent can be many things. It would refer to an application, maybe a service acting on the background or a web service. Usually, an agent is an autonomous and goal-oriented entity. Considering that the proxy and the broker are doing some tasks in an autonomous way somehow they can be considered agents. This is a long discussion.

There is a specific community studying agents and multi-agent systems, for this case, we can start from Russell and Norvig definition which says "an agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators". This definition also fits what is stated above.

Cleber Jorge Amaral
  • 1,316
  • 13
  • 26
2

Proxy is one of the original Gang of Four patterns, which was subsequently used in the Web context, and has subsequently come to represent only network proxies as a result of a deficiency in formal education that results in the more common usage overriding the original usage. I'm not even certain that an internet proxy matches the proxy pattern. It seems to be the Cache pattern.

I believe that the term Proxy comes from early banking days, e.g. the de Medici family in renaissance Italy. Communications over distance were slow, and so Proxies were given authority to sign new business for the banks, and sent out to remote locations. Thus there is an implication that a proxy is used when comms are slow. You might also want to look at the Business Delegate pattern from the Java world, although that is more about encapsulating service directory lookup, and has little or nothing to do with the delegation of responsibility found in the broker pattern. Agent seems to be terminology that has arisen more recently while I was doing other things, but seems to be identical to the original proxy, or to fill the gap left when Proxy became internet proxy. The concept of Agent was used in the early Macintosh domain as a piece of software that would operate on behalf of a person in the internet domain, while the user is offline, searching and processing data to cache results that the person can look at later. i.e. it was a Proxy. However, the concept seems to have been extended to something that operates autonomously, interacting with its environment. It no longer operates just on behalf of a user. It observes its environment, and acts on its environment according to its inner controlling logic. Thus the concept of an agent acting on the internet, or on a computer system makes sense. A virus could be said to be a self replicating agent. (as in Matrix III movie) See Wikipedia

Broker is indeed commonly used for messages, but I believe the term first emerged in the context of Corba, where the Broker (aka Orb) is used to 'deal out' API requests to appropriate execution software. In this sense, a Broker is very much like the core part of a Service Bus - i.e. a Service Broker. The Term Message Broker comes from vendors who use Message passing systems to implement Service Calls, as opposed to Service calls that are brokered either as real-time communications requests, or even using Routers themselves. Effectively, a Broker is the Facade pattern scaled up.

decibel
  • 31
  • 4
  • Looking at the references given in the previous answer, Kurose is a computer networking specific document, and so naturally gives the meaning of Proxy as used in the networking context. Russell and Norvig is AI focussed, and so use a terminology that has evolved in their context, It is probably reasonable for them to use a different terminology for a different context. – decibel Aug 07 '19 at 03:01