• 締切済み

AJAXでSOAPを利用する定番の方法は?

お世話になります。 SOAPで実現されている某サービスのWeb APIを、AJAXで呼び出して利用することを考えています。 (今更SOAPかよ?という感じですが、それはさておきまして…) このような利用をする際の、定番の方法はあるのでしょうか? JavaScriptのSOAPクライアントライブラリで、何か定番等があっても良さそうな気がするのですが、Webで探しても、定番と言えそうなものが見つかりませんでした。 もし定番がないとしましたら、何故未だ、定番といえるものがないのでしょうか。 (SOAPの概要は知っていますが、今まで使う縁がなく、詳細を私は知りません)

  • ss-ak
  • お礼率100% (52/52)
  • AJAX
  • 回答数2
  • ありがとう数2

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

クライアントから別サーバとAJAXは不可能。サーバ側でやるのが定石。

ss-ak
質問者

お礼

(一般的には)おっしゃる通りですね。 ご指摘ありがとうございます。

ss-ak
質問者

補足

すみません、説明不足でした。 一般的には、確かにおっしゃる通りなのですが、今回は、クライアント側とサーバ側が同一ドメインのため、技術的にはAJAXが適用可能と考えています。 考えてみれば、こういうケースは少ないでしょうから、未だJavaScriptのSOAPクライアントが定着していないのも、不思議ではないですね。

  • shockatz
  • ベストアンサー率80% (153/191)
回答No.1

使ったことはないけど、jqSOAPClientてのがあります。 http://archive.plugins.jquery.com/project/jqSOAPClient SOAPは非常に巨大な仕様で、バイナリ、認証、暗号化などさまざまな要件を含んでいて、実装レベルもまちまちなため、javascriptのライブラリとするには荷が重すぎると思います。 (シリアライズ仕様までオプション。。phpレベルだと満足なSOAPパーサは存在しません) Web APIがどのようなものか不明なのですが、SOAP 1.0レベルのWebMethodであれば、jqSOAPClientでもパースできるかもしれませんが、確約できませんし、仕様変更でお手上げになることも考えれば、サーバサイドのASP.NETかJAVAで、ブリッジサービスを書く方が現実的なような気がします。

ss-ak
質問者

お礼

情報ありがとうございます。 jQueryのプラグインのようですね。 何故AJAXでやりたいかと言えば、クライアント側をなるべく軽くシンプルな作りにしたいからなのですが、SOAPを呼ぼうとする時点で、あまり軽くしようがないのかもしれないですね…。

