NEWS
IBM i トレンド IBM i トレンド
2022.09.21
SHARE
  • twitter
  • facebook
  • hatena

IBM i アプリケーションの将来を見据える

IBM i アプリケーションの将来を見据える
IBM i アプリケーションの将来を見据える

By Dan Magid / July 20, 2022

IBM i ユーザーの抱える懸念事項と、IBM i アプリケーションのモダナイゼーション、セキュリティ、および将来計画を通じていかにそれらに備えるべきか。

企業の経営者は、RPG開発者が引退したときに、コア・ビジネス・アプリケーションをどのように維持するかについて心配していませんか?ユーザーは、アプリケーションが古く見える、あるいは最新の技術革新をサポートしていないと不満を抱いていませんか?顧客やビジネス・パートナーとデータやアプリケーション機能を共有する必要があるが、それを安全に行う方法についての懸念がありませんか?もしそうなら、それはあなただけではありません。Help Systemsの最新のIBM i 市場調査によると、IBM i ユーザーの上位4つの懸念事項のうち3つは以下の通りです。

  1. セキュリティ
  2. モダナイゼーション
  3. IBM i スキル

将来を見据えた戦略とは

幸いなことに、多くのIBM i企業がすでに実施しているいくつかの具体的なステップにより、これらの問題から生じる負の影響から会社を守ると同時に、会社が新しいテクノロジーが提供するすべての利点を活用できるようにすることができます。IBM i のユーザー・インターフェース、アプリケーション・コード、および開発ツールを近代化すると同時に、自社のシステムで働く新しい有能な開発者を採用しやすくすることができます。さらに、これらのステップは他のプラットフォームに移行するための大規模な全面置換のリスクと費用を伴わずに行うことができます。その結果、IBM i の比類ない信頼性、使いやすさ、および低所有コストの恩恵を受け続けながら、アプリケーションの将来性を確保することができるのです。

IBM i システムの将来性を保証している企業は、新しいテクノロジーを学び、採用しなければならないことを発見しています。彼らは、IBM iのチーフアーキテクトであるSteve Willが「blended」アプリケーション戦略と呼ぶものを追求しています。コア・ビジネス・アプリケーションを実行するために手持ちのRPG、COBOL、CL、およびDB2アプリケーション・コードを使い続けながら、それらが設計されたタスクのために新しいテクノロジーを採用するのです。このアプローチにより、企業は何年も何年もかけてカスタマイズされたアプリケーションを使い続け、ビジネスのやり方を忠実に反映させながら、将来のテクノロジーを段階的に導入していくことができます。アプリケーションの将来性を確保するためのアプローチについて説明しながら、検討すべきテクノロジーをいくつか挙げていきます。それでは、この混合(“blended”)戦略の文脈で、セキュリティ、モダナイゼーション、および IBM i スキルの課題を見ていきましょう。

アークテクチャーのマッピング

混合アプリケーション環境をサポートするには、複数のテクノロジーが互いに会話できるようなアーキテクチャが必要です。JavaScript、PHP、C#、Java、Swiftなどの言語を使用して最新のユーザー・インターフェースやオープンソース・モジュール(詳細は後述)を追加する場合、これらの言語の通信方法とIBM iが必要とするものとの間の変換をサポートするインターフェース層が必要です。オープンソース側またはIBM i側で接続を壊すことなく変更を加えることができるように、技術接続が疎結合であることを確認したいものです。これが、多くの企業がこれらの接続にAPI構造を採用している理由です。API層は、接続のためのセキュリティ、認証、データ変換、ルーティングの機能を提供します。APIは基本的に、”これらのフィールドのデータを提供してくれたら、これらのレスポンスを提供します “という “契約 “を持っています。要求者が適切な入力を提供し、ホストが適切な応答を提供する限り、アプリケーションのコードやデータ構造が変わろうとも、誰も気にする必要はないのです。

疎結合のAPI構造は双方向性である必要があります。それらは、データおよび/または機能を要求する外部からIBM iに対して開始される呼び出しをサポートしなければならず、IBM iから他のプラットフォームに対して開始される呼び出しを外部に対してサポートしなければなりません。


