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.
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).