This article is intended to provide insight into the architecture and ideas behind Elvis.
Most of the visible functionality of Elvis is accessed through the Elvis desktop client. This is a lightweight application that can be easily installed and updated from the Elvis server. Most of the actual functionality is performed on the Elvis server.
All communication between the Elvis clients and the server is done over HTTP or HTTPS, meaning minimal configuration hassle regarding firewalls. Combined with thumbnails and previews that are based on standard web formats, the Elvis client is very fast on a local network and can even be used from remote locations or over the internet.
One of our main goals with Elvis is to provide an easy to use and open platform for working with content. The ease of use and 'less-is-more' philosophy are not only visible in the user interface but also in the server architecture and configuration.
The main Elvis server is responsible for:
- Storing, indexing and searching content.
- Processing files: generating thumbnails and previews, extracting and embedding metadata and extracting full text for indexing .
- Since processing can be heavy on server load this can be off-loaded to one or more Elvis processing servers.
- To allow integration with other systems and easy re-use of content a RESTful API is available.
- A number of customizable plug-ins can be configured on the main server to perform server automation or to extend client functionality.
The server is completely self proficient which means it does not need configuration and administer of external databases or other resources other then a filesystem. It has a built-in webserver for all its HTTP communication.
The Elvis desktop client is the main face of the application and allows you to search, import and manage content stored on the Elvis server.
The Elvis web client can be used by users with basic needs such as searching or browsing for files. It also includes downloading and sharing capabilities.
InDesign files can be edited using the Elvis InDesign client. It supports automatic relinking of Elvis images, edit original workflows and automatic check-in of changed images
Web share client
The Elvis share client is a web application which provides similar functionality as the Elvis Review App. It allows users receiving an email link to download, approve or reject files or even upload new files. All according to the permissions provided by the link sender.
The Elvis main server contains all the components and can function as a standalone server. Depending on the number of assets being imported it may be advantageous to install one or more dedicated processing servers. When content is added to the system, the Elvis server performs quite some processing like
generating thumbails, previews, extracting text and metadata.
Using one or more separate processing servers makes it easy to scale the available processing capacity. You can just add another processing server without having to change anything on the main Elvis server. Furthermore it automatically provides redundancy and fail-over functionality for the processing engine.