Friday 9 February 2018

JMX DataControl and Flume monitoring tool

   This time I would like to put more atention to the data controls. I've been taking a part in one big data project. My role was to create a dashboard that would present businiess values. From the UI point of view it was easy choice to pick DVT components like gauge

   There were discussion about data sources. It was unarguable that Java Management Extension (JMX) is the proper way for communication. First, because the software in the technology stack already implements the JMX MBeans. Second, because ADF is providing JMX Data Control type to access JMX. But the second argument wasn't so good as it sounds... JMX connection can be done just for T3 protocol and to Weblogic application server. 


   By the name it promises a lot. But then it is limited to simple use case in which you want to expose some admin options for your users within the application in the declarative way (instead of invoking WLST scripts from Java code in beans). Still useful, but not this time.

   The solution for the opportunity found here is similar to integration with WebServices described by Frank Nimphus. There are three layers, similar to MVC model. The Model layer is responsible for establish the communication with MBeans and receive data (there were no insert/updates). Controller layer was mapping received values into local POJO classes. And the View layer presents the POJO classess as POJO Data Control. Changes within the MBeans interface doesn't influence on the UI in ADF-Faces because of the abstraction layer under POJO Data Control.

   Simple, efficient and, still, drag&drop at the end :)