In several branches of computer science, network monitoring tools are used to continuously monitor a network system\'s daily functioning, incoming and outgoing packet data, and whether the system is executing its job well. Diagnostic tools, on the other hand, are used to identify faults in a system.
Existing tools are typically disjointed, ineffective and out of reach for the average user, and while some may produce verbose outputs, their decoupled nature, as well as the fact that the majority of them do not have a particularly appealing appearance, all accounts for a frustrating user experience. The necessity for a user-friendly interface and the extension of legacy tools necessitates the creation of a suite which this project aims to create that all types of end users can access and use an integrated monitoring and diagnostic suite easily.
Introduction
I. INTRODUCTION
The project aims to make a Network Monitoring and system diagnostic suite which will have categorized tool-sets of widgets, with each category serving a purpose. Categorized Widgets like Network Statistic Widgets, System Information, Wi-fi Diagnostic widgets, among others will be included and through a custom made component framework , the user will have the ability to make more widgets and add it into the application source.
The application will also have a REST API for data collection activate only if user permits ,which will collect information like average speeds in a region, so that prospective business can access this data and offer competitive speeds. There will also be a terminal based interface for systems that lack GUI support.
A. Legacy Tool Extensions
The problem with existing tools used by network administrators, like ‘ping’, ‘whois’, ‘dig’, among others is that they are made with a power-user in mind i.e. someone who knows their way around.
Another issue is that the outputs that network admins can get is varied depending on the underlying operating system and some tools may not even be installed on an OS by default. Most of these tools can give powerful insights if the data is sent to a centralized system, which will allow for graphical representations and aid the user in a way which is not possible with legacy tools and these insights can also be helpful for someone who is not a power-user, to understand and diagnose their faulty local network or wireless system.
???????B. Categorising tools with a component framework
Using a component framework for the frontend, makes for a very modular and extensive user experience. Not only is a component-based approach cleaner and easier for a development team to manage but if there is a particular functionality that is not present in the application suite out-of-the-box, the user can directly view the source and add their own components that can fulfill their personal needs. A component framework saves the user the trouble of going through multiple lines of the source code and figuring out how everything else works just to arrive at the relevant part, because a component approach abstracts everything that is not relevant to the user.
???????C. Offering User Data in a Transparent Manner
Applications can collect data about various outputs relevant to the applications and store the data on a remote database or a cloud instance and sell the data. Sometimes users just agree to the terms & conditions and don’t know how intrusive such a system can be. To counter it, a system can be set up where the user has to give permission for the data collection to even begin in the first place and not block other application features and force them into unnecessary terms and conditions. The system can also offer a functionality for the user to ‘opt-out’ of the data collection system. Such a system ensures that user privacy is not neglected.
II. LITERATURE SURVEY
A. A Comparative Study of Various Wireless Network Monitoring Tools
The paper analyses various network monitoring tools, tools like Wireshark, tcpdump, Netspot, Wi-fi Explorer, etc that are used to monitor incoming and outgoing packet data in a network , various tools are mentioned , each serving a unique purpose from packet sniffing to debugging signal strength on wi-fi systems , exploring SSID’s in the local domain and other tools which serve as a base for the tools which we will make and integrate in our project.
???????B. Research and Application of Node.js Core Technology
This paper goes into the depths of how server side Javascript code works in Node.JS, a popular Javascript framework for running JS natively on the machine instead of on the browser. The paper explores the core architecture of Node.js and its event-based platform that its built on which allows for non-blocking. Features like asynchronous programming are explored along with an in-depth review of the JS Event loop, all of which help us write better, up-to-date JavaScript code following the latest ECMAScript Standards.
???????C. Security Analysis of unstructured Data in NOSQL MongoDB Database
This paper tackles how NOSQL databases like MongoDB work by explaining the underlying concepts that go into making a NOSQL structure, and also tests the security of NOSQL systems by using various cryptographic algorithms. MongoDB is the primary database system used in our project and therefore, this paper gives us a better understanding about the security of the data that is stored within the database.
???????D. RESTfulness of API’s in the Wild
REST API’s are present everywhere and are the newest standard of providing an API to the user, this paper analyses various REST services with a maturity model which gives crucial insights about how prevalent the REST architecture really is, and thus leaving no doubt in mind that REST can be a reliable way of delivering data.
???????E. A JSON Token-Based Authentication and access management scheme for cloud SaaS applications
To support a business model and offer protected user data to other organizations, one must have a proper authentication and access management system so that only verified and paying users can avail services. This paper goes in depth and explain how JWT (Json Web Token) can be used for secure access to private routes and facilitate a more secure data exchange on the internet.
III. EXPERIMENTAL SETUP
The application is developed for the Windows and Linux Platforms. For the Windows platform the application is developed and thoroughly tested on a Windows 10 Machine running on Intel Core i9-9900k (3.6 GHz) Machine with 32 GB RAM. And the Linux testing is done in a Virtual Machine with the same processor and 4GB of allocated RAM. The Technology Stack used for the project is as follows: For the Frontend we used Svelte: Component framework that ensures that the application is modular, Electron: GUI Framework for desktop applications and the Javascript programming language), For the Backend we Node.js which allows us to use Javascript, but for writing code on the server side. For the Database we used MongoDB which is a NOSQL database. The API is made with an underlying REST architecture in mind and using JSON Web Tokens to prevent unrestricted access. The application is thoroughly tested on both platforms (Windows and Linux) to ensure similar output and cross-platform compatibility.
IV. PROPOSED SYSTEM
The application is broken into 3 core modules which work in synchronization and send data back and forth: Toolchains , REST API and the Component Framework. When the application is started the user initially interacts with the toolchain module , which houses the various network and system tools. Each category has its own separate page in the UI for easy and convenient access and its own set of widgets for different actions. (e.g.: Network Monitoring has widgets like latency test , SSID details , etc.) Alternatively , the user can participate in sending diagnostic data to the backend API by interacting with the API module , which is a separate page in the toolchain. The Component Framework module is accessed outside the app in the form of an API which the user can use to make their own widgets. Every Widget that is a part of the toolchain is modular and has two files, once for the frontend and another that houses the component logic. The frontend part is responsible for styling and displaying the component and all the interactions are sent to the relevant Javascript file for processing events.
A. Block Diagram
B. Pseudocode Algorithm
RENDER and Listen for EVENT
for every Component of page:
Display Component
Listen for EVENT
if EVENT or BUTTON_PRESSED:
Send IPC_SIGNAL
if IPC_SIGNAL:
Execute Relevant Functions
if USER_PERMISSION_GRANTED: Send Data to API Endpoint
Send Data To Renderer
Log Data
C. Expected Output
V. RESULTS
With the toolchain created for this project, we have addressed the issue of cross platform compatibility, namely different outputs and invocation methods for the same tools on different operating systems. To solve this, a custom solution was made that checks the host operating system and automatically performs the appropriate command that is native to that particular operating system. The output is shown in a similar manner irrespective of the OS and is also logged using a custom logging framework built as a part of the project.
We also built a custom API that can be used by prospective businesses and users to find out the average and advertised speeds in a region, so that new businesses can offer competitive speeds, and users can check whether regional speeds match the advertised speed or not.
Finally, the project is very modular and allows the user to add their own tools if the need arises and abstracts systems which are not relevant to the user, so that they can easily focus on extending the toolchain, this combined with an up-to-date dashboard interface, we believe, will result in a great user experience.
References
[1] Rajinder Singh , Satish Kumar , “A comparative ctudy of various wireless network monitoring tools” , ICSCCC 2018.
[2] Renita J. , N. Edna Elizabeth , “Network’s Server Monitoring and Analysis Using Nagios” , IEEE Wispnet 2017.
[3] Arne Koschel, Maximilian Blankschyn, Kevin Schulze, Dominik Sch¨oner Irina Astrova, Igor Astro, “RESTfulness of APIs in the Wild” , IEEE World Congress on Services (SERVICES) , 2019.
[4] Obinna Ethelbert, Faraz Fatemi Moghaddam, Philipp Wieder, Ramin Yahyapour, “A JSON Token-Based Authentication and Access Management Schema for Cloud SaaS Applications.” 2017 IEEE 5th International Conference on Future Internet of Things and Cloud.
[5] Alexandru Archip, Cristian-Mihai Amarandei, Paul-Corneliu Herghelegiu, Catalin Mironeanu and Elena Serban, ”RESTful Web Services – A Question of Standards” , ICSTCC , 2018.
[6] Rina Elizabeth Lopez de Jimenez, ”Pentesting on Web Applications using Ethical Hacking” , 2016.
[7] Jitender Kumar Varsha Garg , “Security Analysis Of Unstructured Data In NOSQL Mongodb Database” , IC3TSN 2017.
[8] Xiaoping Huang , “Research and Application of Node.js Core Technology” , ICHCI 2020.