4

Premising that I'm a newbie in Web Services technologies, and am just beginning to study them, I wasn't able to understand in a precise way why should I implement a Web Service rather than a standard Client/Server protocol.

1 - Can anybody please help me understand?


I found on the web some indications but would like you to confirm / extend them, in order to help me put all pieces together.

2 - Are the following statement correct and could you please explain them to me?

1.

A guideline that I was told: 
If you plan on reaching out to multiple clients (Linux, Windows, etc.), 
then use Web Services; otherwise, use Client / Server.

2.

If your application needs to be run on machines that would access the data 
over a public network (internet) then you should go with web services because 
the traditional client/server model is not acceptable due to not wanting 
to expose your server publicly.
The web services you would expose publicly could be secure (HTTPS),
require some kind of authentication and only expose what you WANT to expose, 
versus exposing a whole database

3.

One of the better reasons to use remoting is that it gives a large increase in
performance. But one of the down falls is that it is a good bit more complicated
to program than Web Services.

4.

The proper use of web services is really based on your "remote connectivity"
needs. If your application is going to be run in a controlled environment such as
a LAN/WAN where you can see the server thru a private or secure (VPN) network,
then you can build a traditional client/server application

5.

Web Services:

Though there are no major differences in the output of service with both these
models, the mobility and accessibility is definitely an advantage. 
However, the lack of a great deal of personalization does come as a con against 
the web-server based model.

Client Server:

The added security of client server is definitely a one up and it also gives the 
option of controlling the updates and upgrades if any. 
Initially though, client servers may come with a higher front-end cost.

Statements were extracted from the following links:

4

2 に答える 2

8

しばらく時間が経ち、議論に関する多くのチュートリアルを研究した後、私は最終的に自分の質問に答えることができます:


1. 標準のクライアント/サーバー プロトコルではなく、Web サービスを実装する必要があるのはなぜですか


実際、Web サービスは別の分散コンピューティング テクノロジです (CORBA、RMI、EJB など)。クライアント/サーバーアプリケーションを正確に作成できるため、それらに代わるものではありません.

クライアント (Web サービスにアクセスするプログラム) は、(サーバー内の) Web サービスに接続し、いくつかの情報を求めるサービス要求を送信します。サーバーは、サービス応答を通じて必要な情報を返します。

もちろん、これは Web サービスがどのように機能するかを示す大ざっぱな例ですが、通常のクライアント/サーバー プロトコルがどのように機能するかという概念とまったく同じであることがわかります。

では、Web サービスが特別な理由は何でしょうか?

Web サービスには、他のテクノロジよりも優れた利点があります。

  • Web サービスは、標準の XML 言語を使用するため、プラットフォームや言語に依存しません。つまり、私のクライアント プログラムは C++ でプログラミングして Windows で実行でき、Web サービスは Java でプログラミングして Linux で実行できます。

  • ほとんどの Web サービスは、HTTP を使用してメッセージ (サービス要求や応答など) を送信します。これは、インターネット規模のアプリケーションを構築する場合に大きな利点となります。インターネットのプロキシとファイアウォールのほとんどは、HTTP トラフィックを混乱させないためです (通常、ファイアウォールに問題がある CORBA とは異なります)。

もちろん、Web サービスにもいくつかの欠点があります。

  • オーバーヘッド。すべてのデータを XML で送信することは、明らかに独自のバイナリ コードを使用するほど効率的ではありません。移植性で得られるものは、効率で失われます。それでも、このオーバーヘッドは通常、ほとんどのアプリケーションで許容されますが、Web サービスを使用する重要なリアルタイム アプリケーションはおそらく見つからないでしょう。

  • 汎用性の欠如。現在、Web サービスは、いくつかの非常に基本的な形式のサービス呼び出ししか許可していないため、あまり用途が広くありません。たとえば、CORBA はプログラマに多くのサポート サービス (永続性、通知、ライフサイクル管理、トランザクションなど) を提供します。幸いなことに、新しい Web サービス仕様 (WSRF を含む) が多数あり、Web サービスの汎用性をますます高めています。

ただし、Web サービスを際立たせる重要な特徴が 1 つあります。CORBA や EJB などのテクノロジは、クライアントとサーバーが相互に大きく依存している高度に結合された分散システムに適していますが、Web サービスは、クライアントが Web サービスの事前知識を持たない疎結合システムに適しています。実際に呼び出すまで。高度に結合されたシステムは、イントラネット アプリケーションには理想的ですが、インターネット規模ではパフォーマンスが低下します。ただし、Web サービスは、インターネット全体のアプリケーションの要求を満たすのにより適しています。


2.次の文は正しいですか。説明していただけますか。


1)複数のクライアント (Linux、Windows など) に連絡する予定がある場合は、Web サービスを使用します。それ以外の場合は、クライアント/サーバーを使用します。

