MerapiはAdobe AIRプラットフォーム上で動作するアプリケーションとJavaアプリケーションを連携させるためのソフトウェアである。Merapiを利用することで、AIRアプリケーション側に外部のJavaプログラムと対話するためのインタフェースを仕込んでおき、そのインタフェースを利用してJavaアプリケーションとの間でオブジェクトの受け渡しをすることが可能になる。

Merapi自体はJavaで実装されており、ユーザのクライアントマシン上で実行されるAIRおよびJavaアプリケーションをターゲットとしている。MerapiはJavaアプリケーションとAIRアプリケーションの間を繋ぐブリッジとして動作し、極めてシンプルなメッセージ交換だけで両者間のデータ(オブジェクト)の受け渡しを行うことができるようになっている。

プロジェクトサイトには、Merapiが開発された経緯としてAIRアプリケーションによるOS固有の機能やローカルリソースへのアクセスが制限されていることが挙げられている。例えば次のようなケースを想定した場合、現状のAIRの仕様ではこれを実現することはできない。

  • AIRアプリケーションでWii Remote(ニンテンドーWii用リモコン)を利用する
  • USBに接続された電話機を利用してAIRで通信する
  • TWAIN対応のカメラやスキャナから動画や画像を取り込む
  • AIRアプリケーションからロボットを操作する
  • AIRを使用してネットワーク越しにMIDIシグナルを送る
  • ハードウェア機器に制御されたAIRアプリケーションのソーシャルネットワークを構築する

AIRそのものは極めて魅力的なRIAプラットフォームである。もしそのAIRで上記のようなことを実現できると考えたらどうだろうか。アプリケーションの可能性はさらに大きく広がっていくに違いない。しかし現実には、移植性の確保などの問題からAdobe自身が上記のような機能をAIRに盛り込む予定は無さそうだ。

そこで、サードパーティによってこれを実現するためにスタートしたのがMerapiプロジェクトだという。Merapiの選択は、Javaを利用することでOSの機能に対するアクセスの問題を解消するというもの。加えて、Javaの豊富なライブラリをそのまま利用できるというメリットもある。

Merapiプロジェクトでは、現在登録ユーザ向けに初のベータ版であるMrapi 0.09を公開している。本稿ではこれを利用して、AIRアプリケーションとJavaアプリケーションの連携を試してみようと思う。

※ ちなみに「Merapi」の名称はインドネシアのジャワ(Java)島にあるムラピ山(Mount Merapi)に由来しているそうである。活火山であり、Merapiプロジェクトのロゴマークもそれに因んだ熔岩風の液体が溢れるティーカップになっている。