2011-06-29 11 views
0

私はWebベースのエンタープライズアプリケーションを持っています。私たちが直面している問題の1つは、バックエンドがフロントエンドと緊密に結合していることです。今我々は、私たちのソフトウェアのデスクトップクライアントに加えて、モバイルアプリを考え出したいと思います。このため、バックエンドをWebサービスに移行し、複数のフロントエンドクライアントが同じ関数呼び出しを使用できるようにしました。しかし、これが正しい動きであるかどうかまだ疑問に思っていますか?他の方法で助けてもらえますか? Webサービスを使用する際の落とし穴はありますか?最も懸念されることの1つはスピードです。 Webサービスは本質的に遅いですか?ウェブサービスを使用する必要がある場合

あなたのお手伝いをお待ちしております。

答えて

0

「webservices」で理解している内容によって異なります。 SOAP、REST、このようなすべてのテクノロジー?

SOAPサービスは、クライアントがWSDLを介して契約を定義していることと、クライアントが簡単にスタブを生成できるという大きな利点があります。一方、SOAPサービスは、(たとえば、iOS、プレーンhtmlアプリケーションなどの)SOAPクライアントを持たないクライアントでSOAPサービスを使用する場合、さらに多くの作業をもたらすことができます。さらに、webserviceはオーバーヘッドを多くもたらします。これは、大規模なデータを配信する場合などに役立ちます。モバイルデバイスに

ここでは、クライアントの帯域幅(速度とデータ量)が制限されている可能性があることを考慮する必要があります。さらに、それはホールXMLドキュメントを処理する必要がありますが、jsonはもっと簡単にできます。

3

ほとんどのWebサービス(SOAP、REST)は、プラットフォームに依存しないサービスを作成するために使用されます。私が言いたいのは、Webサービスは、言語の使用と技術の相互運用性について心配することなく、Java、.NETプラットフォームなどで書かれたアプリケーションによってアクセスできるということです。

また、ほとんどの場合、同じデータにアクセスする必要がある複数のアプリケーションがあるため、アプリケーションごとにデータ抽象化レイヤーを書き込むことは、OOではありません。

あなたのケースでは、ネットワークプロトコルを通じてシステムにアクセスする多くのプレゼンテーションレイヤー(デスクトップ、モバイル、Webアプリケーション)があるので、Webサービスが必要になります。この場合、サービス内にビジネスロジック/ルールを簡単に記述できるWebサービスを提案し、クライアントはリクエスト/応答プロセスを実行してデータを取得/ポストします)。

1

これは情報の種類によって異なりますが、物事の広範なスキームでは、SOAは、あなたが「バックエンド」システムを持つことを望む場合に行く方法です。私はあなたがそのパフォーマンスに満足していると確信していますし、場合によっては驚いています。ほとんどの場合、データベース呼び出しは依然としてボトルネックです。私は、多くのプロジェクトでSOAを実装する責任を担ってきました。多くの場合、アプリケーションはWebサービスでより高速に実行されています。これは、呼び出しがはるかに高速ですが、ローカルとリモートのキャッシュなどの他のテクノロジを利用して設計を改善するためです。

Webサービスをバックエンドとして使用するという一般的に2つの落とし穴があります。

1.)どのように実装されていますか。本を書く前にいくつかの本を読んでいくつかのテストをしてください。標準を作成し、それらに固執しよう。

2)シングルアクセスポイントは良いことですが、不安定な環境や急速に変化する環境には適していません。いくつかの冗長性とバックアップ計画だけでなく、サンドボックスやステージング領域もあります。

0

ウェブサービスがhttpを超えているので、パフォーマンスが低下することはありません。あなたのケースでは、バックハンドはWebサービスとして公開されるべきです。複数のクライアントによってサービスを呼び出すことは可能です。あなたが必要な場合にも余分なセキュリティを導入することができます....

+1

は一致しません。いくつかの異なるより簡単なプロトコルと比較してWebサービスは、処理速度を低下させます(クライアントとサーバー側が影響を受ける可能性があります)。 webserviceは、デフォルトでは石鹸だけではありません。それはそれぞれの理解に依存します。 – rit

関連する問題