You are on page 1of 55

TME4093

ADVANCED TOPIC IN
SOFTWARE ENGINEERING
1. Understand the architecture of Internet of Things
and connected world.
2. Explore on use of various hardware,
communication and sensing technologies to build
IoT applications.
3. Illustrate the real time IoT applications to make
smart world.
4. Understand challenges and future trends in IoT.
1. Understand the idea of IoT
2. List advantages and challenges of IoT
3. Explain How IoT works
4. List the application of IoT Across different
Application Domains
5. List IoT Tools and Application Development
Platforms
Impact on Software
Introduction to IoT Engineering
and its Growth Challenges in IoT Processes and
Practices

IoT IoT Skills for a Conclusion


Software and Future
Applications Directions
Engineer
Internet of Things (IoT) is a network of devices which can sense,
accumulate and transfer data over the internet without any human
intervention.
IoT= Services + Data + Networks + Sensors

A “thing” in the internet of things can be

natural or man-made object

assigned a Unique IP address

able to transfer data over a network

The Internet of Things describes the


coordination of multiple machines,
devices and appliances connected to
the Internet through multiple networks.
The most important features of IoT include artificial intelligence, connectivity,
sensors, active engagement, and small device use.
AI − IoT essentially makes virtually anything “smart”, meaning it enhances every
aspect of life with the power of data collection, artificial intelligence algorithms,
and networks.
Connectivity − IoT devices rely on networks to communicate with gateways,
applications, servers, routers, and other IoT devices. This communication—
transmitting and receiving data—enables IoT devices to perform the functions
they were designed for. IoT creates these small networks between its system
devices.
Sensors: Sensors output valuable information and if they are connected to a
network, they can share data with other connected devices and management
systems.
Top 10 Sensor Examples:
Humidity Sensors.,Pressure Sensors,Proximity Sensors.,Level Sensors. ...
Accelerometers,Gyroscope,Gas Sensors etc…
Active Engagement − Much of today’s interaction with connected
technology happens through passive engagement. IoT introduces a
new paradigm for active content, product, or service engagement.

Small Devices − Devices, as predicted, have become smaller, cheaper,


and more powerful over time. IoT exploits purpose-built small devices
to deliver its precision, scalability, and versatility.
Definition from International Bodies
Internet Architecture Board (IAB): The networking of smart objects, meaning a
huge number of devices intelligently communicating in the presence of
internet protocol that cannot be directly operated by human beings but exist as
components in buildings, vehicles or the environment

Internet Engineering Task Force (IETF): The


networking of smart objects in which smart
objects have some constraints such as
limited bandwidth, power, and processing
accessibility for achieving interoperability
among smart objects
Definition from International Bodies
IEEE Communications:

A framework of all things that have a representation in the presence of the


internet in such a way that new applications and services enable the interaction
in the physical and virtual world in the form of Machine-to-Machine (M2M)
communication in the cloud
–Oxford dictionary:
The interaction of everyday object’s
computing devices through the
Internet that enables the sending
and receiving of useful data
The number of Internet of Things (IoT) devices worldwide is forecast to almost triple from 9.7 billion in 2020 to more
than 29 billion IoT devices in 2030. In 2030, the highest number of IoT devices will be found in China with around 5
billion consumer devices. 22 Nov 2022
Using the web,
first internet appliance, for
programmers has
example, was a Coke vending
determined whether
machine at Carnegie Mellon
there is cold drink or
University in the early 1980s.
not ?
David Nichols, a computer
science graduate student now
working at Microsoft

June of 2012, when the major Internet service providers and web companies agreed to
increase address space on the global Internet by enabling IPV6 for their services and
products.
The Internet, itself a significant • Coined “The Internet of
component of the IoT, started Things” (IoT) in a
out as part of DARPA (Defense presentation to Proctor
Advanced Research Projects & Gamble in 1999
• co-founder of MIT’s
Agency) in 1962 and evolved into
Auto-ID Lab.
ARPANET in 1969.
• pioneered (Radio
Frequency
Identification) RFID
(used in bar code
detector) for the supply-
chain management
domain.

