Windowsサービスの概要
Windowsサービスプログラムは、Windows NT/2000/XP/2003上でバックグラウンドで動作するプログラムです。インターネットサーバー(IIS)、データベースサーバー(SQL Server、Oracle)などもWindowsサービスとして実装されています。
WindowsサービスはWindows NTと共に登場したバックグラウンドで動作するプログラムです。従来は、動作可能OSがWindows NTのみであったため「NTサービス」あるいは「システムサービス」と呼ばれていましたが、Windows NTのアーキテクチャを踏襲しているWindows 2000やWindows XP、Windows Server 2003でも動作するため「Windowsサービス」と呼ばれるようになりました。厳密な定義では、システムサービスにはハードウェア制御をおこなう「デバイスドライバ」と、システムサービスを提供する「Win32サービス」がありますが、Win32サービスはWindowsサービスとして実装されています。
Windowsサービスは、UNIXのデーモンのようにバックグラウンドで長時間動作し、ユーザーインターフェイスを持たないアプリケーションプログラムです。通常のデスクトップアプリケーションと異なりバッググランドで動作するため、コンピュータが起動後、Windowsにユーザーがログオンする前に自動的に起動することができます。
| 項目 | 説明 |
| バックグラウンド動作 | バックグラウンドで、ログオンユーザーの有無にかかわらず動作します。また、コンピュータ起動時に自動的に開始することもでき、一時停止・再開なども可能です。 |
| 長時間動作 | 通常Windowsサービスは、ユーザーやデスクトップアプリケーションの要求に応じて動作を開始・停止し、長時間システムに常駐します。 |
| ユーザーインターフェイス無し | Windowsサービスは、バックグラウンドで基本的なサービスを提供するため、ユーザーインターフェイスを持ちません。サーバーで使用するときや、コンピュータを利用する他のログオンユーザーの邪魔をせずに、バックグラウンドで長時間稼動させる必要のあるときに最適です。 |
| 特定のログオン アカウント | Windowsサービスは、ログオンユーザーや既定のコンピュータアカウントとは異なる、特定のユーザーアカウントのセキュリティコンテキストで実行されます。 |
| 管理ツール | Windowsサービスがパラメータなどを必要とする場合は、Windowsサービス専用の管理ツール(MMCアプレット、コントロールパネルアプレット)などを経由して設定します。 |
参考図書
| 項目 | 説明 |
|
WindowsNTサービス プログラミング (ソフトバンククリエイティブ・kevin Miller著) | 1999年に出版された書籍で、Windows NT上でWindowsサービス(当時はNTサービスと呼んでいました)を開発する手法が綿密に書かれた書籍です。私も本書が出版された当時、活用していました。現在の環境では、そのまま利用することは難しいのですが、基本的な考え方を理解するには有用かと。 |
|
Win32システム サービスプログラミング (ピアソンエデュケーション ・マーシャル ブレイン(他)著) | 2002年に出版された書籍で、WIN32でサービスプログラムを書くためにはお勧めです。初めてサービスプログラムに関わる人には、サービスがどのような仕組みで、どのように動くかが解ってよいかと。 |
|
Windowsサービス 開発テクニック (CQ出版・斗光 佳輝 著) | 2003年に出版された書籍で、Visual Basic.NET(VS2003、.NET Framework1.1)でWindowsサービスを開発する手法が、具体的なサンプルコード入りで詳述されています。 |

