JAIST Repository
https://dspace.jaist.ac.jp/Title

IoTシステムの双方向データフローにおける設計と実装の複雑さを解消する手法の提案

Author(s)栗林, 健太郎

CitationIssue Date2022-03

TypeThesis or Dissertation

Text version

author

URL

http://hdl.handle.net/10119/17650

RightsDescription

Supervisor:篠田
報科学）

陽一, 先端科学技術研究科, 修士（情Japan Advanced Institute of Science and Technology

Proposal to Eliminate the Complexity of Design and Implementation in
The Bidirectional Dataﬂow of IoT Systems
2030006 Kentaro Kuribayashi
In this paper, we propose a method for describing the data ﬂow and processing of bi-directional and diverse data ﬂow patterns in IoT systems using
a single language and communication protocol in a comprehensive manner,with the aim of reducing the complexity in the design and implementationof IoT systems.
IoT systems, which bridge devices such as sensors and actuators in physical space with computational processes in cyberspace, have been applied invarious domains. Such IoT systems are designed and implemented based on
an architectural model consisting of three layers: device layer, edge layer,
and cloud layer. The three-layer structure allows data to be given meaning
in the middle layer, ensures security by avoiding direct access by the device
layer, and can take advanteges of edge computing.
On the other hand, the adoption of the three-layer architectural model
poses a challenge in terms of structural complexity in system design and implementation. This is due to three factors: (1) the variety of programming
languages and communication protocol options, (2) the variety of data acquisition methods and bidirectional data ﬂow, and (3) the poor visibility ofdata ﬂow throughout the IoT system. While related research can solve eachof the challenges individually, this research aims to solve all the challenges
mentioned above.
The proposal that addresses the ﬁrst issue is a method that can design andimplement the three layers in an integrated manner using the same programming language and communication protocol. We propose a method to design
and implement the three layers in an integrated manner using the Elixir programming language as the core. In the proposed method, we use Elixir as aprogramming language and Erlang/OTP distributed network protocol as acommunication protocol. In addition, we use a secure communication protocol and an authentication method for security measures among the threelayers.
Our second proposal is an infrastructure that supports push, pull, anddemand methods and can be used in diﬀerent ways. We propose a method
to solve the second problem by using Pratipad, a library developed by theauthor, on the distributed Erlang/OTP network infrastructure. In the proposed method, the user can specify which data acquisition method is used toacquire data from a device. Then, by deﬁning the type of message for eachmode, the proposed method can handle any data acquisition method while
using the same infrastructure.
1

As the solution for the third problem, we propose a notation that candeclaratively describe the data ﬂow of an IoT system consisting of threelayers, and then separate the data ﬂow from the processing. The proposed
notation can describe and execute the data ﬂow as Elixir code, including thetypes of modes and bidirectionality described above, and the data processingin the edge layer. By using these notations, we can grasp the whole data ﬂow
under one view.
In order to evaluate the proposed method, for each of the proposals, weevaluate (1) that the proposed method can be used to design and implementa three-layer IoT system in an integrated manner, (2) that the proposed
method can easily handle any of the data acquisition methods, and (3) thatthe proposed notation can suﬃciently represent the entire data ﬂow. As aresult, we believe that the proposed method, which simultaneously solves allof the problems that related research has attempted to solve individually,
has achieved an academic contribution in that it solves the problems of IoT
systems and shows a method that can be designed and implemented more
eﬀectively with concrete implementation.

2