SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
IoTアーキテクチャ・デザインパターン
Landscape of Architecture and Design
Patterns for IoT Systems
(IEEE Internet of Things Journal)
Hironori Washizaki, Shinpei Ogata, Atsuo
Hazeyama, Takao Okubo, Eduardo B.
Fernandez, Nobukazu Yoshioka
2020年9月12日 (v20200912)
ソフトウェアエンジニアリングシンポジウム SES2020
Hironori Washizaki, Shinpei Ogata, Atsuo Hazeyama, Takao Okubo, Eduardo B.
Fernandez, Nobukazu Yoshioka, “Landscape of Architecture and Design Patterns for IoT
Systems,” IEEE Internet of Things Journal, 2020 (Early Access)
https://ieeexplore.ieee.org/document/9120234
IoTシステムの基本構成
2
ZigBee ZigBee、BLE、Wi-Fi
internet
TCP/IP
TCP/IP
IoTサーバ
Android Open
Accessory, BLE
IoTサーバ
(アプリケーション)
IoTデバイス
(センサ/アクチュエータ)
IoTゲートウェイ
広域網
IoTエリアネットワ
ーク
パブリッククラウド環境
Google
Drive
ゲートウェイ
AWS M2X
プライベート
クラウド環境
PC
スマホ
Arduino Raspberry Pi
鷲崎, MCPC岡崎ほか, “スマートIoTシステムビジネス入門”, スマートエスイー2017-18
ビジネス・
ユーザ
MEMEData
Collector
IoT事例: 疲労予測・改善 3
鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
Health
CareUI
MEMEData
Processing
MEMEData
Collector
ユーザー
IoTメガネ
(MEME)
Stress
Estimator
Insights Things
2. publish(data, topic)
2.1.1 estimate(data)
2.1.2 show(stress)
Broker
<<publisher>>
1. subscribe(topic)
2.1. notify(data, topic)
<<subscriber>> <<broker>>
変更容易性:
MEMEの追加
変更容易性: デー
タ処理の追加
疲労度の予測行動推薦
計測を開
始する
疲労度を
表示する
考慮する要求群 適用パターン群
Action
Insights
Things
IoT参照アーキテクチャ
推定モデル
更新の制約
Publish-Subscribe
Publisher
Broker
Subscriber
Publisher
Subscriber
Action
センシング
IoTにはパターン(言語)が必要!
• 抽象的なパラダイムと具体的な事例
、指示、ツールの橋渡し
– Know-Why(文脈)、What(問題)、How(
解決策)を言語化し、文書化する。
– 解決策や問題点の再利用
– 一貫性のあるアーキテクチャの取得
4
パラダイム
事例
ツール
フレーム
ワーク
作業指示
?
?
• ステークホルダー間の共通言語
– ソフトウェアエンジニア、ハードウェアエ
ンジニア、ネットワークエンジニア、ドメ
インエキスパート、データアナリスト・・・
エグゼクティブサマリ
• 抽象度の異なる様々なIoTアーキテクチャ・デザインパターン
は、十分に分類および研究されていない
• RQ1.学術的な文献では、IoTのアーキテクチャや設計パター
ンはどのように扱われているのか?
– IoTアーキテクチャ・デザインパターンの関連論文32編
• RQ2.既存のIoTアーキテクチャやデザインパターンは本当に
全てIoTパターンなのか?
– 抽出された143パターンのうち、57%が非IoTパターン
• RQ3.IoTアーキテクチャ・デザインパターンは分類できるか?
– 抽象化レベル、ドメイン、品質特性に沿って分類可
• RQ4.IoTアーキテクチャ・デザインパターンはどのようなもの
があるのか?
– 多くのIoTパターンは、相互運用性、セキュリティ、保守性を扱う
– 多くのIoTアーキテクチャパターンはドメイン固有 5
RQ1.学術的な文献では、IoTアーキテクチャ・デザイン
パターンはどのように扱われているのか?
• 系統的文献調査 Systematic Literature Review (SLR)
• 初期検索: 63編 → 最終選択32編、2014–2018 Scopus
– “IoT” AND ( “design pattern” OR “architecture pattern” )
– 多くは国際会議発表、続いて論文誌掲載
• 会議論文が多いことから、IoTアーキテクチャ・デザインパタ
ーンの話題全体は初期段階にある
• 論文誌掲載の存在は、ある種のIoTパターンは成熟しつつあ
ることを示唆
6
0
2
4
6
8
2014 2015 2016 2017 2018
Workshop
Symposium
Conference
Book chapter
Journal
RQ2.既存のIoTアーキテクチャ・デザインパター
ンは本当に全てIoTパターンなのか?
• 論文32編中で143パターンに言及
• 82の一般的な(非IoT)パターン
– うち11の非IoTパターンは複数論文で言及
• Publish-Subscribe, Client-Server, Peer-to-Peer, REST, SOA,
RBAC, MVC, Reflection, Blockchain, Strategy and Observer
– 14編の論文では非IoTパターンのみ使用
– IoTシステムやソフトウェアは、従来のアーキテクチャ
やデザインパターンで設計されていることが多い
• 18編の論文で61のIoTパターン
7
RQ3.IoTアーキテクチャ・デザインパターン
は分類できるか?
• 抽象化レベル
– 高: アーキテクチャスタイル
(問題・解決の整理なし)
– 中: アーキテクチャパターン
– 低:デザインパターン
• ドメイン
– 非IoT: IoTのシステムやソフトウェアの設計にも適用可能
な一般的なアーキテクチャ・デザインパターン
– 一般IoT: あらゆるIoTシステムやソフトウェアに適用可能
– 特定IoT: 特定の問題/技術ドメインへの特化
• 品質特性
– ISO/IEC 25010の機能適合性を除くすべての品質特性+
スケーラビリティやプライバシーなどIoT共通の追加特性 8
アーキテクチ
ャパターン
(スタイル)
デザイン
パターン
例: IoTアプリケーション多層アーキテクチャ
• 多層アプリケーション向けに軽量な仮想化によるリソース仮想化を提供
9
IoT GatewayIoT Device
/ Application
IoT Device
/ Application
publish IoT Device
/ Application
IoT Device
/ Application
subscribe
Virtual part
Physical part
例: IoTゲートウェイ・イベントサブスクリプション
• IoTゲートウェイにサブスクリプションの仕組みを採用
• センサによって得られたデータと要素間メッセージを非同期かつ相互伝送
RQ4. IoTパターンはどのようなものがあるのか?
• IoTパターンは異なる著者グループで認識されていない
– 複数の論文で言及されているのは2つのパターンのみ
– パターン作成者は既存IoTパターンを事前確認すべき
• 抽象度とドメインの組み合わせ
– IoTデザインパターンのほとんどはどのドメインにも適用可能
– 特定ドメイン向けに多くのIoTアーキテクチャパターンが存在: 産
業IoT、スマートウォーターなど
– 特定ドメインでのIoT独自の形はアーキテクチャレベルで発現
• 主な品質特性: 相互運用性、セキュリティ、保守性
10
ドメインへの依存性
抽象度 非IoT 一般 IoT 特定ドメイン IoT 合計
アーキテクチャスタイル 22 2 1 25
アーキテクチャパターン 7 1 15 23
デザインパターン 53 38 4 95
合計 82 41 20 143
まとめ
• IoTにはパターン(言語)が必要!
• 32の論文で言及された143パターンを調査
– IoTデザインパターンの多くはどのドメインにも適用可能
であるが、特定のドメイン向けに多くのIoTアーキテクチ
ャパターンが存在
– 多くのIoTパターンは、相互運用性、セキュリティ、保守
性に対応。他の品質特性について研究が必要。
• 展望
– 分類結果を公開し、ホームページでコメント募集
http://www.washi.cs.waseda.ac.jp/iot-patterns/
– Scopus以外の文献データベースも追加活用予定
– パターンランゲージに向けてIoTパターン間関係分析
11

