Servers and Server parts
An iCore system can be distributed to one or several Servers. A Server contains the following Server parts:
Server part | Description |
Event generator (EG) |
The Event generator creates Events based on Timers. The Event generator runs on the host where it has the highest priority number (provided that the Server in question is up and running). The Event generator is a vital Server part which is part of fail-over management and only exists in one instance per system at any given moment. |
Event listener (EL) |
The Event listener listens on the Event queue and notifies the Event processor when new entries have been added. The Event listener is a vital Server part which is part of fail-over management and only exists in one instance per system at any given moment. |
Event processor (EP) |
The Event processor matches Events against Event configurations, and depending on the configurations it will create zero or multiple Jobs. The Event processor notifies the Job manager when new entries have been added. The Event processor is a vital Server part which is part of fail-over management and only exists in one instance per system at any given moment. |
Job manager (JM) |
The Job manager distributes Jobs to the "least loaded" Worker host manager for a given Application pool (via Worker host manager Job queue). The Job manager also creates the system session context. The Job manager is a vital Server part which is part of fail-over management. |
System event processor (SEP) |
The System event processor listens on a local system Event queue, to which all Events created by system runtime is sent. If a system Event's Event type is of the "error" category, the SEP creates Jobs according to the current Event configuration and executes it locally. In other cases, the Event is sent to the Event queue and processed by Event listener as any other Event. At system startup, the SEP builds a list of all system Event configurations (for system Events that will execute locally), and also downloads their associated Component definitions. |
Server monitor (SM) |
The Server monitor keeps track of all Server part states and handles inter-server communication. Every Server runs an instance of the Server monitor. If the Server monitor is configured for "backup", the SM will initiate start-up of a missing vital server part locally. |
Worker host manager (WHM) |
The Worker host manager distributes Jobs to the "least loaded" Worker host for a given Application pool (via the Worker host queue). WHM listens on the WHM result queue. When a Job is completed, the WHM sends a report to the Job manager result queue. The WHM also supervises Worker host processes, and takes action if a process terminates unexpectedly. The WHM runs on every server. |
Worker host (WH) |
The Worker host is responsible for running Jobs. A WH is part of one (and only one) Application pool. When a Job is completed, the WH reports a "Job done" state to its WHM via the WHM result queue. The report is necessary to keep the WHM load balancing up-to-date. |
When an iCore system is started, the following happens:
- a system Event of type "System Session Created" is created.
- Each system Server part creates a Job under which it executes. These system Jobs are attached to the System Session Created Event.
System Jobs are mainly used for system failure tracking, since it is possible to see from exactly which instance a tracking entity has been created.
The system Jobs are separated from standard Jobs in that they have pre-defined Component definitions and Component configurations which specify the Server parts.
Event processing
The image below shows how an Event is processed by the various Server parts.