ITモダナイゼーションとOSS基盤
2020年10月23日(金)オープンCOBOLソリューション部会
井坂 徳恭

自己紹介
• 氏名： 井坂 徳恭（いさか のりゆき）• 所属： 東京システムハウス株式会社
マイグレーションソリューション部• 参加団体：OSSコンソーシアム オープンCOBOLソリューション部会
opensource COBOLのコミッター• 仕事： 基幹システム向けのOSS検証、開発等• 言語： COBOL、C、C++、Java、.NET、PHP、…
2

アジェンダ
１．基幹システムへのOpen Source導入の動向

２．opensource COBOL＋OCESQLのご紹介
３．OSS活用事例

４．opensource COBOL4Jリリース
５．まとめ

６．部会紹介3

１．マイグレーションとOSS

4

レガシーマイグレーション24年
メインフレーム・マイグレーション・サービス

マイグレーション実績 (1995年～)
オープン系

1995年から蓄積された経験・ノウハウと代替フレームワーク「AJTOOL」の開発と提供

220件以上の導入実績充実したサービスと体系化されたCOBOL資産
活用ソリューション

25件
オフコン

メインフレーム72件

123件

最新のICT技術を積極的にサービス化

Copyright © 2019, Tokyo System House5Co., Ltd. All Rights Reservedマイグレーション方法論
レガシーシステム

オープンシステム(メインフレーム/オフコン)(Windows/Linux)

COBOL

オープン系COBOL

ジョブ実行制御

Batch Framework

JCL

JCLスクリプト

ユーティリティ

代替ユーティリティ

オンライン制御

Online Framework

マイグレーション

画面定義

JSP、JS、CSS

OLTP

代替ミドルウェア(OLTP)

NDB/RDB/VSAM

オープン系RDB/ISAM

Copyright © 2019, Tokyo System House6Co., Ltd. All Rights Reserved現状システムの課題• メインフレーム/オフコンの保守切れ• 保守できる人材の不足• DXへの対応

7

DXレポート (経産省 2018.9発表)
デジタル・トランスフォーメ―ション（DX）
定義• 新たな デジタル技術を活課題

2025年の崖• 既存システムの• 課題が克服できないと、DX

用 して 新たなビジネス

ブラックボックス解消が実現できない のみならモデルを創出・柔軟に改と データ活用

ず、2025年 以降、最大変し、将来の成長と競争力強化を図ること(レガシー化、過度なカスタマイズ、複雑化、業務見直し、現場の抵抗…)

12兆円/年 の経済損失が見込まれる！

（出典）DXレポート ～ITシステム「2025年の崖」の克服とDXの本格的な展開～

8

データの活用
マイグレーションで基幹系データを利活用し易くする
基幹系システム(メインフレーム)

柔軟＆スピーディーなデータ活用を実現！

基幹系システム(オープン)

COBOL

オープン系の技術を活用
・SOAP/JSON/REST API等で、他システムとCOBOLを連携し、データ活用をし易くする

オープン系技術+ COBOL

レガシーデータ

階層型DB

レガシー
マイグレーション

オープン系のRDBへ移行

オープン系RDB・階層型やVSAM等のデータをオープン系RDBに移行し、情報系やDWHで利用し易くする

RDB VSAM/SAM

プリンタ（帳票出力）

プリンタ、電子帳票PDF

9

デジタル技術

帳票データ利活用
・業務APを介して整形されたデータを電子帳票化することで帳票データも利活用し易くするデータの活用
基盤はOSSとクラウドにシフトしていく
基幹系システム(オープン)

オープン系の技術を活用
・SOAP/JSON/REST API等で、他システムとCOBOLを連携し、データ活用をし易くする

オープン系技術+ COBOL

デジタル技術OSS

オープン系のRDBへ移行

オープン系RDB・階層型やVSAM等のデータをオープン系RDBに移行し、情報系やDWHで利用し易くする

