...
Backward/Forward Compatibility with QMFv1
Compatibility Matrix
The following compatibility matrix shows all combinations of V1 and V2 components (console, agent, and broker). Those intersections marked "OK" are supported without the need for compatibility-oriented development.
No Format |
---|
V1 Console V2 Console
+--------------------+--------------------+
| | |
| OK | note 3 | V1 Broker
| | |
V1 Agent | -----------------+ -----------------+
| | |
| note 1 | note 2 | V2 Broker
| | |
+--------------------+--------------------+
| | |
| note 3 | OK | V1 Broker
| | |
V2 Agent | -----------------+ -----------------+
| | |
| note 4 | OK | V2 Broker
| | |
+--------------------+--------------------+
|
The following notes address how intersections in the matrix might be supported.
Note 1: V2 broker retains V1 capability
Note 2: V2 broker proxies V1 agents (including the embedded one) to V2 protocol
Note 3: V2 clients speak both protocols, choosing which to use by the version of the connected broker
Note 4: V2 broker proxies V2 agents to V1 protocol
Planning:
- The features in notes 1 and 2 must be implemented. It is important that users not be required to upgrade all components of their deployments at the same time.
- The feature in note 3 may be implemented. This is considered lower priority.
- The feature in note 4 shall not be implemented. Because QMF V2 is intended to scale to larger networks than are currently possible with V1, and this feature would limit the scalability of QMF V2, this is considered non-desirable.
- V1 Console + V1 Agent via V2 Broker
- V2 Console + V2 Agent via V1 Broker
- V2 Console + V1 Agent via V2 Broker
- V2 Console + V1 Agent via V1 Broker
- V1 Console + V2 Agent via V2 Broker
- V1 Console + V2 Agent via V1 Broker
- V2 Console managing V1 Broker (agent embedded in broker)
- V1 Console managing V2 Broker (agent embedded in broker)
Design
APIs
Python
Ruby
C++
Java
...