▲図1. 疎結合でセキュアな双方向APIにより、IBM iに呼び出してデータを取得し、ビジネス機能を実行することが容易になると同時に、IBM iから他のプラットフォームやテクノロジーに呼び出すことが容易になります。APIレイヤーは、必要なすべてのセキュリティ、エンドポイント・ルーティング、およびデータ変換を処理することができます。

セキュリティの強化

セキュリティ・インフラのモダナイゼーションは、IBM i に新しいテクノロジーを採用するか否かにかかわらず、非常に重要です。最新のセキュリティは、外部またはネットワーク内部から発生する攻撃からIBM iアプリケーションとデータを保護します(最近の攻撃のかなりの割合は、企業の内部ネットワーク上の侵害されたマシンから発生しています)。

今日、あまりにも多くのIBM i企業が、”Basic認証 “として知られるものに依存しています。Basic 認証では、すべてのAPIコールでユーザーIDとパスワードが送信されます。IBM iの世界では、これらはしばしばIBM iのネイティブなクレデンシャル(認証)情報であり、これらがあればユーザーはIBM iへの直接アクセスが可能になります。これらの認証情報が回線を越えて送信されるたびに、発見される危険性を帯びているのです。さらに、これらのクレデンシャルを要求者のマシンに保存する必要があり、これも脆弱性のひとつとなります。さらに悪いことに、Basic認証を使用してデータを送信する際のデフォルトは、64ビット・エンコーディングを使ってデータを変換することです。これを暗号化と勘違いしているIBM iユーザーに何度か遭遇しています。64ビット・エンコーディングは、よく知られたアルゴリズムを使ってデータを単に再フォーマットするだけです。もし誰かがあなたの送信を傍受した場合、64ビット・エンコードされた認証情報を解読するのは簡単でしょう。このような問題から、多くのAPIプロバイダー(Google、Microsoftなど)は、もはやBasic認証をサポートしていません。

とはいえ、素晴らしいことに、通信に最新のセキュリティ技術を実装するために使用できるオープンソースのモジュールが世の中には幅広く存在します。暗号化されたJSONウェブトークンを使って通信内容を読み取られないようにしたり、OAuthなどのサードパーティ認証技術を使ってユーザーが本人であることを確認したり、多要素認証を追加して保護レイヤーを増やしたりすることが可能です。


▲図2.JSON ウェブ トークンは 3 つの部分から成ります。JSON ウェブ トークンであることを示し、使用している暗号化方式を特定するヘッダー、暗号化されたペイロード(例:ユーザーは誰か、その役割は何か)、メッセージが変更されていないことを保証する署名です。


▲図3. サードパーティ検証のためのOAuthフロー。朗報は、このためのコードはすべて無料のオープンソースモジュールでダウンロードできることです。

これらのセキュリティ技術を採用する上で重要なのは、セキュリティ・コードを常に最新の状態に保つことです。これは、RPGのようなIBM i言語でコードを自分で書いたり、サードパーティにコードの保守を依存している場合には大きな課題となります。したがって、ここはおそらくオープンソース技術に目を向けたいところでしょう。JavaScriptやPythonなどの言語には、すでに最新のセキュリティ機能を実装した多種多様なオープンソース・モジュールが存在します。それらのモジュールは、世界中の何百万人ものユーザーによって使用されており、高度なスキルを持つセキュリティ専門家によって常に検証されています。重要なのは、脆弱性が発見された場合、それらは迅速に更新されることです。そのほとんどが無償で提供されており、簡単にダウンロードして、自分の環境に組み込むことができます。

これらの技術を最大限に活用するためには、以下の基本的なことを学ぶ必要があります。

  1. 暗号化
  2. JSONウェブトークン
  3. Oauth

APIを使ったモダナイゼーション

疎結合のAPIアーキテクチャは、常に最新のユーザー・エクスペリエンスとユーザー・インターフェース技術を活用できるようにすることができます。また、高速接続を介してRPG/COBOLコードにオープンソースモジュールを簡単に追加できるため、コードベースを近代化することも可能です。

