掲載日時: 2010-04-12 13:42

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

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

著者 : 柴田克己(編集部)

URL : https://japan.zdnet.com/article/20411930/

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

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

 InfoSphere Streamにおいては、SPADEで開発したプログラムをコンパイルし直すことにより、同じプログラムを1台のマシンでも、複数台のクラスタ構成でも同様に動かすことができる点が特徴という。「並列処理のプログラムを作成するにあたって、開発者が実行環境について考慮する必要がない。プロファイル情報をもとに、ほぼ自動的にクラスタ上へ最適配置ができる」とする。

 InfoSphere Streamには、開発環境はSPADEでのプログラミングが可能なEclipseベースの「Stream Studio」に、Linux x86ベースで最大125台のクラスタ構成が可能な実行環境、データマイニングやフィナンシャルサービスを実現するためのツールキットが付属する。

 小野寺氏は、これまでの試作事例としていくつかのストリームコンピューティングシステムを紹介した。Toronto Dominion Bank Financial Groupでは、毎秒500万超のイベントを平均150マイクロ秒で処理し、多様なデータソースから株式などの売買を自動実行するオプショントレードシステムを開発したという。

 またオンタリオ工科大学では、新生児集中医療棟で、血圧や体温、心電図、血液酸素飽和度といった生理学的データストリームを分析し、院内感染などの生命を脅かす状況を早期発見し、対応可能にするシステムを開発した。現場担当者が患者の顔色などから異変を判断する現行の対応よりも、最大で24時間早く発見ができ、早期介入により患者の死亡率が下がり、予後経過も良好に推移するようになった実績があるという。

 ストックホルム市では、車載GPS、混雑情報、公共の交通手段の状況、天候などのリアルタイムデータから、各車の状態を推定し交通状況を可視化。それをもとに、経路の予測やプランニングを実行する「リアルタイム交通流マネジメントシステム」に取り組んだ。この実験では、4台のx86ブレードサーバを使い、1秒間に25万個のGPSからのデータを処理できることを確認したとする。

 小野寺氏は、ストリームコンピューティングに関する今後の研究テーマとして、より使いやすい開発環境や高信頼、耐障害、大規模に対応する実行環境の強化に加え、「ストリームコンピューティングの伝統的なコンピューティングへの適用」を挙げた。

 「SPADEによって処理を簡潔に記述できれば、分散処理に対応したスケーラブルな実行環境で非常に効率よくプログラムを走らせることが可能になる。現在、時間をかけて行われているバッチ処理などをこの環境で行うことで効率を上げたり、ETLやデータ解析といったアプリケーションの性能向上が容易になるのではないかと考えている」(小野寺氏)という。

SPADE IBMがストリームコンピューティング向けに開発した新言語「SPADE」のプログラム例。汎用言語と比較して、大幅に開発工数を削減できるという。(画像クリックで拡大表示)

ZDNET Japanは、Ziff Davisからのライセンスに基づき株式会社4Xが運営しています。
ZDNET Japan is operated by 4X Corp under license from Ziff Davis.

Copyright © 2026 4X Corp, Inc. All rights reserved. No reproduction or republication without written permission.