Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
公開用_WebDBForum2018_テクノロジーショーケース_業務IoTストリーミング基盤.pdf
Search
Junki Mano
September 14, 2018
Programming
1
270
公開用_WebDBForum2018_テクノロジーショーケース_業務IoTストリーミング基盤.pdf
Junki Mano
September 14, 2018
Tweet
Share
More Decks by Junki Mano
See All by Junki Mano
ソフトウェアアーキテクトって何やるの? ~知っておくと役立つ考え方を共有します~ | 技育祭2022秋
laqiiz
3
2.1k
Goで工場を制御する要であるPLCにアクセスする / go-plc
laqiiz
0
2.3k
Abstract Sentinel
laqiiz
0
93
CNCF
laqiiz
1
91
Local_Kubernetes.pdf
laqiiz
1
89
Abstract Helmfile
laqiiz
1
87
Abstract GitOps
laqiiz
1
160
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
4
1.4k
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
350
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
100
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
CSC509 Lecture 12
javiergs
PRO
0
160
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
340
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
260
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
EventSourcingの理想と現実
wenas
6
2.3k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Documentation Writing (for coders)
carmenintech
65
4.4k
What's in a price? How to price your products and services
michaelherold
243
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
How GitHub (no longer) Works
holman
310
140k
Navigating Team Friction
lara
183
14k
Automating Front-end Workflow
addyosmani
1366
200k
Into the Great Unknown - MozCon
thekraken
32
1.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Site-Speed That Sticks
csswizardry
0
24
Agile that works and the tools we love
rasmusluckow
327
21k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Transcript
フューチャー社における IoTシステム構築の 事例紹介 テクノロジーショーケース Future株式会社 Mano Junki ~ ファクトリーからモビリティへ ~
WebDB Forum 2018 9/14(金)
◦ フューチャーにおけるIoTシステムの事例紹介 ◦ 設計~実装を通して得た、IoTシステムの面白み、 ツラミ、そしてIoTシステムの魅力についてお話し ます ◦工場IoT、モビリティIoTの順に紹介します 本日お話すること
真野 隼記(まの じゅんき) * 2009年フューチャーアーキテクト入社 * 神戸大学 電気電子工学卒 * クラウド、IoT、Golangがメインのエンジニア
ポエマー目指して投 稿してます @laqiiz
フューチャー株式会社 設立 1989年11月28日 (創立30周年!) 社員数 1,493名 (2016年12月) 事業 内容 ・ITコンサルティング&サービス事業
・ビジネスイノベーション事業 指標 売上高:362.6億円 営業利益:44.5億円
None
IoTといえば 一般的に思い当たるのが…
IoTといえば 一般的に思い当たるのが… スマートゴミ箱 スマート時計 スマート鍵 スマートホーム 色々ありますが、生活をスマートにする製品群
モビリティ 店舗 工場 商品 消費者 従業員 漁業 その他 農業 漁業
馴染みが薄いであろう領域を中心に お話します
グローバルで100超の拠点 生産性を デジタルの力で30%アップ 工場IOT SMART FACTORY
工場IoT エッジサイド
スマートファクトリーIoT概観 収集 加工 蓄積 分析 通知 分析 Cloud ◦ 工場内の各センサーデータを収集・分析し、生産性や品質向上に役立てる仕組み
◦ 既存の製造設備をコネクテッド化するのが第一歩
収集 加工 蓄積 分析 通知 分析 Cloud データ粒度 小 大(サマリ)
データ発生源がもっとも複雑
よくあるWebアプリケーションと異なる点① ◦ 要求/応答でコンテンツを返すのではなく、データをとにかく受け付 け後で処理するという点 = サーバサイドで対応する必要があります クライアント =ブラウザなど サーバ クライアント
=IoTデバイス サーバ よくあるWebアプリケーションの簡易図 IoTシステムの簡易図 Request/Response Streaming Processing
よくあるWebアプリケーションと異なる点② ◦ 欲しいデータを効果的に取得する必要がある点 ◦ センシングが物理的に可能か、サンプリング間隔などの問題 クライアント =IoTデバイス サーバ センシング センシング
よくあるWebアプリケーションと異なる点③ ◦ 工場の設備はPLC( Programmable Logic Controller)と呼ばれる 制御装置で作成されていることが多いです ◦ ある程度オートメーション化された加工情報を取得≒PLCからデータ を取得するということ
PLCの例 PLC
PLCからデータを収集するとは.. ◦ PLC(Programmable Logic Controller) ◦ リレー回路の代替装置として開発された歴史 …まずは業務用のマイコンのような認識でいると良いのでは? ◦ PLCのレジスタに加工記録が残っている
値段はピンきりですが、1台5万円程度~
PLCからデータを収集するとは.. ◦長さ、厚み、ガス圧、バーナー温度etc. ◦センサーがPLCにシリアル接続されていて、その値がPLCのレジス タに格納される センサー カメラ
立ちはだかる壁~PLC編~ PLCからどうやってデー タ取れますかね? (HTTP、MQTTとか?) シリアル、Ethernet CC-Link、EtherCATなど がありますが、どうしま しょうか? わたし 工場エンジニアさん
CC-Link、EtherCAT調べた ◦ 工場用のフィールドNW規格である ◦CC-Link は10Mbpsの転送速度を選ぶと、100mまで対応できるといった規格 ◦正確には、CC-Linkにも種類があり、Ethernet上に構築するものもあるらしい ◦ 物理層・データリンク層のレベル
OSI参照レイヤーの 物理層から違う!
こぼれ話その② 汎用的なEthernetが 良いのでは?通常のLAN と併用できますし そもそも、PLCの中には Ethernetに接続できない ものがある わたし 工場エンジニアさん
接続できなかったら IoTができない…
古いPLCにはEthernetポートが無 いらしい ◦手段としては、Ethernetカートリッジを購 入するか ◦当然ながら素直に新しいものを買えという話も…
サーバへのデータ送信 PLC上ではどんな言語が 動かせますか?HTTPが 話せればよいのですが… わたし CとかJavaは動かせない FTPかSMTPで転送するか ベンダーさん
C言語、動かない? ※ラダーなら動く ラダーについての説明は割愛
PLCからのデータ取得は困難 ◦ いわゆる汎用型言語が動かせないため Web系のエンジニアリングがしにくい ◦FTP,SMTPは非常に制限された設定しかできず、 また、専用ツールからしか設定できない ≒Infrastructure as a Codeは夢のまた夢
【参考】標準化の流れ ◦ 独国のIndustory 4.0の流れを受けて加速 ◦ OPC-UA, ORiN, EdgeCrossなど、標準プロトコル、 標準仕様、標準化コンソーシアムが多数 ◦
TCP, シリアル上に通信プロトコルを重ねる場合と、 SOAP (*1) on HTTP で構成されていることが散見 ※ 簡単にいうと、RESTのXML版でAPI規格(OpenAPI-Specification)もXMLで記載できる
最終的には ◦PLCはEthernetに接続(IPを付与) ◦FTP転送機能でデータ収集
工場IoTの構成例 センター PLC PLC FTP HTTP ◦ FTPで直接、クラウドなどのサーバにデータを転送するのではなく、 中継サーバを設置 中継サーバ
PLCへのデータ書き込み ユースケース: 工場作業者が、自分でマニュアルを見ながら設備の設定 を入力する運用を無くして、入力の手間と間違えを無く したい 実現方法: 多くの設備では独自プロトコルが存在。 例として、業界標準の一つであるMCプロトコルがある
MCプロトコルについて ◇【例】要求伝文 500000FFFF03000C001000010400002C0100A80300 ◇ 【例】応答伝文 D00000FFFF03000800000001000A006400 Socketでこういう電文を 送ることでレジスタに かきこみでる ※TCP上に構築された、独自HTTPといった具合のプロトコル
工場IoT サーバサイド
IoTサーバサイド ◦ 3000設備が1[kb]程度のメッセージを毎秒3回送信 ◦ 高負荷に耐えられる仕組みが必須 ◦ 拠点側からのリトライなどは期待できない …あまり手を入れたくない
処理モデル ◦リクエスト・レスポンス型 ◦バッチ型 ◦ストリーミング型
処理モデル トレードオフ ◦ 応答性能(レイテンシ) ◦ コンピュータ資源 ◦ 正確性
IoTシステム ◦ 人間が待っているわけではないのでリクエスト・レス ポンスである必要はない ◦設備の故障検知など、なるべく早くデータは処理したい ので、バッチでは応答性能が厳しい場合がある → ストリーミング型の処理モデルの採用へ
キューイングシステムの導入 いったんキューで受け付け、そのあと順次処理する 加工や分析 永続化 通知・可視化 ストリーミング処理
例:OSSプロダクトによる構成 いったんキューで受け付け、そのあと順次処理する 加工や分析 永続化 通知・可視化 ストリーミング処理
データ処理パイプライン ◦ 生データをパースし “意味付け”、目的別に分類、品質 や稼働状況などを取得するといった多段処理へ 生 デ ー タ (
バ イ ナ リ ) 品 質 情 報 稼 働 状 況 受信 パース後 品質 元データ 稼働 元データ
キューイング後の流量 ◦ キューイングからの取得件数を調整することで下げる ことが可能(≒レイテンシが犠牲になる) ◦ 同一タイミングで送信されるデータが多いときはフリ ーランチな引き換えになる 入力データ 3件分一括で取得して処理 ≒必要なコンピュータ資源を下げ
られる→運用費用を下げられる
データの蓄積について ◦ 時系列データになる ◦ もともとより流量は下がっているとはいえ、 分散型のKVSなどに格納するのが基本
【参考】可視化・品質情報 ◦ 多くのメトリクスから洞察し生産現場へ フィードバック
工場IoTまとめ
まとめ ◦ 設備機器からの収集部分に壁があり …規格のオープン化・標準化により一層Webの世界との融合ができることを期待 ◦ サーバサイドに届いてしまえばいつもの世界 …公開されているプラクティスも多く、慣れた世界 ◦ 工場IoTのカバーする領域は広い!(面白いところ) …現実世界とデジタル空間をつなぐ楽しみ
現実の世界を1 秒以内にデジタル化 対象とする自動車は 数N万台 モビリティIOT DIGITAL TWIN
モビリティIoTとは? ◦ 移動体、多くは自動車などを指します ◦ 車をインターネットに繋ぎ様々なサービスへ展開 ◦ ◦ 都市交通・物流に対してよりよくしていきたい
工場IoTとの違い ◦ とにかく動く、しかも早い - 迷ったら安全側に倒すしかない。また、位置情報が宝 ◦ 接続数が多い - 物流業者のトラックだけでも桁違い -
家庭乗用車などを含めると、数千万台規模 ◦ 車種が多い - 自動車メーカ毎に対応が必要
一方、システム構成は ◦ 大枠のシステム構成は似通ってくる ◦ 接続先が工場から各モビリティに変わる 加工や分析 永続化 ストリーミング処理
要件が厳しくなりがちな点 ◦ モビリティに対する通知や制御をなるべく 早く行いたい 例)運転手への注意喚起などなど →200~300[ms] で実施”したい”など (*1) ※1) あくまで要望ですが、これを以下に早くするかで業界で競争が進んでいる領域
データの振り下ろし ◦ モビリティ側でグローバルIPを持ちたくない …IPv6ならという話もあるが、セキュリティやセンター側の保守管理的にも ◦ なるべくリアルタイムで処理したいので、ポーリングは避けたい ◦ サーバサイドでプッシュ通知したい →MQTT(AMQP)プロトコルの活用へ
MQTTを活用した通信 ◦ モビリティ側はMQTT のpublisherにもsubscriber にもなる ◦ 正直、まだまだ研究のしどころがある分野 MQTT publish MQTT
subscribe MQTT ブローカ 加工や 分析
検討テーマ ◦ MQTTブローカーのスケーラビリティの弱さ …そんなに簡単にスケールしない ◦ MQTT上で通信品質を管理するスタックの構築 …メッセージの信頼性(QoS)、順序性、データ欠損、遅延配信への対処などなど ◦ 移動や、Wifi, 3g/4g/5g
など回線の切り替えのときの再接続への考慮 …TCPハンドシェイク、TLSハンドシェイクをする必要 …QUIC(UDP上に構築されたGoogleが標準化を目指しているプロトコル)など?
位置情報を用いたサービス ◦ リアルタイムなトレーシング ◦ 指定のエリアに入ったら 広告をプッシュするなど
桁違いのデータ量 ◦ zip圧縮後、5[TB]/日 のデータが発生 ◦ もはや分散処理しなければどうしようもない ◦データ構造、アルゴリズム、コンピューティン グの総合格闘技
データのチャンク ◦ ひとかたまりで分析する粒度は、トラジェクト リーという粒度 移動開始~停止までの粒度。 ◦ 時間で単純に処理できないため、どの程度停止 したら1トラジェクトリーとしてみなすかは試行 錯誤中
モビリティIoT まとめ
モビリティIoTまとめ ◦ まさに国際競争の最前線 ◦ AIだけではなく、IoT領域への期待値がか つてなく高まっている ◦ モビリティという特殊性、大量のデータ処 理を行うには、広く深い知見が必要
全体まとめ
全体まとめ ◦ デバイス、通信、サーバサイドなど幅広い知識が必要 ◦ 対象はユーザではなく現実世界そのもの ◦ 知らない世界ばかり、楽しい
質疑応答