IoT ALGYAN 6 周年記念イベント
30年来学んできた中で
IoT 実践で役立っている
基礎技術
マイクロソフトコーポレーション
WCB CSU IOT
太田 寛
Twitter: @embedded_george
自己紹介
• マイクロソフト以前
• 小学生 ~ 電子パーツ買って、電子工作
• 中高生 ~ TK80、LKIT16とか、マイコンキットに憧れつつ、各種占い、中国拳法に興味 - 高校時代の部活は
弓道
• 大学時代 ~ 実験物理屋で、装置設計、計測用HW設計・作成、計測アプリ開発
• 前職時代 ~ OA機器の制御アプリ開発、次世代製品アーキテクチャ設計、
Shlaer-Mellor 法(Executable and Translatable UML)によるモデル駆動型開発普及・啓発
• マイクロソフトで
• 組込み系の製品・開発技法のエバンジェリスト
• + Windows、Windows Phone のアプリ開発のエバンジェリスト
• + クラウドを使ったアプリ開発のエバンジェリスト
• ⇒ IoT にフォーカスした技術支援職 ☚ 今ここ
5年前に使っていたPPTでのIoT 紹介
膨大な Update
2020/6/1 ~ 2021/5/Eで、
なんと 約 70 件!
キャッチアップし続けて、常に最先端技術の導入を支援するのは、結構大変だよね…
https://azure.microsoft.com/en-us/updates/?query=IoT&Page=1
IoT から Digital Twins へ
新規技術に追従し、キャッチアップしていくには
• 概念を理解する
• その技術が出てきた背景は?
• 構成要素、扱う対象は?
• 他のサービス・技術との関係は?
• 背後の仕組みの見通し
• 理解できれば…
• キャッチアップのスピードアップ
• 今後こうなっていくだろうという見通しがつくので、更新があってもついていける
• …という事は…
• プログラミング言語とか、CPU構造とか、ネットワーク技術も大事だし、必要だけど…
“概念をいち早く理解” できる技術が重要
Azure IoT Hub - “デバイス”って何?
私の理解は…
• デバイスは論理的な存在
• 何をデバイスにするかは、ユーザーの自由
IoT Device
- D2C messages
- C2D messages
- Direct Method
IoT Edge Module
- D2C messages
- Direct Method
1 *
Device
*DeviceId
- Security Token
- Connection Status
{complete,disjoint}
IoT Edge
- Deployment
* child
0..1 parent
IoT Hub
* Name
- Scale
1
*
Azure Subscription
* Subscription Id
1
*
Device Twins
- Tag
- Desired Properties
- Reported Properties
- Plug & Play Model Id {complete,disjoint}
知りたいことは、“センサーの値”ですか?
設置している目的
• 自宅の仕事部屋の環境が知りたい
• BME280の温度/湿度/大気圧 ⇒ 部屋の温度/湿度/大気圧
• お客様向けのAzure IoT デモ環境でもあるわけだが…
本当に知りたいことは、シナリオによって決まる
何の温度?何の振動?、…
“部屋”についても、工場、売り場、医療、教育、
…、で、システム全体から見た位置付は変化する
シナリオ上の構成と、機械の構成は一致しない
温度、湿度、大気圧を複数の機器で検知する場合
IoT の文脈 - 複数のデバイスが挙げてくる計測値
シナリオ上の文脈 - 一つのエンティティに関連する
複数の特徴値
“概念をいち早く理解”するための技術 ⇒ モデリング
データモデリング
• 空間的な構造モデルではなく意味上の構造モデル
ドメイン(問題領域)分割
• 本来無関係なものは分割して扱う
抽象化
• フォーカスしている問題領域以外の情報は捨てる
一般化
• 実装技術の解決策を自分の問題に当てはめてみる
ドメイン間の対応付け
• 異なるドメインに属する一見無関係な要素を
クラスレベルで対応付ける
実際に使って試しながら、自分の頭で考えながら…これ重要!
…と、ここまで説明してきて、なんなんですが…
本日紹介した、モデリングに関して、実際にトライしてみたい人向けの、まとまったコン
テンツは、今現在、ございません。
• だって、インターネットが普及する前の方法論ですから…
• Shlaer-Mellor 法をベースにしているとはいえ、太田がこれまでの実践を経て、アレンジした活用方法になっ
ているもので…
とはいえ、Azure Digital Twins の普及においては、太田としてはどうしても触れざるを得
ない話なので、モデリングに関する話題を含むサンプルをGithubから公開予定
https://github.com/ms-iotkithol-jp?tab=repositories

