Background Intelligent Transfer Service

Background Intelligent Transfer Service（BITS、バックグラウンド インテリジェント転送サービス）は、アイドル中のネットワーク回線の帯域幅を使用し、非同期にマシン間のファイル転送を行うWindowsオペレーティングシステム (OS) の構成の一部である。

Microsoft Update、Windows Server Update Services、System Management Serverやその他のアプリケーションやWindows サービスで利用されている。

BITSはCOMコンポーネントとして登録されており、実質どの様なプログラミング言語でも利用できる。

テクノロジ 
BITSは未使用の帯域を利用してファイル転送を行う仕組みである。通常、BITSはバックグラウンドでファイルを転送し、他のアプリケーションでネットワーク帯域を利用する場合、使用しているネットワーク帯域を調整して作業を続ける。たとえば、何らかのアプリケーションが80%のネットワーク帯域を利用する場合、BITSは残りの20%のネットワーク帯域を利用する。
BITSはリジューム機能を備えており、不意な転送の中断が起きても途中から作業の再開を行うことが出来る。

転送 
BITSは非同期にファイルを転送する。HTTPまたはHTTPS上のデータ転送をサポートしている。

ジョブ 
BITSはファイル転送の管理のためにキューを用いている。BITSはアプリケーションがジョブを作成した時点で開始される。ジョブとはコンテナであり、コンテナには一つ以上のファイルがある。それに発信元および転送先のURIを指定して加える必要がある。
BITSでのダウンロードは複数のファイルの同時転送をサポートするが、アップロードは一度に一つのみのサポートとなっている。
属性はファイル単位で設定することができる。またジョブのセキュリティは作成したアプリケーションのセキュリティコンテキストを継承する。
ジョブを管理には管理するAPIを利用する。プログラム的に開始・停止・休止・再開という状態の遷移をサポートしている。
バックグラウンド転送はBITSによって最適化され、BITS自身がネットワーク帯域の消費が増えるにつれ、転送率を低下させる。

スケジューリング 
BITSのスケジューリングはタイムスライスで管理されており、転送の優先度に応じて時間配分が調整される。また、BITSはエラー回復メカニズムを備えており、致命的または一時的なエラーによってジョブの状態を変更する。一時的なエラーの場合、BITSは元に戻るまで待ち、再試行を試みる。致命的なエラーの場合、ジョブを作成したアプリケーションにジョブのコントロールが移る。

ツール 
コマンドライン用のBITS管理ユーティリティ (bitsadmin.exe) はWindows Server 2003 Service Pack 1 Support Toolsに同梱され、Windows Vistaで同梱された。

バージョン

マイクロソフト製品以外での主な利用例 
BITSync
Zenworks 7
KBOX Systems Management Appliance
RSS Bandit
EVE-Online
WinBITS
Google Gears
Google Pack
Oxygen media platform

脚注

外部リンク 
バックグラウンド インテリジェント転送サービス

Windowsのコンポーネント
Windowsアドミニストレーション
マイクロソフトのAPI
ライブラリ (プログラミング)
長大な項目名