Usage Scenario : Big Picture
- The user writes a Client code in C++ which utilizes services of the clarens server. Let's call this ClientCode.C
- She also has written the analysis code for root data. Let's call these files Analysis.C and Analysis.H .
- She then executes the ClientCode.C using the C++ interpreter provided by the ROOT. (ROOT has a built in C++ interpreter)
- ClientCode.C uses the built in ROOT libraries to locate data files in the server and also to upload the above two files to the clarens server.
- After discovering (polling for files) root data files, ClientCode.C send request/requests to the Clarens server for creating rootlet/rootlets to execute the analysis code that it uploaded.
- For every rootlet request Clarens server creates a wrapper script for rootlet and executes it with the input and output files. This wrapper script is called rootlet_wrappper.sh
- Finally the ClientCode.C poll for output files and display the results of the analysis in a histogram generated at the user's machine.
As the first step, I changed the rootlet_wrapper.sh to publish a message after finishing the analysis using the nbclient program we wrote using C++. This works fine and we can eliminate the polling requirement of the ClientCode.C to find the results.
Next task is to incorporate the subscriber functionality to the visualization part of the ClientCode.C