In the 1980s, commercial service providers began supporting public use of ARPANET,
allowing it to evolve into our modern Internet. Global Positioning Satellites (GPS) became a
reality in early 1993.
IoT has evolved from the convergence of

wireless technologies,

microelectromechanical systems (MEMS),

microservices and

the Internet.

The convergence has helped tear down the silos between operational technology (OT) and information
technology (IT)

IoT evolved from machine-to-machine (M2M) communication


Why is IoT important?
• Touches every industry, including healthcare, finance, retail, and
manufacturing
– Helps people live and work smarter (Smart homes, smart, cities, smart kitchen…)
– Smart cities help citizens reduce waste and energy consumption

– Provides businesses with a real-time look into how


their companies’ systems really work
• Delivering insights into everything from the
performance of machines to supply chain and logistics
operations
• Connected sensors are even used in farming to help
monitor crop and cattle yields and predict growth
patterns
Example of an IoT system
1. Intelligence
• Knowledge extraction from the generated data
2. Architecture
• A hybrid architecture supporting many others
3. Complex system
• A diverse set of dynamically changing objects
4.Size considerations
• Scalability
5. Time considerations
• Billions of parallel and simultaneous events
6. Space considerations
• Localisation
7. Everything-as-a-service
• Consuming resources as service
• Security −
IoT creates an ecosystem of constantly connected devices communicating over
networks. The system offers little control despite any security measures. This
leaves users exposed to various kinds of attackers.
• Privacy −
The sophistication of IoT provides substantial personal data in extreme detail
without the user’s active participation.
• Complexity −
Some find IoT systems complicated in terms of design, deployment, and
maintenance given their use of multiple technologies and a large set of new
enabling technologies.
• Flexibility −
Many are concerned about the flexibility of an IoT system to integrate easily with
another. They worry about finding themselves with several conflicting or locking
systems.
• Compliance −
IoT, like any other technology in the realm of business, must comply with
regulations. Its complexity makes the issue of compliance seem incredibly
challenging when many consider standard software compliance a battle.
❖ Improved (active) Customer Engagement,

❖ Technology Optimisation, better quality of life

❖ Reduced Waste, saves money, monitor, efficient and saves time

❖ Enhanced Data Collection(sensors do that)

❖ Communication(M2M-Machine-to Machine), automation control,


information

❖ Automation of daily tasks leads to better monitoring of devices


❖ Increased Security Concern( more devices and more info created and shared)

❖ Big Data Management issue( handling huge numbers)

❖ The higher chance of system corruption (if there is a bug in any part of the
system)

❖ Device Interoperability( multiple, different device vendors with no accepted


standard)

❖ Privacy, safety (Hackers may gain access to the system and steal personal
information.), compatibility, complexity, Technology takes control of life.

❖ Deploying IoT devices is very costly and time-consuming.


Illustration of an IoT scenario
▪ A simplified representation of an IoT
network. It encompasses end devices,
gateways, communication links, IoT
applications, and services.
▪ A typical scenario involving those entities
include end devices collecting data from an
environment (e.g., temperature, luminosity,
movement) and reporting it to a supervision
entity (hosted by an IoT platform and service
provider) via different communication
technologies and gateways.
▪ Must have a means to device provisioning,
administration, monitoring, and diagnostics
important for trouble replication and
corrective measures.
▪ An Ideal solution will provide a means for
managing all devices from one dashboard.
IoT Across Application Domains
IoT Tools and Application Development Platforms

▪IoT Platform:
oIoT platform is an essential component of a huge IoT
ecosystem that supports and connects all components
within the system.
oIt helps to facilitate device management, handle
hardware/software communication protocols,
collect/analyze data, enhance data flow and
functionality of smart applications
IoT Tools and Application Development Platforms

