Logical Design:
Logical design refers to the design through which the physical components are incorporated. It is an abstract representation of the things, protocols and processes. Following are the major aspects of logical design:
- Functional blocks
- Communication models
- Communication APIs
Functional blocks: Functional blocks are parts of the system that interact with each other in order to let the services run properly. Following are the functional blocks of the IoT ecosystem:
- Device
- Communication
- Services
- Management
- Security
- Application
Communication models: Communication models are used for making the services of IoT reach up to the end users. We generally discuss about the following four communication model in IoT:
- Request-Response Communication model: This model is very similar to Client-Server model. Clients request servers and as a response, servers provide them services.
- Publish Subscribe Communication Model: This model is a little elaborate and hence, is distributed among publishers, brokers and consumers. Consumers, based on their type of requirement, are assigned to a broker. Brokers get the data from publishers and provide to consumers.
- Push Pull Communication model: In this model, Publishers push the data in a queue and consumers are required to pull the data as and when required.
- Exclusive pair Communication model: This model is pure Client-Server model. Two devices come in an exclusive pair and work on full duplex CS model.
Communication APIs: API stands for Application Programming Interface. We need APIs for implementing the software part of communication between devices and machines. IoT uses following two APIs:
- REST based APIs: REST stands for Representational State Transfer. This API works on the basis of different states of an object that is communicating. It is called stateless because between every pair of two devices the state is different. There is no any end-to-end state.
- WebSocket based APIs: WebSocket based APIs are different from REST. Here pure Client Server approach is used with an end-to-end connection. WebSocket based APIs are considered stateful.
Development tools used in IoT:
- Arduino
- Eclipse IoT
- IBM Watson
- Raspberry Pi
- OpenSCADA