インターネットでのマッシュアップは、マーケティングの要素が強いため、無料のものが多く、何かを探し出すためのシステムやエンターテイメントを楽しむコンテンツにおいて使われている。IBMの米持氏は、同じ技術を企業システムに利用することを『エンタープライズ・マッシュアップ』とし、今まで不便だったことを解消しようと数年かけて製品開発を行なっているという。

ニーズの細分化を解決するマッシュアップ
米持氏は冒頭で「これまでコンピュータで使っていたものは、毎日みんなが使うものを選び出してIT化してきました。しかし、業務に必要なツールは利用頻度の高いものばかりではありません。『週に1回だけ』『明日だけ』など、ニーズは小さいが、数は多いこともたくさんあります。いわゆるロングテールの部分です。そこで、ちょっとしたニーズに対して解決できるソリューションを用意しなくてはいけない」と切り出した。
例えばアンケートシステムなどは、アンケートのたびに内容が変わることが予想され、毎回毎回システムごと作るわけにはいかない。「必要なときにパッと使ってサッと捨てる。我々はシチュエーショナル・アプリーケーションと呼んでいますが、マッシュアップもその技術の一つとして位置づけており、システム構築を低コストでできます。間違ってはいけないのは、メインフレームのシステムが低コストでできるということではなく、あくまでもニーズは小さいが、数は多いものを対象としていることです」とマッシュアップ製品の位置付けを解説した。

マッシュアップを行う開発ツール
続いて米持氏は、IBMのマッシュアップ製品3つを紹介(いずれも名称に「Mash」が付いている)。『Lotus Mashups』は、マッシュアップしたアプリケーションの画面をつくる製品で、コードを書くことなくウィジェットを作成できる。『InfoSphere MashupHub』は、企業内やインターネット、個人のあらゆる情報を再利用できるデータフィードの形で解き放つためのツール。これら2つをあわせて「IBM “Mashup Center”」が形成される。もう1つの製品『WebSphere sMash』は、軽量なスクリプト言語で、既存資産を活かした新たなサービスを提供できる環境だ。

クラウド上のどこかにデータがあり、他の場所や別のアプリケーションで使うためにフィードにしたいときなどにこれらのツールを使ってシチュエーショナルなシステムを作っていくという考え方。時にはプログラムコードすら書かずにマッシュアップできる。プロジェクトがあってインフラを用意して、設計から構築、実施まで何か月かを要する大規模システムの進め方とは大きく異なる。
マッシュアップのツールに用いられているAjaxは、ブラウザに搭載されているJavaScriptのエンジンをクライアントプログラムのエンジンとして使う考え方だ。米持氏は「スタンドアロンで動作するのがDHTMLで、Ajaxはサーバとのやり取りが発生するためクライアントプログラムとなります。そこでよく使われる技術がJSON(JavaScript Object Notation)です。サーバーからブラウザのJavaScriptエンジンにデータを渡す際に、変換しやすい特徴があります」と解説した。

プログラマブルなデータの準備が重要
加えて米持氏は、各種のデータをプログラマブルにしておくことが重要だと主張する。「マッシュアップに使われているサイトの多くは、プログラマブルに作られています。企業の中でマッシュアップするには、既に存在しているたくさんのシステムをマッシュアップ可能なように、例えばフィードを出すことなどが必要で、その都度いちいち手作業でやっていくのは大変です。それを実現するのがエンタープライズ・マッシュアップということで研究をしている」とした。
エンタープライズと言うとJava EEは欠かせない要素だが、「WebSphere Application Server」では、Javaで動作しているオブジェクトをJSONを使って外から見られたり、逆にJSONデータをJavaからアクセスしたり、フィードを作るためのAPIを持っていたりと、Web 2.0に対応した機能を搭載している。
「WebSphere sMash」は、Groovy、PHPといったスクリプト言語でWebアプリケーションを開発するもので、スクリプトなのでコーディングが非常に簡単。「例えば、データベースで検索した結果をJSONに変換する処理のコードは4行で書けます。データベースにアクセスするプログラミングも容易に行えます」と米持氏は、WebSphere sMashの開発環境にブラウザからアクセスし、その画面を操作してJSONのコードを作るなど、アプリケーション開発のデモンストレーションを行なった。