▪The overall IoT system includes


oHardware (devices and sensors)
oConnectivity through a router, gateway, wi-fi,
satellite, Ethernet, etc.
oSoftware
oUser interface
IoT Tools and Application Development Platforms

▪Cloud hosting has become a wide-spread and


generally appreciated method of developing and
running various technology solutions,
▪IoT, directly depending on Internet, definitely benefits
from all the advantages of cloud computing
▪Special cloud-based IoT platforms support the
Internet-based functions of the application – running,
maintenance, analytics, data storage, and security
measures.
IoT Tools and Application Development Platforms
▪ Below are some Cloud IoT platforms
oGoogle Cloud IoT
oAmazon Web Services (AWS)
oMicrosoft Azure IoT Suite
oSAP
oSalesforce IoT
oOracle Internet of Things
oCisco IoT Cloud Connect
oBosch IoT Suite
oIBM Watson Internet of Things
oThingWorx IoT Platform
oHuawei Cloud Core
IoT Tools and Application Development Platforms
▪IoT Development Platforms
oTop-class IoT development tools that can be employed by both
developers and for all those who wish to pursue IoT include
• Tessel 2
• Eclipse IoT
• Arduino
• PlatformIO
• Kimono Create
• IBM Watson
• Raspbian (Raspberry Pi)
• OpenSCADA
• Node-RED
• Device Hive
IoT hardware platforms - So many IoT Chips

▪ The IoT four key technological enablers are: -


oRFID technology used for tagging the things.
oSensor technology used for sensing the things.
oSmart technology used for thinking the things.
oNanotechnology used for shrinking the things.
▪ Generally speaking, IOT is just more than M2M
communication, with technologies including:
oWireless sensor networks, sensor networks ,
2G/3G/4G,GSM,GPRS,RFID, WI-FI, GPS, microcontroller,
microprocessor etc.
How to Think about the Internet of Things (IoT)

▪There are four main components of an IoT


system
oThe Thing itself (that is, the device)
oThe local network (this can include a gateway,
which translates proprietary communication
protocols to Internet Protocol).
oThe Internet ( the Global Network)
oBack-end services (enterprise data systems, or
PCs and mobile devices).
The Internet of Things from an embedded
systems point of view
How to Think about the Internet of Things (IoT) Cont’d…

▪Two key aspects to the IoT:


oThe devices themselves and
oThe server-side architecture that supports them.
▪In fact, there is often a third-category as well;
oIn many cases, there may be a low power
gateway that performs
• aggregation,
• event processing,
• bridging, etc.
that might be located between the device and the
wider Internet
Types of Devices(Things)

▪There are three types of Devices in IoT:


oThe smallest devices have embedded 8-bit System-
On-Chip (SOC) controllers.
oSmall home routers and derivatives of those
devices. Commonly, these run a cut-down or
embedded Linux platform, such as OpenWRT, or
dedicated embedded operating systems.
• Have very limited 32 bit Atheros and ARM chips
oThe most capable IoT platforms that are full 32-bit
or 64-bit computing platforms
• Systems such as the Raspberry Pi or the BeagleBone,
may run a full Linux OS or another suitable Operating
System, such as Android.
IoT Communication Mechanisms

▪Communication between devices and the Internet or to


a gateway includes many different models
oDirect Ethernet or Wi-Fi connectivity using TCP or UDP (we
will look at protocols for this later)
oBluetooth Low Energy(BLE)
oNear Field Communication (NFC)
oZigbee or other mesh radio networks
oSRF and point-to-point radio links
oUART or serial lines
oSPI or I2C wired buses
IoT Common Standards

▪W3C (World Wide Web Consortium)


▪IETF (Internet Engineering Task Force)
▪EPC Global
▪IEEE (Institure of Electrical & Electronics Engineers)
▪ETSI (European Telecommunications Standards
Institute)
36
SOA in IoT

