視点: ビッグデータとデータアナリティクス

本章はデータに関する章だった。計算機科学で現在最も注目されているのはビッグデータ (big data) またはデータアナリティクス (data analytics) と呼ばれる分野であり、ビッグデータとコンピューターネットワークにどんな関係があり得るかという疑問がここから自然に生まれる。一般向けの文章で「ビッグデータ」という単語は特に正確な定義を持たずに使われるものの、実用上の定義は非常に単純に表せる: 物理システムあるいは人工システムを監視することで収集されるセンサーデータをビッグデータと呼び、機械学習と呼ばれる統計的手法でビッグデータから洞察を得ることをデータアナリティクスと呼ぶ。収集されるデータは膨大になる場合が多いために「ビッグ」データと呼ばれる。ビッグデータとデータアナリティクスの発展はネットワーク分野にどんな影響を及ぼすだろうか?

ナイーブに考えると、ネットワークは意図的にデータの種類を気にしないように設計されるので、ビッグデータとデータアナリティクスがあってもネットワークは何も変わらないと考えるかもしれない。つまり、収集したデータをネットワーク越しにどこかへ送信すれば、ネットワークは何の問題もなくそのデータを宛先まで届ける。転送に必要な帯域を抑えるためにデータを圧縮することはあるかもしれないが、その点を除けばビッグデータは通常のデータと何も変わらない、と。しかし、この考えは二つの重要な要素を見落としている。

見落とされている一つ目の要素は、確かにネットワークはデータの意味 (ビット列が何を表現するか) を関知しないものの、データの量はネットワークの懸念事項となる事実である。特に、アップロード速度よりもダウンロード速度を優先するように作られているアクセスネットワークでは問題が顕著になる。ダウンロード速度を優先する設計はエンドユーザーに向かって映像を届けるユースケースが支配的な場合には理にかなっている。しかし全ての車、全家庭の全ての家電、都市中を飛び回る全てのドローンが一斉にデータをネットワークに送信する (クラウドに自身のデータをアップロードする) 世界では状況が反転する。そこまでいかなくても、自動運転車IoT (Internet of Things, モノのインターネット) 機器が生成するデータがネットワークを圧倒する可能性はある。

この問題を第 7.2 節で説明したような圧縮アルゴリズムを使って解決する方法を考えることはできるものの、ネットワークエッジで実行される新しい種類のアプリケーションを既存の枠にとらわれずに構想している人々もいる。そういったアプリケーションは エッジネイティブアプリケーション (edge-native application) と呼ばれ、1 ミリ秒を切る優れた応答時間を提供しつつ、クラウドにアップロードする必要のあるデータの削減を行う。このデータ削減処理をアプリケーション固有の圧縮と考えることができるだろう。ただ「エッジネイティブアプリケーションはデータの要約だけをクラウドに送信し、生データは送信しない」と考えた方が正確となる。

エッジネイティブアプリケーションをサポートするために必要なアクセスエッジクラウドに関する技術は第 2 章の終わりで触れたが、ここではそれより興味深いであろうエッジネイティブアプリケーションの例を示す: 自動車、工場、倉庫などに関連する企業が開発している、プライベート 5G ネットワークを利用した物理的自動化である。そういったアプリケーションを使うと、例えば駐車場で従業員がリモートで顧客の車を駐車したり、工場を自動制御のロボットが動き回ったりできるようになる。こういったアプリケーションはロボットと近くにある知能 (エッジクラウド) の間に高帯域かつ低遅延の接続を必要とする。このアプローチではロボットに高価な計算能力が必要とならないのでロボットのコストが抑えられ、大量のロボットをスケーラブルな形で一斉に制御することが可能となる。

