1980年代にIT業界(当時は、ITなどの言葉はなかった)に入った人の多くは、COBOLでプログラムを書いていました。
IT小僧が、はじめてコンピューターというものに出会ったのがこの「大型コンピューター」別名「汎用機」でした。
今回のIT小僧の時事放談は、
COBOLのシステムをJavaに変換 AWS上で動かします。「Serverless COBOL for AWS」2019年7月から提供
と題して
フランスのブルーエイジ(Blu Age)社が手掛けるサービス「Serverless COBOL for AWS」をご紹介します。
最後まで読んでいただけたら幸いです。
スポンサーリンク
目次
旧態化しているシステム
COBOLで書かれたプログラムは、基本的にコストの掛かるコンピューターで動作している場合が多い。
流石にタンスのようなコンピューターは、化石とかして少し大きめのパソコンといたようなサーバー機器で動作していると思います。
そのサーバー機器は、一般にデータセンターという場所に設置されていて、24時間365日データセンターで動いていて大量の電力を消費しています。
もちろん、サーバー機器も寿命があるし、システムのバージョンアップもあるでしょう。
サーバー機器は、高価な場合が多い。
そもそも、サーバー機器やCOBOLで書かれたシステムを面倒見きれる人は、かなり少なくなってきたのです。
その旧態化したシステムって「いつまでまともに動くのでしょうか?」
AWS Lambda上で動作
ところでAWS Lambdaってなんだろう。
Lambdaの読み方は、「ラムダ」と読みます。
AWSは、Amazone Web Serviceのことで世界で一番使われているクラウドサービスのことです。
「Amazon? って あの通販のAmazon?」
そうであのAmazonです。Amazonは、書籍販売からはじまり、通販小売業者の世界的企業です。
そのAmazonは、2006年7月にAmazone Web Serviceを開始しました。
参考リンク
https://aws.amazon.com/jp/
https://ja.wikipedia.org/wiki/Amazon_Simple_Storage_Service
そのAmazone Web Service(以後 AWS)のサービスの一つが
AWS Lambda(ラムダ)
簡単に説明するとこんな感じ
- 停止していて、必要なときにサーバーが動き出す。
- JavaやPython,Nodeなどを実行
- 実行時間に対しての課金されるので非常に安い。
- 急な負荷にも耐えられるし、アクセスがない場合は課金されない
- AWSが、インフラを管理
https://aws.amazon.com/jp/lambda/
普段は、システムは停止状態でスケジュールや外部からのイベントでシステムが動き出します。
また、耐障害性、セキュリティパッチの適用などをお任せなのでシステム担当者は、仕事の負担が減ります。
Serverless COBOL for AWS
ブルーエイジ(Blu Age)社
「Serverless COBOL for AWS」は、フランスのITベンダーのブルーエイジ(Blu Age)社のサービスです。
ブルーエイジ(Blu Age)社は、主にレガシーシステム(古いシステム)を最新のシステムの置き換えを行う事業を展開していて
COBOLやPL/I、RPGなどで記載されたプログラムの解析や別システムへの移行するツールを開発・販売する会社です。
ホームページ
https://www.bluage.com/
https://www.bluage.com/news/f0025wb-webinar-automated-mainframe-cobol-to-aws
仕組み
「Serverless COBOL for AWS」の仕組み
- COBOLをJavaにリコンパイル
- AWS LambdaのJavaランタイムで実行
COBOLのシステムをJavaに書き換えて AWSで動作させるというシンプルなものです。
COBOLからJavaに変換
COBOLからJavaに置き換える仕組み
- ブルーエイジ社のアナライザーを使ってプログラムを解析
- COBOLプログラムの移行箇所の特定及び影響範囲を判断
- Visual Studio Code(VSCode)の拡張機能を使い、Javaバイトコードにリコンパイル
Visual Studio Codeは、Microsoft社のプログラム開発環境
https://azure.microsoft.com/ja-jp/products/visual-studio-code/ - 拡張機能は、ブルーエイジ社が作成したものでコンパイラーは、ブルーエイジがクラウド上で動作
- リコンパイルは、クラウド上で実行され、開発者にコンパイル後のJARファイルが送信される。
- AWS Lambda上に送られてきたJARファイル(Javaの実行ファイル)をデプロイ(配置)
- AWS Lambdaでシステム稼働
スポンサーリンク
変換精度
「COBOL規格であるCOBOL85に99%対応している。」
ブルーエイジ社 シニアソフトウエアアーキテクト、ティエリ・マソン氏
コスト
「メインフレームでCOBOLシステムを動かすのに比べて、8割ほどの保守・運用コスト削減を見込める」
ブルーエイジ社 シニアソフトウエアアーキテクト、ティエリ・マソン氏
注意点
AWS Lambda
- AWS Lambdaは、「長いトランザクション処理が苦手」
AWS Lambdaは、 実行時間に上限があるので長時間動作するバッチプログラムは苦手です。
上限15分まで - 起動に時間がかかる。
コールドスタンバイ(停止している状態からプログラムが動作するまで)からの起動に3秒程要する。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
Serverless COBOL for AWS
- システムについての地s機が必要
何でも全自動というわけでもなく、バイナリー変換ではないため最新のソースコードが必要
ここは、プログラムが理解できる専門家が必要 - システム移行後の試験
ここもシステムを熟知している専門家が必要
COBOLで動作していたものとJavaに変更したもので差異がないかどうか調査が必要です。 - 帳票
クラウド実行なので直接出力は難しいと思われる。 - コンバートの精度
これは、実際やってみないとわからない。
かなり昔の話ですが、COBOLからC言語への自動コンバートで「使い物にならない」ということを経験しています。
さすがにかなり進歩しているので大丈夫だとは思うけど、ここは不明
まとめ
COBOLで動作しているシステムは、大規模なものが多く、短時間で時間切れになるAWS Lambdaが有効かどうかは、システム次第だと思います。
また、数十万件のデータ処理を行うためにAWS Lambdaにデータのアップができるかどうか?
疑問は数々ありますが、
「いつまでも旧システムを動かしておくわけにもいかない」
と思うのでいつかは、何かの手段でリニューアルを行わなければなりません。
経済産業省の「2025年の壁」の解決策のひとつではあると思われます。
国内ではアクセンチュアが2019年7月から、本サービスを使ったマイグレーションサービスを開始するので気になったシステム担当者の方は、連絡して見て下さい。
アクセンチュア
https://www.accenture.com/jp-ja
スポンサーリンク