IBM iのTRに加わる新たなオープンソースのデータ転送ツール
IBMからの最新のテクノロジー・リフレッシュを適用するIBM iのショップは、インターネット上で使用されている各種データ転送プロトコルを介してデータおよびオブジェクトを移動するための、新たな3つのオープンソース ツールに気付くことでしょう。Wget、cURL、およびrsyncがIBM i Open Source Solutionsパッケージに加わることで、IBM iのショップはデータ移動の選択肢が増えます。
IBMがPython、PHP、およびNode.jsなどのオープンソースの開発ツールをプラットフォームに加えたことで、オープンソース開発者にとって馴染み深いツールの追加を求める声が広がりました、とミネソタ州ロチェスターのIBM iのオファリング マネージャー、Alison Butterill氏は述べます。
先週、Butterill氏は『IT Jungle』のDan Burger副編集長に「Rsync、Wget、cURLという3つのツールは、オープンソース プログラマーの間で非常にポピュラーなツールです」と語りました。「開発者たちからの要望によって、これらのツールがシステムに取り入られることになったのです。」
それでは、IBM iはWgetで何が得られるのでしょうか。GNUプロジェクトによると、Wgetは、Webからのファイルの非対話的なダウンロードを行うためのフリー ユーティリティです。ユーザーはWgetを使ってリモート システムからダウンロードをセットアップしたら、コンピューターの前から離れてしまうこともできます。Wgetが自動でダウンロードを処理してから、セッションを終了してくれるからです。
Wgetは、HTTP、HTTPS、FTPプロトコル、およびHTTPプロキシ経由での取得をサポートしており、「低速または不安定なネットワーク接続での確実性を目指して設計された」ということです。「ネットワークの問題のためにダウンロードが失敗した場合、ファイル全体が取得されるまで再試行を続行します。」リモート サーバーが「regetting(再取得)」をサポートしていれば、Wgetはダウンロードが停止したところから継続するようリモート サーバーに指示します。
当初、Wgetの開発者であるGiuseppe Scrivano氏およびHrvoje Nikšić氏は1990年代に、Webダウンロードの領域にあった隙間を埋めるためにこのソフトウェアを設計しました。HTTPとFTPの両方で動作できるプログラムは1つもなかったのです。Wgetは、ダイヤルアップ回線の遅さに苦労していたUnixユーザーの間ですぐに人気を集めるようになります。その後、Linux、Windows、Mac OS、OpenVMS、AmigaOS、MorphOS、HP-UXで動作するように移植され、今度はIBM i OSの番となりました。
ウィキペディアのWgetの記事に、このツールに関する興味深い事実が記載されています。「2010年、米陸軍情報分析官のChelsea Manning上等兵が、Wgetを使って、25万件の米国外交公電および50万件の陸軍報告書をダウンロードした。それらはウィキリークスに送られ、「イラク戦争ログ」および「アフガニスタン戦争ログ」として知られるようになる。」
一方、cURL(スクリプト言語のCurlと混同のないように)も、データおよびオブジェクトをインターネット上で移動するためのツールです。このソフトウェアは、GitHubプロジェクトであり、多種多様なプロトコルで、URL構文を用いてデータを転送するためのコマンドラインおよびライブラリーを提供します。
GitHubに記されているところによると、cURL(「see URL(URLを見る)」の意)は、libcurlライブラリーをサポートし、それにより、HTTP、HTTPS、FTP、FTPS、GOPHER、TFTP、SCP、SFTP、TELNET、DICT、LDAP、LDAPS、FILE、IMAP、SMTP、POP3、RTSPおよびRTMPのサポートが可能になります。
IBMによれば、cURLの大きな利点のうちの1つは、cURLが、プロキシ、HTTP POSTおよびGETリクエスト、FTPアップロード、およびユーザー認証などの先進機能をサポートしていることである、とIBMはIBM i 7.3 TR2の発表レターで述べています(この記事で取り上げている3つのオープンソース ソリューションは、すべてIBM i 7.2 TR6でも利用可能です)。
cURLの追加は、オープンソースのプログラミング言語を採用しているIBM i開発者によって促された、とIBM iオープンソース担当ビジネス アーキテクトのJesse Gorzinski氏は述べます。「cURLのような処理を行うPythonライブラリーのいくつかでは、そうした処理をcURLに依存しています」と彼はBurger副編集長に述べます。「我々が行ったことの1つは、基になるCurlライブラリーに依存しているNode.jsおよびPythonでCurlのような処理を有効化することでした。」
また、IBMは、cURLのサポートのためにオープンソースのGitオファリングの修正も行いました。言うまでもなく、Gitは、12年前にLinus Torvalds氏によってLinuxの開発の管理のために作成され、昨年、IBMがIBM i 7.3のリリースの際にIBM iに導入した分散型バージョン管理システムです。Git(5733-OPSのOption 6)にcURLサポートを追加することにより、リモート リポジトリとHTTPアドレスとのインタラクションが可能になる、とIBMは述べています。 最後に大事なことが、IBM i 7.2およびIBM i 7.3へのrsyncの追加です(IBM i 7.1への追加はありません)。同じくUnixの時代からのユーティリティであるrsyncは、コンピューター間で、ファイルまたはディレクトリ全体を効率的に転送および同期させるためのユーティリティです。
ウィキペディアの記事によると、このユーティリティは差分符号化アルゴリズムを使ってネットワーク使用量を最小化します。受信側のコンピューターに、送信されるファイルと似ているが同一でないファイルがある場合、rsyncはアルゴリズムを用いて何を送るべきかを判定します。rsyncは、MD5ハッシュとローリング チェックサム ハッシュを組み合わせて使って2つのファイルの正確な違いを判定します。
1990年代後半に元の開発者であるAndrew Tridgell氏とPaul Mackerras氏によってリリースされたrsyncは、今日ではすべてのLinuxディストリビューションに組み込まれており、その後、Windows、FreeBSD、NetBSD、OpenBSD、MacOSに移植され、今度はIBM i OSに移植されることになりました。rsyncは、GNU一般公衆利用許諾(GPL)でリリースされています。このソフトウェアは、転送速度、柔軟性、およびスクリプタビリティについて定評があり、また、数多くの商用製品に組み込まれています。
これらの製品はすべて、Option 7 IBM i Open Source Solutions(5733-OPS)に追加されています。