
企業のデータ連携基盤を支える「HULFT」を使うメリットや、安全、安心を支える技術について、インターネットインフラに造詣のある技術ライター「あきみち」氏が独自の視点でレポートする本コラム。「HULFT(ハルフト)の名前だけは知っている」といった方に向けて、基本機能やファイル転送の概要をわかりやすくご紹介します。
著者プロフィール

小川 晃通 氏
「Geekなぺーじ」を運営するブロガー。
慶應義塾大学政策メディア研究科にて博士を取得。ソニー株式会社において、ホームネットワークにおける通信技術開発に従事した後、2007年にソニーを退職し、現在はブロガーとして活動。
著書多数「アカマイ知られざるインターネットの巨人」など。アルファブロガーアワード2011受賞。
あきみちさんがHULFTの中の人に聞いてみた コラム一覧
- 【第1回】業務システムに不可欠なファイル転送機能を実現するHULFT
- 【第2回】HULFTとは|ファイル転送の具体的な仕組みを見てみよう(前編:配信の流れ)
- 【第3回】HULFTとは|ファイル転送の具体的な仕組みを見てみよう(後編:ファイル転送前後処理)
- 【第4回】ジョブ連携に見るHULFTの強み
- 【第5回】ジョブ連携をもっと便利に - HULFT Script
- 【第6回】パブリックなインターネットを介してHULFTを利用できるHULFT-WebFileTransferとHULFT-WebConnect
- 【第7回】複数拠点との接続に「柔軟さと確実さ」をもたせるHULFT-HUB
- 【第8回】HULFTとSFTP/FTPの共存運用
- 【第9回】IoTに求められる環境にも対応する「HULFT」
ジョブ連携をもっと便利に - HULFT Script
これまでの連載で、HULFTが単なるファイル転送ツールではなく、ファイル連携をインタフェースとしたシステム間の連携フレームであることを紹介してきました。
HULFTが提供するシステム間連携フレームワークには、実現する前後に行われるジョブ(バッチ)制御も含まれています。
しかし、従来のHULFTはジョブそのものの中身は守備範囲外でした。
OSの差異を吸収しつつ、指定されたジョブを適切なタイミングで実行することが守備範囲であり、ジョブの中身を実装するのは守備範囲外だったのです。
HULFTによって実行されるジョブはHULFTの範疇ではないため、HULFT利用者が各自でホストOSなどの環境に応じて実装する必要がありました。
2014年に開始したオプション製品であるHULFT Scriptは、従来のHULFTが守備範囲外としていた部分も実現しやすくするためのオプションです。
今回は、そのHULFT Scriptを紹介します。
GUIで堅牢なスクリプトを生成
HULFT Scriptという名前の通り、HULFTのジョブとして実行されるスクリプトを生成しやすいのが大きな特徴です。
HULFT Scriptがインストールされた機器では、HULFT ScriptのGUI(Graphical User Interface)を実現するためWebサーバ「HULFT Script Studio」が起動されます。
HULFTのジョブを設定する管理者は、WebブラウザでHULFT Script Studioにアクセスすることで、ジョブの作成や設定などが行えます。

HULFT Script Web Studioを使った設定は、WebによるGUIを通じて行われるため、従来のHULFTアプリケーションのような専用アプリケーションをインストールする必要がないのも大きな特徴です。
HULFT Script Web Studioでは、Webブラウザを使ってスクリプトを生成できます。
まず最初にHULFT Script Web Studioを試してみるには、汎用的なスクリプトを集めたHULFT ScriptのテンプレートをHULFT.comのお客様ページ「myHULFT」からダウンロードしたうえで、HULFT Scriptにインストールするという方法がお勧めです。
以下の画面例は、HULFT Scriptテンプレートに含まれる「配信要求/フォルダ配下全ファイル転送要求」を使ったときの例です。
図2

