QMF Map Message ProtocolPage edited by Ted RossQMFv2 Map Message ProtocolIntroductionThis document describes the design of a proposed protocol for QMF based on map-messages (offered by the new C++ and Python APIs as well as the existing JMS API). If adopted, this new protocol will change the formats of the messages used by QMF components to communicate. It will also change some of the message exchange patterns. It will not significantly impact the console and agent APIs and is intended to operate with applications that use the current QMF APIs. Some highlights of the new design:
QMF ProtocolUse of Message HeadersStandard Message Properties
Custom Application Headers
QMF OpCodes
QMF Content Types
Message Body Map FormatsSCHEMA_IDSCHEMA_ID := { _package_name: STRING, _class_name: STRING, _type: _data | _event, _hash: UUID }
SCHEMA_CLASSSCHEMA_CLASS := { _schema_id: SCHEMA_ID, _values: { EACH_ATTR_NAME: SCHEMA_PROPERTY | SCHEMA_METHOD }, _subtypes: { EACH_ATTR_NAME: qmfProperty | qmfMethod } }
SCHEMA_PROPERTYSCHEMA_PROPERTY := { _type: QMF_TYPE, _access: RO | RC | RW, _unit: STRING, _min: NUMBER, _max: NUMBER, _maxlen: NUMBER, _dir: I | O | IO, _desc: STRING, _references: SCHEMA_ID, _subtype: QMF_SUBTYPE }
QMF_TYPEQMF_TYPE := TYPE_VOID | TYPE_BOOL | TYPE_INT | TYPE_FLOAT | TYPE_STRING | TYPE_MAP | TYPE_LIST | TYPE_UUID QMF_SUBTYPEQMF_SUBTYPE := reference | url | timestamp | duration SCHEMA_METHODSCHEMA_METHOD := { _desc: STRING, _arguments: { EACH_ARG_NAME: SCHEMA_PROPERTY } }
QMF_METHOD_CALLQMF_METHOD_CALL := { _object_id: OBJECT_ID, _method_name: STRING, _arguments: { EACH_KEY: VALUE }, _subtypes: { EACH_KEY: STRING } }
QMF_METHOD_RESULTQMF_METHOD_RESULT := { _arguments: { EACH_KEY: VALUE }, _subtypes: { EACH_KEY: STRING } }
QMF_DATAQMF_DATA := { _schema_id: SCHEMA_ID, _object_id: OBJECT_ID, _values: { EACH_KEY: VALUE }, _subtypes: { EACH_KEY: STRING } }
OBJECT_IDOBJECT_ID := { _agent_name: STRING, _agent_epoch: NUMBER, _object_name: STRING }
QMF_QUERYQMF_QUERY := { _what: QMF_CONTENT_TYPE, _where: QMF_QUERY_PREDICATE _id: STRING | SCHEMA_ID | OBJECT_ID }
QMF_CONTENT_TYPEQMF_CONTENT_TYPE := { _agent: VOID } := { _schema_id: VOID } := { _schema: VOID } := { _object_id: VOID | SCHEMA_ID } := { _object: VOID | SCHEMA_ID } QMF_QUERY_PREDICATEQMF_SUBSCRIBEQMF_SUBSCRIBE := { _query: QMF_QUERY, _duration: NUMBER, _interval: NUMBER }
QMF_SUBSCRIPTIONQMF_SUBSCRIPTION := { _subscription_id: STRING, _duration: NUMBER, _interval: NUMBER, }
QMF_SUBSCRIPTION_IDQMF_SUBSCRIPTION_ID := { _subscription_id: STRING}
Change Notification Preferences
View Online
|
View Change
|
Add Comment
|
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence
- [CONF] Apache Qpid > QMF Map Message Protocol confluence