HQ Server Architecture
The HQ server is a distributed J2EE application that runs on top of the open source JBoss Application Server. It is written in Java and portable C code and it runs on Linux, Windows, Solaris, OSX, and HPUX.
The structure of the HQ Server is shown below:
The functions shown in the above diagram are allocation to HQ Server subsystems. Each HQ subsystem is described below.
- Inventory / Application Model & Grouping: Provides the functionality for storing and retrieving inventory data in the HQ database.
- Security: Authenticates HQ user logins via an LDAP repository, Microsoft Active Directory, any SQL data store, or its own data repository.
- Auto-Discover: Processes incoming auto-discovery reports from HQ Agents. Manages the approval process for merging auto-discovery data into HQ inventory. Maintains the auto-discovery scan schedule.
- Monitoring: Handles incoming measurement data from HQ Agents. Provides routines to query collected data from the HQ database and correlate it among resources. Responsible for firing events for inbound measurement reports which are used by the HQ alerting engine to determine if alert criteria have been met.
- Corrective Control Actions: The HQ Server can contact the agents to execute control actions on behalf of end-users.
- Events, Alerting and Escalation: Operates the HQ event bus which serves as the central messaging bus for the monitoring, inventory, and control events that occur in HQ. Manages the triggers and actions that HQ uses to implement alerting and alert escalation functionality.
- High Availability: When the HQ Server is clustered, the High Availability subsystem manages distributed object caches and ensures data consistency across the cluster using a lightweight broadcast messaging framework among all the members of the cluster.
- HQ API: Spanning the subsystems, the HQ API aggregates all subsystem-specific functionality under one umbrella, providing a simple programmatic interface to all HQ features.
More Information
For more in-depth architectural information: