
企業のデータ連携基盤を支える「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の強み
前回、HULFTによるファイル転送がどのように行われるのかに関する概要を紹介しました。
今回は、HULFTによるジョブ連携の仕組みを紹介します。
HULFTのジョブは、ジョブを実行するホストで行われる
HULFTでは、ファイル転送の前後にジョブを実行することができます。
ある特定のファイル転送に対して、どのようなジョブを実行するのかは、それぞれのホストで設定が行われます。
たとえば、ある特定のファイル転送が行われるとき、配信側でファイル送信前に行われるジョブは配信側で設定され、集信側でファイル受信後に行われるジョブは集信側で設定されます。
一見、当たり前のように思えますが、これはHULFTの仕組みを理解するうえで非常に重要なポイントです。
ホストごとに各自でジョブ設定を個別に行えることによってファイル転送を利用するシステム全体としての柔軟性が確保できるのです。
たとえば、図1のように1台の配信ホストが3台の集信ホストに対してファイル転送を行う場合を考えてみましょう。
図1

HULFTでは、集信側で行われるジョブは集信側ホストで設定されます。
そのため、集信ホスト3台で行われるファイル転送後のジョブとして、3台がそれぞれ異なる作業を行ったとしても、配信側で行われる作業は変りません。
また、集信ホストのうちの1台でのジョブ設定を変更したとしても、他の2台は影響を受けません。
この例は、1対3でのファイル転送ですが、非常に多くのホストが必要に応じて複数のホストに対してファイル転送を行うような複雑な構成になったときに、この設計が威力を発揮します。
HULFTで使われるID
HULFTのファイル転送は「ID」という識別子を利用して行われます。
このIDも、HULFTの大きな特徴です。
HULFTは、汎用機を含む様々なプラットフォームの差異を吸収しつつ、ファイル転送を実現できるソフトウェアです。
プラットフォームの差異には、様々なものがありますが、ファイルが保存されているファイルシステムもマルチプラットフォームに対応したファイル転送の仕組みを実現するうえで工夫が必要となる箇所です。
たとえば、ウィンドウズのファイルシステムで「C:\folder\ファイル名.txt」というファイルがあったとします。
このファイルを汎用機に転送する場合、汎用機側でどのようなファイル名にするのかという課題が発生します。
古い汎用機であれば日本語のファイル名を扱えない場合もありますし、そもそもフォルダという概念がない場合もあります。
配信側のファイルシステムに依存するファイル名が、集信側でそのまま使えるとは限らないのです。
HULFTでのファイル転送は、配信側のファイルシステムで使われているファイル名ではなく、IDと、そのIDが示すファイルのデータを転送することで実現されます。
配信側と集信側で、ある特定のIDに対しての設定が管理者によってあらかじめ行われます。
そのIDでのファイル転送がHULFTで行われるときに、配信側であればどのファイルを転送するのか、集信側であればそのファイルをどのようなファイル名で保存するのかが、個別に設定されます。

さきほど、ジョブ連携に関する設定は個別に行われることを紹介しましたが、IDの設定に対してジョブが設定されます。
ある特定のIDによるファイル転送が発生したときに、どのジョブが行われるのかも、IDごとに設定されます。
ファイル転送に関する設定は、IDという識別子を利用しつつ、配信側と集信側で個別に行われますが、どのようなIDを使うのかに関しては、配信側と集信側を設定する管理者によって整合性を保つ必要があります。
HULFTのジョブ連携と責任分界点
特殊にも思えるHULFTのジョブ連携の仕組みは、異なる組織同士でのファイル転送を行う際に非常に便利なのです。
たとえば、次の図のように組織Aと組織BがHULFTを利用してファイル転送を行う場合を考えます。
組織同士が互いに調整する必要があるのは、HULFT転送を行う際のIDだけです。
相手側のホストで、どのようなジョブが行われるのかを知る必要はありません。

異なる組織同士がネットワークを通じて何らかの協調作業を行うとき、その協調作業において「責任分界点」を明確にすることが求められることがあります。
責任分界点とは、何らかの障害が発生した際に、その障害の要因に対して責任を負う側を決定する境界線です。
HULFTでのファイル転送では、相手側で行われる処理に依存せずに、自分のホストにおけるジョブのみに責任を持てば良いため、ファイル転送を行う際の責任分界点が明確になります。
ファイル転送を行う際に、相手側のホストで作業をできるような権限を要求する必要がないことも、責任分界点を明確にしやすい要素です。
こういった使いやすさがHULFTにあるため、異なる組織同士のファイル転送においてHULFTの利用が要求仕様としてあげられることが多いのです。
ファイル転送を伴わないジョブ連携
HULFTには、ファイル転送を伴わないジョブ連携を行う機能もあります。
ファイル転送を伴わないジョブ連携では、配信側ホストから集信側ホストに対して、ジョブIDを含むジョブ実行用のメッセージが送信されます。
このように、HULFTは、ファイル転送であると同時に異なるシステム間を繋ぐRPC(Remote Procedure Call)でもあるのです。
最後に
HULFTは、様々なシステムを実現するために多くの現場で利用されてきましたが、その経験が現在の設計に生かされています。
ジョブ連携は、堅牢でありつつも柔軟な処理を可能にするHULFTの非常に大きな特徴であるといえます。
あきみちさんが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」