Introduction  

Selecting the right architectural style is crucial for the successful implementation of IoT systems. With IoT rapidly transforming industries and everyday life, understanding which architectural styles best meet specific needs is more important than ever. Architectural styles in IoT systems help abstract the complexities of connecting diverse devices and managing data flow across dynamic environments, ensuring the system performs efficiently and meets quality requirements like availability, scalability, and security.

Each architectural style comes with its own set of strengths and weaknesses, making it suitable for specific use cases. For instance, some styles are optimized for real-time data processing and high scalability, while others prioritize security and privacy. As IoT systems continue to evolve, choosing the right architecture becomes a critical factor in achieving optimal performance and reliability.

This blog post delves into various IoT architectural styles, such as Service-Oriented Architecture (SOA), Client-Server, REST, Microservices, and more. We will explore where and when these styles can be effectively implemented, providing recommendations on how to align architectural choices with specific quality requirements. By understanding the trade-offs and best-use scenarios for each style, IoT practitioners and developers can make informed decisions that enhance system quality and ensure their IoT solutions are robust, scalable, and secure.

Most Used IoT Architecture Styles

In this section, we provide a compilation of the most used IoT Architecture Sytles based on literature review.

1. Event-Driven Architecture

Event-Driven Architecture (EDA) focuses on producing, detecting, consuming, and reacting to events in real-time. In IoT, EDA is used to create intelligent systems that respond to events generated by devices and sensors. These events are processed by event processing engines, enabling the system to react immediately to changes in the environment. EDA offers high performance, scalability, and efficient monitoring by allowing the simultaneous handling of multiple requests. However, it can be complex to test due to its asynchronous nature and potential for increased response times.

2. Cloud-Based Architecture

Cloud-Based Architecture leverages cloud computing as a core part of its computational framework, including components like IoT clouds, devices, and user management consoles. This architecture is well-suited for handling the substantial volume of data in IoT systems, allowing for real-time data processing and storage. It offers scalability, flexibility, and adaptability across different IoT use cases. However, it requires reliable internet connectivity, and issues in connectivity can lead to decreased performance. Additionally, data privacy and security are significant concerns since data is stored and processed off-premises.

3. Publish-Subscribe Architecture

The Publish-Subscribe (Pub-Sub) Architecture consists of publishers and subscribers. Publishers send messages categorized into topics without knowledge of specific subscribers, who receive messages relevant to their interests. This architecture reduces coupling between components, enhancing system performance and flexibility. However, it can suffer from increased latency and complexity due to the intermediary events that route messages, which can complicate debugging and error handling. Availability issues may arise if event services fail.

4. Layered Architecture

Layered Architecture organizes components with similar functionalities into distinct horizontal layers, each performing a specific role. This architecture is commonly used in IoT systems to separate concerns, making it easier to modify, reuse, and test individual layers. While it facilitates structured development, the introduction of multiple layers can reduce productivity and reliability. Debugging issues can be challenging due to the complexity of interactions across layers.

5. Microservice Architecture

Microservice Architecture is an evolution of SOA, consisting of small, loosely coupled services that communicate over lightweight protocols. Each microservice performs a unique function, allowing teams to develop and deploy services independently. This architecture supports large-scale IoT systems by enhancing resilience, scalability, and agility. However, it may increase memory usage and requires careful attention to security, privacy, and effective communication protocols due to its distributed nature.

6. REST Architecture

REST (Representational State Transfer) Architecture is a style of building web services that applies to the design of IoT systems. In REST architecture, IoT devices and applications interact via standardized web protocols, often using HTTP for communication. RESTful services model IoT devices as resources, providing a consistent interface for accessing and manipulating these resources. This architecture offers scalability and reusability due to its loosely coupled nature, where components can interact without tight dependencies. REST also supports caching, which improves efficiency by reducing the load on servers. However, designing RESTful APIs can be complex, and security concerns arise when handling sensitive data due to the open nature of web protocols.

7. Client-Server Architecture

Client-Server Architecture is a distributed architecture where servers provide resources or services, and clients request them. In IoT, servers might handle storage, processing, or monitoring tasks, while clients could be various IoT devices. This architecture allows centralized control and easy modification of services. However, server bottlenecks can occur with high traffic loads, potentially reducing performance and availability.

8. Peer-to-Peer Architecture

Peer-to-Peer (P2P) Architecture allows devices (peers) to connect directly without central servers, providing equal priority to all devices as both servers and clients. This architecture promotes high productivity, flexibility, modifiability, and scalability, as peers can be dynamically added or removed. However, managing security and access control is more complex without a central authority, and overall performance is dependent on the reliability of network connections.

9. SOA Architecture

Service-Oriented Architecture (SOA) structures software into reusable services that communicate through standardized interfaces. Each service is responsible for a specific function or part of a function, making SOA suitable for diverse IoT systems. It facilitates modularity, loose coupling, and independent control of IoT devices. Despite these advantages, SOA can face challenges with resource utilization, reliance on single technologies, and interoperability among different services.

10. Pipes and Filters Architecture

Pipes and Filters Architecture consists of processing components (filters) connected by pipes that sequentially handle data. This architecture is ideal for IoT systems requiring modularity and linear data processing, allowing for scalability and adaptability. Filters can be independently developed and reused across different systems. However, this architecture is less suitable for interactive applications due to its batch-processing nature, which can lead to latency and reduced performance.

A high-level visualization of each of the above-mentioned architectures is shown in the figure below.

