Question: Networking for Software Developers This is the final project of COMP 2 1 6 . It is a group effort that will replace your second

Networking for Software Developers
This is the final project of COMP216. It is a group effort that will replace your second test and will contribute 30% towards your final grade. This builds on the previous weeks labs, which may require some tweaking to assemble into a complete IoT solution. We will discuss on a mutually convenient submission date.
Before you start.
This is a large undertaking considering the time constraints and the number of components required. One person would not do able to and should not be doing all the work because of the volume and the scope. Because the time is not enough sufficient for one person to adequately complete all the prescribe tasks.
I suggest short (not more than 15 minutes) meeting frequent (at least 5 time per week), where designs are finalized, tasks are farmed out and reported back on. You can also examine the milestones and see if more effort is need to bring any lagging task up to the expected completeness.
Intellectual Property
Software ownership is intellectual property. It is critical to understand that you may not take credit for something that you do not own/create. If you use code or algorithm or ideas from somewhere, it is ethical and the right thing to acknowledge the owner of the intellectual property.
Technical Constraints
You will only use the libraries that were covered in classes. You will use Python version 3.6.5 or later. The only external frameworks/libraries allowable are requests, flask and mosquito. You may use the libraries in a standard python distribution with restraints.
Overview.
We will implement an end-to-end IoT solution that will satisfy your client needs (this is based on your previous labs). We will use the MQTT protocol for this implementation. There will be publisher clients that sends data to a broker as well as subscriber clients that receives data from the broker. The broker sends data to the appropriate subscriber.
You will design and build both types of clients according to specifications. The diagram shows an overly simplified architecture of the intended system.
Each component is described more fully below along with the weight contribution towards the final grade. Each component must be implemented be well designed class.
Summary rubric
The weight includes design, implementation and demonstration of that particular component.
No written documentation is required, only your python code files. Your source files should have only one class per file.
Item Marks(%)
Broker 5
Publisher 40
Subscriber 45
Quality of code 5
Video (demonstration)5
Total 100
Detailed description
Broker
You will install the Eclipse mosquito broker and ensure that it is working as expected.
Publisher
The publisher will generate data to send to the broker at regular intervals. The data value must be random with a pattern (I know that this is a contradiction). Think of the value of a particular stock on the stock exchange or the outdoor temperature around your home.
This must be implemented as gui and must include an interface to change the various parameters of this publisher.
You will configure and run multiple publisher clients to simulate multiple devices.
Publisher Value generation
This must be implemented in a class in a separate file. (Just import the filename without the py extension in the file where you want to use the logic).
The design should be such that it is easy to use and flexible enough to be able to give the data value in the required pattern.
Publisher Packaging the above values
The above value must be tagged with at least a time stamp packet id and packaged as a json object before transmission. You decide what other features you need to encapsulate in your package.
Publisher Sending data to broker
You will send the above packaged data to the broker under an agreed topic.
You must miss transmission with a frequency of about 1 in very 100 transmissions. This must not be deterministic!
Publisher Extras
These extras are for bonus points and will only be considered if all the normal specifications are satisfied adequately.
To simulate a real-world scenario, occasionally skip blocks of transmissions (or sets of transmission). This condition must not throw the subscriber into confusion.
Transmit wild data something that is completely off the chart. Again your subscriber should be able to handle this.
Anything that will add value to your project. You must make me aware of these.
Subscriber
The subscriber accept data from the broker and process it. It will decode the data and decide how to process it.
This is best implemented as a GUI application.
You will configure and run multiple subscriber clients to simulate multiple devices.
Subscriber Receiving data from the broker
You will listen to messages from the broker under an agreed topic.
You will decode the message and decide how to handle the data
Subscriber Handling the data/absence of

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!