NEWS
開発と開発環境のモダナイゼーション 開発と開発環境のモダナイゼーション
2024.03.14

【開発モダナイゼーション】第13回「高まる REST API の存在意義」

【開発モダナイゼーション】第13回「高まる REST API の存在意義」
【開発】高まる REST API の存在意義

今回は、スコット・クレメント氏との対談の抄訳をお届けします。スコット・クレメント氏は、RPGでJSONデータを処理するDATA-INTO命令用の実用的なパーサー(YAJLINTO)を開発した技術者としてIBM iの世界で有名ですので、名前をご存知の方も多いと思います。その先見性と高い技術力を高く評価されている彼が、IBM iを含む今日のIT環境下でREST APIが増々重要な存在になってきている理由、及びREST APIを容易に使えるようにするために開発中のツールについて語ります。 (編集部)

2023年10月31日

REST APIは、IBM iプラットフォーム上の安全かつ機密性の高い通信の選択肢だとMidrange Dynamics社のスコット・クレメント氏は言います。

ポール・ツーイ(以下、ポールと略記します):
皆さん、こんにちは。当番組にようこそ。嬉しいことに、今日は私の長年の友人で、現在Midrange Dynamics社の開発及びソリューションアーキテクトを務めているスコット・クレメント氏をお迎えています。

スコット・クレメント(以下、スコットと略記します):
やあ、ポール。調子はどうですか?

ポール:
とても快調です。スコット、今日は主にREST APIについて話をするつもりです。話のきっかけとして今日の REST API の存在意義のようなもの、つまり REST API がシナリオのどこに当てはまるかについて教えてもらえますか?

スコット:
REST API の今日的存在意義ですか。私達は、IT部門の人間として REST API をWebページやモバイルアプリなどと統合する方法として考えることに慣れていますが、マネージャーや幹部のような一部の上級職の人々及び単なる社内のビジネスマンは、REST API が何なのか、そしてなぜ会社が REST API に投資する必要があるのかを必ずしも理解しているわけではないと私は考えています。

REST API はすべて通信、特にプログラム間の通信、通常は異なるコンピュータ間での通信に関するものであり、クラウドに移行するアプリケーションが増えるにつれて、これは非常に重要になります。オンプレミスには他のアプリケーションがまだあり、それらが相互に通信できるようにする必要がありますが、それだけではありません。私達がどこへ行くのか考えてみましょう。

倉庫業界で働いている場合は、ロボットを使用した更なる自動化を検討していることに疑いの余地はありません。また、製造業に従事している場合は、恐らく既にロボットを使用しているでしょう。Amazon の倉庫について考えてみましょう。彼等はロボットを使ってこれらの巨大な倉庫を巡回し、商品をピッキングし、注文を梱包するために作業員に届けさせます。これらのロボットは、その在庫がどこにあるのか、どの在庫を取りに行けばよいのかをどのようにして知るのでしょうか? 彼等はREST APIを使用して、バックエンドの記録システムと通信します。

そこで、IBM i の登場です。IBM i は、ビジネスを効率的に運営し、これらすべてのバックエンドレコ―ドを会社の心臓部にするといった、会社内のあらゆることを積極的に推進するためのおそらく世界で最高で最も安定したシステムです。ロボット、モバイルアプリ、Webページなどのようなものは、顧客が自身の注文の状況を調べたり、顧客に何が起こっているのかを調べたりする必要があるときに、多くの異なる方法で REST API を使って通信できます。それは、ベンダーに注文を伝えたり、顧客があなたに注文を伝えたり、コンピュータ間通信型の仕組みを統合したりするなど、従来の EDI タイプのタスクのようなものでもあります。

