Skip to main content Link Search Menu Expand Document (external link)

Project Description - Smart City

Many urban cities today are facing various challenges associated with sustainability, traffic congestion, crowd management, etc. Given this context, different government and private organizations have realized the importance of building smarter cities which can offer a way to address many of these challenges. Many cities worldwide have started utilizing technology extensively to offer different smart solutions, made possible by the Internet of Things (IoT) and related technologies. However, developing and maintaining IoT systems, in general, presents different challenges arising from interoperability (communication protocols), heterogeneity (types of devices), resource constraints, performance requirements etc. Further, it is also not feasible to test an IoT solution in a large-scale city-wide setup prior to deployment.
To this end, the idea is to set up a smart city living lab in collaboration with various stakeholders to discover & develop cutting-edge innovations with smart city use cases and enrich them with the knowledge from research. The living lab shall comprise different types of IoT nodes ( a total of 300 IoT nodes) deployed across as well as outside the campus for measuring air quality, water quality, water quantity, solar power, AC energy consumption and crowd monitoring. Further, there will be also a smart lamppost deployed as part of the initiative. Each of these nodes communicates using different communication protocols, transmits different types of data (for eg: a camera transmits images, water nodes may provide numerical data, etc.) and have different power and processing requirements. The data provided by the IoT nodes can be further leveraged to provide different services such as 1) near real-time rich visualizations of different parameters (air quality, water quality, etc.) through interactive dashboards; 2) forecasts on water quality; 3) SMS/email alerts in the event of higher water quality/air quality/energy consumption; 4) real-time crowd information on a particular area; 5) crowd forecasting; 6) energy savings recommendations to institute stakeholders; 7) maintenance of solar devices; 8) automated control of lamp posts (timings can be configured); 9) maintenance dashboards - indicating maintenance of different IoT nodes; 10) third party APIs to allow different stakeholders to get datasets for performing different types of experiments/research; 11) Smart class rooms with support for automated on/off of fans, lights, AC’s, etc.

Your goal in this project is to come up with a software architecture to develop a Smart City System that considers the different constraints and requirements. The architecture should consider both web and mobile app scenarios.

Main Constraints

  • The crowd information needs to be continuously monitored in real time. For other parameters, the frequency can be decided based on assumed non-functional requirements with adequate reasoning
  • Since some of the sensors need to be deployed outdoors, the availability of external power sources to plugin sensors will be limited and new sockets cannot be created.
  • The system should be able to capture crowd information with high accuracy and precision
  • Each IoT node may be using totally different IoT communication protocols. The system may need to make use of standard interoperability middleware (refer to OneM2M for example)
  • The system should be able to handle the continuous inflow of data from different IoT nodes and support near real-time visualizations of all the different types of IoT nodes.
  • Due to privacy issues, the system should not store any sensitive data related to the users.
  • All the users may not have smartphones, hence even if they don’t have access to an app providing rich visualizations, they should be able to get real-time alerts in the event of a water quality/air quality issues or any emergency situation.
  • The system shall make use of sensors to authenticate the users at the entrance of the campus. This process should not take more than 1 second.
  • The system should provide easy means for external stakeholders to leverage the data generated by the Smart City IoT system. The external stakeholders should be able to query up to 30 days of data.
  • Not every stakeholder should have access to all types of functionalities/data.

For the parts of service that require machine learning models/algorithms, you can assume that you have ready-made models which can be integrated into your components.

Deliverables

Task 1: Requirements and Subsystems

  • List down the set of functional and Non-functional requirements. Mention what forms the key requirements (Architecturally Significant requirements) and why (please explain in a few lines, not more).
  • List down the main subsystems and brief description of each subsystem
  • Create a simple informal high-level overview of the system (you can use a simple box and arrow diagram)

Task 2: Architecture Framework

  • Follow the IEEE 42010 standard to identify different stakeholders, concerns and corresponding viewpoints and views
  • What are some of the major design decisions? (Make use of Architecture decision records to capture them). List at least 3-4 major decisions. Keep track of continuous decisions that have been made throughout the project

Task 3: Architectural Tactics and Patterns

  • What are some of the architectural tactics (at least 4-5) that you plan to use and why? (brief description). How do they help achieve the extra/non-functional requirements?
  • What pattern(s) do you plan to use for the implementation and why? (explain very briefly)
  • Architecture diagram(s) - You can make use of UML (Component, use case, sequence, deployment (if necessary) or C4Model (Context, Container and Component)

Task 4: Architecture Analysis

  • Perform a simple implementation of a part of the system with this architecture and compare it with one other pattern of your choice, provide some quantification of at least 2 of the NFRs that you have considered (eg: response time, throughput, utilization, etc.). What do you have to say about trade-offs?

Bonus: Demo of a simple prototype system

  • Create a working demo of a minimal prototype of the system. You can create simple scripts that simulate different types of sensors and continuously generate some data points. The rest of the parts of the prototype can be built on top of this.

Copyright © 2023 Karthik Vaidhyanathan. Distributed by an MIT license.