***** 前半を読む***** 

Flashで操作性と生産性を両立

図3●Flashによるユーザー・インタフェース
直感的な操作が可能で覚えやすく,パソコンに馴染みのない個人投資家を呼び込む特徴になっている
図4●生産性を向上させる工夫
なるべく人手でプログラムを記述しなくてすむように,また設計変更に容易に対応できるようにした。FlashとJavaサーブレット間はXMLでデータをやり取りしているが,XMLからそれぞれのデータに自動変換するツールを作成した。また,ストアド・プロシージャを介してテーブルにアクセスすることで,テーブルの変更があってもプログラムに影響しないようにした

 Flashで実現したのは,単に見栄えのよい画面ではない。例えば,相場の折れ線グラフをクリックすれば,グラフ上の価格で注文を出すことができる(図3[拡大表示])。また,複数の注文を組み合わせた「応用注文」は,注文を示すアイコンをバスケットにドラッグ&ドロップし組み合わせることで簡単に作成できる。「パソコンに馴染みのない個人投資家を引き付ける大きな特徴になっている」(マネースクウェア・ジャパン 山本氏)。

 とはいえ,もともとアニメーション・ツールであるFlashでの開発は,通常のWebアプリケーションに比べ困難とされている。しかし,エア・ロジックではプログラムを自動生成する仕組みなどを整備することで,生産性を向上させ,工数を抑えた(図4[拡大表示])。

 Flashとサーバー間では,データをXMLでやり取りする。XMLデータをFlashのスクリプト言語であるAction ScriptおよびJavaのオブジェクトにマッピングするプログラムを自動生成するツールを整備した。たとえデータ構造に変更があっても,自動生成し直すことですぐに対応できた。

 Flashの開発元である米Macromediaは,同様の目的のためにFlash Remotingと呼ぶツールを用意している。しかし,Flash Remotingでは直接扱えない複雑な構造を持つデータを扱いたかったことと,エア・ロジックではトレイダーズ証券のシステム開発時にこのようなツールを作成していたことから,自作ツールを使用した。

 JavaとXMLの変換のためのツールには,Zeus(http://zeus.enhydra.org/)と呼ぶオープンソースのソフトを利用している。ZeusではDTD(Document Type Definition)からJavaプログラムを生成するが,より厳密にデータ・チェックなども行えるよう,XML Schemaからプログラムを生成できるように拡張した。

 また,原則としてストアド・プロシージャを介してテーブルにアクセスするようにした。テーブルの変更があってもプログラムに影響しないため,生産性の向上に寄与したという。

 エア・ロジックでは「プログラムはなるべく書かずに生成する」だけでなく「ツールはなるべく作らずに探す」という方針を採っている。完全でなくとも「ソースが公開されているツールであれば修正できる」(羽生氏)。バグの修正や,機能の拡張は開発元に提供して“恩返し”をしている。

(高橋 信頼=nob@nikkeibp.co.jp)