
Referring to Active IP
Sensor Architecture below, Active IP Sensor is a client/server
application composed of a client UI (ActiveIPSensor.exe)
and a multi threaded server (IPSensorProxy.exe)
that supplies clients with active IP port information from local or remote
network nodes. The client UI
starts and stops server threads. A server thread can refer to a local or remote
network node. The server disconnects active IP port sensing operations from
client operations so that both can run independently of each other. The server
interrupts the client when the server scheduler has enabled the clients thread.
The server scheduler itself is a client thread added during initialization. It
is a special client thread referred to as Prime in Figure
1. A Prime thread is distinct from
other threads in that only it can run the servers scheduler code. This allows
for multiple or dynamic schedulers in future releases.
The scheduler communicates with clients using asynchronous interrupts. When a client thread has been enabled, the client stops its current activity and requests a data sample from the server. It then resumes its activity. When the server has gathered a single sample, it again interrupts the client to inform it that there is data ready. The client stops its current activity and processes the server data. When the server has streamed all samples, the client is interrupted. The client inspects nodes from the previous sampling and removes those missing so that only nodes from the current sample are displayed. The client thread then resumes its activity until it is scheduled again.
The server operates on a thread pool maintained by each client. Server parameter CONCURRENT_THREADS enforces a limit on the maximum number of client threads that can be concurrently running. Over time, all threads are eventually scheduled. This ensures that the server appears the same to the system no matter if there are 10 threads in the server pool or 10,000. This parameter can be specified via the Scheduler tool menu item. Each client specifies a THREAD_PRIORITY. While a thread is actively sampling, the server raises data ready interrupts after each sample for the client. THREAD_PRIORITY specifies how many data interrupts are generated before the thread is returned to the scheduler pool. Higher thread priorities cause more data ready interrupts. Lower values cause a client thread to update slower.
The server can sense IP port activity from the local environment of from remote environments that are recording their samples with Active IP Sensor. Each client maintains a list of filters and alarms. After each sample, the list is interrogated and if the sample contains a filter item for one of the sampled nodes, the specified filter alarm action is invoked
