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

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



    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 0.9
    • QMF
    • None


      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.




            tross Ted Ross
            tross Ted Ross
            0 Vote for this issue
            0 Start watching this issue