プリンタ、電子帳票PDF

帳票データ利活用
・業務APを介して整形されたデータを電子帳票化することで帳票データも利活用し易くする

10

クラウド

２．opensource COBOLの紹介

11

COBOLとは• 昨年60周年（還暦）• 自然言語に近い構文をもつプログラム言語– 事務処理に特化した高級言語– 文章に近い構造を採用（章、節、句）– 特に意識せず桁数の多い演算も可能

12

オープンソースなCOBOL
基幹系システム(オープン)

DX時代のアプリケーションの基盤としてオープンソースなCOBOLが必要とされている

オープン系技術+ COBOL

オープン系RDB

プリンタ、電子帳票PDF

13

opensource COBOLとはＯｐｅｎＣＯＢＯＬ
発祥はＯＲＣＡプロジェクトの日医標準レセプトソフトのために開発された

オープンソースＣＯＢＯＬコンパイラ
開発：日本医師会総合政策研究機構 ORCAプロジェクト
原作者：西田圭介氏「日医標準レセプトソフト」は2002年から本運用開始、2015年5月現在１万3千以上※)の医療機関で実運用されています。

→その後、ヨーロッパのコミュニティに移管
バージョン1.0
バージョン1.1
pre-release

ＯｐｅｎＣＯＢＯＬの公開配布版（Feb. 2009）14

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

バージョン2.0

1.1
Community Edition

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

GNU COBOL 1.1

GNUに登録された最新配布版（Jan. 2014）

GNU COBOL 3.2

opensource COBOL
v1.2J

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

v1.5.2J

15

opensource COBOLの仕組み
コンパイラ＋ランタイム
構成

Ｃトランスレータ方式のため、前提製品としてＣコンパイラを必要とします
・Linuxの場合は配布に含まれるgccでＯＫ・Windowsの場合はLinuxエミュレータ（MinGW, Cygwin等）またはVisual
StudioのCLコンパイラ・llvm-clang等も利用可能
開発時

COBOL 原文

opensource ＣＯＢＯＬコンパイラ（ｃｏｂｃコマンド）
トランスレート
ＣＯＢＯＬ→Ｃ

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

Ｃコンパイラ（gcc、cl.exe）

C言語
中間ファイル

実行時

実行プログラムまたは共有ライブラリ（.so、.dll）
opensource COBOLランタイム
Cランタイム16

COBOLのDBアクセス• 埋め込みSQL– ソースコード中にSQLを記載
EXEC SQL
SELECT NO, NAME, SALARY
FROM EMPTBL
INTO:EMP-NO,:EMP-NAME,:EMP-SALARY
END-EXEC.

Database

17

Open COBOL ESQL
• opnesource COBOL向けの埋め込みSQL実行基盤
Windows/Linux サーバー
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.

埋め込みSQLCOBOLプログラム
ocesql(プリコンパイラ)

libocesql(実行時ライブラリ)
Open Cobol ESQL

プリコンパイル後
COBOLプログラム

プリコンパイル後
COBOLプログラム

opensource COBOL
コンパイラ

opensource COBOL
ランタイム

18libpq

みなさま、お使いください！
• OSSコンソーシアムのサイト
http://www.osscons.jp/osscobol/download/※[opensorce COBOL]で検索•
https://github.com/opensourcecobol/※[opensource COBOL GitHub]

19

で検索

３．OSS活用事例
20

導入事例
• 国内での導入事例
自治体様

卸売業様

職員総合・財務会計・予算編成ｼｽﾃﾑ(汎用機からのマイグレーション)

青果卸売システム

卸売業様

教育・出版様

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

鉱業様

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

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

事例（流通業向けパッケージサービス）• ユーザー毎にサーバーを導入

22

事例（流通業向けパッケージサービス）• OSSでクラウドサービスにVPN

JSP

COBOL / JCL

ZabbixJava

opensouceCOBOL

