適材適所の言語選択と
効率化ソリューションのご紹介
日本アイ・ビー・エム株式会社
IBMシステムズ・ハードウエア事業本部
ハイエンド・システム事業部
山田 義昭
目次
1. 適材適所の言語選択
2. z/OS効率化ソリューションのご紹介
開発者の不足とは?
改良開発におけるコーディング
量は少ない
開発ツールの統合
分散系の開発手法の適用で効率化が可能
COMPUTE A = A + B IF A > 100 THEN MOVE C TO A ELSE MOVE D TO B ADD X TO A : 追加 END-IFCOBOLやPL/Iは習得が容易
1人の担当者が、
Javaで記述されたフロン
ト・エンドのアプリケー
ションとCOBOLで記述され
たバック・エンドのアプリ
ケーションの両方を担当す
ることは難しくありません。
開発者の不足は開発言語の問題でしょうか?
3
COBOL資産の状況
【グローバル】COBOLの統計情報(eWeekより)
□新規に開発されているCOBOLプログラムは年間50億行に達する
□全てのdaily business transactionsのうち80%以上はCOBOLアプリケーションによる ものである □世界中の業務データの70%以上はメインフレーム上に保存されている □ミッションクリティカルなアプリケーションの70%以上はCOBOLで書かれている □行数で見ると、現在使われている全SWの65%以上がCOBOLで書かれている □COBOLアプリのトランザクションはGoogle検索トランザクションの200倍に達する □業務上のCOBOL人口はおよそ200万人 【日本】 □金融業全般ではCOBOLが主流(分散系でも使用) □全業種メーカーに関係なくメインフレームに関してはCOBOLが多数 Page 4
4
出展:eWeek http://www.eweek.com/c/a/Application-Development/Modernizing-COBOL-Apps-10-Reasons-Why-Its-Important-736307/基幹系アプリケーション開発と開発言語スキルの関係
• 基幹系アプリケーション開発に求められるスキルは、大部分が
「業務スキル」(例:商品やサービス、事務手続き)です。
• 開発言語に関するスキルは重要性としては相対的に低いものと
考えられます。
商品・サービス処理 80% 事務に係わ る処理 12% アプリ制御、外部システム接続など 8% アプリケーション分類 図: 金融系A社基幹システムにおけるアプリケーションの分類 0% 20% 40% 60% 80% 100% アプリ制御、外部システム接続など 事務に係わる処理 商品・サービス処理 60% 88% 90% ビジネス・ロジック比率 ビジネス・ロジック 左記以外5
業務特性に応じた言語選択
6
記録を軸とした基幹システム
(Systems of Record: SoR)
人と関わりあうシステム
(Systems of Engagement: SoE)
長期安定、上位互換保証、業務スキル 継承が重要 仕様が安定し、学習が容易でビジネス・ ロジックを簡単、確実に実装可能な構造 化設計と手続き型言語が適している。 最新テクノロジーの採用を優先する。 分散コンピューティングやプレゼンテーショ ンが得意なオブジェクト指向設計/言語が適 している。 相互作用 何が必要かを定義して 一度に作る 少しずつ作って 仮説検証を繰り返す トランザクション トランザクション
API
常時変化、スクラップ&ビルドもあり、 早く安く構築/調達/改善業務特性、システムのライフ・サイクルや時代の変化などを勘案して
開発言語を選択すべきと考えます。
業務特性に応じた適材適所の開発言語選択
人と関わりあうシステム(SoE) 記録を軸とした基幹システム(SoR) MVCモデルのVとCの部分(*) 変化しやすいプレゼンテーションやコン トロールであり、分散コンピューティン グとプレゼンテーション機能が得意な 「流行の」言語で良い マスター・データを共有することは少な く、非機能要件は並列、分散して全体で 高めることができる ライフ・サイクルが短いため、早く、安 く作って、場合によっては スクラップ・ アンド・ビルドで対応する 市場のスキルを早く安く調達する方針で 良い MVCモデルのMの部分(*) オブジェクト指向などのクラス抽象化や継承 機能などの効果は非常に少なく、構造化設計 で業務ロジックを確実に実装、検証できる手 続き型のシンプルな言語が適している マスター・データを共有するオンライン処理 とバッチ処理が混在のため、CPU効率とI/O 効率重視でメモリー・リークなどの心配のな い安定性のある実行環境が必要 ライフ・サイクルが数十年と長いため、言語 の安定性、上位互換性が必須で、システム構 造、データベース構造、設計思想、非機能要 件実装上の工夫などの伝承が重要 その点でも長期IT人材育成の投資も価値があ る 堅牢性や安定性が重視される「SoR」と柔軟性や拡張性が重視される「SoE」において、 それぞれのシステムのライフ・サイクルや時代の変化などを勘案して開発言語を選択すべき と考えます。 (*)MVCモデル:ソフトウェアの設計モデルの一つで、処理の中核を担う「Model」、表示・出力を司る「View」、入力を受け 取ってその内容に応じてViewとModelを制御する「Controller」の3要素の組み合わせでシステムを実装する方式。7
【参考】 MVCモデルとは
リライトで開発生産性は向上するか?
• レガシー化は言語が原因ではありません。
- 他の言語にリライトするだけでは問題は解決しません。
• COBOLとJavaの生産性に大きな差はありません。
9
出典: 独立行政法人情報処理推進機構, ソフトウェア開発データ白書2014-2015, 2014.10.1発行配布資料には含まれておりません
リライトのリスク例
• 例えば以下のようなリスクがあり、慎重に調査、検討が必要です
- 文字コードの違いによる文字化け、外字領域不足、ソートの結果相違
- パフォーマンス劣化
CPU時間
I/O処理時間
Java化により数倍から数十
倍単位でCPU時間が伸長
COBOLバッチの単体実行時
Javaバッチ化後の単体実行時
CPU時間
I/O処理時間
10進数演算 パック10進数変換COBOL
265.8ミリ秒
146.6ミリ秒
Java
1985.8ミリ秒
2167.9ミリ秒
7.5倍
14.8倍
※ 同一演算を同一プラットフォーム(分散系)で実行して比較したもの COBOLとJavaの性能比較※10
配布資料には含まれておりません
メインフレームおよび開発言語についてのIBMのコミットメント
メインフレーム(z Systems)への投資 – z13では研究開発に13億ドル(120円換算で1560億円)を投資し,全世界の18の研究所 が24時間体制で開発しました。 – 開発には2,500人以上 のIBM社員が3年間で、のべ1,500万時間以上を費やしてきまし た。 – 40名以上のIBMフェローと技術理事(Distinguished Engineer)が研究開発プロジェクト をリードしています。 プログラミング言語の継続開発– PL/I およびCOBOLに対する IBM のコミットメントを継続することを明確に示していま
す。
– IBM が 30 年以上にわたって培ってきたアプリケーション開発経験を今後も継続してご
活用いただけます。
IBMは、長期的なメインフレーム戦略を明確にする『IBMメインフレーム憲章
(IBM Mainframe Charter)』を2003年に発表し、継続的な投資をお約束して
います。メインフレーム憲章は、z Systemsのお客様に対して、将来的な投資計
画のためのフレームワークを提供し、一貫した価値 を提供していくことを目的と
する新しい戦略です。
IBMはメインフレーム基盤とともにPL/I言語製品に対しても継続的な投資を行い、 機能の拡張を行っています。現行のアプリケーションおよび開発環境を、将来に向けて 安心して使い続けることができます。
IBMのPL/I言語製品について
3.1 3.23.3 3.4 3.5 3.6 3.7 3.83.94.1 4.2 4.34.4 2000 2010 1990 1.1 2.2.0 2.2.1 2.12.22.3 •IMS および DB2 のミドルウェ ア・サポートの向上 •コンパイラー・パフォーマンスの 向上 •デバッグ機能を改善 •Web 相互運用性を改善 •SQL サポートの機能拡張 •生産性の改善 •デバッグ・ツールの機能拡張 •ユーザビリティ機能拡張 •保守容易性の改善 •XML のサポート向上 •UTF-8 および UTF-16 のサポート の強化 など 機能 使いやすさ パフォーマンス 4.512
1.5.1IBMはメインフレーム基盤とともにCOBOL言語製品に対しても継続的な投資を行い、 機能の拡張を行っています。現行のアプリケーションおよび開発環境を、将来に向けて 安心してお使い続けることができます。