APIを使用すれば、IBM iアプリケーションに最新のWebおよびモバイル・ユーザー・インターフェイスを搭載できない理由はありません。React、Angular、Vueなどの最新のUIフレームワークを使用して、RPGおよびCOBOLアプリケーションのユーザー・インターフェースを迅速に構築することができます。それらのフレームワークでは、オープンソースのUIコンポーネントをダウンロードすることでUIを作成することができます。ドロップダウンリスト、拡張可能なツリー、ExcelスプレッドシートやPDF文書にデータをエクスポートする機能が必要な場合は、コードをダウンロードするだけでよいのです。画像を表示するコード、ファイル転送を処理するコード、電子メールやテキストメッセージを送信するコードもダウンロードできます。手書きでコードを書く必要はありません。本当にコーディングを避けたいのであれば、最新のローコード・ツールを使用し、IBM i からデータと関数をフィードすることができます。


▲図4. オープンソースモジュール 新しいアプリケーションの機能が必要になったとき、自分でコードを書くよりも、オープンソースのモジュールを差し込んだ方が、時間とコストを大幅に節約できます。

APIや新しい言語を使った近代化の最大の課題は、多くのIBM iプログラムがモノリシックであることでしょう。私は、何万行にも及ぶIBM i上のプログラムを見たことがあります。基本的に、ビジネス・プロセス全体が1つのプログラムにカプセル化されているのです。このようなモノリシックなシステムでは、API実現のために個々の機能を引き出すことが困難です。そのため、多くのIBM iユーザーは、IBM iアプリケーションを拡張するために、あらかじめモジュールが組み込まれたオープンソース言語に目を向けています。

モノリシックなプログラムに新しい機能を追加するのではなく、これらの先進的なユーザーはJavaScript、Python、C#などのオープンソース言語で新しい機能を書き、APIを介してRPGやCOBOLからそれらの機能を呼び出しているのです。高速なAPI接続は、IBM iのビジネス・プロセスを減速させることなく、これを実現することができます。既存の無料のオープンソース・モジュールをIBM iのコードに接続するだけで、eコマース機能、テキスト・メッセージ、電子メール、バーコードやQRコードの印刷、スキャン、その他多くの機能を追加したIBM iユーザーを多く見てきました。また、この手法を使って、モノリシックなプログラムの既存の機能を、より小さくコンポーネント化されたオープンソースのコードに置き換えることもできます。安全で高速なAPIにより、既存のアプリケーションを、将来どのようなテクノロジーがもたらされようともサポートできるようなコンポーネントに分解し始めることができるのです。


▲図5. オープンソースモジュール オープンソースのモジュールは、npmjs.comなどのサイトから簡単にダウンロードすることができます。このサイトでは、モジュールの人気度やライセンス条項が表示されます。上記のPassportは、500以上の認証方式に対応した強力な認証システムです。週に150万回以上ダウンロードされ、非常に寛容なMITオープンソースライセンスの下で利用可能です。

ビルド済みのオープンソースモジュールを介してアプリケーションを組み立てることは、最先端技術、いわば未来の波なのです。IBM i アプリケーションを API 化することで、IBM i コードに継続的かつ迅速に最新の機能を追加することができます。

オープンソースのモジュールを活用するためには、以下のようなことを学ぶとよいでしょう。

  1. YUM や NPM のようなオープンソースのパッケージマネージャ
  2. JavaScriptやPythonのような人気のあるオープンソース言語
  3. Open API のような API 標準

IBM i のスキルアップ

いくつものベンチャー事業を次々と立ち上げる起業家(アントレプレナー)であった私の父はかつて、組織のリーダーシップの質を測る重要な尺度は、そのリーダーが現場を去った後にその組織がどのように機能したかということであると教えてくれました。この教訓は、IBM i の世界に長年身を置いてきた私たちにも当てはまります。私たちは、企業のユニークなビジネス方法をサポートするために進化してきた高機能アプリケーションの構築に参加してきました。IBM i の世界の長老の一人として言えば(私は 40 年以上 IBM ミッドレンジ環境で仕事をしてきました)、今こそ次世代に向けたシステムを準備する時です。今後数十年にわたりプラットフォームを支えるテクノロジーの採用をリードする必要があるのです。これからの若い人たちは、最新のテクノロジーは理解していても、当社を特別な存在にしているビジネスプロセスに関するドメインナレッジは持っていないのです。それは、何十年にもわたる実体験と、エンドユーザーとの数え切れないほどの対話によって得られた知識なのです。

新しい技術を既存のシステムに組み込むことを容易にし、若いエンジニアの採用を促進するために、私たちができるいくつかのステップがあります。

1. コンポーネント化

