HARP Architecture

HARP consists of three main application packages, plus a number of third-party software packages.

HARP Architecture

Application Packages

Administrative Web Application (Admin Webapp)
A Java Servlet-based application for administering projects, portals, doctypes, administrative users, and administrative organizations.
Portal Web Application (Portal Webapp)
A Java Servlet-based application that hosts the portals and their contents as configured using the administrative web application.
Content Engine
A Java command-line application that does most of the content processing work. A single HARP environment can have any number of content engines, depending on the level of concurrent processing supported by the database.

Third-Party Components

MongoDB
HARP uses MongoDB as its database engine. MongoDB is a high-performance web-scale NoSQL database. HARP stores application data, content, portal metrics, and administrative user names and passwords in separate MongoDB databases which may be hosted on a single MongoDB instance or spread across multiple instances.
RabbitMQ
HARP uses RabbitMQ, an AMQP based messaging engine, as a work queue for the content engine(s) in the system.
Apache Solr
HARP uses Apache Solr as its search engine. The content engines process the content in the repository and index it with Solr, which is then used by various parts of the admin and portal web applications for search-based functions.
Apache Tomcat
In theory, the Admin and Portal webapps can run on any Servlet engine, such as WebLogic, IBM WebSphere, or JBoss. However, up until now all development, testing, and deployment has been on the Apache Tomcat engine.
Apache HTTP Server
In general, it is best practice to deploy Tomcat behind a regular Apache httpd server.