関連するQ&A

  • Ajaxについて教えてください。(定義と実装方法について)

    Ajaxについて教えてください。 (定義について) http://www.atmarkit.co.jp/fwcr/rensai/imasara03/imasara03_1.html (サンプル集) http://jsajax.com/default.aspx 【定義について】 >>Ajaxは略語で、正式名称は「Asynchronous JavaScript + XML」となります。Asynchronousは「非同期」という意味 とされいるようなのです。他にも調べてみると、 「Javascriptを使い,Webページとは非同期(Asynchronous)にXML形式(もしくはテキスト形式)のデータ通信を行う手法」といった風にかかれています。 この「Webページとは非同期」という部分がわからないのですが、どういったものを指しているのでしょうか? 【実践方法について】  Ajaxの実装はどういった手順で行うものなのでしょうか?  参考でみたホームページで、ライトボックスをみて感動したので、早速使ってみたいと思いました。いざAjaxサンプルページに載っている、ライトボックスのコードをコピー&ペーストで、自分のPC上で試してみたのですが、動かず悩んでいます。(汗)  調べていくうちに、ライブラリが必要なようなのですが、どのように実装することで、ライトボックスは使用できるようになるのでしょうか?    AjaxサンプルのURLにjQueryを使い倒せ!ということから、jQueryという、Ajax用のライブラリがあるのでしょうか?

    • ベストアンサー
    • AJAX
  • Web2.0はAjaxの時代?

    今Ajaxが流行りに流行っていますが、Webアプリケーションを開発する上で Ajaxは得策なのでしょうか? 現在、JavaAppletでWebアプリケーションを開発しようとしていますが、 その理由としてはブラウザを意識したくないという事がある為です。 Ajaxの場合、ブラウザに依存するHTML構文、JavaScript、ブラウザによって分岐させるコーディング などが必要になってくるかと思います。 しかし、クライアント側でJavaScriptの有効などと言った 設定以外はセットアップ不要ですよね。 反面、Javaの場合はブラウザに依存しない代わり、 クライアント毎にJREのインストールが必要になります。 まだ開発者が完全に利用出来る範囲まで公開されてない Araxという手法もありますが、それは置いといて・・・。 (クライアント毎にFlashPlayerのインストールが必要だと思われる) そこで、一体、今GUIチックなWebアプリケーションを 開発する場合、どの手法が一番得策(開発側の観点からして)なのか、 皆さんのご意見をお聞かせ下さい。 何が出来るかはこの際、おいときましょう。 内容によっては、私が開発しようとしているWebアプリケーションの 開発手法を変更しようかと思います。

  • VB.net SOAPメッセージの取得方法

    Webサービスを利用したプログラムを試行錯誤しながら作っています(なかなか進みません)。 以下の件、ご教授ください。 VB,netにて、Web参照を指定して作成したクライアント・アプリケーションで、SOAPの送受信をデバッグするために、Webメソッドを呼出したときのSOAPメッセージ(リクエストとレスポンス)のXMLテキストを画面に表示したいのですが、その取得方法がわからず困っています。 SOAPメッセージ(リクエストとレスポンス)のXMLテキストを取得する方法をご教授ください。 よろしくお願い致します。

  • PHP4でのSOAP実装方法について

    初めて質問いたします。新米PGです。 PHP4で、SOAPとWSDLを利用したWEBサービスを開発したいと考えております。 しかし、SOAP,WSDLの利用は初めてで、PHPもごく簡単なプログラムしか組んだことがないため、SOAPクライアントやサーバの実際の挙動、WSDLとのかかわりなどがいまいちよくわかりません。 SOAPやWSDLについて、どういった役割を果たすものなのかというのは、概念としては理解しているつもりです。 実際にプログラムを動かしながら確認したい。 何か、初心者にも理解できるようなサンプルプログラムをご存知の方いらっしゃいますでしょうか。これまで1月以上探してきましたが、どれも難解であったり、エラーになってしまったりとよく判りませんでした。 なんだか情けない質問でお恥ずかしいですが、このままでは前に進めそうにないので、助けていただけたらと思います。 サンプルプログラムと、自分の環境に合わせて変更すべき箇所なども教えていただけたらと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • SOAPを使用したwebサービス

    現在SOAPを使用したwebサービスを サーバー側として、JAXMかJAX-RPCにて構築しようと 思っております。 webサービスの内容は特に決定していませんが、 同期通信で何らかの計算リクエストをクライアント側から 発行し、計算結果を画面上に表示する様な仕組みをまずは考えております。 そこで質問です。 1)JAXMとJAX-RPCのどちら使用した方が良いか?  ちょっと読んだ書籍によると、JAXMは非同期通信が可能であり、  きめ細かい処理が可能であるという事を知りました。  上記前提で単に同期通信で計算結果を取得したいだけと  言いましたが、あくまでもサンプルとして構築した後に、  実際にやりたい事が色々と出てくる可能性があります。  これを考慮すると、どちらがベター、ベストなのかを教えて下さい。  こういう事をするならこちらの方がいい。等、色々と知りたいです。 2)クライアント側として、  ・javaのデスクトップアプリ  ・VC++6.0のデスクトップアプリ  ・VB.NETのデスクトップアプリ  の3種を考えておりますが、その際、SOAP利用を行うのに便利な  ライブラリをそれぞれについて教えて下さい。  VC++6.0ではSOAP Toolkitに付属するライブラリを使用する?等  を知りたいです。その使用方法等が掲載されているwebサイトや、  書籍についても情報を下さい。  何れかひとつの回答でも構いません。 以上、よろしくお願いします。

  • PHP Soapで利用できるサービスの数

    PHPのsoap関数を利用してwebサービスを開発しています。 server側に複数のサービス関数を登録してclient側から呼び出していますが、clientから呼び出すサービス(関数)の数が4以下で正常に作動しますが、4を越えるサービスは呼び出されず正常に作動しません。 4個以上のサービスを呼び出す方法についてよろしくご教示お願いします。 当方の使用環境は以下の通りです。 ----------------------------------------------- Microsoft Windows XP 2002 Home Edition Version 2002 Service Pack 3 Apache 1.3.31(Win32) PHP Version 5.2.5 Build Date Nov 8 2007 23:18:08 php_soap.dll Version 5.2.5 のlocalhostで使用。 [php.ini]設定 [soap] ; Enables or disables WSDL caching feature. soap.wsdl_cache_enabled=1 ; Sets the directory name where SOAP extension will put cache files. soap.wsdl_cache_dir="/tmp" ; (time to live) Sets the number of second while cached file will be used ; instead of original one. soap.wsdl_cache_ttl=86400 -----------------------------------------------

    • 締切済み
    • PHP
  • 疑問だが、Ajaxは仕事でも使えるでしょうか?

    AjaxにjQueryなどのフレームワークがありますが、もしかしてAjaxは基幹システムとか大抵のサイトでは実用的ではないでしょうか? もしかして、個人的な遊びやWebデザインで面白い表現に使われるなどしか使われないでしょうか? Ajaxを使っている大手サイトであるGoogleやyahoo!を除いて、日本のIT企業のほとんどはWebサービスを提供するのに、Ajaxは使わないでしょうか?むしろ、シームレスで動的なサイトを作るとしたらDOMの方が多いような気がしますが、どうでしょうか? 私は個人的にAjaxは技術が新しいものがどんどん出てきて、ある意味追いついていけないと思う。ライブラリも多すぎて、さっぱり分からない。極端な話だと、Ajaxは仕事にならないなんていうことはあり得るでしょうか?むしろDOMの方が技術が安定して、その方が仕事になりやすいとか…。 変な質問ですみませんが、答えられる方はご回答よろしくお願いします。

    • ベストアンサー
    • AJAX
  • ajaxの使いどころ

    現在、会員制のWebサービスを作成しています。 まだ初期段階ですが、今は管理者用のユーザー管理ページに着手しており、サーバーサイド、クライアントサイド合わせて、およそ7割程度完成しているいるところです。 このページの現時点での実装では、ユーザーの削除、復活、パスワードリセット、登録情報の変更、新規ユーザーの登録といった全機能でajaxを使っています。 また、処理対象のユーザーは一覧のテーブルをクリックして選択するのですが、このクリック時にサーバーからユーザーの詳細情報を取得しており、ここでもajaxを使っています。 要するに、1ページ取得したあと、そのページ内でサーバーと通信を行う必要が生じたら、それはすべてajaxを使うという決まりです。 そこで、ajaxの運用についていくつかわからない点があり、質問させて頂きます。 (1) 会員専用ページという性質を考えると、ajaxでリクエストを送信した際にも、サーバーサイドではそのリクエストに対するセッションが有効かどうかをチェックする必要がありますよね? 一般的な会員向けWEBサービスでは、"ページ遷移毎"だけでなく、"ajaxでの通信毎"でもセッションのチェックを行うものなのでしょうか。 (2) ajaxでの通信時にセッションの有効性をチェックした結果、すでにタイムアウト等でセッションが無効な場合、一般的にはどうするべきなのでしょうか。 個人的にはlogoutページにリロードしたいと考えているのですが、このようにするには、サーバー側がレスポンスを返すときに、{error:{code:'1',message:'session_out'}}のようなJSONを返して、それをjavascript側で確認し、location.hrefを書き換える、というような流れで処理を行うことになるのでしょうか。 (3) そもそも、今回のように「1ページ内で生じるサーバー間通信は全てajaxで補う」という考え方は、一般的なものなのでしょうか。 なにが言いたいかというと、"セキュリティ等を考慮してajaxを使うべきではない処理"と"ajaxを積極的に使うべき処理"(もしくは、"ajaxを使っても差し支えない処理")の判断の仕方、つまり、ajaxの使いドコロがよく分かっていません。 以上3点につきまして、ご教授いただければ幸いです。

    • ベストアンサー
    • AJAX
  • Ajax利用システムで画面全体を書き換えデータを一部埋める処理はサーブレット必要?

    Ajaxを利用して画面を作成したいのですが 画面遷移の際、新たに表示する画面全体を読み込み、その画面の一部に必要なデータを埋め込む ような処理はやはりサーブレットを利用するしか出来ませんよね? 当初、Ajaxクライアント+DWR+Javaモジュールだけで考えていたのですが サーブレットを利用した従来のWebシステムの一部の画面に Ajaxを適用する、というのが正しい考え方というものでしょうか?

  • どこまでがAjaxなの?

    現在、Ajaxを勉強中の初心者です。 質問のタイトル通りなのですが、どこまでがAjaxなのかイマイチわかりません。 AjaxはJavaScript + XMLで非同期通信をする技術ですが 1.画像やプログラムファイルをサーバPC側に入れておいてクライアントPC側でラジオボタンの選択によって画像表示を変えるのはAjaxですか、それともただのJavaScriptですか? 2.サーバを使って以下のような入力可能文字カウンタを表示させるのはAjaxですか、それともただのJavaScriptですか? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>文字のカウント</title> </head> <body> <form>   <textarea cols="46" rows="5" id="title1" name="title1" size="50"></textarea><br />   あと<span id="inputlength1">20</span>文字入力できます<br /> </form>   <script type="text/javascript"><!--     function lengthCounter (node, max, cut) {       max = max || Number (node.maxLength) || 20;       return function () {         var rest = max - node.value.length;           if (rest < 0) {             if (cut) {               alert ('20文字以内にしてください');               rest = max;               node.value = node.value.substring (0, max);             }           }           return rest;       };     }     function dispValue (node, cbFunc) {       return function () {         node.firstChild.nodeValue = cbFunc ();   };     }     setInterval (dispValue ( document.getElementById ('inputlength1'),     lengthCounter (document.getElementById ('title1'), 20, true)), 100);   // --></script> </body> </html> 3.「googleサジェストのインクリメンタル検索にはAjaxの技術が利用されている」←ここでのAjaxにはPHPも含まれますか? 私はPHPをAjaxの枠には入れないような気がします。正確にはPHPとAjaxでインクリメンタル検索機能がつくられていると思うのですが。 4.PHPのみでAjaxと同じ非同期通信ができればそれはAjaxと呼ぶのか? よろしくお願いします。

    • ベストアンサー
    • AJAX

専門家に質問してみよう