デジタル変革にはOSSをこう使ってくれ！

第1部
レガシー刷新と攻めの変革の両立を目指してOSSを活用した
ITモダナイゼーション
2023年3月10日（金）1Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

自己紹介

比毛 寛之
ひもうひろゆき

東京システムハウス株式会社
マイグレーションソリューション部部長

石巻市ご当地ヒーロー「シージェッター海斗」• レガシーマイグレーション屋さん。COBOL資産のモダナイズや基幹系でのOSSの活用など、既存資産を活用した基幹系システムの刷新が得意。
• 活動： OSSコンソーシアム(理事、オープンCOBOLソリューション部会リーダー)
COBOLコンソーシアム(セミナ分科会)
DXITフォーラム
• 出身：宮城県石巻市2

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

今日お話すること• OSSを活用したITモダナイゼーション• ITモダナイゼーションについて• opensource COBOL、opensource COBOL 4J、二刀流の移行手法• プラットフォームデジタル化指標• ITモダナイゼーションで気になる事項• IT資産の健全性、データ活用性、アジリティ（ユーザ要件への対応）• まとめ• レガシー刷新と攻めの変革の両立を目指して

OSSを活用したITモダナイゼーション

4

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

東京システムハウスの取り組み
マイグレーション実績(1995年～)
1995年から蓄積された経験・ノウハウと230件以上の導入実績

5

オープン系
代替フレームワーク

30件「AJTOOL」の開発と提供

COBOLシステムのコミュニティでのクラウドネイティブ移行

開発貢献と基幹系でのに対応

OSS利用の普及活動

オフコン

メインフレーム

75件

130件

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

ITモダナイゼーション（資産移行）
レガシーシステム
レオープンシステム(メインフレーム/オフコン)(Windows/Linux)

COBOL

変換

COBOL

Batch Framework

ジョブ実行制御
JCL

変換

JCLスクリプト

ユーティリティ代替機能

代替ユーティリティ
J2EE/WTC/UI Framework

オンライン制御

6

Java

画面定義

変換

JSP、JS、CSS

TPモニター

代替機能

代替ミドルウェア(OLTP)

NDB/RDB/VSAM

文字コード変換オープン系RDB/ISAM

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

ITモダナイゼーション（環境移行）
商用製品

お客様に合わせた最適な処理方式とミドルウェアへ移行します。
バッチ基盤

オンライン基盤（TPモニター）

DB

帳票基盤

運用監視

Java

JCL, コマプロ

画面定義

データ

帳票フォームジョブ定義

Micro Focus
Enterprise
Developer

Micro Focus
Enterprise Server(JES)

Micro Focus Enterprise Server(CICS, IMS DC)

OracleDatabase

SVF

JP1

Micro Focus
Visual COBOL

Micro Focus
COBOL Server

Micro Focus COBOL Server

DURL

Senju

FormHelper

A-AUTOJasperReport

Hinemos

COBOL再活用

COBOL

インフラ

二刀流

ミドルウェア

アプリ
ケーション

COBOL

7OSS

opensource
COBOL

opensource
COBOL 4J

AJTOOL Batch
Framework

AJTOOL
WTC/ J2EE
Framework

OracleWebLogic Server& Oracle Tuxedo

AJTOOL UI
Framework

JBoss EAP
Wildfly

Microsoft
SQL Server
IBM DB2
PostgreSQL
MySQLOS（ Windows Server、Linux、UNIX）
オープンサーバー、クラウド（AWS、GCP、Azure、Oracle、他）
Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

OSSコンソーシアム
オープンCOBOLソリューション部会
目的
基幹システムでのOSS普及を背景として、プロプライエタリな環境が一般的なCOBOLの開発においてもオープンソースのメリットを活かすため、OSS COBOLを技術・ビジネスの両面からサポートできるように整備していき、基幹システムにおけるOSS化の普及・促進に貢献する。
参加企業
••
•••••
•••
•
8

株式会社アックス
株式会社エネルギア・コミュニケーションズ
サン情報サービス株式会社
株式会社ＣＩＪOVOL ICTソリューションズ株式会社
株式会社ソフトテックス
東京システムハウス株式会社
株式会社ビイガコーポレーション
株式会社日立ソリューションズ
有限会社ランカードコム
飯島 裕一