Weitere ähnliche Inhalte

Was ist angesagt?

組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 

Was ist angesagt? (20)

第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
 
PythonによるOPC-UAの利用
PythonによるOPC-UAの利用PythonによるOPC-UAの利用
PythonによるOPC-UAの利用
 
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoyaLXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
 
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane finding
 
MikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続するMikanOSと自作CPUをUSBで接続する
MikanOSと自作CPUをUSBで接続する
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
UnityとROSの連携について
UnityとROSの連携についてUnityとROSの連携について
UnityとROSの連携について
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
L2延伸を利用したクラウド移行とクラウド活用術
L2延伸を利用したクラウド移行とクラウド活用術L2延伸を利用したクラウド移行とクラウド活用術
L2延伸を利用したクラウド移行とクラウド活用術
 
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
Prometheus monitoring from outside of Kubernetes
 〜どうして我々はKubernetes上のPromet...
 
Unicode文字列処理
Unicode文字列処理Unicode文字列処理
Unicode文字列処理
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
 

Ähnlich wie SES2020 IoTアーキテクチャ・デザインパターン

Ähnlich wie SES2020 IoTアーキテクチャ・デザインパターン (20)

IoTアーキテクチャ・デザインパターン概観
IoTアーキテクチャ・デザインパターン概観IoTアーキテクチャ・デザインパターン概観
IoTアーキテクチャ・デザインパターン概観
 
