プロジェクト概要
中部地方を中心に展開する物流・運輸会社様。1993年に導入したAS/400(IBM iSeries)上で動くCOBOL製の配送伝票・請求帳票システムが30年以上現役でした。AS/400のハードウェアEOLが迫り、COBOLに精通したエンジニアも社内に残り1名(定年間近)という状況で「今のうちに移行しなければ」とご決断されました。
単純な移行ではなく、この機会に帳票業務全体をモダン化・ペーパーレス化することを目標にフルリプレイスをご提案しました。
課題と解決アプローチ
⚠ CHALLENGE(課題)
- AS/400 ハードウェアEOL
- COBOLエンジニアが社内に1名のみ(定年間近)
- 30年分の改修でソースが誰も追えない状態
- 日次バッチ処理が6時間かかる
- 紙の伝票が月間3万枚・保管コストが膨大
→
✅ SOLUTION(解決策)
- Azure VM上のJava/Spring Bootへフルリプレイス
- COBOLロジックをリバースエンジニアリングし再実装
- Azure SQL Database(マネージドDB)に移行
- バッチをAzure Batch + 並列処理で高速化
- 帳票をPDF電子化、Azure Blob Storageで保管
移行後のアーキテクチャ(Azure構成)
【移行後:Azure構成(東日本リージョン)】
Azure Virtual Network
├── Azure App Service: Java 17 / Spring Boot 3.x
│ └── 配送管理・伝票発行Webシステム(ブラウザ操作)
├── Azure SQL Database: General Purpose (4vCores)
│ └── 配送データ・顧客・請求データ(旧ISeriesDBから移行)
├── Azure Batch: 日次バッチ処理(並列化で6h→20分)
├── Azure Blob Storage: PDF帳票・画像(旧紙伝票スキャン含む)
└── Azure Active Directory: 社員認証・権限管理
Azure Monitor / Application Insights: 監視
Azure Backup: 日次バックアップ
西日本リージョン: Geo冗長バックアップ
COBOLリプレイスの進め方
COBOLリプレイスで最も難しいのは、30年分の改修で誰も全体像を把握していないロジックの解読です。テクノスフィアでは以下のアプローチで進めました:
- Step 1 インプット・アウトプット分析:入力データ(EDI・CSV)と出力帳票を完全にドキュメント化。ロジック詳細ではなく「何が入って何が出るか」を先に確定。
- Step 2 テストデータ収集:過去5年分の実データ(入力→出力ペア)を収集し、自動テストスイートを構築。新システムが同じ結果を出すことを機械的に検証。
- Step 3 段階的置き換え:帳票種別ごとに順次Javaで再実装。1種完了→テスト合格→次の帳票、のサイクルで8ヶ月かけて全帳票を移行。
- Step 4 並行稼働検証:本番の旧COBOLと新Javaシステムを2ヶ月並行稼働し、全帳票の一致を確認してから切り替え。
移行結果・成果
90%バッチ処理時間短縮
(6時間→20分)
(6時間→20分)
3万枚月間紙伝票をゼロ化
(PDF電子化)
(PDF電子化)
0COBOLスキル依存
ゼロに(Java移行)
ゼロに(Java移行)
35%月額インフラコスト削減
(AS/400保守費比較)
(AS/400保守費比較)