OSS COBOLの最新動向とモダナイゼーション事例のご紹介
ITモダナイゼーションSummit 20162016年4月26日（火）マイグレーションソリューション部
比毛 寛之
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

1

東京システムハウスのご紹介
商号
 設立
 資本金
 売上高
 従業員数 本社
 特色

東京システムハウス株式会社（略称：TSH）
1976年11月
1億7,990万円 （払込資本）24億円（2015年10月期）
174名（2015年10月現在)
東京都品川区
独自技術に特化したソリューション・サービス
ニッチな業種向けの専用パッケージ
どの企業系列にも属さない独立系コンピュータ利用に関する総合サービスを提供

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

2

東京システムハウスのご紹介

2012年
2007年

2014年

平成26年度、平成27年度補助事業『OSS COBOLクラウド基盤導入実証』

2004年
2016年3月に完了しました。

1995年

本日はここを話します。

Copyright © 2016, Tokyo System House Co., Ltd. All Rights3

本日お話しすること
1. opensource COBOLとは
2. 東京システムハウスの取り組み
3. お客様事例のご紹介
4. まとめCopyright © 2016, Tokyo System House Co., Ltd. All Rights41. opensource COBOLとは
OSS の COBOL コンパイラ 『opensource COBOL』 をご紹介します。

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

5opensource COBOLとは
OpenCOBOLORCAプロジェクト『日医標準レセプトソフト』のために開発されたOSSのCOBOLコンパイラ
開発：日本医師会総合政策研究機構 ORCAプロジェクト
原作者：西田圭介氏

バージョン1.0

ヨーロッパのコミュニティに移管されて開発が継続 (Dec. 2007)

バージョン1.1
pre-release

OpenCOBOLの公開配布版 (Feb. 2009)

1.1
Community Edition
GNU Cobol 1.1
opensource COBOLv1.2J
v1.3J

コミュニティ有志によるバグfix等反映版
GNUに登録された最新配布版（Jan. 2014）

OSSコンソーシアム が中心となり、日本の商習慣に応じた拡張機能を追加し、1.1 pre-release より fork (Jul. 2012)

v1.4J
v1.5J

NEW

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

・SJIS、UTF-8対応
・日本語変数名/段落名
・通貨記号”¥”のサポート
・ISAMファイルの機能拡張
・ファイルハンドラのサポート
・商用COBOL互換サポート
・RPMパッケージ公開
・DB連携ツール(埋込SQL)
6

opensource COBOLとは


COBOLコンパイラとランタイム
 COBOLをC言語にトランスレートし、Cコンパイラでバイナリを生成します。
 Linuxは、配布に含まれる『gcc』を使用します。
 Windowsは、Linuxエミュレータ（MinGW, Cygwin）が必要です。
開発時

opensource COBOLコンパイラ（cobcコマンド）
トランスレート
COBOL→C

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

C言語
中間ファイル

実行時

Ｃコンパイラ
（gcc）

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

実行プログラムまたは共有ライブラリ(.so)
opensource COBOLランタイム
Cランタイム7

opensource COBOLとは 国内での導入事例
自治体様 職員総合・財務会計・予算編成システム(大型汎用機からのマイグレーション)
卸売業様 紙卸商システム(システムをフルオープンソース化)
鉱業様 基幹システム: 経理、資材、給与、他(VB.NET + COBOLへ、要件定義から6カ月で移行完了)

卸売業様 青果卸売システム(OSSと商用製品のハイブリッドシステム )教育・出版様(大型汎用機の再構築における一部COBOL資産の活用)
ITサービス様 修理業務支援システム(老朽化対策とともに、既存COBOL資産の再利用によるWEB化を実現)
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

NEW8

2. 東京システムハウスの取り組み
東京システムハウスが2014年4月～2016年3月までに取り組んだ経済産業省補助事業をご紹介します。

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

9どのような事業？

中小企業等省エネルギー型クラウド利用実証支援事業
事業名 『OSS COBOLクラウド基盤導入実証』（クラウド基盤ソフトウェア導入実証）
http://www.meti.go.jp/information/publicoffer/saitaku/s150415001.html
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

10事業の背景 中小企業の悩みをどのように解決するか。
レガシープラットフォームの販売・保守終了

システム・技術者不足

既存システムはそのまま使い続けたい• ライフサイクルに依存しないプラットフォームを選定する• システムの保守・運用を外部委託しやすい状態にする• COBOLアプリケーションを継承する• システムは所有から利用へ• ITを専任者(社内)から専門家(社外)へ• 既存システムを活用する

