本事例では、海運プロジェクト向けの船舶管理システムの開発を行いました。本システムは、海岸付近に設置されたAIS受信局からリアルタイムでデータを取得し、船舶の位置や航行状況をマップ上で可視化するWebアプリケーションです。
AIS(Automatic Identification System)メッセージには、船舶の位置情報(経度・緯度)、速度、進行方向、船名などが含まれており、本システムではそれらのデータを収集・解析し、オペレーターが船舶の動向をリアルタイムで把握できるようにしました。
また、設定された航行エリアからの逸脱や、通信途絶などの異常を検知し、即時に警告を通知する機能も実装しています。
主な機能
- AIS受信局からのデータ収集(TCP/IP通信)
- 海図上での船舶のリアルタイム表示
- 船舶の航行履歴の可視化およびリプレイ機能
- 浚渫プロジェクトの管理(ポリゴンによるエリア設定)
- ユーザー管理(権限管理付き)
- AIS受信局の接続設定管理
- 異常検知およびアラート通知
技術的課題と解決策
1. 大量データ処理(1日50万件以上)
AISデータは1日あたり約50万件に達し、リアルタイム処理とデータロス防止が課題となりました。
👉 解決策:
分散型ストリーミングプラットフォーム「Apache Kafka」を採用し、大量データの安定処理を実現しました。
2. AISメッセージ解析の難易度
AISメッセージは国際標準に基づいており、仕様理解が困難でした。
👉 解決策:
オープンソース(AisLib)を活用しつつ、独自にカスタマイズを行い、二重メッセージ処理などを実装。結果として100%のデータ解析を実現しました。
3. テスト環境不足(実機不足)
最大30台のAIS受信局を想定する一方で、実際のテスト環境は1〜2台のみでした。

👉 解決策:
UDP/TCPベースのAISシミュレーターを開発し、仮想環境でリアルに近いデータを生成。十分な負荷テストを可能にしました。
開発成果
- 開発期間:3.5ヶ月(当初予定より0.5ヶ月延長)
- 実環境(15局)で安定稼働を確認
- 顧客より高評価を獲得し、次フェーズ(モバイルアプリ)を受注
- Agile開発により柔軟な要件変更対応を実現
教訓
- 専門分野(海事・AIS)の深い理解が成功の鍵
- 実機不足はシミュレーションで補完可能
- 要件管理は必ず標準化・ドキュメント化することが重要

English