@IT|@IT自分戦略研究所|QA@IT|イベントカレンダー+ログ | ||
Loading
|
@IT > XAAフレームワークの拡張 |
企画:アットマーク・アイティ
営業企画局 制作:アットマーク・アイティ 編集局 掲載内容有効期限:2005年9月30日 |
|
|
「XMLベースで開発しようというのは最近流行ですが、実用的な製品開発にはなかなかこぎ着けられないケースが多いようです。そんな中このXAAフレームワークは、アプリケーションの構築をなるべく容易にする環境を作ろうというもので、大変分かりやすく、実用性も高いプロジェクトとなっていると思います」(酒井裕司PM)
「XAAフレームワークの拡張」は、2003年度に未踏ソフトウェア創造事業に採択された「XAAフレームワークの開発」に引き続き、2年連続で採択されたプロジェクトである。XAAは「XML Based Application Architecture」を意味しており、MVCパターンにおけるModel部分をGUIを使ったRADツールで開発することを可能にしたアーキテクチャという。開発者である株式会社ロジックデザインつくば開発センター主任の大崎洋平氏は、「Model部分のコーディングの単純作業を減らし、GUIで簡単に編集作業を行えることを目指した」と話す。 Visual BasicやDelphiなどのRADツールは、GUIの画面をビジュアルツールを使って視覚的に編集・作成でき、開発効率を高めることができる。だがこれらのRADツールがビジュアル化しているのは、MVCにおけるViewであるユーザーインターフェイスの部分だけで、作成したGUI画面のイベントをイベントハンドラに結びつければ、そこから先の処理はコーディングで行わなければならない。Viewの部分に関しては見た目で部品を配置しながら構築していくというビジュアルツールを使った方法が採られ、ModelやControllerなどで処理を記述する際は、プログラミング言語を使うというのが一般的な手法となっているのである。
だが、大崎氏は話す。「プログラミング言語で記述している部分もかなりの単調作業がある。そうした部分も手抜きできれば、開発作業はかなり楽になるのではないかと考えた」。例えばデータ構造を構造体やクラスで定義し、ボタンが押されるとGUIのフォームに入力されたデータを取ってきて、データ構造に値をセットする、といったロジックの記述は何度も繰り返して行わなければならないことが多い。これらを視覚表示して簡単に作成できるようにならないかと大崎氏は考えたのである。 きっかけは、以前勤めていたソフト開発会社で、リッチクライアントフレームワークの開発を手掛けたことだった。大崎氏は、クライアントソフトの画面を作成するビジュアルツールの開発を担当していたのだという。その時に行ったのは、次のような作業だった。 ――画面をXMLで定義し、そのModel部分については独自の構造をクラス定義で作成した。この際、コマンドパターンを使い、Modelを操作するときには必ずこのコマンドパターンを介して行うように定義した。そしてこのコマンドに逆の操作を定義したり、あるいはいくつかのコマンドを束ねるなどの方法で、コピー&ペーストやアンドゥ・リドゥなどの機能を実装したのである。そしてこうした作業を行っているときに、「この方法論はほかの場所にでも使えるのでは?」と考えたというのだ。アンドゥやコピー&ペーストだけでなく、画面で何かの作業を行うという行為すべてにXML(あるいはDOM)をデータモデルに適用するこの方法が利用できるのではないかと考えたのである。 「その時はデータ構造をクラス定義で自分で作成したのですが、そうしたアプリケーションのデータ構造部分にXMLを使えば、内部のデータモデルとしてDOMを用いることもできる。さらにXMLのデータ構造定義を行うRELAX NGなどのスキーマ言語をうまく組み込めば、何か面白いフレームワークが作れるんじゃないかと思ったのです」と大崎氏は振り返る。 本業の開発が終わった後の夜中など、仕事の合間を見て構想を深め、比較的自由にさまざまな開発を許してくれる現在の会社に転職してから、本格的に企画を進めるようになったという。
XAAでは、XMLのデータモデルに対する操作があらかじめいくつかのコマンドとして用意されており、これらのコマンドを発行するだけでデータモデルを簡単に操作できる。またコマンドの内部には逆の操作も定義されており、開発者が面倒な実装作業を行わなくても、アンドゥ・リドゥ機能をフレームワーク側で処理することができるようになっている。コマンドを介してデータモデルを操作しているため、データモデルに一貫性が保たれるというメリットもある。 XAAフレームワークは、DOMを操作するDMCフレームワークと、XMLで記述されたGUI定義を読み込んでGUIを表示するエンジン、それにこの2つを連携させるフレームワークであるModel-Viewマッパーという3つの実行環境から構成されている。そしてこの環境で稼働するRADツールとして、(1)データ構造をグラフィカルに編集し、RELAX NGの定義を出力してくれるデータモデル構築ツール、(2)GUIをグラフィカルに構築するGUIエディタ、(3)Model-Viewマップを編集するModel-Viewマップエディタ、という3種類が用意されている。
ここまでの部分は、XAAフレームワークが昨年度に未踏ソフトウェア創造事業に採択されるに当たって、開発が行われた内容である。そしてこれらに加え、2004年度の採択では、新たに2つの拡張が目標とされた。1つはデータ構造との上位互換性を維持したままでアプリケーションのバージョンアップを行うための支援機能であり、もう1つはWebサービスへの対応である。 前者の機能拡張について、大崎氏は「モデルの部分にXMLを持ってきて、そのモデルがきちんと構築できるということを提案したのが昨年度のプロジェクト。今年はさらに、データ構造を変更したらプログラムを書き換えなければならなかったり、バージョンアップしたら古いデータが使えなくなったりするという問題を、何とか解消しようということを考えました」と話す。具体的には、上位互換性が可能になるようなデータ構造の変更だけを許すモードを作るなどの方法を考えているという。 また後者に関しては、「今後は徐々にWebサービスでシステムを構築するケースが増えていくのではないかと思います。現状はWebサービスクライアントのニーズはほとんどないと思いますが、先行投資の意味もあり、将来的なビジネス展開も視野に入れてWebサービスへの対応を考えました」(大崎氏)という。具体的にはWebサービスを利用するクライアントソフトを容易に構築できる枠組みを提供し、サンプルとしてAmazon Webサービス (AWS) 用クライアントの提供を計画している。
XAAはどのような分野での活用が期待されるのだろうか。1つは、例えばUMLモデリングツールなど、GUIを使ってグラフィカルに作成するための編集ツールを開発する用途。そしてもう1つは、大量の画面を作成しなければならないビジネスアプリケーションの開発だ。XAAはデータ構造とユーザーインターフェイスの連携に特徴があり、この部分を強化していけば、非常に強力なアプリケーション開発環境を構築できる。さらに、先に挙げたようにWebサービスとの連携もある。 「現在のXAAはデータをXMLに落とすことができるだけです。将来的にはデータベースとの接続を考えていますが、今のところはまだ接続できていません。このためすぐにはビジネスアプリケーションをリプレースするところにまでは行かないのですが、今後成長が期待されているWebサービスにデータを渡すことができるようになれば、将来的にビジネスにもつながるのではないかと期待しています」と話す。現在はまだビジネスを考える段階にまでは至っていないというが、中長期的には勤務先とも連携して、ビジネス化への道を探っていきたいという。 |
|