新プラットフォームとしてクラウドを選択

マイグレーションで再利用

クラウドに最適な opensource COBOL でマイグレーションしよう！
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

11

事業の背景 中小企業のクラウドマイグレーションの課題
opensource COBOLの機能不足• COBOL標準の画面機能が企業の業務で使うには貧弱で、不十分である。
• 統合開発環境やデバッガがない。（コマンド入力で開発？）• 導入先のOSがLinux前提であり、使い慣れたWindowsで利用できない。

レガシープラットフォームの代替が必要• COBOL以外のミドルウェアの代替が必要。(オンライン,バッチ,DB,帳票,運用)• 代替として商用ソフトを利用すると、クラウドでは高額になってしまう。
クラウド採用の敷居が高い• クラウド環境の監視やプロビジョニングなど運用に関わる専門的な知識が必要。
• しかし、中小企業には専任担当者が少なく、新たな知識の習得は困難。

これらの課題を解決し、中小企業のレガシー資産のクラウドへの移行を促進する
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

12事業の目的事業名
OSS COBOLクラウド基盤導入実証
 期間2014年4月～2016年3月
 本事業は、企業のCOBOLシステムを安全にクラウドのOSSCOBOL実行基盤に移行し、安定して運用するために必要となる以下のテーマを推進し、企業のレガシープラットフォームの撤廃を促進させることで省エネ化を達成することを目的とします。


1. クラウド利用に最適なOSS COBOLコンパイラの研究開発
2. OSS COBOL実行環境への移行と構築に必要となる機能の開発
3. クラウド移行後のOSS COBOLシステム運用に必要となる機能の開発

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

13

事業の成果1. クラウド利用に最適なOSS COBOLコンパイラの研究開発
opensource COBOL のWindows対応
 Microsoft Visual Studio の C コンパイラに対応 opensource COBOL自身をVisual Studioのプロジェクト形式で提供
 Windows ネイティブの exe や dll の生成が可能となった
開発時

opensource COBOLコンパイラ（cobcコマンド）
トランスレート
COBOL→CCOBOL 原文

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

C言語
中間ファイル

実行時

Ｃコンパイラ（cl.exe）

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

実行プログラム(.exe)
または共有ライブラリ(.dll)
opensource COBOLランタイム
Microsoft Cランタイム

14

事業の成果1. クラウド利用に最適なOSS COBOLコンパイラの研究開発


SCREEN SECTIONによるCUIの強化 日本語の入出力と罫線表示に対応し、レガシーの画面をそのまま再現。
 Windows RemoteApp を使用したシンクライアントシステムの構築が可能************************************************SCREENSECTION.

************************************************
01 GAMEN1.
03 LINE 01 COLUMN 02 VALUE "SYAMNT".
03 LINE 02 COLUMN 30 VALUE "社員マスタ保守".

03 LINE 05 COLUMN 05 VALUE "社員コード".
03 ACP-CD
LINE 05 COLUMN 20 PIC X(04)USING WK-CD .

03 LINE 06 COLUMN 05 VALUE "社員名".
03 ACP-NM
LINE 06 COLUMN 20 PIC N(10)USING WK-NM.

03 LINE 07 COLUMN 05 VALUE "部署".
03 ACP-BUSYO

LINE 07 COLUMN 20 PIC X(02)USING WK-BUSYO.

<以下省略>

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

15

事業の成果1. クラウド利用に最適なOSS COBOLコンパイラの研究開発
Eclipseプラグインを開発

COBOLパースペクティブ

コンパイラ起動/ランタイム起動

COBOLプロジェクト作成

COBOLエディター(予約語、領域、コピー展開)

コンパイルエラー表示
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

16

事業の成果1. クラウド利用に最適なOSS COBOLコンパイラの研究開発
EclipseプラグインからOSSのCOBOLデバッガを起動
主な機能
・STEP実行・ブレイクポイント
・自動STEP・変数の参照/変更
・変数ウォッチ
・文字列検索Copyright © 2016, Tokyo System House Co., Ltd. All Rights

17

事業の成果2. OSS COBOL実行環境への移行と構築に必要となる機能の開発


AJTOOL Batch Framework の Windows対応
 Batch Framework により、バッチ処理の実行基盤を提供します。
 JCL実行機能、各種ユーティリティ(ソート、ファイル操作、ジョブログ出力)

COBOLプロセス
AJTOOL Batch Framework
CALL

読み取りユーティ
リティ

JCL

¥EXEC

GOBACK

COBOL(dll,so)

opensource COBOL ランタイム
CALL

システムコール

書き出し

