基幹系システムにオープンソースを適用するには2022年3月11日（金）OSSコンソーシアム
オープンCOBOLソリューション部会
上野 俊作

オープンソースを組み込んでシステムを構築する
そんなの、今時普通じゃないですか？
2

Who am I俊作 (Shunsaku Ueno)

上野
現所属

東京システムハウス（株）
マイグレーションソリューション部

経歴 (30年)・前職無停止型コンピュータの導入プロジェクト及び営業支援（製造・通信業界担当）
・現職
メインフレームを中心としたマイグレーションプロジェクトを担当

OSS(opensourceCOBOL OCE-SQL)の開発マネジメントとソリューション企画・開発
3

1. OSSでレガシーモダナイゼーションは可能か？
(技術視点)
4

ソリューションスタック
業務系システムにて必要となるソリューションの大部分はOSSで調達可能
COBOL

◎

opensource COBOL / Gnu COBOL

エミュレータ画面◎JSP / HTML / JavaScript系

帳票出力

△

Jasper Report / 商用製品利用

JOBスケジューラ△

Hinemos / 商用製品利用

JCL/JOB実行基盤(JCL)△

商用製品利用（AJTOOL for OSS）

トランザクション管理◯

EnduroX

RDBMS◎

PostgreSQL

VSAM

◎

VBISAM

メインフレームOS◎5Linux/(Docker)

技術課題（DB 例）とその解決策
・ベンダー製品とは異なり噛み合わせの調整が必要
・PostgreSQLにはCOBOL言語向けのプリコンパイラが提供されていない。
→ COBOL部会にて、『Open-COBOL-ESQL』を提供。
埋め込みSQLを利用したCOBOLの移行が可能。
・PostgreSQLにおいては、２フェーズコミットがサポートされていない。
（Java言語を除く）→ EnduroX（https://github.com/endurox-dev/endurox）を利用することで、PostgreSQLとのXA連携が可能。（必要ならば）OSSの考え方は、足りなければ『作って共有する』原理主義に陥らず、“作らない”、“捨てる”選択も必要
6

クラウドネイティブへの移行とOSS
CNCF クラウドネイティブロードマップ

API Gateway
API
業務(Go)

API
業務サービス(Java)

API
業務サービス(COBOL)

TranData
DataLake

基幹システムの中核がOSSになる時代が来る？

7

CD/CI

Open
Telemetry

Messaging Service
TranData

認証サービス

TranData

2. OSSを業務システムに適用するには（組織論）
8

OSSを積極的に利用している部門の特長◎ 強力な推進リーダがいる
他人のシステムでなく、自分達でシステムを作る意識開発ができる人を集める
DXレポートで課題提起されている問題意識と共通するのでは？
10

3. オープンCOBOLソリューション部会紹介11

オープンCOBOLソリューション部会
株式会社アックス
株式会社エネルギア・コミュニケーションズ
サン情報サービス株式会社
株式会社ＣＩＪ
株式会社ＪＰ情報センター
東京システムハウス株式会社
株式会社ビイガコーポレーション
株式会社日立ソリューションズ
有限会社ランカードコム◆ 活動開始 : 2012年1月◆目的：
基幹系システム領域にオープンソースを適用する
オープンソースの力でCOBOL資産の課題を解決◆活動内容(技術開発・検証)：✔基幹系構築に必要なOSSを発掘✔基盤OSSソフトウエアの動作検証✔オープンソースCOBOL コンパイラの開発と公開✔セミナー・勉強会の開催（五⼗⾳順:2022/3現在 9社）

12

opensource COBOLとはバージョン1.1
pre-release

GnuCOBOL

1.1
Community Edition

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

GnuCOBOL 1.1

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

GnuCOBOL 3.1.2

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

⽇本コミュニティによるメンテナンス版
opensource
COBOL
v1.2J
(2012年7⽉)

Javaトランスレート版

⽇本の商習慣に応じた拡張が必要だったので、OSSコンソーシアムで開発・メンテナンス（1.1 pre-release を Jul. 2012 に fork）
opensource COBOLのライセンスはGPL2+

v1.5.2J(2019年4⽉)

