企業のデータ連携基盤を支える「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とは、元々はHarmonious Universal Link File Transferの略で、日本で最も使われている日本生まれのMFT(Managed File Transfer)ソフトウェアです(*1)。
これまで8000社以上の企業がHULFTを導入しています。全国銀行協会の会員企業の100%、日本自動車工業会の100%、その他多くの企業がHULFTを日々利用しています(*2)。
日本国内でお住まいの方であれば、何らかの形で気づかずにHULFTとの関わりがあるかも知れません。
たとえば、銀行での手続きが行われる時にもHULFTが使われているかも知れませんし、店頭に並んでいる製品を作るときにHULFTが利用されていたかも知れません。
実は奥が深いファイル転送
HULFTをひとことで表すと「ファイル転送ソフトウェア」です。ただし、単にファイルを転送するだけではありません。ファイルという形になった情報を転送することと、その情報を転送する時に発生する前後の処理を統合的に扱うためのソフトウェアなのです。
単純にファイル転送を行うだけであれば、昔から使われ続けているftpや、通信路を暗号化しつつファイル転送を行うsftp、ftps、scpなどを使うという方法もあります。しかし、ftpなどはファイル転送を行うための個別の道具でしかありません。ftpは、ftpを使う人が、自分がどのファイルをどのように転送したいのかを明確に意識しながら使う必要があるのです。
しかも、ftpを使う人は、ftpの使い方を細かく知っている必要があります。
企業内で利用する業務システムを設計するときに、社員全員がftpという道具の利用方法を知っている前提で設計するのは難しいのです。
業務を遂行するための情報システムを考えるとき、ファイルを転送するだけでは不十分であることが多いです。
どのファイルをどこにどのように転送し、その転送に問題が発生していないことをどのように担保するのかや、どのようなタイミングで転送を行うのかなど、転送という行為そのものだけではなく、転送に関連する様々な処理が発生するのです。
転送後に発生する処理の一例として、ジョブ完了通知があげられます。ftpやscpなどのコマンドでのファイル転送では、受信側が通信完了のタイミングを明確に知ることができません。そのため、受信が完了したタイミングで何らかの作業を開始するようなシステムが必要な場合、それを実現するために新規実装が必要になってしまいます。HULFTでは、ファイル転送が完了したことを送信側と受信側の双方が把握でます。
このような機能の他に、HULFTには、以下のような機能があります。それぞれ、業務システムで必要とされる機能です。
- 同期転送と非同期転送
- 同報配信
- ジョブ機能
- 圧縮転送
- 集配完了通知
- 制御範囲や管理権限
- 世代や履歴の管理
- データ形式や文字コードの変換
- 整合性検証
- 複数ファイルの結合
- 間欠転送
- その他各種機能
こういった各種処理を業務システムで実装するためのソフトウェア群がHULFTなのです。HULFTは、ファイルを転送するだけであるFile Transferソフトウェアではなく、管理されたファイル転送であるManaged File Transferソフトウェアなのです。
HULFT採用による工数削減と品質向上
HULFTが採用され続けている理由のひとつに、工数削減と品質向上を同時に実現できる点があげられます。
誕生から20年、HULFTは非常に多くの業務システム開発や改善に関わってきました。
業務システムを実現するうえで必要な機能や、それらの機能を実現する際に発生しがちな問題点を数多く発見し、解決してきたのです。
それは、様々なお客様の業務システムに関わっているということであり、日本のエンタープライズ環境で求められる機能に関する知見の蓄積でもあります。
業務システムを実現するとき、内部で情報のやり取りが必要になりますが、ファイルという形でデータ転送を行うときに必要となる現場のノウハウが含まれるHULFTを利用することで、陥りがちな落とし穴を避けることができます。
HULFTを採用することで、ゼロから自作すると踏みがちな地雷を避けることができるのです。
HULFTは、20万項目のテストを行い、品質に細心の注意を払っています(*3)。
HULFTは、Javaなどの言語を使わずにC言語で実装し、ミドルウェアなども極力使わずに他者が作ったソフトウェアが原因となるバグに悩まされないように作られています。
そのような努力により、HULFTは高い品質を実現しています。
リリース後3ヶ月の障害発生は0件、お客様環境での導入後問い合わせがあったとしても、大半が一度のサポートで解決しています。
HULFTの概要
では、実際にHULFTがどのようなものか見てみましょう。
HULFTは、以下の3つの常駐プログラム(デーモン)がファイルのやり取りを行います。
- [hulobsd]
画面などからの要求を受け付けるデーモン - [hulsndd]
送信側のデーモン。配信を行う。 - [hulrcvd]
受信側のデーモン。集信を行う。
HULFTは、UIやコマンドラインからの要求に応じてファイル転送を行います。
HULFTでは、ファイルを送ることを「配信」、受け取ることを「集信」と呼んでいます。
たとえば、コマンドラインからファイルを配信する場合には、utlsendというコマンドを使います。
utlsendは、hulsnddに対して配信を行うファイルを指定します。命令を受けたhulsnddは、宛先ホストに常駐しているhulrcvdへとファイルを配信します。宛先ホスト側で稼働しているhulrcvdは、ファイルの集信を行います。
コマンドラインからではなく、アプリケーションがultsendを利用してhulsnddに対して命令を発行する場合には、次の図のようになります。
hulrcvd側から集信の要求を行うこともできます。コマンドラインからファイル集信の要求を出す場合には、utlrecvコマンドでhulrcvdからhulsnddへと集信要求を発行することで、配信が行われます。アプリケーションがultrecvを利用して命令を発行する場合には、次の図のようになります。
ultrecvからの要求を受け付けるのは、配信側のホストで実行されているhulobsdです。
要求を受け付けたhulobsdがhulsnddに対して配信命令を発行することで、ultrecvが実行されたホストへとファイル転送が行われます。
これらの常駐プログラムは、LinuxやBSD系OSなどのUNIX系OS、Windows、各種汎用機など、様々なプラットフォームに対応したものがあります。
常駐プログラム同士が通信を行うことで、プラットフォームの差異を吸収するような仕組みになっているのです。
- (*1)
株式会社富士通キメラ創建「2004-2010パッケージビジネスソリューションマーケティング便覧」「ソフトウェアビジネス新市場2011-2014年度版」〈パッケージ・金額ベース〉
- (*2)
2016年6月現在
- (*3)
HULFT 8のリリース前テスト実施数
あきみちさんが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」