とても多くのシステムが関与し、すべてが相互に通信するので、今日では非常に多くのことを行うのは困難です。REST API は、それを行うための安全で機密性が高い方法です。ファイルを FTP でやり取りしてから何らかのプロセスを起動するといった、これまで人々が使用してきた従来の方法はあまり機密性が高くありません。データベースを公開 し、システム間で直接 JDBC または ODBC 通信を提供するのは、保護されたローカルエリアネットワーク内では問題がなく、それを超えると安全ではないことが問題なのではではなく、誰かがセキュリティを破った場合、その誰かは何にでもアクセスできてしまうことが問題なのです。

REST API の場合、その API が実行する内容だけにアクセスできます。データベースドライバーの場合、何らかの方法でそのセキュリティを破ると、システム全体が無防備になります。つまり、通信に関して言えば REST API は私達が今日求めている状況にあり、世の中で起こっているあらゆる出来事と共に爆発的に増加しています。

ポール:
それについて口を挟ませてもらえますか? あなたが今 AI に言及しなかったのは理解していますが、AI のほとんどはAIと通信する REST API を通じて行われています。

スコット:
あなたが自分のコンピュータ上でAIを実行していない限りはそうです。しかし、そんなことは AI 企業自身を除いてほとんど誰も実行していません。ですから、GPT-4 と通信したいなら、恐らく REST API または WatsonX の様な物を使用することになるでしょう。

ポール:
ええ、そうですね。スコット、Midrange Dynamics社は一般的にこれらREST関連のものを使ってこの分野でどのようなことを行っているのか教えてください。

スコット:
REST API を使用して何を行うのか。当社の主力製品は MDChange で、その中核となる部分は IBM i 用の変更管理ソフトウェアである MDCMS です。しかし、私達が気付いたことの1つは、大企業の顧客がますます増えており、それらの大企業は IBM i 以外にも多くのプラットフォームを持っているので、全面的にMDCMSを使用できないということです。そのため、バックエンドで Git あるいは Azure DevOps のようなものを使用してすべてをまとめたいと考えています。

そこで私達は、コードの分析を行ったり、Azureや他のGit関連サーバー (GitLab、GitHub、Bitbucket) を実行したりするために、当社の製品を他のソリューション (ServiceNow、Jira、SonarQube) と統合しました。これにより、MDCMS にローカルの IBM i 作業を行わせ、それを完全に伝達できます。他社はこれを行っていないので、これは競合他社に対して当社に大きな競争上の優位性をもたらしているものの1つです。

これを実現する方法は、MDCMS に REST API で通信させることであり、内部的にはグラフィカルフロントエンドも REST API を使用しています。したがって、開発者として VSCode のようなものを使っている場合は(思うに私達はこの方向に進んでおり、まだそうしていない場合はそれが進むべき方向ですが)、コア変更管理と連携するために変更管理ソフトウェアは IBM i と通信する必要があり、それには REST API を使用します。当社の実際の REST API 製品である MDRest4i は、もちろん同じ機能を顧客に提供しますが、当社はそれを自社製品の残りの部分、つまり我々の製品の REST を機能強化するために使用しています。

ポール:
さて、これで少しは話が進むと思います、スコット。なぜなら、私の記憶が正しければ、最後に私達が話したとき、あなたは丁度 MDRest4i の改良版リリース1の発表間近だったと思うからです。そのすべて、起こっていること、そしてその作業の中のいくつかの進捗について教えてもらえますか?

スコット:
私達はそれを押しとどめて、さらに多くのことをそれに注ぐことにしました。元々前回お話ししたときに、顧客のプログラムが使用するフレームワークだけを改良するという話をしていましたが、ジェネレーターも改良することにしました。MDRest4i に精通していない人のために補足すると、その概念は基本的にペイロードがどの様に見えるべきかを MDRest4i に伝えられるというもので、それを行うにはいくつかの異なる方法があります。最も標準的な方法は、Swagger または Open API 文書と呼ばれるものを提供することです。

