Corda Server

Corda® Server™ is the foundation of most Corda 7 configurations. Corda Server is a multi-threaded server application that serves Corda images and Highwire™ documents to Web clients. Corda Server accepts various input parameters (such as Image template files, data sources, and Web documents), and uses those parameters to dynamically generate an image or document in one of up to seven different image formats. It also can generate descriptive text for the visually impaired. Because Corda Server is Java-based, it can run on any Java-enabled platform.

Corda Server is installed automatically as part of the Corda 7 installation. For Corda Server configuration instructions, see Configuring Corda Server.

Corda Server Components

Installing and configuring Corda Server involves some or all of the following components, depending on your specific needs.

Corda Builder

The Corda Builder™ module is a graphical design tool that helps you design Image Template files for Corda images. Image Template files can be saved or uploaded to Corda Server and used to generate Corda images. Because it is Java-based, Corda Builder can run on any Java-enabled platform. For more information on Corda Builder, see the Corda Builder User Guide.

Note: Corda Builder and Corda Server require separate license keys.

Corda Embedder

A utility, available for most Web application environments, that greatly simplifies the process of embedding a Corda image in a Web page. To use it, you simply create a Corda Embedder object within a Web application. A simple, attribute-based API gives you complete control over the formatting of the Corda image. Instructions for installing the Corda Embedder can be found in Installing Corda Embedder.

Corda Font Converter

An application that allows you to convert TrueType fonts into Corda Server-compatible fonts. This is particularly important for using fonts with international and double-byte characters. Corda Font Converter is part of Corda Builder. To learn more, see Fonts and Languages.

 

The remaining components are only available with Corda 7 Enterprise.

Corda Redirector

A utility available for IIS, J2EE, and Apache Web servers that permits the use of HTTP redirection through a Web server to communicate with the Corda Server. Users can then request Corda images from a Web server instead of directly from Corda Server, so that Corda Server remains protected behind a firewall. For more information on Corda Redirector, see HTTP Redirection.

Corda Job Scheduler

A thread of Corda Server that manages scheduled Corda image or Highwire document generation tasks. For more information on Corda Job Scheduler, see Job Scheduler.

Corda Server Servlet

A Java* servlet version of the Corda Server that can be installed on J2EE Web application servers. The Corda Server Servlet works similarly to the Corda Server; however, you do not need to run it as a separate process, and you access it directly through a Web application server instead of over a separate server port. For more information, see Corda Server Servlet.

Corda Server Java Library

A Java library that allows you to use Corda Server in any Java application. The library's API gives you complete access to Corda Server functionality and does not require Corda Server or Corda Server Servlet. For more information on Corda Server Java Library, see Corda Server Java Library in the Corda Advanced Deployment guide.

Corda Cluster Monitor

A utility available for IIS and J2EE Web servers that may be necessary in certain clustering configurations. To learn more about clustering, see Clustering.

Note: This last component requires a Corda 7 Enterprise license that enables clustering.

Corda Server Architecture

Before installing Corda Server, it helps to understand a little about how Corda Server works. This section overviews basic Corda Server architecture. The Corda Server Delivery Workflow example below illustrates how Corda Server typically works with a Web application server and database to produce a Corda image and return it to a Web client.

