Software Architecture Overview - prasadtalasila/BITS-Darshini GitHub Wiki

NOTE:- This wiki page is outdated. Please see the technical report for the latest description of the software architecture.

Overview of Modules

Input

This module is responsible for processing all input related operations. It should support multiple input mechanisms like input through file, stream of bytes etc. Any additional classes related to input mechanisms should reside in this module.

Analyzer

This module has all protocol analyzers. It internally implements pipes-and-filters architecture for packet analysis. It receives the packet from input module. Each filter in the module adds its attributes to the analysis object and pass the packet and its analyzed data to next filter through the pipe. The sink of the pipes is the persistence module.

Persistence

This module is a part of MVC architecture that stores all the data of analyzers and also interacts with the controller and GUI modules. It has Entity module and Repository module. Entity module has all view objects as they appear in database. Repository module has all CRUD methods. The Controller and Analyzer modules interact with repository module for CRUD operations.

Controller

Controller module is also a part of MVC architecture and glues the model with views. It is responsible for handling all requests and making method calls to models. It returns the data in form of JSON objects. JSON objects are managed by front end views.

GUI

GUI forms the view of the MVC. It is responsible for presenting the data available in JSON objects.

Diagram