Javaが切り開く “Internet of Things”の可能性──【前編】求められるアーキテクチャと、それを実現するJava&オラクル・テクノロジー

Oracle Java & Developers編集部
2014-01-20 11:00:00
  • このエントリーをはてなブックマークに追加

IoTのリアルタイム活用を可能にするオラクルのテクノロジー

 二條氏によれば、オラクルはすでに上記4つの機能要素をカバーするテクノロジーを提供している。それらは次のようなものだ。

  • イベントGW:Oracle Coherence
  • 複合イベント処理:Oracle Event Processing 11g
  • 高速マッチング処理:Oracle Coherence
  • プッシュ型データ配信処理:Oracle WebLogic Server

 このうち、イベントGWと高速マッチング処理を実現する「Oracle Coherence」はデータグリッドの技術である。複数マシンにまたがる広大なメモリ領域を用いた分散処理を可能にし、一定のレスポンス(1ミリ秒未満)でリニアかつ動的にスケールできる拡張性を備え、高度な障害検知/フェールオーバー、さらにはバックエンド・データベースとのデータ同期などを実現する。

 このOracle Coherenceを使うことにより、接続デバイスの増加と、それに伴うデータ流入量の増大に柔軟に対応できるようになるほか、障害時におけるデータ損失のリスクを最小化できる。また、マッチング処理についても、Oracle Coherenceによる大容量キャッシュを生かした高速処理、バックエンド・データベースへの過大な負荷の回避、さらにはバックエンド・データベース停止時のサービスの継続稼働などが可能になる。

膨大なストリーム・データから価値ある情報を瞬時に見つける複合イベント処理基盤

 一方、複合イベント処理を担う「Oracle Event Processing(OEP) 11g」は、OSGi※1フレームワーク上にイベント処理に必要な機能を(OSGiバンドルとして)組み込んだ軽量ミドルウェアである。開発技術としてSpring FrameworkとPOJO(Plain Old Java Object)を採用。標準技術ベースの効率的な開発、プログラムの高い保守性とポータビリティ、さらにはOSGi準拠による高い運用効率を実現している。

※1 非営利団体のOSGiアライアンスが規定するサービス・プラットフォームのフレームワーク。Javaモジュールの動的なロード&アンロードを可能にする。

 このOEPのアーキテクチャは下図のようになる。

 図に示すとおり、OEPではイベント・ソースからの情報がアダプタによって収集され、それがイベント処理ネットワーク(EPN :Event Processing Network)で複合的に処理されて必要なイベント情報(ビジネス的に意味のある情報)を取り出す仕組みとなっている。取り出したイベント情報は「リスナ」と呼ばれるコンポーネントを介して、プッシュ型のデータ配信を行うOracle WebLogic Serverなどのアプリケーション・サーバやOracle Coherenceに送られる。

 EPNは「プロセッサ」と呼ばれるコンポーネント群と、それによるネットワークから構成される。このネットワークでは、必要なイベント情報を取り出すためにフィルタリングや変換、マッチング、集計といった複数の処理を複合的に行うことができる。また、こうしたネットワーク型の処理をビジュアルに定義/構築するための開発ツールも、Eclipseプラグインとして用意されている。

 なお、OEPでは、データの変化(または特定のイベント情報)を検出/検知する処理を、Javaのほかに「Continuous Query Language(CQL)」で実装することも可能である。CQLはオラクルやIBMがANSI SQL標準として提案しているクエリ言語仕様であり、その名のとおり「連続的な問い合わせ」を行うためのものだ。イベント・データのフィルタリングや合成(アグリゲーション)、複数イベントから特定のパターン検出する相関などの処理を、SQLライクに記述することができる。

 OEPのもう1つの特徴として、すべての処理がインメモリで行われるため、毎秒10万イベント処理という極めて高いスループットを実現可能な点が挙げられる。加えて、Oracle Coherenceと連携させ、イベント・データと外部データのマッチングを高速に行えるほか、物理的なコンピューティング資源の能力を最大限に生かし、EPNで定義された処理プロセスのパフォーマンスを高めるための仕組みも提供されている。「例えば、重たい処理を実行するプロセッサ・コンポーネントに対して、より多くのスレッドを割り当てるといったマルチスレッドのチューニングも簡単に行えるようになっています」と二條氏は説明する。

IoTの広範な活用を可能にするJavaのポータビリティ

 OPEには、さらに特筆すべき特徴がある。それは「OEP for Java Embedded(Embedded OEP)」と呼ばれるデバイス組み込み用の環境が提供されていることだ。

 Embedded OEPは、デバイス側にセンサーから収集した情報の加工や取捨選択の機能、つまりセンサー・ゲートウェイ(センサーGW)の機能を持たせるためのものである。サーバ・サイドのOEPと組み込み用のEmbedded OEPとの間では、開発環境や開発コードを流用できる。つまり、デバイスからサーバ・サイドに至るまで、標準のJavaテクノロジーによる開発の一貫性とプログラムのポータビリティが確保されているわけだ。

 このような環境が実現できるのは、"Write Once, Run Anywhere(一度書いたプログラムは、どこでも動かせる)"という設計思想の下で進化と発展を続けてきたJavaテクノロジーならではの強みだと言える。これがオラクルのテクノロジーと融合することにより、IoTの技術要件を網羅的に満たすテクノロジー/製品ポートフォリオが完成したのである。

 OEPやOracle Coherenceといったオラクルのテクノロジーは、すでにグローバル製造業による機器の遠隔監視/故障の早期発見などに役立てられている。また、トルコの通信会社ターセル(TurCell)では、スマートフォンのGPSを用いたロケーション・ベースのリアルタイム・マーケティングにOEPを活用している。さらに、国内ではNTTコミュニケーションズが、ネットワーク・サービスにおける通信状況の異常検出の早期化/精度向上にOEP/Oracle Coherenceを活用している。

 このほか、オラクルのテクノロジーは電力、通信、鉄道、電機、サービスなどさまざまな業界において機械/機器からの情報収集とインテリジェントな管理に活用されている。IoTの時代、それはJavaとオラクルのテクノロジーが新たに大きな飛躍を遂げる時代だと言えるかもしれない。 

 次回の後編では、IoT環境のデバイス・サイドのJavaテクノロジーについて、もう少し深く見ていこう。また併せて、今回のセミナーで披露されたOEPのデモも取り上げ、その可能性を改めて考察してみたい。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]