to provide an application to manage the automated flow of data between departments. This application will follow a Producer- Consumer model and will use RabbitMQ and Pika as the underlying messaging...

1 answer below »
to provide an application to manage the automated flow of data between departments. This application will follow a Producer- Consumer model and will use RabbitMQ and Pika as the underlying messaging protocols. You will need a message queue to allow the sales department to automatically send sales figures to the accounts department and another queue that sends summary sales data from the accounts department to the management team. You will also need another message queue which send summary production data from the engineering department to the management team. Sales Office The sales office will need a very basic web interface (Python & Flask MUST be used) to allow input of customer name, invoice number and sales value excluding VAT. Each time a new invoice is raised the sales office will send a message containing the invoice details (via the sales message queue) to the accounts department. When the accounts department receives this message it will keep a running total (stored persistently) of the value of sales to date. This value is then transmitted along with the date and time as an update on the current sales position to the management team via the accounts reporting message queue. This information is stored persistently by the management application Accounts Office Receives sales invoice data from the sales off via the sales message queue, stores this data persistently and keeps a running total of all sales. Each time a new invoice is processed sends an update of the total sales to date to the management team via the management queue. Engineering Office Has a very simple web interface (Python & Flask) to allow input of daily production data (date and number of unit produced). This information is both persistently stored and transmitted via the management message queue to the management team. Management Team The management team PC listens on the management message queue for messages from both accounts and engineering. It must be able to distinguish between accounts messages and engineering messages sent on the same queue. In the case of accounts data it stores only the date, time and value of the last sales summary update. In the case of the engineering data it holds both the latest daily production data (date and units produced) and a running total of production to date. The management application should have, in addition to listening on the message queue to produce an ad hoc report (to screen) containing the most up to date sales and production totals received from the other department.
Answered 1 days AfterMar 23, 2023

Answer To: to provide an application to manage the automated flow of data between departments. This application...

Breeze answered on Mar 24 2023
39 Votes
we need to write Python code using Flask and Pika libraries. Here's an outline of the steps we need to follow:

Install RabbitMQ and Pika libraries on each machine.
Define the message formats for each queue.
Write the sales office web interface to allow input of customer name, invoice number, and sales value.
When a new invoice is raised, send a message containing the invoice details to the accounts department via the Sales queue.
Write the accounts office message processing functionality to receive sales invoice data from the Sales queue,
store this data persistently, and keep a running total of all sales. Each time a new invoice is processed,
send an update of the total sales to date to the management team via the Management queue.
Write the engineering office web interface to allow input of daily production data (date and number of units produced).
This information should be persistently stored and transmitted via the Management queue to the management team.
Write the management team message processing...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here