真実

上記のように:

Web サービスは、標準の XML 言語を使用するため、プラットフォームや言語に依存しません。つまり、私のクライアント プログラムは C++ でプログラミングして Windows で実行でき、Web サービスは Java でプログラミングして Linux で実行できます。

代わりに、分散システム アーキテクチャが既知であり、すべてのノードで均一である場合は、固定プログラミング言語で、より単純でより結合されたクライアント/サーバー アプリケーションを作成できます。

2)パブリック ネットワーク (インターネット) 経由でデータにアクセスするマシンでアプリケーションを実行する必要がある場合は、Web サービスを使用する必要があります。これは、サーバーを公開したくないため、従来のクライアント/サーバー モデルは受け入れられないためです。公開する Web サービスは安全 (HTTPS) であり、何らかの認証を必要とし、データベース全体を公開するのではなく、公開したいものだけを公開することができます。

真実

Web サービスでは、外部の世界に公に公開する唯一のものは、標準の Web サーバー (クライアントが HTTP 要求を送信できるサーバー) だけです。すべての貴重なデータとメソッドは、代わりにアクセスできないように保護されています。

代わりに、サーバー プロセスへのアクセス エンドポイント (IP アドレスとサービス ポート番号など) をインターネットに直接提供すると、データとメソッドがあらゆるプロセスからアクセスできるようになります。

3)リモーティングを使用するより良い理由の 1 つは、パフォーマンスが大幅に向上することです。しかし、落とし穴の 1 つは、プログラミングが Web サービスよりもかなり複雑であることです。

真実

リモーティングを使用すると、より用途の広いサービスを構築し、大量の XML データの受け渡しを回避できるため、パフォーマンスが向上します。

4) Web サービスの適切な使用は、実際には「リモート接続」のニーズに基づいています。プライベートまたはセキュア (VPN) ネットワークを介してサーバーを見ることができる LAN/WAN などの制御された環境でアプリケーションを実行する場合は、従来のクライアント/サーバー アプリケーションを構築できます。

真実

回答の最初の部分から再度引用します。

Web サービスは、クライアントが実際に Web サービスを呼び出すまで Web サービスを事前に認識していない可能性がある疎結合システムに適しています。高度に結合されたシステムは、イントラネット アプリケーションには理想的ですが、インターネット規模ではパフォーマンスが低下します。ただし、Web サービスは、インターネット全体のアプリケーションの要求を満たすのにより適しています。

5)ウェブサービス:

どちらのモデルでもサービスの出力に大きな違いはありませんが、Web サービスのモビリティとアクセシビリティは、標準の C/S パラダイムよりも確実に有利です。ただし、多くのパーソナライゼーションがないことは、Web サーバー ベースのモデルに対する短所です。

クライアントサーバー:

クライアントサーバーの追加されたセキュリティは間違いなく1つ上のものであり、更新とアップグレードがあればそれを制御するオプションも提供します. ただし、当初は、クライアント サーバーのフロントエンド コストが高くなる可能性があります。

真実

この声明の最初の部分は、Web サービスはプラットフォームや言語に依存しないため、よりアクセスしやすいという事実に言及していますが、前述のように汎用性は低くなります。

2 番目の部分では、汎用性が高くなると、更新やアップグレードをより簡単に制御および非表示にできるという事実が述べられています。

たとえば、Web サービスの保守担当者がサービスのインターフェースを変更し、その WSDL 記述を変更することを決定した場合、クライアントは検出フェーズを再度実行する必要があります。標準の C/S プロトコルを使用している場合、これは発生しません。

于 2012-07-10T09:23:37.370 に答える
1

Web サービスは、クライアント/サーバーの「アプリ」です。

ブラウザを使用して、ウェブサイトに接続すると、サーバーは html またはブラウザで読み取り可能なその他のものを出力します。html は、php や .net などのアプリケーション層から生成できます。あなたのブラウザはクライアントです。

Web アプリケーション (php / Java /etc...) 自体が別の Web アプリケーションのクライアントになることができます。ブラウザに提供するために、アプリが 、天気予報 を表示する必要があると想像してください。

サーバー上のアプリは、プロトコル (rest / soap / xml-rpc / etc ...) を介して別のアプリに接続し、サーバー アプリからデータをプッシュまたはプルします。サーバー アプリは、php java、dotnet、クライアント アプリのいずれでもかまいません。彼らは定義されたプロトコルを介して話すので気にしません。

そのため、Web サービスを使用すると、クライアントとサーバーが一緒に話すことができます。

また、Web サービスはすべてクライアント/サーバー通信に関するものであるため、Web サービスとクライアント サーバーはありません。

編集:引用されたテキストが何について話しているのか本当にわかりません...そのテキストのソースを教えてください。

于 2012-04-14T08:25:37.080 に答える