JSRootShell
Index
- CERN's ROOT Website
- Project Description
- Used tools and libraries
- Design
- Features
- Why is it good for...
- Current Status
- Installation
Project Description
JSRootShell is a javascript web interface which emulates a ROOT's shell and processes the code sending a request to aXmlRpc? server using HttpXMLRequest, the server processes the code and returns a message with the result.
The XmlRpc? server is being written in c++ and listens some differents request types explained in design section.
Tested under last versions of Chrome/Firefox/Opera
The project manager is Omar Andres Zapata Mesa, please contact me at or to support or suggestions.
Go to Index
Used tools and libraries
Go to Index
Design
The yellow area in the picture is the area related to this module, the idea is to create a set of web services for ROOT libraries,
that let you have easy access to ROOT software preconfigured and with an interface that is easy to use.
- The master server TXmlRpcServices is a xmlrpc server that let you authenticate, start/stop engines and to monitor the resources.
- The TXmlRpcShellServer is a service that process c/c++ code using a ROOT's classes, and it have communication with javascript code directly to get request and send results.
- The JSRootShell is a javascript interface to communicate through the web with the end user.
Go to Index
Features
Authentication:
The idea is that an user can have authentication to the system using several methods, like linux user account, with private key RSA or SQL database user. This feature is not implemented yet.
Signal Handling:
basically two signals need to be captured SIGINT (Interrupt) and SIGSEGV (Segmentation fault). The second one is now captured.
Tab Completion:
Tab completion is a very useful tool for shells, the idea is capture this keyboard's event to show a sub-window with options. It require to write a special request for the server that let asynchronously get this information. This feature is not implemented yet.
History Up/Down
It is a very useful tool for shells, it is a keyboard utility to show the history of introduced commands. This feature is not implemented yet.
Notebook Mathematica's style
It is a user interface for ROOT similar to mathematica's notebook that let you process blocks of code and plot the images in embed block. This feature is not implemented yet.
Syntax Highlighter
The colors in the code. This feature is not implemented yet.
User Inteface for plots.
The canvases in the code can be capture and showed in the javascript interface, this feature is now implemented but the idea is to improved it to use the javascript code from http://root.cern.ch/js/