私は多くのことを行うWebサービスを持っています。それができることの簡単な例(例だけに注意してください):
- 製品の返品リスト
- 製品価格を更新する
- 新製品を追加する
- 既存の製品を更新する
- 返品価格
- 返品パンフレット+画像
- 製品パンフレット+画像を追加
最初の5つのサービスは、リクエストがSOAP Webサービスに送信され、リストを返すか、データベース内の既存の行を更新するか、新しい行を作成するという点で非常に単純です。
最後の2つは、バイナリファイルをサービスに送信し、サービスからバイナリファイルを受信するという点で少し注意が必要です。
サーバー側にSOAPサービスを実装しても問題ありません。私はすでにフレームワークを用意していますが、今はサービスを実装する必要があります。私が問題を抱えているのは、これらのサービスを消費するクライアントを実装する方法です。
私はSOAPクライアントについて読んでいて、ファイルをSOAP添付ファイルとして送信できることを知っていますが、これがどのようにHTTPリクエストに変換されるのかよくわかりません。
質問:
- クライアントをWebポータルにしたいのですが、WebブラウザからWebサービスを呼び出す方法がよくわかりません。これは可能ですか?
- ブラウザからのWebサービス呼び出しはどのように機能しますか?通常のHTTP呼び出しですか?
- そして最も重要なのは、バイナリファイルのアップロード/ダウンロードはどのように機能するのでしょうか?
- リクエストを保護するという点で、どちらがより安全ですか?Webポータルベースのクライアントまたはシッククライアントベースのクライアント?
- Webポータルまたはシッククライアントの代わりにJavaWebStart / JNLPを使用することに利点はありますか?
- バイナリデータ転送のために、WebポータルとWeb Startを組み合わせて使用することはできますか?
- Webポータル(つまり、Webブラウザー)からWebサービスを呼び出すのが一般的な方法ですか?
私が思うもう1つの方法は、クライアントをシッククライアント(デスクトップアプリケーション)として実装することです。これに伴う問題は、GUISwingベースのアプリケーションの経験がないことです。
ソリューションの重要な側面の1つは、セキュリティで保護する必要があるため、どのアプローチを使用する場合でも、証明書を使用してセキュリティで保護する必要があることです。サービスの大部分は、Springテクノロジーを使用して実装されます。私はWebサービスにSpring-WSを使用していますが、Webポータルとして実行できる場合はおそらくSpring-MVCを使用します。
WebサービスとWebアプリケーションは両方とも同じアプリケーションサーバーで実行されます。