もう一つ分かりやすい例としてウェアラブル認知アシスタント (wearable cognitive assistance) がある。そのアイデアは道案内ソフトウェアを一般化したものと言える: 道案内ソフトウェアは複雑なタスク (初めて訪れる都市の決められた場所に行く) をステップごとの指示に置き換え、人間が誤る (正しい道を外れる) とすぐにそれを修正する。このメタファーを一般化するとどうなるだろうか? 何らかのデバイス (例えば Google Glass や Microsoft Hololens) を身に着けた人物がステップごとの指示を受け取り、複雑なタスク (おそらくは初めて行うタスク) を実行するようになるだろうか? このときデバイスを含んだシステムは事実上の「肩の上の天使」として振る舞うことになる。デバイスが持つ全てのセンサー (カメラ、マイク、加速器計、ジャイロスコープなど) が収集した情報は無線で近くのエッジクラウドに送られ、そこで重い処理が行われる (簡単な前処理がデバイスで行われる場合もあるかもしれない)。ウェアラブル認知アシスタントを使ったタスクの解決はヒューマン・イン・ザ・ループ (human-in-the-loop) と呼ばれるメタファーの一種と言える。例として出したシステムは「拡張現実」風のルックアンドフィールをしているものの、実装は AI アルゴリズム (コンピュータービジョンや自然言語処理) によって行われる。

ナイーブな考え方が見落としている二つ目の要素は、ネットワークは他の多くの人口的なシステムと同様、自身の振る舞いに関する情報 (パフォーマンス、障害、トラフィックパターンなど) を収集し、そのデータの解析から得られた洞察によってネットワークを改善できる事実である。この領域は現在でも研究の対象であり、その目標が閉じた制御ループの作成であることに驚きはしないだろう。ネットワークから得られる情報の解析は (本書の範囲を大きく超えるので) 脇に置くとすれば、興味深い疑問として「収集できる有用なデータは何か?」そして「ネットワークの何を制御するのが最も有効なのか?」がある。これから二つの有望なネットワーク技術について答えを見ていく。

一つは 5G セルラーネットワークである。5G セルラーネットワークは本質的に複雑であり、様々な仮想機能、仮想および物理の RAN 機器、利用する周波数の管理、そしてちょうど先ほど議論したエッジコンピューティングノードといった要素が存在する。ネットワークが収集する情報は柔軟な 5G ネットワークを構築する上で欠かせないものになるだろうと広く期待されている。例えばネットワーク利用率とトラフィックデータのパターンを解析する機械学習アルゴリズムを利用して特定のネットワーク機能やアプリケーションサービスをどのようにスケールさせるかを判断するネットワークプラニングが生まれるだろうと期待されている。

もう一つはネットワークの状態をデータプレーンで直接に収集・報告するためのフレームワーク INT (In-band Network Telemetry) である。これはネットワークのコントロールプレーンで行われる伝統的な報告処理 (第 9.3 節で説明されるもの) とは対照的と言える。INT のアーキテクチャでは、ネットワーク機器に対して「テレメトリー命令」を指示するフィールドが各パケットのヘッダーに挿入される。これらの命令は収集すべき状態を INT に対応した機器に伝えるものであり、状態はパケットがネットワーク内を移動する中でパケットのヘッダーに書き込まれる。INT においてトラフィックソース (アプリケーション、エンドツーエンドのネットワークスタック、VM ハイパーバイザなど) は通常のデータパケットあるいは特別なプローブパケットの中に命令を埋め込むことができる。同様にトラフィックシンクは命令の結果として収集されたデータを収集 (そして必要なら報告) する。この仕組みにより、パケットが転送処理を受けるときに「観測」したデータプレーンの正確な状態をトラフィックシンクが監視できるようになる。なお INT は依然として初期段階であり、第 3.5 節で説明したプログラム可能なパイプラインを活用している。しかし、INT はトラフィックパターンやネットワーク障害の根本的な原因に対する質的に奥深い洞察を提供するポテンシャルを持っている。

さらに広い視点

次章の視点: ブロックチェーンと分散インターネットを読めば、インターネットのクラウド化についてさらに知ることができる。

有望なエッジネイティブアプリケーションをさらに知りたい場合は、Open Edge Computing Initiative, 2019. を勧める。

In-Band Network Telemetry をさらに知りたい場合は、In-band Network Telemetry via Programmable Dataplanes, August 2015. を勧める。

広告