「伝統的なものとは違うアプローチが必要だった」--IBMのストリームコンピューティングへの取り組み

柴田克己(編集部)2010年04月12日 13時42分
  • このエントリーをはてなブックマークに追加

 近年、多様なソースから生み出されるデジタルデータを、複合的かつリアルタイムに分析し、その結果を迅速で精度の高い意思決定に生かしたいという要請を受け、「データストリームのリアルタイム処理」が注目を集めている。

 日本IBMは4月9日、同社が「ストリームコンピューティング」と呼ぶ、リアルタイムデータストリーム処理分野における、同社の取り組みを説明した。

 日本IBM、東京基礎研究所インフラストラクチャ・ソフトウェア担当部長の小野寺民也氏は、ストリームコンピューティングについて、「従来のコンピューティングは、データベースなどに蓄積されたデータを加工、分析するものだった。一方、ストリームコンピューティングでは、データを格納せずに、流れてくるデータを流れてきたまま受け取って、リアルタイムに加工、分析、判断を行うものである」と説明する。

小野寺民也氏 日本IBM、東京基礎研究所インフラストラクチャ・ソフトウェア担当部長の小野寺民也氏

 小野寺氏が挙げるストリームコンピューティングの応用例としては「ハリケーンの影響による、株売買の自動レコメンデーション」がある。分析対象となるデータのソースは、ニューヨーク証券取引所、企業財務情報、ニュースサイト、米国大洋気象庁など多岐にわたる。これらから、ハリケーンの進路予測、各産業への影響評価、ポートフォリオへの影響などを考慮して、リアルタイムに投資判断を行うという。これだけ多岐にわたる分析を複合的に行うとなると、「収集されたデータの中から必要なものをより分けてストアし、時間をかけて分析を加える」という従来の方法論では対応不可能となる。

 こうしたストリーム処理は、これまで金融分野などで行われていたが、現在では、医療、環境、天文学など、適用分野を広げつつあるという。

 「IBMはリサーチ部門として早くからストリームコンピューティングに着目。2003年から、本格的な研究開発を開始した」と小野寺氏は言う。顧客との実証実験を繰り返す中で、200を超える特許を取得。IBM Researchが毎年、長期的な技術動向に対して分析と洞察を行う「IBM Global Technology Outlook」においても、2度にわたって同テーマを取り上げているという。

独自の開発実行環境を使って壁を越える

 IBMでは、こうしたリサーチ部門におけるストリームコンピューティングへの取り組みをベースとして、3月26日に「IBM InfoSphere Streams V1.2.0」をリリースしている。これは、ストリームコンピューティングの実現にあたってIBMが独自に用意した開発環境および実行環境、ツール群を製品化したものだ。

 小野寺氏によれば、ストリームコンピューティングの実現にあたっては、「新しいアプリケーション開発手法の構築」と「ワークロードの種類に合わせた実行環境の最適化」の2つが大きな技術面でのチャレンジであったとする。

 1つ目の開発手法については、新たなプログラミング言語である「SPADE」を開発することで対応した。SPADEは「Stream Processing Application Declarative Engine」の略称である。

 SPADEはストリームコンピューティング向けの開発に特化した言語である。ストリーム処理でよく使われる機能が用意されており、プログラムは処理の流れに沿って構成され、直感的でわかりやすく表現できるという。CやC++といった汎用プログラミング言語を使う場合と比べて、ストリーム処理プログラムの開発負荷が大きく削減できる点が特徴となる。小野寺氏によれば、たとえば、VWAP(出来高加重平均)から株の買い時を判断するプログラムを書く場合、CやC++で同様の処理を書く場合と比較し、数十から数百分の1のコード量ですむという。

 「データベース開発の時代にはSQL言語により開発生産性が向上したが、SPADEは、ストリームコンピューティングの世界で、それと同様のことを実現する」(小野寺氏)

 2つ目の実行環境について、小野寺氏は「ストリームデータ量、分析の複雑度、応答時間の要求といった各ワークロードの違いに対応した実行環境を構築する必要があった」と説明する。

  • このエントリーをはてなブックマークに追加