Microsoft 分散プログラミング モデルは、MSMQ、IIS、DCOM、COM+ など、いくつかのテクノロジで構成されています。 これらのサービスはすべて、分散アプリケーションで使用するように設計されています。
COM+ は、分散アプリケーションの作成を容易にするために開発されました。 全体的なアーキテクチャは、一連の前提条件と原則に基づいています。
仮定
前提条件は次のとおりです。
- COM+ アプリケーションは、複数のサーバー間で複数のユーザーをサポートします。 つまり、分散アプリケーションを構築していて、これらの複数のユーザーが、コードを実行する場所とは異なるホスト コンピューターに配置されます。 ユーザーは、インターネットまたはプライベート ネットワーク経由でコードにアクセスします。 ユーザー インターフェイスは、ブラウザーまたはカスタム アプリケーション (Microsoft Visual Basic または MFC で記述されたフォーム ベースのアプリケーションなど) を介して表示されます。 そのユーザー インターフェイスは、クライアント コンピューターに配置されます。
- COM+ アプリケーションをスケーラブルにし、複数のサーバー コンピューターにアプリケーションを展開することで、可用性と信頼性を高めることができます。 これにより、Windows クラスタリングを使用して、アプリケーションのワークロードのバランスを取り、フォールト トレランスを提供できます。
- 問題が発生した場合、トランザクションを使用している場合、COM+ アプリケーションからデータベースに格納された永続化されたデータの状態が維持されます。 アプリケーションの状態は、アプリケーション エラー、システム クラッシュ、ネットワーク障害など、発生する可能性のある事故に耐える必要があります。
原則
これら 3 つの前提条件に加えて、次の原則によって COM+ プログラミング モデルが適用されます。
- アプリケーション ロジックは、クライアント コンピューターではなく、サーバー コンピューター上に存在します。 これを行うには、次の 3 つの主な理由があります。
- クライアント コンピューターには、アプリケーション ロジックの実行に必要な処理能力や機能がない可能性があります。 さらに、アプリケーション ロジックをサーバーに保持すると、デプロイが簡単になります。
- 多くの場合、サーバー コンピューターはデータに近く、このデータはデータベース内で最も頻繁に使用されます。 アプリケーションがデータベースにアクセスしているため、データベース接続のコストに非常に敏感である必要があります。 ほとんどのロジックをサーバー コンピューターに配置することで、データベース接続を共有し、パフォーマンスを大幅に向上させることができます。 サーバー コンピューターには、パフォーマンス上の利点がある他のリソースも共有できます。
- サーバー コンピューターにアプリケーション ロジックを配置すると、アプリケーションのセキュリティ コンテキストを制御できます。 クライアント コンピューターではなく、サーバー コンピューターで実行されているアプリケーション コンポーネントでそのセキュリティを維持する場合は、セキュリティをより詳細に制御できます。
- トランザクションがコアです。 設計上、トランザクションは COM+ プログラミング モデルに浸透しているため、理解することが非常に重要です。 トランザクションを使用せずに COM+ の多くのサービスを利用できますが、使用しないことを選択した場合は、利用可能な COM+ サービスを最大限に活用することはできません。 トランザクションを使用する場合の重要な利点には、次のようなものがあります。
- トランザクションは、コンカレンシー管理の問題に対する妥当な解決策です。 また、トランザクションはクラッシュから保護し、適切なエラー復旧モデルを備えるのに役立ちます。 さらに、トランザクションは、複数のシステム間でタスクを管理するための優れた方法であることが判明しました。
- トランザクション ベースの COM+ アプリケーションをリソース マネージャーとデータベースと連携するように設計できます。これは、ほとんどの状態情報を保護するのに役立ちます。 データベース内またはリソース マネージャーによって管理されている他のストレージ内に状態を保持することで、アプリケーションが作成する実際のオブジェクト内に多くの状態を保持する必要はありません。 これは純粋なオブジェクト指向モデルからの逸脱ですが、エラー復旧を使用して分散アプリケーションを作成する場合に適しています。
- アプリケーション機能は COM オブジェクトとして構築され、他のシステムやテクノロジとの通信に使用されるプロトコルをラップします。 複数のテクノロジまたはレガシ システムを結合するコンポーネントを構築している可能性があるため、さまざまな通信プロトコルの使用を計画してください。 インターネット経由のクライアント/サーバー通信またはアプリケーション間通信には HTTP を使用します。 サーバー上のアプリケーション間通信またはコンポーネント間通信には DCOM を使用します。
関連トピック
-
COM+ を使用するための一般的な設計のヒント
-
COM+ Business Logic Tier との対話の最適化
-
分散アプリケーション を構築するためのその他の Microsoft ツールの