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.