▪SOA ensures the interoperability among the heterogeneous


devices in multiple ways
▪SOA Layers:
oSensing layer is integrated with available hardware objects to sense
the statuses of things;
oNetwork layer is the infrastructure to support over wireless or wired
connections among things;
oService layer is to create and manage services required by users or
applications;
oInterfaces layer consists of the interaction methods with users or
applications.
37
SOA in IoT

▪SoA has been widely applied as a mainstream


architecture for wireless sensors networks
▪In IoT SOA is designed to provide the
extensibility, scalability, modularity, and
interoperability among heterogeneous things

39
12 Essential IoT Skills for a Software Engineer

▪The skills distinguish an IoT software engineer apart


from an average engineer
▪3 different levels of the skills
oLevel 1. Augmenting (Enhanced)
oLevel 2. New
oLevel 3. Rewiring (to unlearned and relearned)
Universiti Malaysia Sarawak
Augmenting (Enhanced) Skills Faculty of Computer Science and Information Technology

⚫ Skills you already have but need to be enhanced for IoT


1. Message Transformation
▪ The inline processing of messages going between the IoT
application and things.
▪ In IoT, applications are running in tandem with multiple things
hooked into it. Transformation of messages from and to the things
is inline, high frequency, and usually more complex. It becomes a
part of your programming logic.
2. Security/Access Control
▪ build secure IoT applications.
▪ In IoT, since it is things, not just users who are accessing the
application, access control becomes much more multi-faceted and
complex
41 14/05/2023 23:25:12
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
New Skills
⚫ New skills you need to acquire for IoT
1. IoT Modeling
▪ The design and implementation of software models/entities for IoT
applications.
▪ In IoT you need a systematic way to model things. These real things can
be directly connected to the application.
2. Failure Management
▪ create application logic that responds to failure conditions in things.
▪ In IoT, many of the “failures” you expect to see are from things. It can
be devices not accessible, machines down, or things sending
42 malfunction
14/05/2023 23:25:13
signals. Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
New Skills (cont.)
3. Time Series Data
▪ manage time series data coming from things.
▪ When things interact with applications, we sometimes care
about the time sequence in which many interactions happen,
resulting in the same variable carrying different values against
time.
4. Simulation
▪ creating simulated things and systems to test IoT applications.
▪ In IoT, a few things make meaningful testing hard:
▪ (1) The number – hundreds of things to test
▪ (2) It is the interactions that matter, not just data.
▪ (3) The system and physical dynamics makes a difference.Advanced Software Engineering
14/05/2023 23:25:13
Universiti Malaysia Sarawak
New Skills (cont.) Faculty of Computer Science and Information Technology

5. Serial Protocol
▪ integrate with devices that communicate on serial protocols.
▪ There are many different protocols used in IoT, especially in the
industrial/enterprise side of IoT.
▪ If one has to pick one most important, it has to be the serial
protocol.
▪ There are different variations of serial protocols, but the same
interaction patterns (such as handshakes) are followed.
▪ Many industrial machines use serial protocols.
▪ Most of the low-level sensor protocols today (e.g. GPIO, I2C, SPI,
ADC, DAC) are converted to serial protocols through the micro-
controller units (MCUs).

44 14/05/2023 23:25:13
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
New Skills (cont.)

6. Micro-controller Units (MCUs)


▪ understand and integrate with MCUs in IoT applications.
▪ You cannot do IoT without touching MCUs.
▪ Many industrial machines come with controllers built in, so you
don’t need MCUs for machines.
▪ However, most sensors require an MCU to handle analog to
digital conversion, power management and communications.
▪ A good start is Arduino MCU and Arduino IDE. Arduino.io
provides good support through its community

45 14/05/2023 23:25:14
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
New Skills (cont.)

