- - PR -
Document/Literal or RPC/Encoded
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-26 13:44
お世話になります。
Webサービスにおける通信方法において表題の2通りあると思いますが いまいち理解しきれません。 色々見て調査はしているのですが、ニュアンスを理解しきれないのも あります。
いまいちピンときません。 おそらくイメージできないからだと思います。 今、Document/Literalが優位であるという風に言われていることから 何故優位なのかを知りたいと思っています。
データサイズが小さくて済むことが最大のメリットなのでしょうか? まず、私の今のところの理解から行くと ・RPC/Encodedと比較してDocument/Literalはオブジェクトのシリアライズ回数 が少ない。(※Document/Literalもシリアライズを行う場面はある) このくらいなのですが・・。 この解釈自体間違ってるかも。 XML文書をそのままやり取りすると至るところで書かれていますが、結局双方 (サーバ・クライアント)の受け取り時には各プログラム言語にマッピングされ シリアライズされると思うのですが合っていますでしょうか? ただ、送信(クライアント→サーバ)時にはXML文書をそのまま渡すイメージ? # ああ、でも結局プログラム言語からXML文書にシリアライズされるんじゃ・・ # ちょっと混乱します また、サイズが小さいといいますが、たかだがメソッド名要素がなくなるだけ のような気がするのですが、これがそんなに大きな要因になりえるのでしょうか? こちらでWebLogic8を使い、簡単なサービスを作って、rpcとdocumentで引数 オブジェクトのサイズを変えてやり取りしてみましたが、クライアントから のメソッドコール時間に両者変わりありませんでした。 性能面でも変わらない? このような各種疑問がわいています。 どこか良い参考情報が載っている場所の紹介でも良いのでご助言お願いします。 | ||||||||||||
|
投稿日時: 2004-11-26 16:38
IBM developerWorksの英語の記事ですけど、
Reap the benefits of document style Web services http://www-106.ibm.com/developerworks/webservices/library/ws-docstyle.html Which style of WSDL should I use? http://www-106.ibm.com/developerworks/webservices/library/ws-whichwsdl/ | ||||||||||||
|
投稿日時: 2004-11-26 18:20
情報ありがとうございます。
英語は苦手ですが、ちょいと翻訳かけたりして 頑張ってみてみます。。 | ||||||||||||
|
投稿日時: 2004-11-26 21:44
こんな感じでしょうか?
RPC/encoded -> ツールにおまかせすれば実装が簡単 Document/literal -> 相互運用性が高い、拡張性が高い、うまく設計・実装すれば性能がよい、データ量が多いときRPC/encodedよりは扱いやすい WS-IではRPC/literalを推奨していたと思います。 | ||||||||||||
|
投稿日時: 2004-11-27 13:31
RPC/encoded, Document/Literal, RPC/Literalの性能については以下に
説明があります。 Discover SOAP encoding's impact on Web service performance http://www-106.ibm.com/developerworks/webservices/library/ws-soapenc/ | ||||||||||||
|
投稿日時: 2004-11-29 09:52
色々ありがとうございます。 参考ページに関しては、かなり良い情報が載っていそうなので 参考にしてみます。 また、参考のページにも書いてありますが(ちらっと見た感じ)
の感覚がいまいちわかりません。 現状試しているのはWebLogic8評価版なのですが サーバ側(サービス側)での設定は非常に簡易にDocument/Literal とRPC/Encodedを変更できます。 # style="rpc"かstyle="document"かの違いだけ。 開発者としては特に難しいことはないと思います。 これはツール側が進化してきて簡易になってきた ということなのでしょうか。 一昔前はこんなことはなかった、ということでしょうか。 | ||||||||||||
|
投稿日時: 2004-11-29 18:08
既存のコードからの自動生成に関して、.NET Frameworkは当初からdocument/literalと
rpc/encodedに対応してましたが、Javaのアプリサーバが対応したのは、最近かと思い ます。 まだ対応していない製品もありますし、J2EE標準APIとしては、JAX-RPCのrpc/encoded しかないと思います。 既存のコードがあってWebサービス化する場合よりも、やりとりするXML形式があって、 SOAPでラップする場合のdocument/literalについて考えてみると少し分かりやすいかと 思います。 | ||||||||||||
|
投稿日時: 2004-11-29 19:58
色々コメントありがとうございます。
私も色々と見て感覚を養っているのですが RPC 相手のメソッド名を指定しなければならない まさにメソッドコールのイメージ シリアライズ・デシリアライズがS/C(サーバ・クライアント)で発生する Document 相手のメソッド名は気にしない。 どういうことをしたいかという内容(メッセージ)を送る メッセージ解析がS/Cで発生する というイメージを持っているのですがはずしてはいないでしょうか。 また、現状として スタブが各種ツールにより自動生成され、スタブを通してアクセス(メソッドコール) しているため、RPC,Documentどちらを使用していても開発者からしたらあまり変わり はない。 と思っているのですが。
で言われている「拡張性」などでは、本来サービス側の引数の型が変化しても(int→ Stringなど)Document指向では、クライアントに影響はない(理想?) ということなのでしょうか。 |
1|2|3
次のページへ»