画像処理ワークフロー製品があります。通常、10,000 から 100,000 の画像をジョブで処理して実行できます。複数のジョブが保留中の場合があります。
現在、すべての画像処理は、.NET と互換性のあるマネージド C++ ライブラリである自社開発のイメージング ライブラリで実行されます。ユーザーのアプリケーション空間で実行されます。つまり、「PeteSmith」としてログオンすると、画像は Pete Smiths のアカウントで実行されるということです。
現在、この画像処理のインスタンスは一度に 1 つだけ許可されています。お客様から、複数のインスタンスを同時に実行できる新しいバージョンを求められているため、これをどのように行うかという問題は、現在調査中です。
「ユーザー アカウント」から処理を取得し、「システム アカウント」を使用してバックグラウンドで処理を行うというアイデアは魅力的です。Windows サービスは、ログインやログアウトなどの OS イベントやその他のシステム リソース使用率イベント アラームによって自然に管理されるため、魅力的です。
Microsoft によって詳細に文書化された、明確に定義された少数のイベントを管理するだけでよいように思えます。それはすべて素敵で素晴らしいです。しかし、私が理解する必要があるのは、顧客の観点から、画像処理コードのサービスの移植がパフォーマンスにとって何を意味するかということです。彼らの見解では、より多くの処理と高速化が必要です。
QUESTION トレードオフについてどのように考えるべきか:
1) サービスを使用してジョブを実行するか、Pete Smith (ユーザーの) アカウントでのみ実行されるソフトウェアの N 個の異なる「インスタンス」を実行するか?
2) Pete Smith (ユーザーの) アカウントでのみ実行されるソフトウェアの N 個の異なる「インスタンス」を実行するのと比較して、N 個のサービスが N 個の異なるジョブを実行できるようにする (クロストークは不要)。