10. Things Insights Actions
Store data
Integrate with Business process
Stream processing and
rules evaluations over data
Provision
and send
data from
devices to
Cloud
Device Management
Visualize data and learnings
Configure and control
Cold / Hot stores
Intelligent
processing
on edge
controlled by
cloud
11. Things Insights Actions
Store data
Integrate with Business process
Stream processing and
rules evaluations over data
Provision
and send
data from
devices to
Cloud
Device Management
Visualize data and learnings
Configure and control
Cold / Hot stores
Intelligent
processing
on edge
controlled by
cloud
12. Azure IoT Reference Architecture
Azure IoT Technologies &Services
Various IoT Solution
IoT Device
Azure IoT Device SDK
IoT Application
Various OS, Various MPU
IoT Device
Azure IoT Edge
IoT Application
Linux, Windows
Sensors
Sensors
IoT Devices
IoT Edges
Other
Protocols
Data Transformation
Condition Detection
AI Invocation
Site
IoT Cloud
IoT Hub
Stream Analytics
Function
Management,
Setting,
Command
Event Grid
TSI Event Source Blob Storage
(Data Lake)
TSI Environment
Digital Twins
LoB Apps
Machine Hot Path
Machine Cold,
Warm Path
Warm Path
CRUD
Device Operation
スマートビル/オ
フィス エネルギー 農業
リテール
製造業 ヘルスケア
物流・交通
Machine Learning SignalR
Identity, Security, Monitor,…
Device Provisioning Service
Event Hub
14. デバイスのクラウドへの接続 – Azure IoT Hub
HW
Resource
大
小
Microsoft Azure
Any Device!
Azure IoT Edge
(Docker base)
Azure IoT Device SDK
Azure Embedded C SDK
15.
16. Hardware
Operating
System
Cloud
Security
Ongoing OS &
Security Updates
Multiplexed I/O
SPI
I2C
UART
I2S
TDM
PWM
GPIO ADC
ARM Cortex-M
for real time
processing
Network
Connection
WiFi in first chips
FLASH
≥ 4MB
SRAM
≥ 4MB
ARM Cortex-A
optimized for
low power
Microsoft Pluton
Security
Subsystem
FIREWALL
FIREWALL
FIREWALL
FIREWALL
FIREWALL
FIREWALL
17.
18. Embedded
C SDK
Application
Code
Core MQTT
Toppers RT Kernel
middleware
MQTT abstraction
C Runtime
Toppers RT
kernel APIs
Hardware TPM
Defender Agent
Device Update Agent
Embedded C SDK
Azure IoT Device SDK
for C
Wrapper for Rust Wrapper for Rust
Rust Code Rust Code
Embedded C SDK
Wrapper for mruby
mruby Code
30. Energy Ontology of Digital Twin
Packages
• Core
• Wires
• Generation
• LoadModel
• Topology
• Measurement
• Outage
• Protection
Defined by XML
https://github.com/smart-data-models/dataModel.EnergyCIM e
Defined by TOML format
It seems that this repository is being updated frequently.
Reference) https://www.kth.se/social/files/58e24224f276542ade40bfa6/cim-for-dummies.pdf
https://github.com/Azure/opendigitaltwins-energygrid
DTDL ontology for Energy Grid
IEC61970-301 CIM
• UML drawing makes model easier to understand
• Current model – there are missing definitions
Improvements are needed to use the current DTDL in
real Project
By ADT Explorer
By UML notation
Galaxy?
例えば、小型組込み機器向けに提供している Azure RTOS、ThreadXベースのRTOSですが、Embedded C SDKが組み込まれてます。なので、容易にIoTサービス群と連携するIoTアプリが開発できるわけです。
他に、最近、Free RTOS向けにもEmbedded C SDKを使ったMiddlewareの提供も開始してます。
次、Azure Sphereです。もう市場投入してから3年以上経つんですが、IoT機器のセキュリティを担保するには、アプリだけではだめで、MCU、OS、Serviceを総動員しないとだめですよ。という事ですね。左の図は、MCU内の構成なんですが、Plutonというのがセキュリティのかなめの部分です。他に、Cotex-Aを1個、Cortex-Mを二個持ってます。ここでもEmbedded C SDKを使ってAzure IoTテクノロジーセットに接続できます。
深く検証したわけではないので、実際にできるかどうかは分かりませんが、Toppersのリアルタイムカーネル、Cortex-Mの方で使えるんじゃないかなと。あと、Slackの投稿でRustが盛り上がってましたが、Cortex-Aの方は、Linuxが動いてたり、まぁ、Cortex-Mの方も、Rustのプログラムが動くんじゃないかなと思います。開発環境次第かな。
2年前、マイクロソフトはAzure Digital Twinsというサービスを世に出しました。この真ん中の部分、今話していた、概念モデルがハマります。
多分、データモデリングとか、概念モデリングとか知らない人たちからすると、「何このサービス?」って感じなんだと思うんですが、前職、その辺のプロだったので、へ~こういうサービスをマイクロソフトが作って提供するんだ・・・と衝撃を受けました。ある意味、前の会社を辞めてマイクロソフトに移ったきっかけは、概念モデリング重要だからやろうぜと、全社に普及しようとして失敗したというのも、理由の一つだったので、20年近くの時を経て、リベンジの時、キター!って感じです。
間違いなく、今後、こういう、オントロジーというか、データモデルというか、概念モデルを使いこなせるスキルの重要性は増してきます。ただ、過去の経験からこういったモデリングスキルを習得するのは滅茶苦茶難しいことも判っているので、その辺支援する様なビジネス立ち上げようかな、なんて今、思ってるところです。
Azure Digital Twinsのモデルは、JSONベースのDTDL(Digital Twin Definition Language)というのを使って定式化してくんですけど、まぁやっぱり図表示できたほうがいいなと、なら、もう、UMLでしょってことで、対応はこんな感じでって最近やってます。
幾つかチュートリアルをgithubで公開しているので参考にしてみてください。オブジェクト指向のクラスとインスタンスの関係を念頭に考えてもらうと判りやすいかもですね。あとは、インスタンス(Azure Digital Twinsでは、インスタンスの事をTwinと呼んでますが)instance間のRelationshipも含めたビジネスシナリオのダイナミクスの表現とか。
ちなみにこんな感じのソリューションを造るチュートリアルです。
Azure Digital Twinsが出てきた当初、ほんとに、私が昔やってたShlaer Mellor系の概念モデルと同じなの?という不安もあったんですが、電力系のCIM(Common Information Model:今はこういうモデル使った標準があるんですね)、オントロジーから作ったDTDLとかあるので、間違いなく、私が昔習得している技法でやれるなと今は確信を得ています。ビジネスで扱うエンティティを整理するのにこんなにぴったりフィットするとは、実は驚いていたりします。昔やっていたリアルタイム系の制御ソフトウェア開発でのShlaer-Mellor法での概念モデリングより、ビジネスエンティティ、ビジネスとテクノロジーのマッピングで、概念モデリングは威力を発揮するのではないかと、今感じているところです。