ほとんどのJavaアプリケーションサーバーで使用されているものと比較して、.NETのアプリケーションサーバーモデルの理由をよりよく理解したいと思います。
ASP.NET Webアプリケーションで見たほとんどの場合、ビジネスロジックはWebサーバーのasp.netホストプロセスでホストされます。もう1つの一般的なアプローチは、ビジネスオブジェクトをホストし、Webサービスとして公開するか、WCFなどのメカニズムを介してアクセスする物理的または論理的に異なる層を用意することです。後者のアプローチは、通常、常にではありませんが、より高いスケールが必要な場合に使用されるようです。COMオブジェクトの時代には、Microsoft Transaction Server(MTS)以降のCOM +ホスティングが、ビジネスロジックを含むCOMオブジェクトをホストするために使用され、MTSが(理論的には)オブジェクトの存続期間、トランザクション、同時実行性を管理していました。このモデルは、ASP.NETランドではほとんど姿を消したようです。
Javaの世界では、サーブレットコンテナとしてTomcatを使用するApacheと、Tomcatでホストされるビジネスオブジェクトがある場合があります。この場合、Tomcatは、MTSが.NETの世界で提供したものと同様の機能を提供します。
いくつかの質問:
- アプリケーションサーバーに対するMicrosoftとJavaのアプローチの根本的な違いはなぜですか?これらのフレームワークが作成されたとき、これはアーキテクチャ/設計の選択であったに違いありません。
- 各アプローチの長所と短所は何ですか?
- MicrosoftがMTSホスティングモデル(Tomcastサーブレットホスティングモデルに類似)から、WebサーバーのASP.NETプロセスの一部としてビジネスオブジェクトを使用するという、より一般的な現在のアプローチに移行したのはなぜですか?
- 今日ASP.NETアプリケーションにMTSタイプのアプローチまたはTomcatタイプのアプローチを実装したい場合、一般的なパターンは、IISプロセス(おそらくいくつかの異なる物理層または論理層)でビジネスオブジェクトをホストし、WCF(または標準のasmxWebサービスなど)。これは正しい仮定ですか?