A simple Java based Siebel CRM monitoring framework

I have built some monitoring scripts in Perl and Shell in the past years, of which most needed a lot of code to realize an interface with the application and exception handling functions to catch and process every possible error i could think of. In other words, it was quite a challenge to get a stable and reliable working monitoring script. Besides that, not every customer had a Perl interpreter installed on their servers or ran Siebel on another platform than Unix (in all its variations). Since most of the scripts do retrieve the information from the Siebel server manager, i questioned myself if there was not a better way to develop siebel monitors. Monitors which could retrieve information from Siebel using an API instead from wrapper scripts around command-line utilities. Java is more generic available on any platform and Oracle offers a SiebelDataBean which enables to interface with Siebel CRM. So i gave myself the challenge to design and develop a small monitoring framework to monitor the Siebel CRM application which should be easily extendible.


The challenge for me was to keep it the design simple and clearly separate tasks between classes. I finally ended up with major classes. The first class, SBLMonitor, is an abstract class containing the generic attributes and methods for a Siebel CRM monitor. The class should implement Runnable so each monitor could run in a separate thread. By extending Observable other classes can be added as an observer and therefore respond when the monitor has collected new data. The second class SBLMonitorController, was responsible for maintaining the connection with the Siebel CRM application and controlling the monitoring threads. Finally i ended up with the following design;


Although the framework could of course be improved, it is stable and a good start. I will extend and improve it whenever i find the time. (Or someone creates the right circumstances for me ☺ ) Although the development was done in a matter of days, i ran in two 'issues'. First is that there is very little to find about this subject on-line, therefore i used Siebel Tools to find out how to retrieve specific data out Siebel. Secondly, none of the provided methods is synchronized. Initially this was not an issue, but after adding the second monitor it became clear that i had to make all calls to the SiebelDataBean synchronized.

To make it ready for demonstration i wrote two simple monitors SBLCompontenMonitor and SBLWorkflowMonitor and added a Swing interface to present the monitoring results. For who is not able to test or demonstrate this Java application in a live environment i added a short demonstration video below. (Sorry no exiting graphs due to low utilization of the Siebel environment)


The sourcecode, SiebelMonitor.zip, can be downloaded here.

blog comments powered by Disqus