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