TomcatPostgreSQL
Hinemos

JasperReport
CentOS

仮想化ホスト23

４. opensource COBOL4Jリリース

24エンタープライズの行方• COBOLだけじゃないシステム– エンタープライズではフロントをJavaに– オンプレミスからクラウドへ– クラウドネイティブなシステム構築が推進されている

25

お待たせしました

opensource COBOL4J(for Java)
開発者版を公開
26

opensource COBOL4J• COBOLをJavaにトランスレートします• Javaで作成したフロントでバックエンドはCOBOLのロジックを利用• クラウドAPIの親和性向上• Javaエンジニアによる改修可能• etc.

多くの利点が生まれます27opensource COBOL4Jの仕組み
構成

コンパイラ＋ランタイム
Javaトランスレータ方式となり、Javaランタイムで実行します
OpenJDKでも動作をします
C版とほぼ変わらない利用感になります
開発時

COBOL 原文

opensource ＣＯＢＯＬ4Jコンパイラ（ｃｏｂｃコマンド）
トランスレート
ＣＯＢＯＬ→Java

実行時

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

Javaコンパイラ（OpenJDK）

Java言語
中間ファイルJavaクラスファイル（.class）

opensource COBOL4Jランタイム
Javaランタイム

28

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

COBOLとJavaの連携• COBOLの特殊なデータ型が多言語との連携時に壁となりやすい• opensource COBOL4JではCOBOLのCALL文とインターフェースを用意• COBOLデータ型からIntegerやString等のデータを取得可能

Public MyClass Implements COBOLRunable {CALL “MyClass” USING variable-a
variable-b

public run(COBOLField A, COBOLField B){
int a = A.getInt();
String b = B.getString();…

29

Open Cobol ESQL4J• COBOL4J対応のOCESQL– Java化に伴いJDBCへの対応を予定– 様々なDBにアクセス可能へ
EXEC SQL
FETCH C1 INTO
:EMP-NO,:EMP-NAME,:EMP-SALARY
END-EXEC.

Windows/Linux サーバー

埋め込みSQLCOBOLプログラム
ocesql(プリコンパイラ)

libocesql(実行時ライブラリ)

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

CALL

プリコンパイル後
COBOLプログラム

COBOLライブラリ(.class)

opensource COBOL4J
コンパイラ

opensource COBOL4J
ランタイム

30

New!
JDBC
SQL
実行

Any DBOSSを活用した新しい開発体制
CI/CDパイプライン

マイグレーション

NEW

クラウド

オンプレ

レガシー

マイグレーション

デプロイ

新システム

ビルド

テスト結果通知

通知
コミット
テストツール

開発ツール

COBOL開発者

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

テスト実行(REST API)

みなさま、お使いください！その２•https://github.com/opensourcecobol/opensourcecobol4j※[opensourceCOBOL4J GitHub]

で検索• コミットやIssue等お待ちしています32

５．まとめ33

まとめ• 引き続きマイグレーションは実施されていきます• OSSの事例は引き続き増えています• Java版のリリースにより、新しい選択肢が増えました• DXへの対応のため、OSSを活用したマイグレーションを推進していきます34

６．部会紹介35

部会のご紹介• オープンCOBOLソリューション部会• 目的– オープンソースのメリットがあるCOBOLを推進する• 対象– OSS COBOLをはじめとするOSSの基幹システムに携わる企業• 活動内容– OSS COBOLのメンテナンス、開発およびセミナー等

36

一緒に開発しませんか？
• Opensource COBOLの開発をgithubで行っています– https://github.com/opensourcecobol/opensource-cobol• issue/commitお待ちしております37ちょっとだけ宣伝

クラウド時代のアジャイル開発×クラウドマイグレーション～新時代の攻めのIT活用～• Webセミナーを実施します– https://sites.google.com/tsh-world.co.jp/mswebinar/%E3%83%9B%E3%83%BC%E3%83%A038

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