メニューボタン
IBMi海外記事2024.11.13

IBM、新たなDb2 For i クライアント、Mapepireを発表

IBMは、アプリケーションをDb2 for iデータベースに接続するための新たなクライアントをリリースしました。Mapepire(マパピー)と呼ばれる、このオープンソースのクライアントは、特にクラウド環境で、既存のODBCおよびJDBCデータベース クライアントと比較して、より高速かつ軽量で、より開発者が作業しやすくなるように意図されています。

たとえばODBCおよびJDBCなど、既存のDb2 for iのデータベース ドライバー(IBM i 向けのJTOpen Javaツールボックスに含まれる)を使用してアプリケーションサイドのデータベース クライアントを構築する場合、通常は、クライアント コンポーネントに多くのオーバーヘッドを詰め込むことになると、IBMで新たなオープンソース開発ツーリングの開発に携わるLiam Allan氏は述べます。

Mapepireは、南米に生息する、マムシに類する毒蛇です。

「たとえば、jtopenおよびODBCクライアントには、CCSIDを処理するためのコードが中にあります(ストリング列の特定のエンコーディングへの変換および特定のエンコーディングからの変換)。これにより、クライアントのコードは非常に大きくなりますが、複雑さも増します」と、Allan氏と彼のIBMでの同僚のAdam Shedivy氏およびSanjula Ganepola氏は、Mapepireを発表した 8月30日のブログ に記しています。

「もうひとつ、ODBCおよびjtopenに関して嫌だったのは、サーバーとクライアントとの間で通信するのに使用されるプロトコルが、公式に文書化されていない(少なくとも、あまりきちんと文書化されていない)ことです」とIBMerたちは記しています。「そのため、新たな言語で新たなクライアントを作成したい場合、利用できるプロトコルをリバース エンジニアリングしなければなりません。やってみましたが、最悪でした。」

これらが、IBMからの何年ぶりかの新たなデータベース ドライバーまたはデータベース クライアントとなるMapepireで、Allan氏と仲間たちが改善したいと思っている大きな障害のうちの2つです。まず、JavaScriptで書かれ、セキュアなWebSocketを使用するMapepireは、オープンソースです。そのため、ODBCまたはJDBCドライバーがどのように動作するか、リバース エンジニアリングを試みる必要はなくなるはずです。

2つ目の大きな変更(おそらくより大きな変更)は、Mapepireは、言語固有のクライアントからのデータベース接続の確立での多くの複雑な処理をMapepireサーバーに押し付けることです。

MapepireとJDBCおよびODBCとの比較

「エンコーディング、パスワード レベルなど、多くの処理をサーバー部分に管理させるので、クライアントは軽量になります」とAllan氏らは記しています。「より多くのプラットフォームで稼働できる、より多くの言語で新たなアプリケーションを書きやすくしようとしているのです。」

Mapepireは、ODBCクライアントに比べて「ほとんどダム(処理能力がない)」ということです。「エンコーディング、パスワード、およびjtopen/jt400に詰め込まれている他の処理に関することを何も管理しないからです」とAllan氏は記しています。

GitHub上のMapepireのドキュメンテーションによれば、Mapepireの目的の1つは、開発者が、複数の言語にわたって単一のクライアントサイド ソフトウェア開発キット(SDK)を使用できるようにすることだということです。また、クライアントサイドにおけるネイティブな依存関係を除去し、一方で、一般的に依存関係を最小化するということです。そして、データベースとの通信は単一のポートを通じて行われ、データは常に暗号化されます。

また、Mapepireは、クラウド環境でより簡単にデプロイできるように意図されています。Mapepireは、 Red Hat UBI(Universal Base Image)デプロイメント、 Alpine Linux コンテナ、および利用可能な大規模なクラウド サービス(IBM Cloud、IBM WatsonX.ai、Vercel、AWS、またはAzureなど)で「シームレスに」稼働するとIBMは述べています。

もうひとつメリットがあります。Mapepireは、Yumを通じて配布され、様々な言語向けの一般的なレジストリを使用します。つまり、Node.jsクライアントは npmへポストされ、Pythonクライアントは PyPi (Python Package Index)に置かれ、Javaクライアントは Apache Mavenに置かれるということです。「これは、アップデートや修正を以前より迅速にリリースできるようになることを意味します」とIBMerたちは記しています。

では、Mapepireはどれくらい高速なのでしょうか。Allan氏は、スループットをテストするために、Mapepire-jsをNode.js向けODBCクライアントに挑ませたところ、様々な構成を使用しても、Mapepireクライアントの方がかなり高速であるという結果となりました。Allan氏のテストの詳細については、 こちらでご覧になれます。

現時点では、Python、Node.js、およびJava向けのMapepireクライアントがありますが、オープンソースIBM i 開発者のコミュニティがMapepireについて知るようになり、試用し始めるのにつれて、今後、拡張されて行くでしょう。これから追加される予定のクライアントとして、C#/.NET Core、PHP、およびGoが挙げられています。

Mapepireクライアントおよびサンプル アプリケーションは、GitHubプロジェクトWebサイト( mapepire-ibmi.github.io/)でダウンロードできます。

ちなみに、Mapepireは、南米に生息するマムシに類する毒蛇です。Mapepireのロゴは、最初のIBMロゴ以降、IBMのロゴの中でも最も強烈なロゴと言えそうです。Mapepireの読み方については、ブログでは「MAH-pup-ee(マパピー)」と発音するとしていますが、他のWebサイトには 別の 発音例も示されているようです。もっとも、単に「速いヤツ」だけで通じるようになるのかもしれませんが。

あわせて読みたい記事

PAGE TOP