WinSock(TCP/IP)を利用したサーバー・クライアントシステム

事例のご紹介 2002年

案件 JPSAジャッジシステム v2
オーナー JPSA(日本プロサーフィン連盟)
対象業務 サーフィン大会のジャッジ採点を集計する
システム構成 OS – MS WindowsXP HomeEdition
HW – DELL NotePC Inspiron2500, Inspiron2600
        Apple AirMac BaseStation
開発ツール Microsoft Visual C++
サーバソフト JudgeServer (5台のJudgePaper、JutogeToolから送られてくる得点をリアルタイム集計。 一人のオペレータが操作)
クライアントソフト JudgePaper(4、5人のジャッジが操作する)
JudgeTool(得点を編集、印刷する)
GameMonitor(ディスクジョッキーが画面をモニタしながらアナウンス)

前バージョンにて、 MacintoshとNewtonでの運用を行っていたがNewtonの入手が困難になっており、 今後のためにWindowsのNotePCで使えるシステムを開発して欲しいと依頼された。 NotePCの性質上持ち運べるよう、無線LANでのシステム構築をおこなった。

WinSock1

Macintosh+Newton版と大きく変わった点

  • サーバー、クライアント共にプラットホームをWindowsへ変更。
    サーバーとクライアントで起動するプログラムが違うだけなのでハードの流用が容易。
  • 無線LANによる通信。配線を無くして設置が簡単になった。
    それぞれが独立しているので、通信可能範囲内での移動が可能。 (通信困難時に備えて有線での通信もテストした)
  • 画面及び印刷のカラー化。
    色分けすることでヒート(選手の対戦組み合わせ)の進行状況が より分かりやすくなった。

Winsock2

TCP/IPプロトコルを使いJudgeServer、JudgeTool、JudgePaper最大5台、 GameMonitor最大5台が通信をおこなう。 1つのプログラムで4人制、5人制ジャッジに対応させた。

JudgePaper、JudgeToolから送られた点数は一度JudgeSeverに渡され、 JudgeServerから他のJudgePaper、JudgeTool、GameMonitorへと送られる。 これで他ジャッジの入力状況と平均点が各JudgePaperで分かるようになった。

JudgeServerとJudgeToolではExcelで作られたヒート表(対戦組み合わせ表)との連携を高めた。 カットアンドペーストによる選手名の一括入力や、総合得点のコピーをおこなえるようにした。 JudgeServerで得点を集計しつつ、 JudgeToolで次ヒートの選手名入力や集計結果のプリントアウトをする事が可能。

GameMonitorではヒート切り替え時のディスクジョッキーの負担を考え、 現在のヒートだけではなく1つ前のヒートを同時に表示する様にした。

当初はNotePCで入力しやすいようテンキーによる操作を想定していた。 NumLockの状態に関係なく数値を入力できるようにしたかったが、 外付けテンキーでNumLockを外した状態での5キーが無反応であったりしたために断念。 後にマウス入力中心となる。

無線LANの電波状態が、 PC間にスチール製の本棚を挟むだけで急激に悪くなる事があったり、 事務所で使用している別のBaseStationに繋がってしまう事があり開発中に何度か悩まされた。
BaseStationとNotePC間で接続相手を直接指定し、暗号化をおこなう事で混線と他PCからのアクセスを制御した。