18

これはJava Web サービスの複製のように見えるかもしれませんが、どこから始めて、どこから続ければよいか知りたいです。Web サービスに関するページを読んでいると、非常に多くの専門用語や混乱が (少なくとも私にとっては!) あります。非常に多くの用語があります - JAX-RPC, JAX-WS, Axis, Rest, Servlet as WebService, EJB'sWeb サービスなど、私が知らない用語です。このユーザー グループは、理解しやすくフォローしやすい Java Web サービスの概要をまとめて提供できますか? あなたの親切に感謝し、あなたの助けに感謝します.

4

2 に答える 2

34

これは、Web サービスを理解するのに少し難しいです。ウィキペディアのページはまともですが、まだいくつかの要素が欠けています.

この回答はコミュニティ ウィキとしてフラグを立てたので、お気軽に更新または修正してください。あくまで基礎です。

肥大化した用語:

まず、Web サービスという用語は、多くのことを指すために使用されます。多くの人が SOAP ベースの Web サービスを指すためにこの用語を使用していますが、この用語は、Web インターフェースを介して提供されるあらゆるサービスを表すために使用できます。これは混乱の元です。

実装と設計スタイル:

  • SOAP ベース-- SOAP は依然として Web サービスのデファクト スタンダードです。SOAP は、メッセージと例外の交換を記述する HTTP 上のプロトコルです。SOAP は、後で追加されたすべてのWS-* 標準により、単純なものから非常に複雑なものに成長しました。最も重要なものは、WS-Policy、WS-Security、WS-Addressing、WS-Transaction です。もう 1 つの重要な仕様は、大きなメッセージ用の MTOM です。
  • RESTful -- RESTfulという用語は、サービスがステートレスであり、すべての関連情報がパラメーターとして渡されるという事実に関連しています。また、SOAP のようなプロトコルを使用する代わりに、プレーンな HTTP動詞が使用されます。GetPutDeleteUpdate
  • ステートレス-- 通常、WS はステートレスです。処理されるビジネスは、要求と応答を照合するために使用される、いわゆる相関識別子 (WS-Addressing を使用) に依存することがあります。HTTP はステートレスであるため、これはセッション識別子を Cookie に保存するのと同じ考え方です。
  • ステートフル-- ステートフルな WS を持つという提案がいくつかありますが、私はそれについてあまり知りません。

実装とテクノロジー スタック:

  • サーブレット-- WS を実装する最低レベルの方法: 基本的に、リクエストを解析し、HTTP レスポンスをすべて自分で吐き出します。
  • EJB -- EJB3 以降、EJB は Web サービスとして非常に簡単に公開できます。もちろん、EJB コンテナーが必要です。
  • Apache Axis -- 以前は人気のテクノロジー スタックでしたが、現在は衰退しています。
  • Apache CXF -- もう 1 つの一般的な選択肢。
  • JBossWS -- もう 1 つの一般的な選択肢です。
  • JAX-WS -- Sun の公式 Web サービス スタック。非常に優れています。私が知る限り、これは単純に JAX-WS に名前が変更された JAX-RPC に取って代わります。

関連する概念と専門用語:

  • WSDL -- SOAP ベースの WS の場合、Web サービスのコントラクト/インターフェースを定義します。
  • コントラクト ファースト-- 事前に提供された任意の WSDL をテクノロジがサポートできるという事実を指します。Web サービスの実装に基づいて WSDL を生成する実装技術とは対照的に、この場合、WSDL は必要に応じて常にカスタマイズできるとは限りません。
  • プロファイル-- この混乱を単純化するために、相互運用性のためにサポートする必要がある関連する仕様/機能のグループであるプロファイルを導入しました。主なものは WS-I Basic Profile です。
  • UDDI と発見-- 潜在的な消費者が発見できるように、Web サービスは公的な登録簿に公開されると考える人もいるようです。このビジョンが勢いを増したとは思いません。
于 2010-05-11T12:41:58.967 に答える
0

「コントラクトファースト」Web サービスについて私が知っている最良の説明は、Spring web service module です

于 2010-05-11T12:21:28.587 に答える