Harlequin RIP SDK
The Scalable RIP

The Harlequin Scalable RIP uses multiple processes on one or more machines to improve the performance of PDF jobs, by splitting them into page ranges and RIPping the page ranges separately.

The Scalable RIP as implemented in the "clrip" application may be run as a stand-alone process, accepting input from hot folders or other input sources, and outputting to any of the built-in raster backends. The Scalable RIP may also be started, stopped, and managed from a Digital Front End (DFE) or other process by using the RIP Farm API and library. The Scalable RIP:

  • Allows a job to be submitted to the Scalable RIP with appropriate configuration data.
  • Handles all aspects of splitting the job over multiple RIPs in an efficient way to increase throughput in a safe, clean, and thread-safe manner.
  • Gets as much performance out of the underlying hardware as possible.

The splitting of jobs is only available for PDF jobs, and for tiled single-page images. Although submitting other PDL jobs such as PostScript to the Scalable RIP is supported, these jobs do not benefit from the parallel processing by multiple RIPs. You can also use your own raster backend inside the context of a Scalable RIP, just as you can with a single Harlequin RIP.

Scalable RIP use cases

As delivered by Global Graphics, the Harlequin Scalable RIP can be used in three scaling modes:

Scalable RIP scaling modes
Single RIP Multiple RIPs on one server Multiple servers
Naming Harlequin Core Single-server Harlequin Scalable RIP Multi-server Harlequin Scalable RIP
Use case Light production, simplest integration. Relatively simple integration for devices that are fast enough to require more than one RIP. Maximum throughput for devices with very high data rates, at the cost of more complex integration.
Simple integration Command line or hot folder use of clrip. Command line or hot folder use of clrip with -nrips option. None
Tight integration in HHR Rework/replace clrip application layer to connect to your DFE functionality. Separate binary built on SDK code with additional requirements over simple HHR: Must include argument parsing and be built to be self-spawning; example client code can be built into your DFE to provide methods for job submission, status and progress tracking, etc.
Integration using RIP Farm API DFE can use RIP Farm API to spawn and control Scalable RIP. DFE can use RIP Farm API to spawn and control Scalable RIP on central server. You must manage spawning satellite blade controllers.
Installation management Nothing special for each individual install. Nothing special for each individual install. Will require editing of configuration for specific IP addresses/FQDNs.

Configuring the Scalable RIP

The Scalable RIP has various configuration options that can be set within a global configuration file. The default location of the global config file is SW/RIPFarmConfig/ripfarm_global.json. The syntax of this file is JSON.

In normal production it is unlikely that you will need to edit this file for anything but setting the RIP spawn options, but when developing farm RIP raster back-ends or wanting to see more detail from farm RIPs, a number of debug and logging options can be very useful. The file is self-documenting so the keys in that file are not documented here. If you want to investigate use of the options, it can be very useful to take a copy of the SW/RIPFarmConfig directory and then use the -rfcd command-line option to configure the Scalable RIP with that copy. For example:

bin\clrip.exe -rfcd C:\Users\me\RIPFarmConfig -m 2048 -f D:\OUTPUT\ -nrips 2 -c CMYKComposite300dpi C:\Tests\ThirtyOnePages-01.pdf

This command will use the file C:\Users\me\RIPFarmConfig\ripfarm_global.json as the global configuration file.

When starting and managing the Scalable RIP using the RIP Farm API, you can supply the JSON configuration through a program interface as a string, a JSON object tree, or from a configuration file.

RIP Farm Test tool

The Harlequin SDK distribution comes with the source code for the RIP Farm Test Tool. This source code shows how to use the RIP Farm API to control the Scalable RIP from a separate process.