INTERNET NETWORK MONITOR:
Functional Overview
The Internet Fax Network consists of 10 distributed Windows NT
4.0 production server nodes that regularly transfer fax files over
an international Internet backbone network. The Internet
Network Monitor was developed to provide a means for the
continuous, automatic monitoring of these fax file transfers over
the Internet backbone network by these 10 distributed nodes.
The Internet Network Monitor was also developed to provide a
means for the continuous, automatic monitoring of the general
operating status of the Internet-based network backbone of
this International Fax Network.
The Internet Network Monitor continuously processes and
analyzes information about the fax file transfers & information
about the operating status of the Internet backbone network
that it periodically receives from the 10 distributed nodes. The
Internet Network Monitor presents its data analysis results
visually at an internal operator workstation, via a series of
continuous graphical plot chart displays which are automatically
updated.
The Internet Network Monitor also continuously checks for
various performance out-of-range conditions. For example, the
Internet Network Monitor checks for an excessive build-up of
undelivered faxes in any queue on any distributed node; when
such conditions are detected, the Internet Network Monitor
automatically creates and sends an e-mail alert to internal staff
persons programmatically via the JavaMail API.
INTERNET NETWORK MONITOR:
Architectural Overview
The Internet Network Monitor is a distributed application which
consists of a separate, custom-developed Sun Java 2
multi-threaded MONITOR COMPONENT, and a separate,
custom-developed Sun Java 2 DATA COLLECTOR COMPONENT.
Both of these components execute entirely on the Windows NT
4.0 platform, via the Sun Java Runtime Environment for
Microsoft Windows. The Internet Network Monitor does not
involve the use of a Web server nor a Web browser at all.
The Monitor component is installed on a single Windows NT 4.0
operator workstation located in-house. The Data Collector
component is installed on each of the 10 distributed Windows
NT 4.0 production server nodes that transfer fax files over the
Internet backbone network of the Internet Fax Network.
The Monitor component interacts with all 10 distributed Data
Collector components on a simultaneous basis, via the Monitor
component's multi-threaded architecture. At regular periodic
intervals, the Monitor component automatically makes calls over
the Internet to the object-oriented methods of the 10
distributed Data Collector components, using Java RMI (Remote
Method Invocation.) By the means of return parameters in these
same RMI calls, the 10 distributed Data Collector components
return fax file queue information and Internet network operating
status information to the Monitor component on a real-time
basis.
MONITOR COMPONENT:
Detail Description
The Monitor component continuously makes RMI calls over the
Internet for data from all 10 distributed Data Collector
components at an operator-specified periodic interval (for
example, once a minute.) The Monitor component implements a
multi-threaded architecture, via its use of the Java Thread &
Runnable classes. The Monitor component utilizes 10 separate
background threads to communicate with the 10 distributed
Data Collector components; this enables the Monitor component
to access all 10 distributed Data Collector components on a
simultaneous basis.
The fax file queue information returned by each of the 10 Data
Collector components consists of the number of fax files
remaining in each distributed node's fax file input & output
queues, and how long the oldest fax files have remained in each
distributed node's fax file input & output queues. The Internet
network operating status information returned by each of the 10
Data Collector components consists of Internet IP statistics
based on Internet network node 'Ping' tests conducted by the
10 distributed Data Collector components. The Monitor
component receives the fax file queue information and Internet
IP statistics from the 10 Data Collector components by means
of the return parameters of the same RMI calls made by the
Monitor component.
The Monitor component maintains an in-memory array of
variables, which dynamically holds the most recent 50 periods
(most recent 50 retrievals) of collected data from the 10
distributed Data Collector components. This in-memory array is
implemented using the ArrayList Class of the Java Collections
Framework. This in-memory array of collected data is the input
to a series of automatically updated, continuous graphical plot
charts which the Monitor component displays on the NT 4.0
operator workstation. These continuous graphical plot chart
displays were custom-developed using the Java 2D Graphics
API. Additionally, the Monitor component's overall Microsoft
Windows GUI look-and-feel was implemented using Sun's Swing
set of Java Foundation Classes.
Each time the Monitor component receives new fax file queue
information & new Internet IP statistics from each of the 10
distributed Data Collector components, the Monitor component
stores this new information in its in-memory array, and then the
Monitor component automatically refreshes its continuous
graphical plot chart displays. The Monitor component also
checks the new fax file queue information & new Internet IP
statistics for any indications of various performance
out-of-range conditions, such as an excessive build-up of
undelivered faxes in a particular queue; when such conditions
are detected, the Monitor component automatically creates and
sends an e-mail alert to internal staff persons programmatically
via the JavaMail API, indicating the particular out-of-range
operating condition that was detected.
DATA COLLECTOR COMPONENT:
Detail Description
The custom-developed Sun Java 2 Data Collector component is
installed on each of the 10 distributed Windows NT 4.0
production server nodes that transfer fax files over an Internet
backbone network. The actual execution of these 10 distributed
Data Collector components is driven by RMI calls to their
methods made by the Monitor component. The data collected
by the Data Collector components is returned to the Monitor
component on a real-time basis, via the return parameters of
these same RMI calls.
The 10 distributed Data Collector components collect & return
to the Monitor component the following information:
Internet IP Statistics -
The Data Collector components return Internet IP statistics
based on the results of Internet network node 'Ping' tests
conducted by the Data Collector components. The Data
Collector components use the Java Native Interface (JNI) to
access the native Internet Ping test functionality provided in
the Microsoft Windows WINSOCK 2.0 Library.
The Ping test transmits a series of packets on a round trip
between two Internet network nodes; the Ping test then
measures the average round trip duration time (in milliseconds)
and computes lost packet percentages. The addresses of the
two Internet network nodes involved in the Ping test is
dynamically provided by the Monitor component via input
parameters of the RMI call made by the Monitor component. The
Ping test results are returned to the Monitor component via the
return parameters of the same RMI call.
The Monitor component continuously graphically displays &
continuously checks these Ping test average packet round trip
times and lost packet percentages, to verify that the Internet
backbone network is generally operating within an acceptable
performance range. If the Monitor component detects an
abnormal Internet network operating condition indicated by
either long packet round trip times and/or a high percentage of
lost packets, the Monitor component will then automatically
create and send an e-mail alert to internal staff persons
programmatically via the JavaMail API, indicating the particular
abnormal Internet network operating condition that was
detected.
Fax File Queue Information -
The fax file queue information returned by the Data Collector
components consists of the number of fax files remaining in
each distributed node's fax file input & output queues, and how
long the oldest fax files have remained in each distributed
node's fax file input & output queues. A Fax File Queue is simply
a regular Windows file directory, which contains the individual
faxes in the form of individual binary files.
The Data Collector components determine the number of fax
files remaining in a particular fax file directory queue by using a
standard Java API to programmatically read the file directory
information. The Data Collector components determine how long
the oldest fax file has remained in a particular fax file directory
queue by using a standard Java API to programmatically retrieve
& analyze the created/modified timestamp values of the fax files
in a particular fax file directory queue.
The names of the particular fax file directory queues for which
data is to be collected is dynamically provided by the Monitor
component via input parameters of the RMI call. The number of
fax files remaining in the queues, and the length of time that
the oldest fax files have remained in the queues, are returned to
the Monitor component via the return parameters of the same
RMI call.
The Monitor component continuously graphically displays &
continuously checks this fax file directory queue information, to
verify that faxes are being moved through the system (are
being delivered) within an acceptable performance range. If the
Monitor component detects a fax file directory queue
out-of-range operating condition, such as an excessive build-up
of undelivered faxes in a particular queue, the Monitor
component will automatically create and send an e-mail alert to
internal staff persons programmatically via the JavaMail API,
indicating the particular fax file directory queue out-of-range
operating condition that was detected.