活動内容
国内でも実績のあるOSS COBOLのOpenCOBOL 1.1 prereleaseをベースに、処理系自身の既知のバグや未実装機能および有用と思われる拡張機能などの情報を共有する。
http://www.osscons.jp/osscobol
https://github.com/opensourcecobol/
一緒に開発しませんか？

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

opensource COBOL
OpenCOBOL 1.1
pre-release

ORACAプロジェクトで開発されたオープンソースのCOBOLコンパイラ（原作者 西田圭介さん）(2009年2月)

1.1
Community Edition

GnuCOBOL

コミュニティ有志によるバグfix等反映版

GnuCOBOL 1.1

FSFに移管、GNUに登録、名称変更（2013年9月）

GnuCOBOL 3.1.2

REPORT SECTION, XML/JSON, COBOL2014（2020年12月）

日本コミュニティによるメンテナンス版
opensource
COBOL
v1.2J

日本の商習慣に応じた拡張が必要だったので、OSSコンソーシアムで開発・メンテナンス（1.1 pre-release を Jul. 2012 に fork）(2012年7月)

opensource
COBOL 4J
v1.0 DEVCOBOLをJavaへトランスレートする方式に移行(2020年7月)

v1.0.8v1.5.2J(2019年4月)

9

Javaトランスレート版(2023年2月)

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

※4J=for Java

opensource COBOL

https://github.com/opensourcecobol• OSSコンソーシアムで開発・公開しているCOBOLコンパイラ• COBOLをC言語にトランスレート、Cコンパイラでバイナリを生成• Linuxは『gcc』、Windowsは『cl』やLinuxエミュレータ(CygWin/MinGW）を利用
開発時

実行時
opensource COBOL コンパイラー(cobcコマンド)

変換
COBOL⇒C言語
COBOL開発者

COBOL
原文ロード
モジュール生成サブプロセス起動

実行プログラム or共有ライブラリ(.so)

opensource COBOL ランタイム
Cコンパイラ(gcc、cl)
中間 C言語ソースコード10

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

Cランタイムopensource COBOL 4J

https://github.com/opensourcecobol• opensource COBOL シリーズの新しいプロジェクト（OSSコンソーシアム）• COBOLをトランスレートして Javaを生成、javacでバイトコードを生成• 元祖「opensource COBOL」を Java にマイグレーション
開発時

実行時
opensource COBOL 4J コンパイラー(cobcコマンド)

変換
COBOL⇒Java
COBOL開発者

COBOL原文ロード
モジュール生成サブプロセス起動

Javaバイトコード

opensource COBOL 4J ランタイム
Javaコンパイラー(javac)
Java 開発者

11

中間 Java
ソースコードCopyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

Javaランタイム(JRE)opensource COBOL 4J

12

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

opensource COBOL 4J
opensource COBOL 4J は Java変換 と COBOL継続 の 二刀流 が可能
COBOL継続

Java変換
opensource COBOL 4J

Java変換の実現
COBOLコンパイル過程で中間Javaソースを生成する。
Javaエンジニアによるメンテも可能。

ブラックボックスなし
中間Javaが利用するランタイムライブラリはOSSで公開されている(LGPL3)。

13

OSSのCOBOLコンパイラ
NISTのCOBOL85テストを通過したCOBOLコンパイラである。
OSSで公開しており(GPL3)、誰でも取得して利用が可能。

COBOL文化の継承
COBOLの業務ロジックを100%再現。Javaでは手間がかかる演算や固定長などのCOBOL文化をJava環境で実装できる。

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

お試しくださいダウンロードはこちら & 一緒に開発しませんか？
https://github.com/opensourcecobol

Qiita記事『opensource COBOL4J はじめの一歩』
https://qiita.com/Hiroimon/items/a73e8bdec4b376916ca0
最新情報は弊社Twitterで発信中（@tsh_mms）

https://twitter.com/tsh_mms

プラットフォームデジタル化指標

15

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

ITモダナイゼーションで気になる事項
PFデジタル化指標は大きく分けてITシステム全体 と 機能システムごとから構成される。
さらにこれらは 属性情報 と 評価項目 から構成される。

ITモダナイゼーションで気になる事項3点

16

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

①IT資産の健全性

17Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