このテンプレートでは、HULFT Scriptが稼働している機器の特定フォルダに含まれる全てのファイルを配信する要求を発行するというものです。
スクリプトに含まれる個々の要素に対する設定は、プロバティインスペクタのウィンドウで行いますが、そこで配信や集信等で必要な各種設定を行います。たとえば、配信を行うに際して、固有の設定を行うのかであったり、HULFT本体での設定と協調するのか、などを行うこともできます。
OS依存しないジョブ実行用スクリプトを実現
従来のHULFTでは、IDを通じたジョブ連携はOS依存しないものの、実際に実行するジョブはOS依存していました。
たとえば、Windowsで実行するためのジョブとしてバッチファイルを実装する一方で、Linuxではシェルスクリプトを実装するという風に、ジョブとして実行するスクリプトはOS環境に応じて作る必要があったのです。
ジョブをどのように実装するのかは、HULFT利用者にとって大きな課題でした。
HULFT Scriptは、そういった部分を解決するHULFTオプション製品です。
HULFT Scriptでは、独自のGUI操作により関連する処理へ線を繋いでゆくだけで、バッチやシェルのスクリプトを組むことなく、ループや条件判定による分岐、標準出力やエラー出力の取り出し、判定、ログ出力が可能です。
HULFT ScriptがOSの差異を吸収するため、HULFT Scriptで実現したジョブは特定のOSに依存しません。
従来のHULFTでは、Windowsで作ったバッチファイルをそのままLinuxで動作させるのが困難でしたが、HULFT Scriptで作られたスクリプトを複数のOSで利用するための共通処理として動作させることも可能です。
より細かい制御
HULFT Scriptは、DataSpiderをベースに作られています。
配信と集信で通信を行う部分は従来のHULFTと同じものを使っていますが、スクリプトを構築しジョブを実行する部分などは、HULFTとは別の独立した仕組みとして、DataSpiderをベースに実装され、稼働します。
そのため、従来のHULFT の動作、業務に影響を与えず、スクリプト実行を組み込むことができます。
DataSpiderにはデータ加工や各種クラウド、データベース等への多数のアダプタ、機能群が用意されていますが、HULFT ScriptはHULFTのジョブ制御に欠かせないコマンド実行、ファイル名変更やフォルダ移動、ファイルのパスワード付きZIP圧縮機能、メール送信を残しつつ従来のHULFT転送を行うための機能を追加してあります。
従来のHULFTで実行されるジョブは、HULFTとは全く別の外部実行ファイルを実行するというものでしたが、HULFT Scriptで作られたスクリプトを実行するジョブは、HULFT Scriptが直接ジョブを行うというモデルなのです。
図3

このような設計の違いによって、従来のHULFTでは実現が難しかったジョブに関連する細かい制御がHULFT Scriptで実現できるようになっています。
たとえば、従来のHULFTでは、外部実行ファイルとしてのジョブが成功したかどうかのみが把握可能でした。
HULFT Scriptでは、ジョブが失敗した場合に、どの部分でどのように失敗したのかを把握することができます。
また、成功した場合であっても、途中でどのような処理が行われたうえで成功したのかを把握することもできます。
HULFT Scriptは、ジョブに関連する状態を細かく把握できるようになっているので、ある特定のファイル群の転送が完了した後に特定の処理を行ったり、特定の完了コードや転送元ホスト・転送先ホストに依存するような設定を作成することもできます。
OS依存せずにジョブを作ると同時に、より細かい制御を可能にしたのがHULFT Scriptなのです。
ジョブ仕様書を自動生成
HULFT Scriptには、GUIで作成されたジョブの仕様書を自動生成する「仕様書作成機能」もあります。
仕様書はスクリプト単位およびプロジェクト単位で出力できます。
図4

図5

仕様書作成機能を使うことで、サービス開発の成果物、引き継ぎ資料、および運用時のマニュアルなどを作成する工数を大幅に削減できます。
最後に
HULFT Scriptはオプション製品ですが、中身としてはDataSpiderをベースにしています。
そのため、ご利用中にさらに多くの機能を使いたくなった場合は、DataSpiderへ移行することも可能です。
従来のHULFTとの互換性を維持しつつも、使いやすい機能を持つ新しい体系のソフトウェア群であるとも言えます。
HULFT Scriptを無償で試せる評価版もあるので、ご興味があるかたは是非お試しください。
その際、大量のスクリプトサンプルが含まれるHULFT Scriptテンプレートも別途ダウンロードすることをお忘れなく!
あきみちさんがHULFT(ハルフト)の中の人に聞いてみた コラム一覧
- 【第1回】業務システムに不可欠なファイル転送機能を実現するHULFT
- 【第2回】HULFT(ハルフト)とは|ファイル転送の具体的な仕組みを見てみよう(配信の流れ編)
- 【第3回】HULFT(ハルフト)とは|ファイル転送の具体的な仕組みを見てみよう(ファイル転送前後処理)
- 【第4回】ジョブ連携に見るHULFTの強み
- 【第5回】ジョブ連携をもっと便利に - HULFT Script
- 【第6回】パブリックなインターネットを介してHULFTを利用できるHULFT-WebFileTransferとHULFT-WebConnect
- 【第7回】複数拠点との接続に「柔軟さと確実さ」をもたせるHULFT-HUB
- 【第8回】HULFTとSFTP/FTPの共存運用
- 【第9回】IoTに求められる環境にも対応する「HULFT」