Most Used IoT Architectural Styles From Literature

The table below provides a comparative analysis of various architectural styles and patterns used in IoT systems. It highlights the key characteristics, advantages, disadvantages, and the most suitable IoT domains for each style, helping practitioners make informed decisions based on their specific needs and quality requirements.

Architectural Style Comparison and IoT Domains
Architecture Description Advantages Disadvantages Possible Domain
SOA SOA provides a guideline to develop reusable software components that communicate through multiple service interfaces.
  • Reuse existing service across multiple applications and domains.
  • Allow changes in different service components without affecting the consumers.
  • Facilitates the integration and interoperability of heterogeneous systems.
  • Scalability issues based on a centralized database.
  • Hard to manage service versions and dependencies.
  • Backward compatibility may need more attention.
SOA can be used for any IoT system with multiple services that need to communicate with each other, such as smart home systems.
Reason: SOA enables loose coupling and reuse of services.
Layered Layered Architecture organizes different modules or components with similar functionalities into horizontal layers that help each layer perform a specific role within the application.
  • Applications based on layered architecture can use any number of layers.
  • The naming of each layer is flexible.
  • Provide an abstract presentation of the complete system.
  • Topological constraints due to conventional organization of layers.
  • Data flow can only use two-way communication i.e. user to the system and vice versa.
  • Communication is based only between the user and the interface.
Layered Architecture is well suited to IoT systems consisting of IoT devices with complex processing requirements such as smart robots.
Reason: Layered architecture allows for separation of concerns and ease of maintenance.
Microservices Microservice Architecture provides an organizational approach to develop software composed of small independent services that communicate over well-defined APIs.
  • Services are autonomous.
  • Each service performs a unique task.
  • Support flexible scalability.
  • Complexity for service integration.
  • Dependency constraints.
  • High implementation cost.
Microservice architecture can be considered for large-scale IoT systems with multiple independent services, like industrial automation.
Reason: Microservices enable scalability and flexibility.
Cloud-based Cloud-based Architecture is an architecture that is based on cloud computing for computational architecture.
  • Provides scalability.
  • Ease deployment.
  • Cost-effective.
  • Operational downtime.
  • Security and privacy concerns.
Cloud-based Architecture is a good option for any IoT system requiring scalability and remote data processing, like smart cities.
Reason: Cloud architecture provides on-demand resources and global access.
Peer-to-Peer (P2P) P2P consists of a group of named nodes or peers linked in a network that acts as both a client and server.
  • Communication between client and server never stops in case of failure in a single node or peer.
  • User can share with better speed.
  • Performance may suffer if many nodes are active at a time.
  • End users are only responsible for network security.
P2P is well suited for IoT systems requiring direct device-to-device communication, such as autonomous driving and collision avoidance.
Reason: P2P architecture enables decentralized communication.
Publish-Subscriber Publish-Subscriber is based on a messaging pattern where the publishers send messages without knowing subscribers.
  • Low coupling for publishers.
  • Less cognitive load for subscribers.
  • Inflexibility of data sharing from subscribers.
  • Instability for message delivery.
Publish-Subscriber is well suited for IoT systems with many devices publishing data, like smart sensors such as Smart Grids, and distributing alerts/notifications to diverse stakeholders (utilities, consumers, service providers).
Reason: Publish-subscribe pattern enables efficient data distribution.
Client Server Client Server architecture is based on a single server and multiple clients. Server may support any number of clients.
  • Support centralization of all data.
  • High level of scalability.
  • Less maintenance cost.
  • Support data recovery.
  • Vulnerability in case of Denial of Service attacks.
  • High cost of first-time implementation.
  • The client may face delay in case the server is down.
Client-server architecture is preferred for IoT systems with a central hub controlling devices, like smart security systems.
Reason: Client-server architecture enables centralized management.
Pipes and Filters Pipe and Filter architecture independent entities are named as filters (components) that transform on data and process the input they receive, and pipes, serve as connectors to transform to components in the pipeline.
  • Loose and flexible coupling of components and filters.
  • Support parallel processing.
  • Not good for interactive systems.
  • More computation resources for long-running processes.
Pipes and Filters architectural style is well suited for IoT systems processing data streams, like industrial monitoring systems.
Reason: Pipes and filters architecture enables data processing and transformation.
Event-driven Event-driven architecture (EDA) enables an organization to detect events or important business moments and act on them in real-time.
  • Provide scalability.
  • Ease implementation.
  • Cost-effective.
  • Duplication of the event.
  • It requires effort to develop the application as per specific events.
Event-Driven architectural style is suitable for IoT systems reacting to real-time events, like smart alarm systems.
Reason: Event-driven architecture enables real-time processing and reaction.
REST Architecture REST architectural style supports the design and development of the architecture for the World Wide Web.
  • Support message delivery in multiple formats.
  • Provide high security.
  • Response may be delayed due to long HTTP requests.
  • Do not support stateful communication.
REST architecture is recommended for IoT systems requiring standardized resource management, like smart appliances.
Reason: REST architecture enables standardized resource access and management.

In conclusion, practitioners must carefully analyze the specific requirements of their IoT systems and select the architectural style that best meets those needs. By choosing the most appropriate architecture, they can ensure optimal performance, scalability, security, and overall system efficiency, ultimately leading to more robust and effective IoT solutions.

The content of this blog has been extracted from our recent journal paper with DOI:10.1109/JIOT.2024.3435496