In the second part of the blog, I’m going to discuss about Data Architecture, Network Architecture and Service (function) Architecture because these three variable types of the framework are very important and play an important role to achieve a success. All the IoT devices are responsible for generating (capturing) data on a large scale which grows exponentially. Network and other infrastructure components should be able to meet the enterprise requirements (non functional) and transfer huge amounts of data in batch or real time, based on the requirement. Central process unit (Application) should be able to transform data in a structured manner, store it in a reusable manner and take decisions based on the data. Application should be able to scale with pace of exponentially growing data.
Data Architecture for IoT:
Data Architecture for IoT Solution is very important as a large number of devices are connected and generate huge amounts of data in heterogeneous format, while the enterprise needs these data in a structured manner. Data volume is the single thing which is growing exponentially.
I have attempted to fit Data Models into the Zachman Enterprise Architecture framework, which is depicted in the following diagram.
The diagram depicts the model in each perspective; each perspective requires certain action to create corresponding model and all associated challenges in each of the corresponding perspectives. This entire model should be created as single variable type and the composite diagrams should keep in separate package outside of the framework. The data models should be connected to each other within the perspective. Models must also have multiplicity along with relationship, but this must exist in Architecture perspective to understand relationship, and the Technology perspective is required for generating the script perfectly.
From Source of Data to Business Value of Data
IoT devices generate huge amounts of data, but IoT system’s scope should not be limited to only generating data, these data should be also be transformed into knowledge. It means that the enterprise should have real use case of Big Data, hypothetical use case will not work and will lead to loss in business interest. For transforming heterogeneous data format to information and knowledge we must have a model to realize this transformation. Enterprise must analyze the analytical value of data and should have a plan for Artificial Intelligence (AI), which is the ultimate goal of the data captured by IoT devices.
Without a Data Model, making efforts for Analytics and Business Intelligence is aimless; stakeholders will have to depend on assumption while Data Model can help generate confidence in the stakeholder that your Data is Trusted, Reliable, and Secure.
There are four stages of transformation from Data to Knowledge
1. Sensor Integration: Source of Data (data generation)
2. Big Data: Management of Data (Keep data in meaningful structure / Managed Data)
3. Augmented Reality: Use of Data (i.e. Data Analytics, Data transformed into Information)
4. Global Revenue Management: Goal of Data (i.e. AI, Information transformed to Knowledge)
Data Model is very important because Data-centric Architecture is the most natural choice for IoT architecture. Data centric architecture could be Centralized Database or Fragmented Database based on the best practice within the enterprise and the Reference Architecture suitable for the enterprise.
The following diagram depicts fragmented based data architecture in terms network architecture.
And the next diagram depicts centralized database based network architecture.
These are not databases with devices, and it means that the data streaming is happening real time to enterprise application. Both the typologies are equally important, but should be chosen based on requirements.
One Logical Model – Multiple Physical Model
One of the best practices to implement IoT system is one logical model and as many physical/technology model as different technologies are required.
There are many reasons to have one logical model and multiple physical models.
Reasons behind this pattern could be categorized in three major categories
Please read my Blog (Data Architecture) to get more information about the best practices.
IoT Network Architecture
Network related Quality of Services (QoS/NFR) parameters are very important, so this also should be a part of models. In my opinion, designing and modeling of sensor should be separate from the network designing, but ought to be classified in the “Where” column in the respective perspective. Physical/Technology Network model is more challenging due to numerous types of networks, network devices, frequently changing firmware and various technologies. Architecture for technology layer/perspective must be separate to meet “Time to market” strategy, not only for the first time, but for subsequent releases too. Second reason is that the frequencies of changing devices, firmware of devices, protocols, underline infrastructure is very high, meaning lifespan is very short. However architecture lifespan should not be short, hence it is better to keep logical architecture separate from technology architecture.
IoT Connectivity Models
IoT connectivity models, or in other terms deployment models should cater to the following things:
Device to Device: ideal for Home automation system, good for transfer small data packets, popular protocol likes Bluetooth, Z-Wave, and ZigBee
Device to Cloud: this topology depends on NFR for IoT. Popular protocol likes LoRa, Sigfox, and Narrowband connectivity through Wired, WiFi, Cellular
Device to Gateway: Local Gateway connects to local device and provides security to device and data, and connects to Clouds
Backend Data Sharing: it extends the single “Device to Cloud” communication model so that IoT Devices and Sensor data can be accessed by authorized third parties.
However deployment model of entire IoT system cannot be made uniform as different devices can be deployed based on different topology and that topology should be based on Use Cases and NFR of the IoT system.
IoT: How SOA Useful
Let us understand how Service Oriented Architecture (SOA) is useful in developing the architecture for IoT enabled solution. SOA is defacto architectural style for designing Services and there are really good SOA based practices for service governance at design time as well as at run time. Microservices Architecture is the most suitable architecture to connect or deploy IoT Devices, as IoT system doesn’t require complex transaction, overlapping domain or large number of APIs. Microservices are easily scalable and can cope with a number of devices, as required in IoT system. Microservices is a sub-set of SOA as service design and architecture style is same as SOA, which follows a number of patterns to separate business components.
Message oriented integration is one of the best integration topology in Enterprise Architecture Integration (EAI) and Message oriented Middleware (MoM) is widely used to integrate SOA applications. MoM is also the most suitable for integration of IoT module(s) to main application as it is more reliable than HTTP protocol, more scalable. Interpretability should be top priority as integration is a challenging area of IoT systems.
SOA based systems emphasize on separate layers for business process in which service composition, service orchestration and service choreography take place. IoT requires a decision aware business process. Also, process task and decision task should be separate.