私のお気に入りのオプション、および1つは、次のとおりです。
すべてのサーバー型のアプリケーションは、任意の並べ替えの無い直接接続UIで書かれています。これをコンソールアプリケーションとしてコンパイルするか、Windowsアプリケーションとしてコンパイルするか、それとも設計段階では無関係であれ、.NETではコンパイラスイッチを切り替えるという違いがあります。しかし、プログラムは人間の介入なしに実行されているので、通常はサービスとして実行するように設計されています。サービスコントロールマネージャは起動とシャットダウンを処理し、失敗した場合にアプリケーションを再起動し、デスクトップアプリケーションを書くときに自分で行うことは難しいことです。
次に、サーバーアプリケーションはネットワーク経由で接続して、接続する「管理者」を取得します。この管理接続はあなたのUIです。 SSLの暗号化と認証のようなことは、あなたとあなたの会社に任されていますが、その基盤には、人間が読める、ラインベースのインターフェイスを構築することをお勧めします。そうすれば、telnetで接続し、 "show connections
"、 "drop user 52
"、 "restart
"のようなコマンドを発行することができます。このインタフェースを使用して、あらゆる種類の管理上の動作、およびあらゆる種類のステータスと統計情報を公開する必要があります。まず第一に、これはデバッグに役立ち、第二に、次のステップにつながります。
最後にUIをビルドします。おそらく単純なものでしょう。このUIの設定の一部は、接続するホストとポート、および認証ビットを指定することです。 UIアプリケーションは、サービスを実行しているマシンに接続し、ネットワーク管理インターフェースを介してコマンドを発行し、結果を解釈します。私たちの会社では、新しいUIはそれぞれ、より大きなプロジェクトの一部としてスナップインモジュールでした。このプロジェクトでは、さまざまなサーバーとその状態を表す赤と緑のライトがほとんど表示されません。サーバーをクリックすると、そのサーバーに「ドリルダウン」し、その状態または構成のさまざまな側面を調べることができます。
プロジェクトはわずか1〜2台のサーバーで小さなプログラムとして開始されましたが、すばやく成長し、さまざまなオペレーティングシステムや世界中の多数の都市で実行される数多くのサービスを実行するサーバーを増やしました。このシンプルなUIポリシーにより、1つのシートから、あるいは異なるオフィスの異なるデスクで、何百ものサービスを簡単に追跡および制御することができました。
スケーラビリティとは、作成したプログラムのボタンをコンピュータの前に置く必要がないということです。