これは SOAP の時代にあった WSDL 文書に似た JSON 文書で、WebインターフェースにアップロードするだけでAPIを呼び出すプログラムが生成されますが、それだけではありません。例えば、REST API で送信するフィールドのレイアウトを含むデータベーステーブルが IBM i 上にある場合、それを指し示すと API が生成されるか、RPG プログラムのパラメータセクションをコピー&ペーストすることができます。COBOL 用のサポートも追加しています。Swagger 文書ではなく、ペイロード部分だけを JSON ペイロードのように使うこともできます。つまり、このジェネレーターの背後にある着想は、前回話したこの素晴らしいフレームワークを使いたい人全員が非常に簡単に使えることであり、これまでのフレームワークの16倍の速度を達成します。今や、これが自分が作りたいものだと言うだけで、これを自動的に行うための RPGコードまたは COBOL コードが生成されます。私達は、RPG コードそして COBOL コードも可能な限りエレガントにするために、非常に熱心に取り組んで微調整してきました。これにより、ユーザーはビジネスロジックを書くだけで済みます。あなたは、自社独自の部分を知っており、それをそこに入れればそれですべてです。あらゆる API を提供することも、利用することもできるようになります。それはとても多用途です。

ポール:
スコット、これは企業にとって、ある種のゲームチェンジャーだと考えていますか? つまり、企業をスピードに乗せるという意味、あるいは言い方を変えれば、企業を競争に参加させ続けるということでしょうか?

スコット:
REST API 自体が大きなゲームチェンジャーであり続けてきましたし、今後も REST API を導入する企業が増え続けると思います。なぜなら、先ほど言った統合が非常に重要だからです。将来的には工場の自動化がさらに進み、自動運転車が登場するでしょう。ロボットに何かをしてもらうようになるでしょう。クラウド内には通信する必要のあるものがさらに多くなるでしょう。モバイルアプリにはさらに多くのものが増えるでしょう。ウェブを通じて顧客が利用できるものがさらに増えるでしょう。これらすべての異なる状況によって REST API 自体がゲームチェンジャーになります。

MDRest4i が提供するのは、それを簡単にする方法です。もしあなたが RPG または COBOL 開発者だとして、おそらく私のような専門家であれば2時間、または多かれ少なかれ精通している人であれば数日または数週間かけて API を作成することになりますが、代わりに MDRest4i を使うと数分で API を作成できるようになります。そこには、現実の企業選択を生み出すための文書システム等のものが含まれています。世の中にある代替品には多用途性がありません。名前は言いたくありませんが、IBM がシステムに提供している非常に人気のある API ソリューションを私は知っています。それは素晴らしいものですが、十分な多用途性がありません。外に出て、“ChatGPT を呼び出すぞ”、または“WatsonX を呼び出すぞ”、あるいは“Azure DevOps を呼び出すぞ”と言い、ただそれを指差すことはできません。その API ソリューションは、それを理解できるほど多用途ではありません。ですから、私達は競合他社が行えない API のあらゆる側面を実行できるソリューションを他の何よりも簡単な方法で実現します。

ポール:
素晴らしいですね。実際にそれをちらっと見たことがありますが、スコットの言っていることは本当です。それで、スコット、この話を終える前に、もう1つの話題、メンタリングについて少し話してもらえますか? これは、私が退職に向けて方向転換している今、ある意味興味深い話題になります。なぜなら、それはいわば新人という我々引退を目前にした人々の反対側の端に位置し、IBM i に登場しつつある人々に関する話だからです。

スコット:
私が毎日仕事に行きたくなるのは、若い人たちを指導することにあるようなものです。それだけでとても満足感が得られます。それはまるで父親のようなものですよね? あなたが親になると、子供達がいて、彼等の成長を見守り、成長し、より良くなるのを見守ります。それが私のメンタリングの考え方です。もちろん、プロセスのずっと後から始める場合を除いてですが。私はそれをとても楽しんでいます。さまざまなカンファレンスやオンラインフォーラムに行ったり、企業と何かを話したりするとき、何が起こっているのでしょうか? あなたの最大の課題は何ですか? 何度も何度も耳にするのは、人々が退職しつつあるということです。退職年齢に達する人がどんどん増えているのに、彼等の後継者が見つからない、という声を何度も聞きます。