ジョブログSAM

ISAM

Windows/Linuxサーバー
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

18

事業の成果2. OSS COBOL実行環境への移行と構築に必要となる機能の開発
AJTOOL UI Framework の Windows対応
 Tomcat とCOBOLによるオンライン処理の実行基盤を、Windowsに対応

Windows/Linux サーバー

インターネット
クライアントPC

WEBサーバー

COBOLプロセス
AJTOOL UI Framework
DISPLAY

JSP

XML

Tomcat

画面節から生成ACCEPT

COBOL(dll,so)

opensource COBOL ランタイム

SAM

スマートフォン/タブレット

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

ISAM
19

事業の成果2. OSS COBOL実行環境への移行と構築に必要となる機能の開発
 COBOL構文のままで画面をWEB化できます。
 SCREEN SECTIONで画面定義、DISPLAY/ACCEPT命令による画面処理

 オフコンに多いSCREEN SECTIONによる動的な画面変化に対応

画面節の行位置、桁位置、色、罫線をWEB画面で再現。キーボード操作も同等にできます。
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

20

事業の成果2. OSS COBOL実行環境への移行と構築に必要となる機能の開発
DB連携ツール(Open Cobol ESQL) の Windows対応
 PostgreSQL向け埋め込みSQLプリコンパイラを、Windowsに対応
 新機能追加: エンコード指定、動的SQL対応、AT句、可変長対応、等

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プログラム

Windows/Linux サーバー

libocesql
ocesql(実行時ライブラリ)(プリコンパイラ)
CALL
Open Cobol ESQL
プリコンパイル後COBOLプログラム

COBOLライブラリ(dll,so)opensource
COBOL コンパイラ

opensource
COBOL ランタイム

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

libpq
SQL
実行

PostgreSQL

21

事業の成果3. クラウド移行後のOSS COBOLシステム運用に必要となる機能の開発


OSS COBOLクラウド仮想化基盤
 仮想サーバ管理のポータルサイト
 仮想サーバーの起動/停止
 仮想サーバーの状態監視
 仮想サーバーの性能改善(コア/メモリの調整)
 スナップショット ステータス・ログ閲覧 プロバイダ機能

 仮想サーバの配布機能
 ポータルユーザーの登録/削除

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

22

事業の成果事業成果物1.
2.
3.

opensource COBOL v1.4.0J/v1.5.0J
DB連携ツール（Open COBOL ESQL） v1.1.0/v1.2.0
AJTOOL for OSS (お問合せ下さい!)
4.
5.
6.
7.

Batch Framework/UI Framework/Open Cobol DB Library

OSS COBOLクラウド仮想化基盤『opensource COBOL のWindows 対応について』 (PDF)『Windows におけるCOBOLとデータベースの連携』 (PDF)『COBOLプログラムのWEB化について』（PDF）※平成27年度成果物(赤字)は公開準備中。(2016年5月予定)



ダウンロードしてお使いいただけます。是非ご利用ください。
http://www.osscons.jp/osscobol/download/
https://github.com/opensourcecobol/
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

一緒に開発しませんか？
23

事業の結果

中小企業のクラウドマイグレーションの課題を解決できます
Windows OS に対応• 使い慣れたWindowsでCOBOL開発ができます。
• Eclipseで効率的に開発や保守ができます。

貧弱なユーザーインターフェース機能を強化• SCREEN SECTIONによるCUI画面を強化、さらに同じ構文のままWEB化も実現できます。

レガシープラットフォームの代替機能をOSSで実現• オンライン/バッチのフレームワークやDB連携機能をWindowsに対応、すべてOSSで実現できます。

クラウド環境の監視とプロビジョニング機能を提供！

• 管理用のポータルサイトを開発、専門知識がなくても基盤の運用が可能

レガシー資産(特にオフコン)のクラウドへのマイグレーションを促進します。
Copyright © 2016, Tokyo System House Co., Ltd. All Rights24

3. お客様事例のご紹介
OSS COBOLを活用した最新のモダナイゼーション事例をご紹介します。

Copyright © 2016, Tokyo System House Co., Ltd. All Rights25

3. お客様事例のご紹介
お客様のご紹介 対象システム マイグレーションの背景と目的
 マイグレーション方式
 システム構成
 課題と対策
 スケジュール
 サンプル画面 マイグレーション結果

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

26

マイグレーションの背景と目的

なぜ COBOL資産を再利用 するのか。
既存の業務ロジックを活用

システム刷新を安全/安心/確実に•長年、COBOL資産に蓄積してきた業務ロジックを活かし、システム刷新を効率的に行う•再構築をしてしまうと...