①IT資産の健全性
・はい、現行のスパゲッティ化・複雑化の状態はそのまま移行されます。
そこにホスト機能代替やミドル連携が加わり、もっと複雑になります。
回答 ・システムが長年の手入れ不足の場合、 IT資産の健全性を取り戻し、保守性や変更容易性の改善と再レガシー化しない方式を検討します。
クラウド
プラットフォーム

メインフレーム

オープン系
ミドルウェア
新部品

COBOL

COBOL

COBOL

DB

18

COBOL

モダナイゼーション（COBOL再活用）

COBOL

COBOL

ASM

DB

COBOL

DB

COBOL

COBOL

DB

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

オープン系
ミドルウェア

もっと複雑になった...

①IT資産の健全性
ところで、IT資産にCOBOLを残すのか？
• 最近のCOBOL言語の話題• 基本情報処理技術者試験でCOBOLの出題終了• COBOLは古い、新しいことできない･･･• COBOLのシステムは複雑、やりたくない･･･• COBOL技術者の引退、技術者不足• 空前の脱COBOLブーム（Javaリライト）• 今もCOBOL資産は世界に8000億行ある（Micro Focus社 2022年2月調査）

黙々と処理をこなして社会基盤を支える巨人COBOL。
その姿はギリシャ神話で天空を背負うアトラースのようだ。
COBOLが手を離せば天空が落ちてくる。
（画像 Wikipediaより）

COBOL言語の問題ではなく「IT資産の健全性」の問題
19

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

①IT資産の健全性• 本来COBOLは保守性や変更容易性が高い言語• 国際規格で標準化、この1月に新規格公開（ISO/IEC 1989:2023） NEW• 英語を用いた分かり易い構文、事務処理計算の業務を抽象的に記述• 構造化プログラミング、コード再利用の仕組み• 手入れ不足で不健全になってしまった• 長年の増改築（コピペ量産、念のため残した処理、その場しのぎのバイパス処理）• 標準でない記述（ベンダー独自機能、特定機器向け制御コード）• 仕様書やテストケースの消失 (元々は綺麗に整っていたはず)• COBOL技術者不足よりも深刻な仕様理解者不足 (ベテラン引退、引継ぎ不足)

COBOL再活用 でも 脱COBOL でも良いが、まず健全性の確保を
20

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

①IT資産の健全性
モダナイゼーションにおけるIT資産の健全性のポイントは4点
1

2

21

プロジェクト開始前のリファクタリング
テクノロジとビジネスロジックの分離（再レガシー回避）

3

テストケースの再構築

4

仕様理解者を増やす•

無駄なコードは移行コストに直結する
SLOC•

モダナイ中のリファクタリング・改修はNG。
現新比較の不一致原因が増加してしまう。
不一致

•

SLOC

オリジナルバグ？
変換誤り?
＋リファクタ誤り？
データ誤り?
改修誤り？
環境非互換?

保守性・変更容易性の観点で対策•••

デッドコード、なぞ変数名、バイパス見直し
スパゲティは仕様理解者または解析ツール活用
現行システム上でしっかり動作確認

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

①IT資産の健全性
モダナイゼーションにおけるIT資産の健全性のポイントは4点
1

2

3

4

プロジェクト開始前のリファクタリング••

テクノロジとビジネスロジックの分離（再レガシー回避）

ロジックと技術が入り混じる

ロジックと技術を分離

ビジネスロジック

ビジネスロジック
技術分離層

メーカー
独自機能

•

サードパーティ

オープンな機能

ツール化

OSS

テクノロジー

テクノロジー

クローズな技術を利用

よりオープンな技術を利用

再レガシーの回避•

22

ビジネスロジックがテクノロジーを自由に乗り換えられる仕組みにする

技術呼び出しテストケースの再構築
仕様理解者を増やす

技術変化に左右されない設計

メーカー独自機能を互換製品で回避すると将来の再レガシーの原因となり得る

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

①IT資産の健全性
モダナイゼーションにおけるIT資産の健全性のポイントは4点
1

プロジェクト開始前のリファクタリング

2

テクノロジとビジネスロジックの分離（再レガシー回避）•

現新比較テストはモダナイ後も維持すべき•••構築当初のテストケースが手入れ不足 or 消失
モダナイは現新比較テストを必ず作る
廃棄せず、せっかく作ったのだから維持をする

入力ファイル

