Several weeks again, I published a post on RunMyCode, a platform for publishing code and data associated with papers. After verification by the project staff, the code is run on a remote server but controlled from a web page. Several people have asked if I would describe the underlying architecture.
The system is detailed in section IV of the paper by Stodden, Hurlin and Perignon (free download) , and shown in the figure (fig 6 in the paper).
The figure shows from left to right, the front end, the middleware, and the back end. The front end uses Tomcat/JE22 to hold all the user applications, the middleware uses a Message Oriented Middleware MOM) message routing system, and the back-end used uses a cloud-based architecture.
The authors describe the operation of the system as follows:
” The users of a companion webpage (that is, webpage that is submit requests that are sent as a message (in an asynchronous way) to the back-end system. A system for processing these requests has been developed (DTM – Distributed Task Manager) in support of SGE (Sun Grid Engine – job entry subsystem of the calculus center). DTM is a lightweight tool for submitting and monitoring jobs through a local batch scheduler (SGE), gLite Grid and local Linux/Unix host. DTM is provided by the TGE Adonis (a unit of France’s National Center for Scientific Research, CNRS). This architecture permits the assignment of a specific computation resource to a specific demand issued from a companion webpage. The assignment takes into account the number of available resource calculations and the nature of the request. Once the job is executed, a post-treatment is done from the raw results issued from the software. This post- treatment mainly consist in creating a .pdf file that includes all the results (text, figures etc.) generated by the software. A .csv file may be also generated with numeric output (data).”
After the post-treatment is done, the webpage is updated and the results are displayed.
Finally, the system supports coupling to high performance platforms such as iRODS (bottom panel of figure), but this invisible to the end user.