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 COMP It is a group effort that will replace your second test and will contribute 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 minutes meeting frequent at least 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 owncreate 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 or later. The only external frameworkslibraries allowable are requests, flask and mosquito. You may use the libraries in a standard python distribution with restraints.
Overview.
We will implement an endtoend 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
Publisher
Subscriber
Quality of code
Video demonstration
Total
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 in very 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 realworld 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 dataabsence of
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
