XML化の部分はパッケージを採用

 このような構想が決まり,開発プロジェクトが開始したのは2002年7月中旬。カットオーバーは前述の2003年3月20日だが,その前にモニター期間がある。内部と一般の2つのモニター期間があり,先に始まる内部モニターが12月2日から。事実上,11月末までの約4カ月しか構築期間がなく,「かなり無理なスケジュールで進めた」(システム構築を担当したNEC 交通・サービス業システム開発事業部(公営競技グループ)プロジェクトマネージャーの藤原雅彦氏)。

図2●ジャパンネット銀行との接続形態
ジャパンネット銀行が利用しているFDXSと呼ぶXML仕様に合わせてデータを送受信する必要があった。やり取りする電文は4つだけだが,項目数は約90もある。各項目にどのような値をセットすべきかをチェックする作業に苦労した

 ジャパンネット銀行のシステムと連携する部分は,図1の(2)口座認証と口座振替契約,(5)入金,(7)精算――の3つ。(2)は,競艇情報化センターの会員受付システムからインターネット経由でジャパンネット銀行のWebアプリケーションを呼び出すだけなので,問題なく連携できた。会員受付システムで入会を申し込むと,ジャパンネット銀行の口座認証アプリケーションにリダイレクトする。認証に成功した場合は口座振替契約の画面が表示される。口座振替契約が終わると,競艇情報化センターの会員受付システムに再度リダイレクトされる。

 これに対して,(5)と(7)は,お互いのシステムを専用線で接続してメッセージをやり取りする形態になり,一筋縄では行かなかった。ジャパンネット銀行では,ネットワーク経由で口座振替の処理を指示できる決済サービスを提供しており,そのデータ形式としてFDXS(Financial Data eXchange Standard)と呼ぶXML仕様を作成,利用している。このFDXSに合わせてメッセージをやり取りする必要があった(b>図2[拡大表示])。ジャパンネット銀行ではXML化の部分にインフォテリアの「ASTERIA for FDXS」と呼ぶパッケージ・ソフトを利用しており,競艇情報化センターでも同じ製品を使うことにした。短期開発が前提となると,XML化の部分はパッケージを利用した方が得策と判断した。

会議とメールで仕様を詰める

 同じ製品を対向で利用したこともあり,ネットワーク接続やXML化の部分は問題なくできた。しかし,その上でやり取りする電文の内容確認,処理方法の調整などに苦労した。

 やり取りする電文は4つ。(1)個人口座から競艇側の口座に資金を移動する「入金」,(2)「入金結果」((1)のレスポンス),(3)競艇側の口座から個人口座に資金を移動する「精算」,(4)「精算結果」((3)のレスポンス)――である。電文は4つだけだが,項目数は口座番号や名義など全部で約90もある。

 FDXSとして仕様が決まっているので,項目の種類や意味は分かるが,「具体的に何をセットすればいいのかが分からないことがあった」(NEC 交通・サービス業システム開発事業部(公営競技グループ)主任の秋山昌輝氏)。そのため,XMLエレメントを日本語に訳し,内容を相手に確認するようにした。

 中でも問題となったのが,口座名義だ。ジャパンネット銀行がFDXSの仕様で規定している口座名義は40文字。しかし,競艇情報化センターの投票システムにある口座名義は10文字分しかない。10文字では口座名義の確認ができないため,40文字に拡張しなければならなかった。

 またジャパンネット銀行では,会員登録の部分だけは口座名義を48文字で処理する仕様になっていた。そのため,40文字以上入力された場合は単純に先頭の40文字を口座名義とするのか,あるいは別の方法で処理するのか,などを確認する必要があった。

図3●お互いの認識を合わせるために作成した質問表の例
約3カ月間にわたって全関係者を集めた会議を毎週実施したほか,質問表(Wordの文書)を電子メールでやり取りしてお互いの認識を合わせていった。作成した質問表は最終的に100近くになった

 こうした細かい仕様を詰めるため,競艇情報化センター,ジャパンネット銀行,NEC,インフォテリアの全関係者が集まって毎週会議を開いた。進行をスムーズにすべく,「その場で答えられ,すぐに決断できる人に集まってもらった」(競艇情報化センターの加藤氏)。会議は仕様が完全に固まるまで,約3カ月続いた。「こういう動作でいいのか,という話が打ち合わせのたびに出てきた」(NECの秋山氏)。

 会議だけでは足りず,メールによるやり取りでも仕様を詰めていった。形が残るようにWordで質問表を作成し,関係者全員にメールで送る(図3)。最終的に作成した質問表は100近くになった。仕様が決まったものから並行して開発に取りかかっていった。

間違いは絶対に許されない

 競艇のシステムにミスは許されない。「システムダウンで配当金を支払えない,といったことは絶対に許されない。超高信頼,高レスポンスでなければならない」(加藤氏)。そのため,既存の投票システム,ネットワークなどはすべて2重化してあり,センターも2カ所に分散させている。

 今回構築したシステムも例外ではなく,ジャパンネット銀行と接続する専用線を2重化し,ASTERIAを搭載したゲートウエイ・サーバーもクラスタ構成にした。

 こうして結合テストを迎えたが,そこで発覚した問題もあった。処理を依頼した後に日付が変わると,エラーが発生するというものだ。例えば1月1日のレース終了後に自動精算の処理を依頼しても,処理が長引いて日付が変わるとジャパンネット銀行では1月2日として処理しようとするため,不都合が起きる。この問題に関しては,前日の日付で処理するように指定することで解決できた。

(榊原 康=sakakiba@nikkeibp.co.jp)