コンピュータプログラミングや IT 分野に進む人は沢山いますが、残念なことに IBM i に進む人は十分というにはほど遠い状況です。私の考えでは、別の職業から誰かを連れてくることが役立つと思います。その人は実際には別の職業ではなく、単に別のプラットフォームで別のプログラミング言語を使用しているだけです。本当に重要な要素は、彼等が既にプログラミングの考え方をもっていることは証明済みだということであり、後はただ座って一緒に作業し、彼等がIBM iを学習するのを見守るだけです。私が IBM i を愛する理由、RPG などの言語を愛する理由を理解し始めた彼等の喜びを見てください。そこから私は大きな満足感を得ています。私は若い人たちと一緒に仕事をするのが大好きです。ですから、COMMON の”New to”または”Into”プログラムを通じて、私は数人のメンティーと協力しています。

それ以外では、夏の間息子のメンタリングをしていましたが、それを続けるつもりです。Midrange Dynamics社で一緒に働いてくれるメンティーをもう一人連れてきたいと思っています。現在は4人位ですが、私がメンターになろうとしている対象者がとても多いと感じています。その上さらに自分の自由時間にロボット工学を学んできました。ロボット工学は私達の未来にとって非常に重要だと思います。この点に異論を唱える人はいないと思います。私の息子は昨年高校のロボット工学チームのメンバーでもう卒業してしまいましたが、私はチームに残り、大好きな子供達と一緒に仕事をさせてもらい、彼等にプログラミングを教えています。この場合、IBM i ではなくロボットをプログラムしますが、最終的には彼等が私のやっていることに興味を持ち、その内それに取り組むようになってくれればと願っています。私は若い人たちと仕事をし、彼等をコンピュータの世界に引き入れることに大きな満足感を感じています。特に、彼等が IBM i の優れた点を理解したときはそう感じます。

ポール:
ええ、私達は以前にもこのような方向で会話をしたことがあります。つまり、あなたが何を言っているのかよく分かります。

スコット:
プログラムが動作し、正にあなたが望んでいることを実行し、これまで誰もそれをやったことがないとき、あなたが踊るあの幸せ踊りがありますが、あなたがあの踊りをするようなもので、私はただそれが大好きなんです。

ポール:
ええ、そうですね。どうぞそれを続けてください。スコット、これで今日の対談は終わりです。ウェブサイトをチェックし MDRest4i をチェックするように伝える以外に、皆に伝えたい最終メッセージはありますか?

スコット:
そうですね、それが今の私にとって明らかに大きなことです。それが私の携わっているビジネスですから。北米にお住まいの方はwww.md-na.comか、その他の国にお住まいの場合はmidrangedynamics.comです。

ポール:
ありがとう、スコット。そうですね、これは皆に残しておくべき良い記録だと思います。出演してくれてありがとう。皆さん、スコットの今後の活動に注目してください。いつも通り良い結果を生むでしょう。それでは、皆さんさようなら。

いいねと思ったらシェア
twitter
facebook
hatena
開発と開発環境のモダナイゼーション 目次を見る

この連載は…

開発と開発環境のモダナイゼーション
関連記事
【開発モダナイゼーション】第2回「RPG開発者がRDiを使うべき理由」
【開発モダナイゼーション】第2回「RPG開発者がRDiを使うべき理由」
【開発モダナイゼーション】第7回「VSCodeの拡張機能 Code for IBM i による開発利用可能性の拡大」
【開発モダナイゼーション】第7回「VSCodeの拡張機能 Code for IBM i による開発利用可能性の拡大」
【開発モダナイゼーション】第19回「IBM i の開発作業をVS Codeで!進化・拡大するCode for IBM i コミュニティー」
【開発モダナイゼーション】第19回「IBM i の開発作業をVS Codeで!進化・拡大するCode for IBM i コミュニティー」
あなたにオススメの連載
できるIBM i 温故知新編
9記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP