質問

第19章:MSDN上の物理階層と展開には、Distributed「を説明します展開」(図2参照)。すべてが順調といいます。

私たちは常に彼らは「非分散展開」(図1)のように記述するものにつきとして、当社のウェブベースのシステムを展開してきた私の経験では。私の理解では、(それがJavaの世界にように)それが効果的にOS / Windowsに「焼き」ているため、Microsoftの世界では別のものとして、「Application Serverは、」実際には存在しないということです。

私の質問あなたが別のサーバー/階層上にUIとビジネスロジック(BL)を配布した場合、どのように彼らは?通信するさ。

私は1つの答えは、「サービス層」を使用することです知っている - の選択肢は何ですか?あなたが実際にそれをどのように行うのでしょうか?何それは、コードの観点からのように見えるのでしょうか?

役に立ちましたか?

解決

まず最初に。それをしないでください。ただありません。あなたは痛みの世界のためにいます。論理的および物理層は異なるものです。アプリケーション層の論理的分離は良いアイデアです。アプリケーション層の物理的分離は、より多くの場合より、災害のためのレシピです。良い展開理由は、(別のボックス上の共有支払プロセッサ)がある場合は、必ず、右先に行きます。あなたの毒を選び... WCF、MSMQ、HTTP、 - あなたは、私たちすべて知っていると愛標準メカニズムを使用することができます。しかし、MSDNのホワイトペーパーでは、いくつかの神話の理想的なまでの生活のためのオーバーヘッドと複雑さを取ることはありません。

他のヒント

中間層内の計算パワー:

アプリケーション・サーバーは、ヘルプ比にアイデアとして、希少資源を調理しました。このアイデアは、不動態化「、最初は、CPUが希少で高価なので、時間と労力と多額の経費は、様々なユーザーにメインフレームのCPUをダイシングワークロードを絞る、データベースオフロードを維持する上で費やされたたところ、メインフレームの土地から来ました「負荷が時間後に減少し、というようになるまでの取引。内部コストはexpen $アイブメインフレームの使用を占める - 当時の人々はとても「チャージバック」を実行することができるよう、メインフレーム上のトランザクションのトラックを保持することをソフトウェア上で数百万ドルを費やしました。彼らはメインフレームの使用のために内部の部門への課金を行うことができますので、はい、人々はboatloadsのお金を費やしました。

事は、インテル(以降AMD)は、シスコ(ら)、EMC、Microsoft、およびLinuxは、全体のアイデアを議論の余地をレンダリング。コンピューティングは安くなりました。本当に安いです。配給中間層コンピューティングリソースへの必要は本当に、本当に、本当にありません。これらの日のためのデュアルCPUサーバ行くとは何ですか?あなたは男ONE ITの年俸のためにどのように多くの人々のを展開だろうか?これは、計算が高価、希少資源で、人々は比較的だったメインフレームコンピューティングの古い経済の反転、である(!!)安いです。今、人々は高価な一部であり、計算は安いです。

彼らは計算へのアクセスを制限、またはそれを個別の、またはそれを絞るかさえチャージバックのためにトランザクションを「監視」するために持っていることを

アプリケーション・サーバ、およびすべての添えもの....ときにこれらのものは必要ありません安いAMDサーバのラックを持っています。

アプリケーションサーバが行ったもう一つは、ワークロードからデータベースを保護しました。基本的に、DBサーバからの作業負荷を軽減。時間は、開発者がストアドプロシージャにビジネスロジックを置くと、ブームた、あなたのアプリがありました。しかし、このアプローチにはスケーラビリティの問題がありました。さて、しかし、保存されprocsのは、高速で効率的です。データベース・サーバは安く、スケールアップすることができます。チャンスはあなたがストアドプロシージャのロジックで、Intelハードウェア上で負担することができません世界のトップ100のワークロードボリュームの1を持っていない、です。

ストアドプロシージャのアプローチの1つの大きな問題しかし、それはソート主流の言語で保存された著者にハードprocsの(などのJava、C#、VB)のままで、それらを管理することです。はい、私はDBで管理されるSQL CLRとJava VMを知っています。しかし、これらは、主流のアプローチではありません。また、DB管理者は、自分の使用状況グラフをめちゃくちゃコード騎手好きではありません。これらの理由から目的専用の別の言語でのビジネスロジックを記述したいがまだあります。そして、まだ専用のコンピューティングリソースにそのロジックを実行し、管理するための願望があります。しかし...伝統的な「アプリケーションサーバー」??いいえ。それは意味がありません。

インテルサーバー上のすべてのロジックを入れて、ERのリッピングをしましょう!あなたはより多くの規模が必要な場合は、ボックスのクローンを作成します。あなたがスケールアウトすることができますので、すべてのビジネスロジックは、ステートレス(右?)です。 3「アプリ」のサーバー・マシン、または4または5またはあなたが必要しかし、多くを使用してください。すべてまったく同じコードを実行しています。お互いのクローン。かかわらず、あなたが持っているどのように多くのビジネスロジックのマシン、物理的にワークロードを分散していません。最大のスケーラビリティのために、単一のボックスに各トランザクションを維持するために努力しています。それは、効率とリソースの最適な使用のためのレシピです。

アプリケーションのアーキテクチャに論理層を使用することをお勧めします。これは、それが簡単に開発し、維持することを可能にします。しかし、論理的な分離が暗示、あるいは、物理的な分離をお勧めしなければならないと仮定しないでください。それはしていません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top