IBM i アプリケーションに新しい機能を追加する際には、既存のモノリシックなコードに追加するのではなく、呼び出し可能なモジュールとして機能を追加する方法を考えてください。時間をかけて既存のコードを調査し、モノリシックなプログラムから機能を抽出し、呼び出し可能なコンポーネントとして再構築する機会を見つけます。このイニシアチブを実際に進めるには、使えるオープンソースのモジュールがあるかどうかを調べます。

2. 新しい言語を試してみる

週に数時間、PythonやJavaScriptなどのオンラインコースを受講してみましょう。これらの言語は習得しやすいように設計されており、短期間で最初のプログラムを作成することができます。これらの言語を使ってみるだけで、あなたのコードをモダンにするための可能性が見えてきます。これらの言語が何に適しているかを理解することで、新人エンジニアがこれらの言語を使ってアプリケーションの機能を構築する際に、より簡単に指導することができるようになります。

3. オープンソースの開発ツールを採用する

IBMは、オープンソースツールとIBM iに関する大きな発表を行いました。彼らの新しいMerlinイニシアチブは、IBM iの開発者がGit、Jenkins、Visual Studio Codeなどのオープンソース・ツールを採用することを奨励するように設計されています。若い開発者たちは、これらのツールを大学やコーディング・ブートキャンプで学んでいます。組織でこれらを使用すれば、彼らが生産的になるのはずっと容易になります。また、RPGのコードをフリー・フォーマットに変換すれば、新しい開発者を採用するための障壁をほとんどすべて取り除くことができます。若い開発者は、使い慣れた開発ツールさえ使えれば、新しい言語を学ぶことに慣れているのです。


▲図6. 今日では、世界中の何百万人もの開発者が使用しているのと同じ強力なオープンソース・ツールを使用して、IBM i アプリケーションを管理することができます。RPGやCOBOLのコードを編集するためのVisual Studio Codeのような無料のオープン開発者ワークベンチ、Gitのようなオープン・バージョン管理ツール、JenkinsやAzure Pipelinesなどのプロセス自動化ツール、Ansibleなどのデプロイ・スクリプト・エンジンを使用しましょう。

4. 快適な居場所から一歩踏み出す

これはおそらく最も重要であり、最も難しいステップかもしれません。IBM i の将来を保証することは、積極的に新しいことを学ぶことを意味します。新しいテクノロジーを必要とする問題を待つのではなく、現在の優先事項の中から最新の言語やテクニックを使用する機会を探してください。これは当たり前のことのように思えるかもしれませんが、あまりにも長い間、私たちは快適な選択をしてきました。IBMはある意味、新しいテクノロジーに移行することを求めないことで、私たちを甘やかしてきました(世の中には、System/36コードを実行しているIBM iショップが数多く存在します)。その後方互換性がIBM iを特別なものにしている一因ですが、同時に私たちの足を引っ張る一因にもなっています。最近、ある会社と仕事をしたのですが、その会社は IBM i を API 化するために 2 つの異なるオプションを検討していました。彼らの言葉を借りれば、1 つのオプションは技術的に優れており、彼らのアプリケーションの将来にとってより良く、より高性能でより安全なものでした。もう1つの選択肢は、使い慣れたIBM iのテクノロジーを使用し、開発者にとってより快適なものでした。そこで彼らは、古いテクノロジーに縛られることになるにもかかわらず、快適なオプションを選択したのです。そのアプローチの短期的な利点は理解できますが、もし私たちが将来的にシステムを保護するつもりなら、そのような種類の決定をするのは止めなければなりません。

IBM iの所有コストの低さ、操作の容易さ、信頼性を、Rochester IBM iラボから提供されるすべての新しいテクノロジー・サポートと組み合わせれば、IBM iは絶対に将来を保証することができます。その変革を推進するのは私たち次第なのです。

いいねと思ったらシェア
twitter
facebook
hatena
関連記事
IBM i サブスクリプション・ライセンスのFAQ公開
IBM i サブスクリプション・ライセンスのFAQ公開
IBM i 永続ライセンスの終了迫る
IBM i 永続ライセンスの終了迫る
HMC、BMC、VMI、eBMC、FSPのあれこれ
HMC、BMC、VMI、eBMC、FSPのあれこれ
あなたにオススメの連載
できるIBM i 温故知新編
6記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP