HARP Architecture
HARP consists of three main application packages, plus a number of third-party software
packages.
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.