Aljona Interservice
about aljona software tools java project wireless web contact us





JAVA INTERNET NETWORK MONITOR

Aljona's overseas resources custom-developed a new Sun Java-based Internet Network Monitor to support the monitoring & troubleshooting of an international commercial Internet Fax Network that is owned, operated, & maintained in-house by Aljona's overseas resources. This Internet Fax Network regularly provides business fax services to over 800 different businesses across an international Internet backbone network. Aljona's overseas resources used the following Sun Java 2 development technologies for this Internet Network Monitor custom software development project:
Java Remote Method Invocation (for Java distributed applications development)
Java Thread & Runnable Classes (for Java multi-threaded applications development)
Java Native Interface - JNI (for access to native Microsoft Windows API features)
Win32 Java Runtime Environment (for execution on Microsoft Windows NT 4.0)
JavaMail API
Java 2D Graphics API
Swing set of Java Foundation Classes (for Microsoft Windows GUI look-and-feel)
Java Collections Framework (ArrayList Class)
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.