Remote-ImageJ is developed at the imaging facility Montpellier RIO Imaging. It allows to run ImageJ macros on a remote machine. The aim of the project is to realize a batch-job queue-system for ImageJ macros and scripts. This batch-job queue-system will be integrated into our Cicero-Image-Database software, so that ImageJ batch-jobs can be run on images in the database from a web-interface. A number of libraries and plugins have been written, that can be used independently of the Cicero-Image-Database.
The communication between distant ImageJ-plugins is based on a custom messaging middleware called “Simple Java Message Exchange” (SIJAME). The SIJAME-server listens on a socket and handles each incoming connection in a separate thread. Messages consist of serialized message-objects that can carry arbitrary data. Plugins can use the SIJAME-server in two different ways. They can either directly add themselves to the server's list of message-handlers or they can use the server's request-message queue. The queue allows an asynchronous but ordered communication. The client sends a message that is added to the server's queue of requests. Interested parties are notified when the first request in the queue changes. They can handle the request and remove it from the queue. An answer can be sent back to a client, using the server and port information carried by the message. For that purpose the client runs its own SIJAME-server on a different port. A dedicated answer-message queue can be used to receive answer-messages.
Based on the SIJAME-middleware a Remote-Macro-Runner has been written. The Remote-Macro-Runner-Server-Console allows to start and stop the server and to view log-messages. The Modal-Dialog-Killer avoids that modal dialogs, opened by a macro or by an error in a macro, block the macro execution on the server. The remote-macro-runner-client-application allows to run a local macro on a distant machine. The IOSettings plugin allows to set input files and folders and output folders using a JFileChooser-dialog and a list-editor. These settings are accessible from within the macro. The RemoteFilesystemView implements a filesystem-view as a proxy that gets its information from a remote machine.
macro, batch, remote, socket, messaging
Presenting author: Volker Baecker
Organisation: Montpellier RIO Imaging, IFR122