5月12日,GMOインターネット証券が株取引サービスを開始した。APIの公開などのWeb 2.0的なアプローチと,オープンソース・ソフトウエアの徹底活用による低コストがその特徴だ。株取引ツールのソースコードも公開する予定という。高島秀行社長と笠原正寿フロントシステム開発プロジェクトリーダーにその全容を聞いた。
---API公開にあたっての課題は。
高島氏:2006年10月から12月ごろの予定ですが,注文,約定,市況情報取得などのAPIを公開します。このAPIを使って,ユーザーは自分が開発したツールで株取引ができるようになります。
APIを公開するネット証券は国内で初あり,課題はセキュリティになると考えています。取引を監視し,何か問題が起きた際には取引を止めたり制限したりできる体制を作る予定です。
---取引ツールのソースコードを公開する目的は。
高島氏:公開するのはタスクトレイに常駐する注文ツールです。名称は「はっちゅう君」。ソースコードを公開することでユーザーが改良できるようにして,カブロボやEclipseのように成長していってほしいと考えています。
---証券取引システムでもオープンソース・ソフトウエアを活用しています。
高島氏:ここまで全面的にオープンソース・ソフトウエアを採用したインターネット証券は国内初だと思います。我々は,日本で最も低コストで運営できるネット証券だと考えています。売買手数料は105円からと業界最低水準です。
約60台の業務サーバーのOSは全てLinux。Webアプリケーション・サーバーにはTomcatとJBoss,フレームワークにはSpringとStruts,O/Rマッピング・ツールにはHibernateとiBATISを採用しています。データベースは迷いましたが,これまで使ってきたノウハウの蓄積と実績からOracle10gを採用しました。
笠原氏:Springはおもにトランザクション管理の部分で使用しています。DB層とロジック層の連携にSpringのDI(依存性注入)を利用することで,両者を平行開発できるようにした。newしすぎると重くなるのでそこは留意しました。
O/Rマッピング・ツールにはHibernateとiBATISを使用しましたが,担当者がどちらに習熟しているかで選んでいます。また,本当に負荷が集中する部分には,自社開発のO/Rマッピング・ツールを使用しています。
JBossは,サーバー間でデータを共有するために使っています。JBossのEJBコンテナ機能によりSession Beanをレプリケーションすることで,サーバー間でデータを共有しクラスタリングしています。データベースにアクセスするSession Beanは使っていません。
また今後,取引システム以外のWebサイトの開発にはRuby on Railsを使用していく予定です。
---約4カ月間という短期間でシステムを構築したと。
高島氏:我々はこれまで何度かインターネット証券システムを構築してきました。そういうスキルの高い技術者が集まっている。それが短期間で構築できた大きな要因だと思います。プロジェクト・チームは約30名です。
笠原氏:また今回の開発ではFDD(Feature-Driven Development),テスト・ファーストといったアジャイルな開発手法を取り入れました。FDDの,仕様を厳密に決めすぎず,期間を区切ってリリースを繰り返すという手法は有効だと感じました。また,テスト・ファーストは先にテスト・コードを書いてという,本当のテスト・ファーストをやった。テスト・コードを書くことで仕様の漏れがあぶりだされ,仕様漏れが減りました。ただし仕様が変わるとテスト・コードも書き直さなければならないため,作業量が像出してしまうという欠点もあります。
---金融システムは安定性,信頼性,セキュリティが重視されます。なぜ証券システムを構築してきた中でオープンソースやAPI公開という発想が出てきたのでしょう。
高島氏:それがデファクト・スタンダードだからです。今はデファクトでないとしても,これからかならずデファクト・スタンダードになる。金融システムといえども,遅かれ早かれデファクトに従う。我々はそれを先取りしたと考えています。