7. Physics Requirements
▪ taking into account the dynamics of the physical entities and environment
in IoT applications.
▪ In IoT there is a new set of requirements – the “laws” of physics. If there is
a security camera within 3 feet of the entrance, but there is a wall in
between, you need to know that the right data will not come in.
▪ If you send command to open the valve in a pipe, you should know the
flow rate of the liquid may be different at different temperature levels.
▪ These are things you cannot control, but have to take into account. On the
other hand, they may give you endless fun (or frustration) in your IoT
development.

46 14/05/2023 23:25:14
Advanced Software Engineering
Universiti Malaysia Sarawak
Rewired Skills Faculty of Computer Science and Information Technology

⚫ Skills that need to be “unlearned” in order for new IoT thinking


to be adopted.
1. System Architecture
▪ The distribution of application and application logic across an IoT system.
▪ In IoT, the physical constraints (such as location and physical wires/pins) are
no longer external to the application logic.
▪ A software engineer developing without understanding of the system
architecture will produce an application that is impossible to run in the real
world.
▪ IoT systems often consist of multiple edges, gateways and clouds.

47 14/05/2023 23:25:14
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
Rewired Skills (cont.)

2. State Management
▪ maintaining states that represent external things.
▪ In IoT, much is about using software to represent
external states of the real world things. You can call
this a “reflective state”.
▪ The “reflective state” however, can never be 100%
identical with the state in the real world. Even if you
refresh every second, your states are out of sync with
reality in between the 1-second wait time.

48 14/05/2023 23:25:14
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
Rewired Skills (cont.)

3. Parallel and Asynchronous Programming


▪ program in parallel logic with asynchronous request
handling.
▪ IoT applications interact with things, often many at a
time.
▪ Think about many machines on a factory floor. The
sequence of their interactions with your application is
usually not up to you to decide. Some of these
machines may be asynchronous themselves, and may
interact at high frequencies with your application.
49 14/05/2023 23:25:15
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
How to be an IoT Software Engineer?

⚫ Bone up on new languages, non-relational databases


– life-long learners and keeping up by reading about what's current
with the IoT
– experience in emerging technologies, as well as web and mobile
development
⚫ Go beyond your core skill set
– Consider taking some hardware courses to get a broader perspective
on how those IoT devices work

Source: https://techbeacon.com/how-make-yourself-marketable-iot-software-engineer
14/05/2023 23:25:15
50
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology

How to be an IoT Software Engineer?(cont)


⚫ Understand how to deal with large-scale data generated
by the IoT
– Know how to deal with the different types of data generated
by the IoT, the large volumes involved, and data integrity
issues
⚫ Build out your analytics skills
– learn as much as they can about analytics
– Predictive analytics – predict what will happen, eg:
equipment failure
51 14/05/2023 23:25:15
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology

How to be an IoT Software Engineer?(cont)


⚫ Pursue IoT-related side projects
– Get experience by doing real projects
⚫ Know the products of IoT companies where you want to
work
– This shows your enthusiasm in IoT projects.

52 14/05/2023 23:25:16
Advanced Software Engineering
Universiti Malaysia Sarawak
Faculty of Computer Science and Information Technology
Conclusions & Future direction

❑ The rapid growth of IoT is leading to new challenges and opportunities for
software engineering.

❑ Addressing the challenges of reliability, security, and scalability in IoT


systems requires the development of new processes, practices, and testing
techniques.

❑ However, the potential benefits of IoT, such as increased efficiency and


new business models, make it an exciting field for software engineering.

❑ In the future, we can expect to see continued innovation in IoT-based


software products, as well as new developments in AI and machine learning
to enable even more intelligent and autonomous systems.
Advanced Software Engineering
14/05/2023 23:25:16
Summary

▪In this lecture we have learnt


oWhat IoT is and how it emerged as a Technology
oHow IoT works
oThe architectures for IoT( Devices, Network,
Communications etc.)
oThe common application areas of IoT in real-life
oThe IoT development and Deployment Platforms

You might also like