以前 過去の話シリーズ でEY-Officeを始める前の開発に付いては書きましたが、EY-Officeで制作したサービスに付いても書いて行きたいと思います。
今回は アジアリーグアイスホッケー の集計システムに付いて書きます。
アイスホッケーは日本ではメージャーなスポーツではないかもしれませんが、アジアリーグアイスホッケー はプロのアイスホッケーリーグです。参加チームは日本だけではなく、韓国、中国、ロシア(極東)のチームが参加しています。
システムは2004年から運用を開始し現在も使われています。実装は Perl で書かれたCGIで独自フレームワーク(これもEY-Officeで作りました)を使っています。
アジアリーグアイスホッケーのホームページは主に WordPressで書かれたコンテンツサイトですが シーズン公式記録 からリンクされた先のページが集計システムが作ったページです。下の画像は全チームの勝敗をまとめた「対戦成績表」です。
アジアリーグアイスホッケーのホームページから見えるこれらのデータは、この集計システムのデータのごく一部で、実はチームの監督やコーチが色々な集計データを見てチームや選手の指導に使う目的で作られました。
スコーア(ゲームシート)は試合会場でスコーア担当がExcelシートに書き込み、集計システムの画面からアップロードします。ゲームシートがアップロードされるとホームページの速報情報が更新されます。
また試合終了後に管理者が集計ボタンを押すと、チームや選手の成績が計算され表示されます。
集計システムはスタティックなページが生成するシステムに成っているので、多数のファンがアクセスしても問題無く高速に表示されます。
私自身はスポーツには関心が低くアイスホッケーのルール等は全く知らなかったので、元選手の担当者と打ち合わせを繰り返し仕様を詰めて行きました。
この集計システムの前にはVisualBasicで作られたWindowsベースのシステムが使われていて、その仕様書もありましたがシステム作りにはあまり役には立ちませんでした。
システムはPerlのCGI + RDB(PostgreSQL)という古風な作りですが、当時はオブジェクト指向設計に凝っていたので上の画像のようにUML等を使い設計しました。
また、複雑なアイスホッケーのルールを正しく実装する為にユニットテストを丁寧に書いています。 そのため時々あるルール変更(=仕様変更)にも大事に至ることなく運用されています。