Richards Center at Yale University
RC Home | Search | Table of Contents | General Information

Last Modified: Wednesday, 01-Mar-2006 08:55:22 EST

Linux client apps for Rimage

Overview

The Rimage 2000i is controlled by elijah, a WindowsXP PC. The Rimage system manager software installed on elijah runs a server that listens on port 2506 for instructions.

Briefly, here is what needs to happen on a linux client to burn data disks on the Rimage 2000i.

  1. Assemble the files into one or more .iso disk images, and make them available to elijah (by ftp-ing them to the appropriate location on elijah).
  2. Create a PDF disk label and send it to elijah. We will not use the method of sending a .txt merge file to elijah for a previously-created BTW label.
  3. For each ISO and label, create an XML production order for the Rimage 2000i, as described below.
  4. Using a java program with the Rimage client API, send the production order(s) to the Rimage system manager software on elijah. (Can multiple ISO/disks be combined in a single productin order?).
  5. Using a java program with the Rimage client API, monitor the status of the production run.

Note that in sample applications, steps 3, 4 and 5 are generally combined into one client application on the linux host. We may do the same.

Rimage's documentation for developing clinet-side applications, as well as all the java class files, sample client applications, DTD files, and sample XML order and status files, are found here.

Prerequisites

See also the log of initial efforts 20060206-java-api.txt. This contains details of where to find the stuff in the follwing list. Also, 20060222-java-client.txt contains the next series of java client test programs.

Directory and Naming conventions

We should establish a directory and naming convention for both client and server side:

Create .iso images and ftp them to elijah

The Rimage server can assemble separate files into an image, and this can also be controlled from the client. But it will be easier to do this on the linux client side, and only deal with transferring and managing the single ISO disk image. The Python code provided by Brookhaven National Labs, located in /srv/local/backup/BNL/barebones, provides a means for breaking a directory up into DVD-sized chunks, running mkisofs, and FTP'ing the resultant images, label merge files, and production order files to the Rimage server. Unfortunately, the production order files are in obsolete plaintext format. Also, one would still need to have the client communicate with the server in order to begin actual processing of the job. I have found a Python module, JAXML, that is meant to facilitate outputting XML from Python (Module source is in /srv/local/backup/BNL). Once this file is produced, the Java submission process below could presumably be used to process the order.

Return to top

Create labels and ftp them to elijah

The ProductionOrder DTD indicates that that the server accepts either BTW or PDF files for printing. BTW is the format produced by CD Designer, a program that runs on the WinXP PC. Rimage recommends using BTW, but PDF works, and iot is easier to do all the label generation on the linux client.

See PDFlabels.html for details of producing PDF labels.

Return to top

Create XML production orders

A simple productin order is an XML file that contains instructions for burning an ISO to disk, and for printing the label. The XML file contains the full path to the files (on the server) that contain the ISO, the BTW label, and the txt merge data. A simple example is given in the Rimage SDK manual.

The XML order can be generated without using the java SDK API on the client -- it can be created by hand, or by a perl or other script. If we use a java program, we can use the SDK to validate the XML file against the ProductionOrder DTD. But if we use a well-tested script, that may not be necessary.

Return to top

Submit production orders to elijah

This is done using a java program which runs on the linux client, calling the classes defined in the Rimage SDK. A very simple prototype has been successfully tested. It reads an XML file, submits the production order to the server, and monitors status reports from the server.

Return to top

Monitor and report the status of production runs

This function can be separate or combined with submitting production orders. If separate, the monitor would run on the linux client. Knowing the ClientID and OrderID, it could monitor the status of the order on the server.

Return to top

Last Modified: Wednesday, 01-Mar-2006 08:55:22 EST


RC Home | Search | Table of Contents | General Information
Richards Center (www.rc.yale.edu) at Yale University (www.yale.edu)
Contact: webmaster_at_ben^rc^yale^edu