Real gateway-181124 IoT つくるよ
Real gateway-181124 IoT つくるよReal gateway-181124 IoT つくるよ
Real gateway-181124 IoT つくるよ
 
Io t主要プラットフォーム動向2016dec.
Io t主要プラットフォーム動向2016dec.Io t主要プラットフォーム動向2016dec.
Io t主要プラットフォーム動向2016dec.
 
【de:code 2020】 Azure IoT 最新動向 - クラウドからエッジまで網羅的にご紹介
【de:code 2020】 Azure IoT 最新動向 - クラウドからエッジまで網羅的にご紹介【de:code 2020】 Azure IoT 最新動向 - クラウドからエッジまで網羅的にご紹介
【de:code 2020】 Azure IoT 最新動向 - クラウドからエッジまで網羅的にご紹介
 
[de:code 2019 振り返り Night!] IoT
[de:code 2019 振り返り Night!] IoT[de:code 2019 振り返り Night!] IoT
[de:code 2019 振り返り Night!] IoT
 
IoTでAzureのサービス利用~専門知識なしで始める超入門~
IoTでAzureのサービス利用~専門知識なしで始める超入門~IoTでAzureのサービス利用~専門知識なしで始める超入門~
IoTでAzureのサービス利用~専門知識なしで始める超入門~
 
Io t主要プラットフォーム動向2017feb.
Io t主要プラットフォーム動向2017feb.Io t主要プラットフォーム動向2017feb.
Io t主要プラットフォーム動向2017feb.
 
Io tプラットフォーム主要ベンダ相関図2017mar.
Io tプラットフォーム主要ベンダ相関図2017mar.Io tプラットフォーム主要ベンダ相関図2017mar.
Io tプラットフォーム主要ベンダ相関図2017mar.
 
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
 
IoTで使用されている Bluetoothを利用したビーコン(Beacon)の基礎と事例
IoTで使用されている  Bluetoothを利用したビーコン(Beacon)の基礎と事例IoTで使用されている  Bluetoothを利用したビーコン(Beacon)の基礎と事例
IoTで使用されている Bluetoothを利用したビーコン(Beacon)の基礎と事例
 
Homekit 20140730
Homekit 20140730Homekit 20140730
Homekit 20140730
 
【de:code 2020】 『RE:BEL ROBOTICA レベルロボチカ』の世界と現代をミックス! MR で変わるライフスタイルとワークスタイル ...
【de:code 2020】 『RE:BEL ROBOTICA レベルロボチカ』の世界と現代をミックス!  MR で変わるライフスタイルとワークスタイル ...【de:code 2020】 『RE:BEL ROBOTICA レベルロボチカ』の世界と現代をミックス!  MR で変わるライフスタイルとワークスタイル ...
【de:code 2020】 『RE:BEL ROBOTICA レベルロボチカ』の世界と現代をミックス! MR で変わるライフスタイルとワークスタイル ...
 
SS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさSS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさ
 
Microsoft Build 2020: Azure IoT 関連最新情報
Microsoft Build 2020: Azure IoT 関連最新情報Microsoft Build 2020: Azure IoT 関連最新情報
Microsoft Build 2020: Azure IoT 関連最新情報
 
IoTとは何?
IoTとは何?IoTとは何?
IoTとは何?
 
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
 
インフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hubインフラ管理者に送る あらためての IoT Edge / IoT Hub
インフラ管理者に送る あらためての IoT Edge / IoT Hub
 
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
 
「だけじゃない」ESP32
「だけじゃない」ESP32「だけじゃない」ESP32
「だけじゃない」ESP32
 
これから始める Windows io t core
これから始める Windows io t coreこれから始める Windows io t core
これから始める Windows io t core
 

Mehr von Hironori Washizaki

Mehr von Hironori Washizaki (20)

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
IEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateIEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions Update
 
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
 
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about Architecture
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターン
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターン
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターン
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
 

SES2020 IoTアーキテクチャ・デザインパターン