•老朽化問題を優先、業務処理は今のままでよい•プログラム再作成で不具合混入⇒工数増大•COBOL資産の解析ミスや誤認識⇒工数増大

なぜ opensource COBOLでマイグレーション するのか。
COBOLロジックが正しく処理できればOKダウンロードして誰でも使えるCOBOLをC言語に変換している

コミュニティがしっかり活動している•DB/画面/帳票などの機能は周辺ツールで代替できる•OSSとして公開され、商用利用もできる•COBOLの裏側の処理がオープンである•定期バージョンアップ

•商用の場合、来る大規模刷新のライセンス料が高額となる•軽量コンパクト•最新技術や便利な拡張は必要ない•他のミドルウェア連携が可能

Copyright © 2016, Tokyo System House Co., Ltd. All Rights•パートナーのTSHがコミュニティ活動をしており、柔軟に対応できる

31

マイグレーション方式


資産数
種類

数量

COBOLプログラム

COPY句192本 本数は、192本(49万Step)から、使用状況整理の結果、68本(22万Step)と半分以下に減少した。
596本

機能部品

14本

システムサブルーチン

9本

Oracleデータベース

60テーブル

データはすべてデータベース化されている。

索引編成ファイル

0本

Windows bat ファイル

有 システムの起動、データ連携処理のスケジュール実行

端末台数



備考

64台

1端末で複数画面を起動する。朝に起動、終業まで立ち上げたままとする利用者が多い。

外部連携
 OLTP TPBASEによるホスト連携(修理実績管理) Tuxedoによる別システム連携(保守部品管理)
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

32マイグレーション方式
 各ミドルウェア・プラットフォームの移行方式
移行方法

既存環境新環境
opensource COBOL

NEC COBOL

データベースアクセス（READ/WRITE命令）

課題１

画面制御
(画面節によるCUI画面,DISPLAY/ACCEPT文)

課題２

Oracle Pro*COBOL
DBアクセスサブルーチン(COBOL)
WEBブラウザ (IE)
代替ツールへ移行

課題３

AJTOOL UI/WTC Framework
WebLogic/Tuxedo(サーバー)

帳票制御
課題４
(WRITE文, 制御コード有)PrintStation、XRF(他システムのオープン系帳票基盤)

OLTP TPBASE(ホスト連携)

NISMAIL(データ集配信)

Tuxedo (他システム連携)

Tuxedo(クライアント)

Oracle 8i
Windows 2000 Server

バージョンアップLinuxへ移行

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

Oracle 11g
Oracle Linux33

マイグレーション方式
 各アプリケーションの移行方式
既存資産

移行後の資産移行方法

NEC COBOL85

ツール変換と手修正

COPY句

opensource COBOL,
COPY句

機能部品

再作成

システムサブルーチン
画面定義（COBOL 画面節）

課題２

課題4
帳票定義
（オーバーレイなし、帳票制御コード有）プリコンパイルによる
画面定義生成

JSP

XML

再作成

帳票ツール フォームファイル

Windows Batファイル(データ連携、スケジュールバッチ)

書き換え

Shellスクリプト

DBデータ(Oracle Database)

Export/Import

DBデータ(Oracle Database)

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

34課題と対策①
データベースアクセスの課題



COBOLのREAD/WRITE命令でOracle DBにアクセスする必要がある。
メーカー方言のSQL構文にも対応が必要。

対策解決 埋め込みSQLによるDBアクセスサブルーチンを作成するようにする。
 opensource COBOLのファイルハンドラ機能を活用してREAD/WRITE命令時に、DBアクセスサブルーチンを呼び出す。
開発環境

DB
定義書

DBアクセス
生成ツール

実行環境
生成

DBアクセスサブルーチン(.pco)

Pro*COBOL
プリコンパイル+ コンパイル

DBアクセスサブルーチン
(.so)

CALL

生成

定義書
生成ツール
SELECT
/FD解析

COBOL
プログラム
(.cbl)

コンパイル

COBOL
プログラム
(.so)

EXEC
SQL

OracleデータベースREAD文 DBアクセス
ファイル
したい...
WRITE文 ハンドラ機能

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

36課題と対策②


動的な画面描画の課題
当初は画面節をレイアウトが固定のJSPに変換する移行方式だったが、同一プログラム内で画面の一部が動的に切り替わるロジックが判明した。

解決

対策

 2014年夏、当時試作中のフレームワークによる動的な描画機能を取り入れ、ロジックに応じて画面節の対象項目を切り替えられるようにした。