ブラウザ上で行えるクラウド時代のプログラミングスタイル
米持氏は「Wikiのような環境でアプリケーションを開発していくということになっていくのですが、これはある意味クラウド時代のプログラム開発と言えるでしょう。プロジェクトのたびにマシンを買って構築するといった旧来のやり方ではなく、社内にプライベートなクラウドが動いていて、ブラウザでアクセスすればアプリケーションがすぐ動くという環境を用意していこうというわけです」とコンセプトを語った。
フィードを混ぜ合わせて活用する際、データ加工する必要もある。例えば、複数のニュースのフィード集めたときに同じニュースが重複したり、あるいはフィード中に広告が入っている場合もある。米持氏はブラウザでWebSphere sMashのツールを操作しながら、IBMとCodezineのフィードを統合し、フィルタをかけて出力させるといったデモも行なった。

「Lotus Mashups」と「InfoSphere MashupHub」で構成される「IBM “Mashup Center”」は、ブラウザ上のGUIツールを操作することで、プラグラムの必要なくマッシュアップできる環境を提供する。「InfoSphere MashupHub」は、IMSやDB2といった旧来のメインフレームのデータやCSV、Excelなどのファイル類もマッシュアップ可能な形式に変換する機能を持つ。「Lotus Mashups」は、エンドユーザーがウィジェットを作ったりウィジェットの組み合わせでマッシュアップ画面を作ったりできるものだ。
「例えば、顧客リスト、受注リスト、ポートフォリオ、地図などのウィジェットをコンポーネント化して作っておいて、それらを好きなように組み合わせて事業全体を俯瞰してみるといった考え方で使ってもらうためのものです。なかなかイメージが沸かないと思いますが、実際に導入されているお客さまである映画配給会社のFOXさんは、映画コンテンツの管理にマッシュアップを使っています。映画のコンテンツをデジタルで撮影して、ハードディスクの中に入れて、そのコンテンツをマッシュアップして、ある人はライブラリから選んて編集したり…といった用途で実際に使われています」と米持氏は事例を交えて説明した。
ニーズの細分化が進むエンタープライズシステム
種々のデータをどうつなぎあわせるかという感覚を持つということは大切だと米持氏はいい、同社のロッド・スミス氏が数年前にWeb 2.0カンファレンスで語った言葉「重要なのは想定しないこと。たくさんある仕事はすべて想定できない。そういうところをねらうのがWeb2.0」を挙げた。続けて米持氏は、「Lotus Mashups」でのIBMとCodeZineのフィードのマッシュアップを行う操作のデモを行い、フィードの一覧から記事タイトルをクリックすると、その記事を画面内に表示するといったRSSリーダーのようなページを作った。
各製品のデモンストレーション後、米持氏は「エンタープライズの世界は、大きなシステムを作るために動いてきましたが、そのニーズは減少傾向にあります。その一方で、小さいニーズはたくさん残っていて、それをこれまでの技術でやっていてはものすごくお金がかるため、別の技術が登場しました。小さなニーズを実装するために皆がプログラマになるのは無理なので、難しい部分はクラウドの中に閉じ込めてしまって、エンドユーザーが容易に組み合わせられるところまで用意しているのです」と、一連のマッシュアップ製品のまとめとして、新しいビジネスアプリケーションの姿について語った。
セキュリティ
エンタープライズを対象とした製品にはセキュリティの配慮がされていなければならない。米持氏は最後に「Secure Mash technology」を紹介した。悪意のある誰かが、地図のプログラムをダウンロードしたときに、ブラウザの中をスキャンしたログ中に住所と電話番号らしき一覧を見つけたら、自分のサーバーに送り返すということをしたら、情報漏洩となる。Secure Mash technologyは、そのような悪意のあるコードが別のコンポーネントにアクセスしにくくする技術で、この例の場合、漏れては困る住所一覧の情報から地図にアクセスはできても、その逆はできないようにできるものだ。

今回米持氏が話した取り組みは「IBM ソフトウェア・テクノロジー情報」に詳しい。