opensource
COBOL 4J
v1.0 DEVWEBシステムやクラウドAPIとの親和性の⾼いJavaへのトランスレート版(2020年7⽉)
を開発しリリース。

v1.0 開発中

v1.6J 開発中

(2021年前半)(2022年?)

13NEW※4J=for Javaopensource COBOL
1.
2.
3.
4.

COBOLをC言語にトランスレート、Cコンパイラでバイナリを生成Linux環境では『gcc』または『Clang/LLVM』をサポート
C言語用のライブラリとの容易な連携
RustやGoなどのもつCオブジェクトの呼び出しインターフェースにより相互連携が可能（https://gnucobol.sourceforge.io/faq/index.html#can-gnucobol-interface-with-go)（https://gnucobol.sourceforge.io/faq/index.html#can-gnucobol-interface-with-rust)

5.

Raspberry pi OS上でも動作可能/WASMバイナリーの生成も可能
開発時

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

COBOL開発者

COBOL
原⽂

トランスレート(COBOL⇒ C⾔語)C⾔語 ⽣成

C⾔語
中間ファイルhttps://github.com/opensourcecobol（ロードモジュール⽣成）

Cコンパイラ起動

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

サブプロセス起動

opensource COBOL
ランタイム

Cコンパイラ(gcc、cl)Cランタイムopensource COBOL 4J
1.
2.
3.
4.

NEW

opensoruce COBOLの新しいプロジェクト
COBOLをトランスレートして Javaを生成、javacでバイトコードを生成
VSAMファイルアクセスについてはSQLiteを利用
PostgreSQLプリコンパイラ（Open-COBOL-ESQL4J）
開発時

実⾏時

他システムとの連携

opensource COBOL 4J コンパイラ(cobcコマンド)
クラウドサービスとの連携

COBOL開発者

Java 開発者

COBOL
原⽂

トランスレート(COBOL⇒Java)NEWJava ⽣成Java
中間ファイルhttps://github.com/opensourcecobol

Javaコンパイラ起動（ロードモジュール⽣成）

Javaバイトコード(Class)

サブプロセス起動

opensource COBOL 4J
ランタイム

Javaコンパイラ(javac)Java実行環境(JRE)

デジタル技術との連携

Open COBOL ESQL
1.
2.

COBOLからPostgreSQLにアクセスするツール
プリコンパイラ：EXEC SQLをCALLに変換する
実⾏時

開発時
EXEC SQL
FETCH C1 INTO
:EMP-NO,:EMP-NAME,:EMP-SALARY
END-EXEC.

CALL "OCESQLStartSQL“.
CALL"OCESQLSetResultParams"
USING
BY VALUE 3
BY VALUE 4
BY VALUE 0
BY REFERENCE EMP-NO.

https://github.com/opensourcecobol

埋め込みSQLCOBOL原⽂
ocesql（プリンコンパイラ）

libocesql(実⾏時ライブラリ)

Open Cobol ESQL

libpq
SQL
実⾏

CALL
プリコン後COBOL

opensource
COBOLコンパイラ

COBOL
ライブラリ(dll, so)
opensource COBOL
ランタイム

PostgreSQL導⼊事例
国内での導⼊事例
⾃治体様

卸売業様

職員総合・財務会計・予算編成システム(汎⽤機からのマイグレーション)

⻘果卸売システム

卸売業様

教育・出版様

紙卸商システム(システムをフルオープンソース化)(汎⽤機の再構築における⼀部資産の活⽤)

鉱業様

ITサービス様基幹システム: 経理、資材、給与、他(.NET+COBOLへ、6カ⽉で移⾏完了)

修理業務⽀援システム(COBOL資産の再利⽤によるWEB化を実現)

17

みなさま、お使いください︕
1. OSSコンソーシアムのサイト
http://www.osscons.jp/osscobol/download/※[opensorce COBOL]で検索

https://github.com/opensourcecobol/※[opensource COBOL GitHub]

で検索

1. GNU COBOL FQA (英語)https://gnucobol.sourceforge.io/faq/index.html
18

本資料に記載の会社名、製品名は、それぞれの会社の商号、商標もしくは登録商標です。
19