This process can be broken down into the following steps:

  1. A client (Web browser) requests a Web page containing graphs, maps, and/or, a Highwire link from a Web application.

    The Web application can run on the same machine as Corda Server, or on a different machine.

  2. In the case of graphs and maps, the Web application fetches data for the graph or map from a data source.

    Alternatively, Corda Server can request the data after step 3.

  3. Using the Corda Embedder, the Web application sends data and instructions (e.g., the location of an Image Template file or of the Web document to be converted) to Corda Server. Corda Server stores the data and instructions. It returns to the Web application any HTML necessary to embed the requested graph, map, or Highwire link within a Web page.

    For images, this HTML consists of an <object>, <embed>, or <img> tag whose URL source instructs the Web browser to get an image from Corda Server. For Highwire links, this HTML consists of link tag <a href="..."> pointing to a URL on the Corda Server where users go to find their Highwire document. In both cases, this URL contains a "key" in its query string that references the information that Corda Server has cached.

  4. The Web Application Server builds an HTML page that, integrating the HTML that Corda Server returned, embeds the graph, map, or Highwire link. It then serves this page to the client.

  5. If a graph or map was requested, the Web browser sees the appropriate tag in the HTML page and requests a graph or map image from the Corda Server. If a Highwire link was requested, users see a button in the Web page indicating that a PDF version of the Web page is available. If a user clicks that button, the Web browser then requests a Highwire document from the Corda Server.

  6. Corda Server uses the reference (key) from the browser's request to look up the stored data and instructions. For graphs and maps, it then fetches the appropriate Image Template file and merges the data into this Image Template file to create a Corda image. For Highwire documents, it fetches the HTML or Web page to be converted and converts it into PDF format.

    Image Template files can be created by designers using Corda Builder. They can then be uploaded to Corda Server, or stored on another machine from which Corda Server can read. Or, the Image Template file can be generated dynamically by another Web application.

  7. This image or document is returned to the browser. The Web browser displays graphs and maps in the Web page it originally requested. For Highwire documents, the Web browser either opens the document using an appropriate plug-in, or prompts the user to save it to disk.

Alternative Configurations

The example in the previous section illustrates a typical Corda Server configuration. The architecture is slightly different when you use Corda Server in the following environments:

HTTP Redirection

In steps 1, 4, 5, and 7 of the Corda Server Delivery Workflow example above, communication may take place through a firewall. In steps 1 and 4, this communication is simply between a Web application server and a client. However in steps 5 and 7, the client accesses the Corda Server directly over port 2001, meaning that this port must be opened.

While this is perfectly secure, many users are more comfortable using the Corda Redirector to tunnel this request through the Web application server. In such configurations the Web client requests an image from the Web application server (over port 80, the default Web port), and the Web application server gets the image from the Corda Server.

The Corda Redirector also makes it possible to use SSL with Corda Server. For more information, see HTTP Redirection.

Clustering

In enterprise deployment, you may want to cluster several Corda Server s together to provide redundancy or compensate for greater server loads. There are a variety of ways to set up Corda Server clustering, and therefore, there are a variety of different architectures. Generally, though, the architecture is very similar to that of the Corda Server Delivery Workflow example above, with the key differences being that there are multiple Corda Servers, and that client and/or Web application communication can take place with any of the Corda Servers.

Some clustering configurations employ the Corda Cluster Monitor to monitor the network and keep track of available Corda Servers. This utility runs on a Web application server. Also, some configurations may rely on load balancing. See Clustering for more information about clustering configurations.

Corda Server Java Library

Corda Server is available as a Java library that can be embedded within any Java application. Using an API similar to that of the Corda Embedder, the Corda Server Java Library can generate images and documents without the use of a Corda Server. These images and documents can be saved to disk, served to a Web client, or displayed within a desktop application.

Architectures that incorporate the Corda Server Java Library typically do not require the use of a Corda Server or the Corda Embedder. The Corda Server Java Library is embedded directly within an application. Typically, the application is responsible for delivering data and documents to the Corda Server Java Library, although the Corda Server Java Library is capable of loading data files, Image Template files, and Web documents itself.

For more information about using the Corda Server Java Library, see Corda Server Java Library.

Corda Job Scheduler

The Corda Job Scheduler allows you to generate and save Corda images and Highwire documents at regular intervals. The architecture is still very similar to that of the Corda Server Delivery Workflow example above, with the main differences being that the Job Scheduler initiates the process instead of a Web browser, and that the images and documents are saved to the Web server, where they can be retrieved by clients.

For more information about using the Corda Job Scheduler, see Job Scheduler.

Corda Server Servlet

On Java application servers, run Corda Server as a servlet. The Corda Server Servlet runs exactly like the Corda Server; however, it doesn't need to be run as a separate process or on a separate port. The architecture is almost exactly like that of the Corda Server Delivery Workflow example above, except the Corda Server Servlet replaces the Corda Server, and the servlet runs on the Web application server.

For more information about using the Corda Server Servlet, see Corda Server Servlet.