Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3032

QMFv2 - Allow endpoints to be directly addressed via a topic exchange


    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9
    • Component/s: QMF
    • Labels:


      QMF uses a number of messaging patterns, including direct to single destination and request-response using the reply-to header for the address of the response message. This enhancement allows direct addressing to be done using the topic exchange rather than the direct exchange. This has a number of advantages:

      1) It allows a QMF domain to be configured using only one topic exchange, which is simpler than pairing a direct and a topic exchange.
      2) It allows security policy to be applied (details below) because the topic-wildcard feature can be used in broker ACLs.
      3) It allows for scaling into large networks of brokers where inter-broker links are summarized and direct topic routing keys are defined hierarchically based on topology.

      Details on security policy:

      With this enhancement, it is possible to write a very concise policy (using broker ACLs) that restricts user roles to be "QMF Agent Only", or "QMF Console Only", or any combination of these. Furthermore, since a QMF domain is tied to an exchange, these policies can be independently applied to different domains.

      Code changes needed:

      1) QMFv2 implementation uses the topic exchange as the basis for direct addresses (agent direct, and console reply-to)
      2) The legacy C++ agent (qpid::agent) must be able to send a message to any arbitrary reply-to.
      3) The broker-agent must be able to send a message to any arbitrary reply-to.

      Note that the broker and C++ agents currently only use the "routing-key" portion of the reply-to. They hard-code the "exchange" portion as amq.direct. This is arguably a bug in its own right.




            • Assignee:
              tedross Ted Ross
              tedross Ted Ross
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: