gummybare

NoSQLをもっと分かりやすく!

Couchbase Connect 2015 (SF) – 米GEのIoTプラットフォームを支えるCouchbaseモバイル

前回に引き続き、Couchbase Connect 2015 in SFで講演されたセッションについて紹介します。
今回はGEのIoTプラットフォームについての紹介です。セッションの様子はこちらから鑑賞することができますが、今回は何故かプレゼン資料に切り替わること無く延々と講演者のMichael Hart氏ばかり映していて、どのスライドでどのコメントしているのかちょっと分かり辛いです。
スライドはこちらから確認できますので、ビデオを鑑賞される方は「この辺のことを話しているのかな?」と想像しながら読み進めて頂ければと思います。

なお、先日開催したCouchbase Live TokyoでもGEの事例とCouchbaseモバイルソリューションについて紹介していますので、参考にして頂ければと思います。

GE at Couchbase Connect 2015

昨年10月にゼネラルエレクトリック社はエネルギー、運輸、航空、ヘルスケアなど40種類にも及ぶIoTソリューション「Predix(プレディクス)」の提供を開始しました。
GEはご存知の通り、医療、環境、重工業,、航空運輸など様々な分野でビジネスを展開するグローバル企業ですが、これら業界向けにセンサーの設置、収集、分析、活用を目的としたサービスがこのPredixです。Predix開発のために1000人ものエンジニアを増員したという記事もありましたので、GEがこのIoTソリューションに非常に力を注いでいるのが分かります。

そしてこのPredixを裏で支えているのがCouchbaseモバイルソリューションです。
サービス提供開始からわずか数ヶ月後の2014年12月にソフトバンクテレコムもこのPredix専用の海運や製造分野向けアプリ開発のライセンスを契約していますので、日本の皆さんも気がつかないうちにCouchbaseのモバイルソリューションを使用しているかもしれません。

それでは、もう少しGEのIoT基盤Predixについてお話したいと思います。プレゼンの最初のほうでコメントしていますが、このIoTプラットフォーム「Predix」はモバイル端末向けに開発しているとあります。Predixについて色々と調べていたところ、IT Leaderの記事「産業分野のAndroid/iOSを目指す、米GEがIoT基盤の外部提供を発表」にこのようなことが書かれていました。

”GEがPredixで目指すのは、産業分野のAndroidやiOSのポジションを抑えること。これが実現すれば、GE自身が、旧来の区分けでいうIT企業になる。”

いきなりスケールの大きな話になってきて逆に驚いてしまいました。
しかもPredix普及のため、既に先に挙げたSoftbankの他、AT&T、Verizon、IntelやCisco SystemsなどIT大手や通信大手とも提携をしています。それだけに留まらずGE、AT&T、Cisco、Intel、IBMの5社から成るThe Industrial Internet Consortiumという組織まで結成してしまいました。PredixがただのIoTプラットフォームではなくGEにとって今後の事業戦略を左右する重大なプロジェクトではないかというのが伺えます。

こんなスケールの大きなプロジェクトにCouchbaseモバイルソリューションを使うことを決断されたこと、それからCouchbaseの米カンファレンスで講演をしてくれたことなど、改めて感激させられます。
Couchbase Live Tokyo 2015にも招待したのですが、あいにくとスケジュールが合わず今回は来日できないということでした。マイクさん、Senior Software Development Managerという大層な役職なのですが非常に気さくな方で本当に良い方でした。

さて、かなり前置きが長くなってしまいましたが、以下からマイクさんのプレゼンでのコメントをまとめたものになります。

今から約1年半前(ということは2013年12月頃ですね)に開発を開始したのですが、当時から電波が繋がらない・安定しない環境でもフィールドエンジニアが作業できるアプリを作るということが前提かつ課題でした。会場の皆さんも耳にする機会があるかと思いますが、今やあらゆるセンサーは大量のデータを生み出しています。そしてこのビッグデータはPredixのクラウドに収集され、アナリティクスで解析され、そしてクライアントのビジネスに役立てるためこのデータを使用します。特に屋外で機械のメンテナンスや修理を行うフィールドエンジニアはこのデータを必要としていますし、電波のない場所で作業を続けることができるソリューションは非常に重要なのです。
(スライドpg8の写真について)石油プラットフォームではセンサーデータを収集し、アナリティクスで分析しています。このような場所では「電波の有無」が非常に重要です。Predixはクラウド基盤のソリューションで、2015年中に外部提供を見込んでいます。そして、このプラットフォーム上で稼動するアプリ開発をして頂ける企業と協力し、顧客が収集したデータをより効率的に活用できるようなサービスを展開していきたいと考えています。
スライドpg7は石油パイプラインのタービンの制御室で作業員が端末を使って作業を行っている様子です。このような制御室は外部から遮断され電波も届かない場所になります。そしてこのセンサーは発生している機械の故障などがあったとしましょう。司令部から問題解決のために作業員を現場に送ります。作業員は修理のために道具を持ちこんで作業を行うのですが、調査内容をオンラインになった時にデータを同期するというわけです。
Predixの最初のリリースは2014年12月でした。開発の当初からオフライン作業の可否が非常に重要であるという認識は持っていました。当時オフライン作業を可能にするソリューションを探していましたが、どこにもそのようなソリューションを見つけることが出来ませんでした。いくつか候補に挙がったものもありましたが、パッケージ化されているものが多く、オフライン機能だけを使うということができなかったのです。そういう理由からプラットフォームを独自で開発することになりました。Rabbit MQを使ったMessage Busでモバイル端末とサーバが同期できるシステムを作ることに成功しました。私たちがデザインした通りの挙動を確認できて満足しています。そしてアプリ開発チームは私たちが開発したプラットフォームでアプリを開発することができました。例えば、Predixのチームの一つに損害評価のアプリ開発を行うチームがあります。例えば南東の米電力会社がハリケーンの災害状況について調査しないといけません。ハリケーンでダメージのあった州に他の州の電力会社から救援部隊を派遣する必要があります。そこで現地救援部隊にモバイル端末を支給し、電力線のダメージ状況の調査と修理を行います。自然災害のため現地ではインターネットを使用することができませんのでオフラインで作業する必要があります。そしてオンラインになった際にデータをサーバと同期して、作業を迅速かつ効率的に行い、電力会社は災害の状況をより早く把握することができるのです。そして優先度の高い災害に対応することも可能になります。
Predixの開発で学んだことがいくつかあります。初めの頃私たちはモバイルのデータをキャッシュで保存していました。オフラインの時はキューにメッセージが残り、オンラインになった時にサーバと同期する仕組みでした。そこにソリューション開発のチームからローカルに保存できるソリューションを要望してきました。データがどのくらいの期間キャッシュされるかをコントロールしたかったのです。これはかなり重要な点でした。次に学んだのは開発を単純にするためにもっと柔軟なデータベース(シンプルなデータモデル)が必要ということでした。Predixを独自で開発することが決まったとき、GEでも優れたエンジニアがプロジェクトにアサインされました。それは、このシンプルな開発をすることが非常に困難だったからです。また、それぞれのエンジニアは担当している開発以外の機能開発を担当することができないという理由からでした(プラットフォーム上の各サービスが各業界向けとかなり使用方法が異なるという理由があります)。コンフリクト管理の機能はPredixでいえば特に必要ありませんでした。何故なら電波の無い場所で作業する作業員向けのソリューションなので、仮にコンフリクトが発生するとすれば、作業員と同じ場所で作業しているフィールドエンジニアの操作による確率が高いからです。ただ開発チームにとっては今後更に複雑な機能追加をすることが予想されるので、コンフリクト管理も非常に重要ではありました。

以下はスライドpg11からの引用です。

– One day to decide to make the switch (※既存からCouchbase Liteへの移行)
– PoC in 5 days
– Migrated to Couchbase Mobile 90 days

このスライドについて下記をコメントしています。
2014年12月のリリース後、翌年1月にチームが結成されました。そして上記で挙げたレッスンをどう今後の開発に生かすかということについて話し合いをしました。しかし、現状のままでは改善が難しいので他の選択しを模索することになりました。そしてCouchbase Liteに辿り着いたのです。私のチームが集まり1日掛けてCouchbase Liteについて調査しました。私たちもJSONを使っているので、Couchbase Liteが私たちのソリューションにピッタリだということはすぐに分かりました。そして5日かけて検証を行い、実際にCouchbase Liteを連携してみて動作確認をしました。そしてオフライン操作が可能なことを確認しました。検証の結果が良好でしたのでCouchbase Liteで開発を進めることを決断し、データの移行を30日で行いました。そして最初のバージョンの機能に加え、新しい機能も追加することができました。更に、もうオフラインの同期について心配する必要が無くなったので、エンジニアを新しい機能開発など他の作業に当たらせることができました。(※スライドとプレゼンでのコメントで移行の日数が異なりますが、移行自体は30日でその後機能追加や微修正なども含めると全体で90日かかったのではないかと思います)
ITの発展を遡ると、Webが出て来た頃はWebサイト作成の波が押し寄せました。その後エンタープライズ向けのサービスが始まりました。モバイルでも同じことが言えます。消費者向けのアプリがアプリストアで供給され開発者はアプリ開発の方向に向かいました。現在、それがエンタープライム向けのモバイルアプリ開発に差し掛かっていると思っています。GEはエンタープライズ向けのモバイルアプリ開発を始めたばかり、そのことをとても嬉しく思っています。そして他の企業でも恐らく同じ状況ではないかと思っています。

以下は各スライドに対する解説です。クライアントはどちらもGOですね。
pg12:ビフォー
“Card”はフロントエンドの開発システムで、Contextと一緒にGEが独自に開発しました。
そしてオフラインとなっているところはMessage Busを使っていました。

pg13:アフター(Couchbase Lite)
Couchbase Liteを代用することで全体のアーキテクチャがかなりスッキリしました。
図の通り、Couchbase Liteの上にGEの開発したCardとContextを乗せてローカルのソリューションを開発しています。
ローカルのデータはSync Gatewayを通してCouchbase Serverへ同期される仕組みです。

リクエスト/レスポンスが重要なWebの世界では、RESTを使った開発をする場合、発想の転換が非常に重要です。レプリケーションや分散データベースを意識する必要があります。しかし、一度そのことに気がつくと開発は非常にスムーズになります。Couchbase Liteを使うとローカルにデータを保存するので、パフォーマンスも改善されます。オンラインになるのを待ってデータの読込みが必要なくなるのです。そしてCQRSから学んだのは読込みと書込み処理を分けるということでした。これはCouchbaseモバイルソリューションと非常に相性の良い方法でした。例えば、鉄道の車庫で作業を行うエンジニアは車両の交通整理を行うシステムですが、このメインフレームは恐らく1980年代に作られたものと思います。エンジニアがモバイル端末でどの車両がどのレールに配置されるか指示を出しても、バックエンドのシステムが承認しないと実行されません。どのようにしているかと言うと、この交通整理は複数のエンジニアによって行われていますので、サーバに情報が送られて承認されるまでモバイル端末側にある車両情報を持っているドキュメントを更新しないようにします。この方法は非常に上手く行き、この事例で言えば非常にマッチしていました。そのため「Offline Firstはモバイルファースト」と捉えています。エンタープライズ向けのモバイルアプリを作る場合、バックエンドとの同期も考慮しなければいけません。そして端末のデータのセキュリティも非常に重要です。オフラインでもログインして作業できなければいけません。特に災害時の作業の例を見ても、いかにオフライン作業を考慮に入れたモバイルアプリ開発がいかに重要か分かるかと思います。最初のリリースの後Couchbase Liteを導入することになって現在に至りますが、このオフラインでも動作するアプリの開発は非常に難しいです。そのためサポートも必要になります。Couchbase Liteはオフラインアプリの開発を始めるのにとても良いスタートラインだと思います。

以上がマイクさんのプレゼンをまとめたものになります。
CouchbaseモバイルソリューションはIoT分野で非常に注目を集めていますが、いち早く取り入れたGEの行動力と決断力には驚かされますね!IoT関連のセッションについてCouchbase Japanの河村さんがブログで紹介していますので、ぜひこちらも参考にしてください。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

情報

投稿日: 2015年9月7日 投稿者:

ナビゲーション

%d人のブロガーが「いいね」をつけました。