what's QMF?
2009-10-07 22:29
288 查看
There's been a lot of progress lately on QPID management that I would
like to bring to the attention of the QPID user and developer communities.
The Qpid Management Framework (QMF as we've been calling it) is an
extensible framework for managing the components of QPID and for using
QPID as a general-purpose management infrastructure for third-party
software components. This framework is implemented in the QPID C++
broker (on the trunk, post-M3).
QMF is composed of three parts: The broker, the console, and the agent.
Consoles are consumers and controllers of management data. They are
GUIs, CLI utilities, event collectors, and programmatic scripts that
interact with management data. There is a Python console API for users
who wish to write their own console applications. I have it on good
authority that a Ruby API is being developed as well.
Agents are producers and maintainers of management data. They are
software components like the messaging broker, a plugin store module, or
external third-party software packages. Agents provide a schema for
their management model that describes object and event classes. Object
classes may have methods with arbitrary sets of input and output
parameters for very flexible and powerful management capability. An
agent API is provided in C++ along with an XML-based schema compiler to
get agent developers up and running quickly.
The QMF Broker is co-located with the QPID messaging broker and it
handles the efficient routing of management data and meta-data to the
places it needs to be.
Many thanks to Andrea Gazzarini who has contributed a QMF/JMX bridge
(QMan) to the project. This allows Java JMX consoles to natively access
all of the management data in an entire QMF enterprise. I've attached a
pair of screen shots of a JMX console viewing QMF data through Andrea's
tool.
Some interesting features of QMF:
* QMF is inherently asynchronous for efficiency and throughput. The
console API has both asynchronous and synchronous operations to
support complex applications as well as very simple (even
interactive) operation.
* QMF is based on QPID messaging for secure, efficient, and scalable
data transfer. Event and status distribution is provided using
the publication-subscription model for efficient multicasting.
* QMF cleanly handles the coexistence of agents with different
versions of the same management schema. This allows for flexible,
staged upgrade of software packages.
Future project work for QMF:
* API support for other languages. In particular, a C++ console API
and a Python agent API are desired.
* A JMX agent, the opposite of QMan, that uses JMX to access MBeans
and exposes those MBeans across the QMF network. Such a tool
would provide secure, wide area access to JMX-manageable
software. It also would provide Python/Ruby/C++ access to JMX MBeans.
* QMF support in the Java broker.
-Ted
like to bring to the attention of the QPID user and developer communities.
The Qpid Management Framework (QMF as we've been calling it) is an
extensible framework for managing the components of QPID and for using
QPID as a general-purpose management infrastructure for third-party
software components. This framework is implemented in the QPID C++
broker (on the trunk, post-M3).
QMF is composed of three parts: The broker, the console, and the agent.
Consoles are consumers and controllers of management data. They are
GUIs, CLI utilities, event collectors, and programmatic scripts that
interact with management data. There is a Python console API for users
who wish to write their own console applications. I have it on good
authority that a Ruby API is being developed as well.
Agents are producers and maintainers of management data. They are
software components like the messaging broker, a plugin store module, or
external third-party software packages. Agents provide a schema for
their management model that describes object and event classes. Object
classes may have methods with arbitrary sets of input and output
parameters for very flexible and powerful management capability. An
agent API is provided in C++ along with an XML-based schema compiler to
get agent developers up and running quickly.
The QMF Broker is co-located with the QPID messaging broker and it
handles the efficient routing of management data and meta-data to the
places it needs to be.
Many thanks to Andrea Gazzarini who has contributed a QMF/JMX bridge
(QMan) to the project. This allows Java JMX consoles to natively access
all of the management data in an entire QMF enterprise. I've attached a
pair of screen shots of a JMX console viewing QMF data through Andrea's
tool.
Some interesting features of QMF:
* QMF is inherently asynchronous for efficiency and throughput. The
console API has both asynchronous and synchronous operations to
support complex applications as well as very simple (even
interactive) operation.
* QMF is based on QPID messaging for secure, efficient, and scalable
data transfer. Event and status distribution is provided using
the publication-subscription model for efficient multicasting.
* QMF cleanly handles the coexistence of agents with different
versions of the same management schema. This allows for flexible,
staged upgrade of software packages.
Future project work for QMF:
* API support for other languages. In particular, a C++ console API
and a Python agent API are desired.
* A JMX agent, the opposite of QMan, that uses JMX to access MBeans
and exposes those MBeans across the QMF network. Such a tool
would provide secure, wide area access to JMX-manageable
software. It also would provide Python/Ruby/C++ access to JMX MBeans.
* QMF support in the Java broker.
-Ted
相关文章推荐
- What are definitions of Model, Inference and Algorithm and its associations ?
- SAT英文阅读扩展(2):What is Poetry
- different services that PSAPPSRV executes and what do they do?
- what is archeage honor weapons?
- What is Complex Event Processing? (Part 8 )
- detection proposals综述(What makes for effective detection proposals?)
- What is machine learning?
- What's Kurento
- The Log: What every software engineer should know about real-time data's unifying abstraction
- What are the best practices for building something like a News Feed?
- HEVC Intro – What are CTU, CU, CTB, CB, PB, and TB
- What does the 11 mean in INT(11)?
- Yann LeCun video: (What's Wrong with Deep Learning?)
- HDU 1075-What Are You Talking About(Trie)
- hdu 1075 What Are You Talking About (字典树·文字翻译)
- What is the modified poplar formwork plywood
- Yuanfang,what do you think ? SDUT 2448
- ZOJ 3785 What day is that day?
- 条款5:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)
- SSH - what is the differnence between authorized_keys and authorized_keys2