当初方式
COBOL

変換ツール
変換

JSP
(レイアウト固定)

レイアウトが固定の為、ロジックに応じた画面一部の切り替えはできない
受付No: ___
担当者：______----------------------顧客名：________
住所：_________
TEL：_______
1/4

対策

受付No: ___
担当者：______----------------------顧客名：________
住所：_________
TEL：_______
1/4

COBOL
プリコンパイル固定

AJTOOL UI Framework

画面節の要素を生成

XML(リポジトリ)

画面の一部が切り替わる

参照してJava Script
で動的描画

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

受付No: ___
担当者：______----------------------症状:______
機器名: ________
添付品:_______
2/4

JSP
(空白)

AJTOOL UI Framework37課題と対策③


プロセスが大量に使用される課題オフコン型ステートフルのCOBOLのため、画面起動数と同数のサーバープロセスが常時使用される。1人が複数画面を長時間立ち上げたままの利用が必要である。

解決対策 使用頻度の高いプログラム(8本)を選定し、ステートレスに作り直す。

複数の入力項目を1つの会話としてまとめ、会話の都度サーバーのプロセスを終了する仕組みとする。使いまわすデータは保存領域に退避して持ちまわる。

当初(ステートフル)
入力待ち

ACCEPT 待つ

ACCEPT 待つDISPLAY
COBOLプロセス

入力待ち
表示

受信/送信

JSP

Tuxedo端末

DISPLAY

入力待ち
表示

WebLogic

表示

JSP

WebLogic表示
入力待ち対策(ステートレス)

プロセス間通信終了

COBOLプロセス
受信/送信終了

COBOLプロセス端末

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

38課題と対策④

帳票制御コードの課題
帳票制御コードが多数使用されており、出力条件に応じて罫線の印字や文字ピッチや倍角の設定が行われているが、帳票ツールでは対応ができない

解決対策

 制約を設けた。利用部門と要件を整理し、ロジックに応じた罫線は出さない、倍角文字は使用しない、ピッチ調整はしなくても構わないことを合意した。
 出力パターンを整理し、パターン別に共通の帳票フォームを作成して対応した。
課題

同一プログラムから条件に応じて違う帳票が出る
御見積連絡○○○株式会社┌ ┐┌ ┐└ ┘└ ┘拝啓 貴社益々…
受付番号: _______┌─────────────┐│修理料金20,300円 │├─────────────┤│連絡 ○△を交換します。 │├─────────────┤│確認事項 □着手して良い │└─────────────┘
ご回答日 ＿/＿ ご担当者＿＿＿───────────────
当社欄 ┌────────┐└────────┘罫線つき明細が、帳票や条件によって違う。

フッターは、同じ内容
でも出力位置が違う。

対策

御見積連絡

確認連絡○○○株式会社┌ ┐┌ ┐└ ┘└ ┘拝啓 貴社益々…
受付番号: _______┌─────────────┐│連絡○△を交換します。│└─────────────┘
ご回答日 ＿/＿ ご担当者＿＿＿───────────────
当社欄 ┌────────┐└────────┘

パターン別に共通の帳票フォームを作成した○○○株式会社┌ ┐┌ ┐└ ┘└ ┘拝啓 貴社益々…
受付番号: _______
修理料金
連絡

明細の罫線や倍角は制約として、出なくなった。

20,300円

確認連絡○○○株式会社┌ ┐┌ ┐└ ┘└ ┘

拝啓 貴社益々…
受付番号: _______
連絡○△を交換します。

○△を交換します。

確認事項□着手して良いご回答日 ＿/＿ ご担当者＿＿＿───────────────
当社欄 ┌────────┐└────────┘

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

フッターは、出力位置を揃えた。

ご回答日 ＿/＿ ご担当者＿＿＿───────────────
当社欄 ┌────────┐└────────┘39

4. まとめ

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

43

まとめOSS COBOLは、機能強化とWindows対応を行い、より使いやすく進化しています。
ダウンロードし、お試しください。
本日ご紹介したモダナイゼーション事例のように、お客様のレガシー資産を再利用して、効率的にシステムを刷新する手法を提供してまいります。
これからも、お客様とともに、IT資産を未来に継承できるサービスを提供し続けます。
Copyright © 2016, Tokyo System House Co., Ltd. All Rights

44ご清聴ありがとうございました。
お問い合わせ先
東京システムハウス株式会社
マイグレーションソリューション部
TEL : 03-3493-4604
e-mail : mms@tsh-world.co.jp

Copyright © 2016, Tokyo System House Co., Ltd. All Rights

45