出力ファイル

ジョブ
実行

出力
データ
出力帳票

3

テストケースの再構築•423

仕様理解者を増やす

比較用ファイル

現新比較

比較用ファイル

CI/CDパイプラインで現新比較を再活用する••バージョン管理 + CIツールを導入する
クラウドのAWS code pipeline、GithubActionsなどで基幹系向けのCIを構築する

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

①IT資産の健全性
モダナイゼーションにおけるIT資産の健全性のポイントは4点•

1

プロジェクト開始前のリファクタリング

2

テクノロジとビジネスロジックの分離（再レガシー回避）•

3

テストケースの再構築

仕様理解のチャンスをベンダに丸投げしない••

仕様理解とスキルセットへの投資と考える
スキルセットを回復して将来構想の足掛かりへ

ブラックボックスを紐解く ⇒ 結果が明白•••

分析設計：棚卸、機能整理、サードパーティ整理
現新比較：シナリオ/データ作成、不一致の調査
総合テスト：運用・保守のテスト、シナリオの作成、ジョブスケジュール、外部連携の検証• その過程でベテランから若手へのノウハウ継承
•

4

24

仕様理解者を増やす•

若手はシナリオ/データ作成で現行を理解、次第に不一致の詳細調査で深部の仕様も把握
若手の方がオープン系技術が得意なので、終盤にかけてウエイトは若手に移っていく

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

②データ活用性25

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

②データ活用性・無茶ぶりではありません。オープン系技術でモダナイズすることで、基幹系データのリアルタイム提供やAPIを通じた柔軟な提供ができます。
回答 ・データの鮮度は、論理構造や排他条件の精査、締め前提の業務仕様など、新鮮であれば良いのかについて十分な検討が必要です。
・データ移行

基幹システム基幹システム(メインフレーム)(オープン/クラウド)

COBOL

COBOL/Java

API構築

APAP

API

NDB RDB VSAM

モダナイ
ゼーション

・モノリスへの媒介層として、OLTP構築と同じ方法で元COBOLへのAPIを構築

データの鮮度

・データの鮮度

SQL
オープン系RDB

ETL

DWH

データ活用基盤

26

・レガシーデータをオープン系RDBに移行
・活用し易い列の検討（階層キー、マルチレイアウト、集団項目、OCCURS)・ API構築

SOAP/REST

データ移行
レガシーデータAPI
ゲートウェイ・リアルタイムのデータ提供が可能だが、論理構造、排他条件、締め処理など
新鮮さ vs 業務仕様を十分に検討

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

③アジリティ(ユーザ要件への対応)

27

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

③アジリティ(ユーザ要件への対応)
・新ミドルや新技術ではテクノロジーとビジネスロジックの分離が重要です。
COBOL再活用の場合は、COBOL命令のまま利用できるようにします。
回
答 ・個別対応をしないようにツール化し、開発者が向き合うビジネスロジックには影響しません。将来、テクノロジーを変更する際の修正を最小限にします。
＜基本方針＞＜対応例1＞

ビジネスロジック
技術分離層

オープンな機能OSS

テクノロジーロジック影響なしで利用ツール化
オープンな技術を利用＜対応例2＞

ビジネスロジック
SQL生成

ビジネスロジック
COBOLのREAD/WRITE命令

データ授受

PostgreSQL

Tomcat (Servlet)

テクノロジー

テクノロジー

テクノロジーの変更は、技術分離層を変更すればOK、ビジネスロジックの変更は最小限
外部のエコシステムと連携する場合も同様の方式を取る
28

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.

COBOLのDISPLAY/ACCEPT命令

まとめ• OSSを活用したITモダナイゼーション• プラットフォームデジタル化指標（PFD指標）• レガシー刷新と攻めの変革の両立に向けて• PFD指標でシステムを精密検査して最適な対策を検討• ITモダナイはデジタル変革の第一歩、IT資産の健全性の回復が重要• OSS活用と自社スキルの回復で、攻めの変革の足掛かりにお問い合わせ東京システムハウス株式会社
マイグレーションソリューション部☎ 03-3493-4601
mms@tsh-world.co.jp@tsh_mms
本文に記載されている会社名、商品名は一般に各社の商標または登録商標です30

Copyright © 2023, Tokyo System House Co., Ltd. All Rights Reserved.