1


0

WebサイトでのWebサービスの役割は何ですか?

私は、大量のデータを使用するコントロールを含むWebサイトを構築しています。 そこで、スケーラビリティを向上させるために、Webサービスを介してそれを行うことを考えました。この方法で、この目的で別のサーバーを使用できるようになります。 +これは良いアイデアですか? もしそうなら、それはどこで止まりますか? 周りにウェブサービスがあり、非常に「薄い」ウェブサイトがないのはなぜですか? 長所は何ですか。 そして短所。 その? + Webサービスの目的を達成していないのですか?

2 回答


1


現在、ブラウザで実行され、優れたプレゼンテーションウィジェットを備えたリッチインターネット/イントラネットアプリケーションは、ごく一般的なものです。 私が対処している最も深刻な企業は、少なくともWebにある程度のRIAが必要です。

だから、AJAX、Flashなど。 非常に広く使用されています。 このようなアプリは、どこかから表示されているデータを取得する必要があり、通常これはバックグラウンド(非同期は頻繁に使用される用語です)サービス呼び出しです。 多くの場合、RESTサービス呼び出しですが、従来のWSDLベースのサービス呼び出しでもあります。

だから私は言うだろう:

  1. プレゼンテーションロジックとビジネスロジックの論理的な分離は 良いこと。

  2. RIAの場合、ビジネスロジックを分離することは完全に自然です。 後者がブラウザにある場合、プレゼンテーションとは異なる層に移動します。

  3. あなたが行うスケーラビリティの議論は、このことの1つのやさしい利点です 建築。 Java EEの世界では、App Serverはこの種のスケーリングを非常に自然に行います。

  4. プレゼンテーションログインが同じ層で実行されている場合 Webサービスのシリアル化コストは非常に顕著であるため、代わりに単純なプロシージャコールを使用することをお勧めします。


0


私の理解では、Webサービスの主な目的は、疎結合された方法でアプリケーション機能を*外部アプリケーション*に公開できることです。

スケーラビリティを向上させるために、通常重要なのはアプリケーションの階層化アプローチです。ここでは、必要に応じて、レイヤーを独立してスケールアップ/スケールアウトできます。 さて、はい、実装の観点から、このレイヤーをWebサービスとして実装することは可能ですが、それはほとんどパフォーマンスのオプションではありません。

外部統合が要件ではない場合、通常、TCP /名前付きパイプなどのレイヤー間でより高速な通信手段を使用する方がはるかに優れています。 .NETプラットフォームを使用していて、WCFを使用してサービスを作成する場合、TCP / MSMQ /名前付きパイプは、通常のWebサービス(HTTP)よりもパフォーマンスが高いと見なされるオプションです。 .NETの以前のバージョンでは、.NETリモート処理を使用してレイヤー間で通信するのが一般的でしたが、これもWebサービスよりもはるかにパフォーマンスが高くなりました。

Webサービスをすべての周りに持つことに関しては、それらに関連付けられたコストがあり、パフォーマンスがあるので、それらを持っていることから本当に利益を得る場所を除いて、それらを周りに欲しくない。 ほとんどの場合、ビジネスレイヤーの上にあるサービスレイヤーを介して外部アプリケーションにビジネスロジックを公開することは、通常、サービスを提供する一般的な場所の1つです。