Skip to main content

Posts

Dynamic Architecture Diagram

The idea behind the dynamic architecture is to allow the software to become scalable depending on the amount of load of the system. The pool of processes architecture will allow for multiple QNM's, but those QNM's will have a fixed number of checker processes in them. The idea behind the Dynamic Architecture is to allow each QNM to change the amount of checker processes it has depending on the work that is being done. This will in turn reduce the amount of QNM's needed and reduce the amount of time the jobs will take. The diagram below shows the updated architecture with client server labels.
Recent posts

Code Updated To Match Process Network Diagram

As per the last blog post I have updated the code to reflect the new process network diagram. The first job was to fully implement a working Network Buffer Process. It has a Any2One channel which will listen for results from any of the checker processes. In future I will possibly update this to have a channel output list from the checker processes to distinguish the outputs, but as of right now I do not think that this is necessary. Below is the runAgents.groovy file which contains the process network run statement. I have also edited the Quarantine network manager so that the 'Request Job' function has been fully implemented. The code is shown below. The queue system is also now fully functional and simulated by adding a delay. The screenshot below shows one the job queue being emptied during runtime and two checkers coming back with results (this is being printed by the Network Buffer).

Updated Diagrams

Explanation/client server labelling post to follow... Overall Process Network: More detailed look at Quarantine Network:

Detailed Diagrams

Network Diagram Quarantine Network

Create Auto-Generated Webpages

One of the main challenges of this project was how I was going to create a test environment that I will run the program on. To do this I have decided to use my personal web server with a directory with 'bad' and 'good' pages which can be automatically generated using the website. To do this I have created a python script which is executed and creates simple php pages that have the words 'BAD' and 'GOOD' and this is determined randomly. This is a simple way of testing the program to begin with, but in future the python script can be edited to include more complex security issues. In the future the web server will also have multiple  Virtual Hosts  which will have different security measures in place, such as SSL and proxy's. See the images below for an example of the current page. BELOW: Shows the number of files I am going to generate is 20 BELOW: Shows the generated files (hash used for naming) BELOW: Show an example of one of the ge...

Restructuring Infrastructure

In order to prepare for the creation of the pool of processes I decided to finalise the infrastructure of the application. To do this I added both the Network Manager and the Quarantine Network Manager and assigned them temporary input and output channels as they will both be getting Network Channels at a later date. The infrastructure and flow of the application now completely matches the diagram apart from pool of processes.
Updated diagram so that to remove the process manager (Quarantine Manager will do this) and displayed the pool of processes on the Diagram.