30年来真名んできた中で IoT 実装で役立っている基礎技術

  • 1.
    IoT ALGYAN 6周年記念イベント 30年来学んできた中で IoT 実践で役立っている 基礎技術 マイクロソフトコーポレーション WCB CSU IOT 太田 寛 Twitter: @embedded_george
  • 2.
    自己紹介 • マイクロソフト以前 • 小学生~ 電子パーツ買って、電子工作 • 中高生 ~ TK80、LKIT16とか、マイコンキットに憧れつつ、各種占い、中国拳法に興味 - 高校時代の部活は 弓道 • 大学時代 ~ 実験物理屋で、装置設計、計測用HW設計・作成、計測アプリ開発 • 前職時代 ~ OA機器の制御アプリ開発、次世代製品アーキテクチャ設計、 Shlaer-Mellor 法(Executable and Translatable UML)によるモデル駆動型開発普及・啓発 • マイクロソフトで • 組込み系の製品・開発技法のエバンジェリスト • + Windows、Windows Phone のアプリ開発のエバンジェリスト • + クラウドを使ったアプリ開発のエバンジェリスト • ⇒ IoT にフォーカスした技術支援職 ☚ 今ここ
  • 3.
  • 4.
    膨大な Update 2020/6/1 ~2021/5/Eで、 なんと 約 70 件! キャッチアップし続けて、常に最先端技術の導入を支援するのは、結構大変だよね… https://azure.microsoft.com/en-us/updates/?query=IoT&Page=1
  • 5.
  • 6.
    新規技術に追従し、キャッチアップしていくには • 概念を理解する • その技術が出てきた背景は? •構成要素、扱う対象は? • 他のサービス・技術との関係は? • 背後の仕組みの見通し • 理解できれば… • キャッチアップのスピードアップ • 今後こうなっていくだろうという見通しがつくので、更新があってもついていける • …という事は… • プログラミング言語とか、CPU構造とか、ネットワーク技術も大事だし、必要だけど… “概念をいち早く理解” できる技術が重要
  • 7.
    Azure IoT Hub- “デバイス”って何? 私の理解は… • デバイスは論理的な存在 • 何をデバイスにするかは、ユーザーの自由 IoT Device - D2C messages - C2D messages - Direct Method IoT Edge Module - D2C messages - Direct Method 1 * Device *DeviceId - Security Token - Connection Status {complete,disjoint} IoT Edge - Deployment * child 0..1 parent IoT Hub * Name - Scale 1 * Azure Subscription * Subscription Id 1 * Device Twins - Tag - Desired Properties - Reported Properties - Plug & Play Model Id {complete,disjoint}
  • 8.
    知りたいことは、“センサーの値”ですか? 設置している目的 • 自宅の仕事部屋の環境が知りたい • BME280の温度/湿度/大気圧⇒ 部屋の温度/湿度/大気圧 • お客様向けのAzure IoT デモ環境でもあるわけだが… 本当に知りたいことは、シナリオによって決まる 何の温度?何の振動?、… “部屋”についても、工場、売り場、医療、教育、 …、で、システム全体から見た位置付は変化する シナリオ上の構成と、機械の構成は一致しない 温度、湿度、大気圧を複数の機器で検知する場合 IoT の文脈 - 複数のデバイスが挙げてくる計測値 シナリオ上の文脈 - 一つのエンティティに関連する 複数の特徴値
  • 9.
    “概念をいち早く理解”するための技術 ⇒ モデリング データモデリング •空間的な構造モデルではなく意味上の構造モデル ドメイン(問題領域)分割 • 本来無関係なものは分割して扱う 抽象化 • フォーカスしている問題領域以外の情報は捨てる 一般化 • 実装技術の解決策を自分の問題に当てはめてみる ドメイン間の対応付け • 異なるドメインに属する一見無関係な要素を クラスレベルで対応付ける 実際に使って試しながら、自分の頭で考えながら…これ重要!
  • 10.
    …と、ここまで説明してきて、なんなんですが… 本日紹介した、モデリングに関して、実際にトライしてみたい人向けの、まとまったコン テンツは、今現在、ございません。 • だって、インターネットが普及する前の方法論ですから… • Shlaer-Mellor法をベースにしているとはいえ、太田がこれまでの実践を経て、アレンジした活用方法になっ ているもので… とはいえ、Azure Digital Twins の普及においては、太田としてはどうしても触れざるを得 ない話なので、モデリングに関する話題を含むサンプルをGithubから公開予定 https://github.com/ms-iotkithol-jp?tab=repositories

Editor's Notes

  • #7 確実な方向性として、Citizen Developer が、都度都度の目的に応じて、やりたいことができる。かえって細かいことが気になるプロの技術屋の方が混乱するのでは?
  • #8 競合する似たようなサービスを比較する場合、こういうモデルを作ると、
  • #10 データモデリングは、空間的な構造のモデルではなく、意味上の構造のモデル 英語だと、Abstraction この言葉の正しい日本語訳は、“抽出”なんじゃないかとずっと思っている 特にクラウドサービスは、サービス作成・設定で、何故この項目があるのかを考えることが重要