■SOAP関数とは

PHP5からSOAP関数が標準で利用できるようになっているので、PHPからSOAPで提供されているWebAPIを利用するのはとても簡単に出来ます。
一応オプション扱いになっているので、導入方法はPHPのSOAP関数を見てください。
使えるようになっているかどうかはphpinfoで確認すればよいでしょう。
レンタルサーバーで使えるようになっていない場合は、管理者に連絡すればインストールしてくれると思います。
PHP4の方はPEARのSOAPであるSOAP Client/Server for PHPを使うのが簡単でしょう。

▲ページ先頭へ戻る▲


■サンプル

ここでは、
・ターゲットAPIとしてマイクロソフトが提供しているLive Search
・指定キーワードで画像を20件表示する
サンプルを提示してみます。

function searchImageMSN($keyword)
{
	if(!strlen($keyword))	return;

	$tns = 'http://schemas.microsoft.com/MSNSearch/2005/09/fex'; 
	$op = array('type_ns' => 'tns', 'type_url' => $tns);
	$client = new SoapClient('http://soap.search.msn.com/webservices.asmx?wsdl', $op);

	$sourceRequest = array(
		'Source' => 'Image',
		'Offset' => 0,
		'Count' => 20,
		'ResultFields' => 'Image');
	$requests = array( 'SourceRequest' => $sourceRequest );
	$searchRequest = array(
		'AppID' => 'あなたのアプリケーションID',
		'Query' => $keyword,
		'SafeSearch' => 'Moderate',
		'Flags' => 'None',
		'CultureInfo' => 'ja-JP',
		'Requests' => $requests );
	$search = array('Request' => $searchRequest);

	$response = $client->Search($search);
	$results = $response->Response->Responses->SourceResponse->Results;
	foreach ($results->Result as $result) {
		$tag = '<img src="' . $result->Image->ThumbnailURL . '">';
		print $tag;
	} 
}
このようにSOAP関数の使い方はとても簡単です。
SoapClient コンストラクタの引数としてWSDLのURIを指定すると、オブジェクトが返ってくるので、
後は必要な引数をセットしてから必要なメソッド(ここでは、Search)を呼ぶだけです。
なぜ、Searchメソッド?という疑問があると思います。
WSDL文書を見てもいいですし、SOAP関数のSoapClient->__getFunctions() ? SOAP 関数の一覧を返すでもサポートしている関数一覧を取得できます。
ちなみに、LiveSearchのWSDL文書はここで確認できます。当然ですが、どんな引数が使えるかも定義されているので、これを見れば何が出来るのかが分かります。
getFunctionメソッドを使って確認する場合は、
var_dump($client->__getFunctions());
というコードを追加すれば、メソッド一覧(といってもひとつだけですが・・・)が確認できます。

▲ページ先頭へ戻る▲


■呼び出し例

上のサンプルコードを実装し、「初音ミク」(なんで「初音ミク」?ってのは置いといて・・・、まあ、LiveSearchといったらコレしかないでしょう。)をキーワードとして呼び出した例はここをクリックすると確認できます。

▲ページ先頭へ戻る▲


■SOAPに関連した書籍

(データ提供:Amazon.co.jp)

Webサービス完全構築ガイド - XML、SOAP、UDDI、WSDLによる先進Webシステムの設計・実装(,日経BP出版センター)

¥ 3,360 通常24時間以内に発送
Amazonポイント:¥ 33
レビュー数:5
●Webサービスの概要を理解できる本
Webサービスの基本となる「WSDL」「UDDI」「SOAP」「XML」について、解りやすく説明されています。また、事例を用いて進められていくので、実際の構築イメージが把握できます。
「Webサービスとはどういうものか」という問いをお持ちの方にとっては、きっと役立つ本だと思います。
●最初に出た本格本
UDDI,SOAP,WSDLなど、Webサービスの基本概念が前半でわかりやすく述べられており、後半は、実際の情報システムをWebサービス技術と標準仕様を使って、設計、実装実験する内容を細かく述べている。最後半では、Webサービスの技術、仕様の限界点や課題が整理されている。
発行当時は、Webサービスに関する、SIベンダーの視点で、当時確定していた概念や、仕様を実際の設計、構築にどのように適応するか、が平易に開設されており、それなりの役割はありました。ただ、先端技術であったことや、相互運用の仕様の進展など、現在も進行中の広範な分野だけに、初学者の入門としてはいいかもしれませんが、実用書としては、いかんせん古いといえます。対象分野が分野だけに、秒進分歩に追いつくには、版を重ねるなど、努力が必要と思います。当時はよく書けている内容であるだけに、最新情報を盛り込んだ更新版がでることを期待します。
文章だけでなく、説明図、絵が多く、理解の助けになっています。
●比較的長く本棚における参考書
SOAP、UDDI、WSDL周りのWebサービス必須技術を体系的に述べた本。この本だけ読んでWebサービスの実装をするには情報量が足りないが、辞典的な使い方をするのならば便利。
●ビギナー向け
わかりにくいものを、わかりやすく書くというのは、とても難しいことだと思うのだけれど、この本はとてもわかりやすく解説してくれています。ビギナーにいいかもしれませんね。
●事例がいいですねえ
Webサービスという言葉が言い始められてから、しばらく経つというのに、本としてなかなか出てこなかったのですが、ようやくっていう感じですね。本の内容は、初心者向けかもしれません。Web商事という(本当にあるんですか)事例ベースでWebサービスというテクノロジーをわかりやすく説明していると思います。ベンダー動向も書かれていますが、ちょっと中途半端ですかね。ベンダー動向って日々変化するものですから(追いつくのに大変ですが)、逆に無いほうがよかったかもしれません。その分、構築手順を手厚くしてもらいたかったという感じです。しかし、それは第2弾に期待したいと思います。


Webサービス入門―Javaを使って覚える簡単SOAP、WSDL、UDDIプログラミング(Graham Glass,ピアソンエデュケーション)


レビュー数:3
●プログラム事例満載
Webサービス入門は、最初だけ。その後は、付録のCDに入っているJavaサンプルコードを使いながら、step by step で、UDDI/SOAP/XML、Webサービスの実装、http認証などを実際に練習して行っていくことによって、感触が身につく、という仕組み。.NETにも触れています。プログラム好きな方向けの本。面白いのは、最後に「P2PとWebサービスの未来」が掲載されており、P2PとWebサービスの融合や、分散記憶、分散品質という概念、アイデアも述べられています。私にとって、役にたったのは、最後の章だけかな。でも開発に携わると、こういう本のほうが、実際には役に立つのかもしれません。
●Webサービスを学ぶ上での良書
Webサービスという言葉は知っていても、SOAP,WSDL,UDDI…などについては知らない方が意外と多いのではないでしょうか。

この本では、Webサービスの基本をJavaベースで解説してあります。解説も分かりやすいため、Webサービスを全く知らない人でも安心して読むことができるでしょう。

この本を読むことで「Webサービスとは何か?」という事はもちろん、WSDL,UDDI,SOAPの概念、役割、なぜ必要なのか…などといったことも十分に理解できます。

Webサービスに関する解説書は数多く存在していますが、基礎からしっかり解説してあるという点で、この本はお薦めです。

基礎を理解しておけば、他のWebサービス関連の書籍も難なく理解することができるでしょう。

●混沌としたWebサービスを整理して学べる本
混沌としたWebサービスという表現は不適切かもしれませんが、最近の情報化テクノロジーは、OLE、COM、DCOM、SOAP、WSDL,UDDI、.NETなどカタカナ表現ばかりで初心者にはとっつきにくいのではないでしょうか。

本書は、Javaを用いてSOAP、XML,J2EE WEBサービス、.NETサービスなど擬態的なコードを示しながら解説してあります。たとえば、UDDI検索オペレーションの解説がSOAPクライアントとどう組み合わせるかなど感動してしまいました。現代と将来の分散コンピューティングの世界像を知ることができる本です。著者であるGraham Glassとはどんな頭脳の持ち主なのでしょうか。また、すべてのサンプルコードがCDに入っており確認しながら読み進めることができます。



SOAP/UDDI/WSDL Webサービス技術基礎と実践 徹底解説(,技術評論社)


レビュー数:3
●SOAP導入前の検討資料としては良い
SOAPによるWebサービス構築・導入をこれから始めようとする技術者にとって、副題にある、SOAP/UDDI/WSDL といった技術についての簡潔な説明が、適度な量で記述されているのがよく、また、実際の実装方法についても、サンプルを用いて丁寧な説明がされているので、非常に有益だと思う。
ただし、サンプルに多少の誤りがあったので、星4つとしました。
SOAPによるWebサービスについての全体像を把握するにはオススメです。

難点が他にもあるとすれば、若干情報が古いところでしょうが、
それを差し引いても良書だと、私は思います。
●1年後に読み直してみての感想
 本書が発行されてすぐに一度読み、最近、顧客からSOAでシステムを構築してくれないかと言われもう一度読み返しました。
 やはり驚いたのはここ1年のWebサービスの進歩の早さです。J2EEにもWebサービス関連のAPIが組み込まれました。もちろんそのなかにはJAX-RPCやWS-I Basic Profileも含まれています。グリッドコンピューティングの基礎にしても然りです。

 本書は特にSOAという言葉は使用していませんが、SOAとして読み返してもまだ色褪せないものです。RPC指向や文書指向という言葉は1年前読んだときには何の印象も残りませんでしたが、SOAという視点が与えられると、こういう区別もきちんと解説してあり驚きました。本書は基礎がしっかりしており1年経っても十分読む価値のある本です。

 また、UDDIを軽視していましたが、Webサービスの目標とするものに近づくには大切な技術だということにも気づかせてくれました。

 ただし、実践としてのJavaや.NETの例は他の書に任せて基礎に専念するか、もっと量を増やすかすべきではとないかと思います。

●基本を押さえたいときにぴったり
Webサービスの書籍はたくさん出てきましたが、.NETだけ、Javaだけ、概要だけ、開発ツールがきめうちの本といったものが多い気がするなかで、この本は「WEBサービスはいろいろ聞きかじったけど、根底にある基本を押さえたい」という人にぴったりだと思います。

XMLスキーマの説明から、WSDLの読み方まで、Webサービスのための基本技術がしっかりカバーできる気がしました。
すでにWebサービスを知った気になっている人も、復習として読むといい気がしました。

後半の実装の説明はあっさりしているので、別の書籍と組み合わせるとちょうどいいかもしれません。新しい規格(SOAP1.2等)の動向や説明も比較して内容にきちんと入っているので、しばらくは情報が陳腐化しない気がします。!!CD-ROMが付録に入っていないため,価格が押さえてあるのもうれしい。



JavaによるSOAPプログラミングパーフェクトガイド―「つながる」から「使える」Webサービスの第一歩 (Advanced Server‐side Programmingシリーズ)(沖林 正紀,技術評論社)


レビュー数:1
●2005年時点では・・・
本書の初版は2002年。
既に内容は陳腐化しつつあります。
タイトルでは「javaによる・・」とうたってますが、
javaのサンプルソースが少なく、物足りないです。
大幅改訂版を出すべき。


図解標準 最新Webサービス マスタリングハンドブック―XML、SOAP、WSDL、UDDIの基本から開発まで(,秀和システム)


レビュー数:5
●Webサービスをまるかじり♪
世にあまたあるWebサービス本。
ただし、この本はあなどるべからず。

図がいっぱいはいっていて、UDDIとかWS-Securityとかにも
触れられていて非常によい本です。

技術的にもサンプルコード的にも豊富で
Webサービスの技術本としては最高峰にあると思います。

この1冊でまるわかり>Webサービス
そんな本です。
●Linuxにも触れてある
.Netでの開発よりもAxisによるJavaでの開発に重点が置かれていますが、Linuxでの環境構築について書かれている点が助かりました。
環境構築やWebサービスの開発スタイルを学ぶのに最適だと思います。
実際Webサービスを開発することになると、いろいろ問題が出てくるでしょうから他の書籍を参照することも必要になるでしょう。
サブタイトルが「基礎から開発まで」ですから、あくまで開発に入るまでということで、Webサービスとはどういうものかを理解する点でためになる1冊です。
●Webサービスを広く浅く解説されています
SOAP、WSDL、UDDIなど、Webサービスについての必要な知識が一通り盛り込まれています。ただ、内容としては広く浅くといった感じです。
AntやTomcat,Eclipseなどの解説は削って、Webサービスの解説に特化しても良かったのではと思いました。
●読みづらい、サンプルが少ない
サンプルソースが少なくCDがついていない。
サンプルソースをいじることによって対象の技術を覚えよ
うとする人は買うとガッカリします。実際ガッカリしました。

apache axisでsoapの開発するのであれば
www.hellohiro.comや
Javaオープンソース徹底攻略の方がよっぽど参考になると思いました。

●おすすめです
最近会社でWebサービスの仕事をすることになりました。
全く知識がないので、初心者でも分かりやすそうな本を探して
いましたが、この本は、二色刷りで図が豊富で見やすいし
文章も平易で初心者の私にも分かりやすく
大いに活用させてもらっています。
また、Webサービスの本でeclipseに触れている本も
あまりなく助かっています。


Webサービス・アプリケーション開発技法―SOAP/WSDL/ebXML(,ソフトリサーチセンター)

¥ 2,940 通常24時間以内に発送
Amazonポイント:¥ 29

Warning: Invalid argument supplied for foreach() in /virtual/kommy/public_html/inc/func.php on line 75


Webサービス完全ガイド―SOAP,UDDI,ebXML--最新技術を活用するための (日経BPパソコンベストムック)(,日経BP社)


レビュー数:1
●帯に短し襷に長しだが、割り切れば良い本
この本1冊がカバーしている範囲は、技術分野から実例までとかなり広くなっています。それゆえにどこも中途半端な印象も多少受けますが、それはそれと(特に日経BPが出してるムック、程度に)割り切れば、まとまった書籍としては手に入りにくいWebサービスの情報源としての価値は高いと思います。

Webのシステムの動作がそこそこわかってて、WebサービスとかUDDIとかSOAPとか名前を聞いたけど実際どういうものなのか興味あるんだけど、という人が一番最初にざっと読む本としては非常に良い気がします。ただ、事例は中途半端なので、そこに過度な期待をすると裏切られます。この本が悪いのではなくて、実際に出せる事例がまだあんまりないから仕方ないのですが。





■お知らせと連絡先

このウェブサイトで取り上げて欲しい話題や分かりにくい点などありましたら、
以下のメールアドレス宛にメッセージをいただければ、参考にさせていただきます。

メールアドレスは、work_komiあっとまーくyahoo.co.jpです。
(「あっとまーく」は、半角英数のあっとまーくに変換してね。)

また、XBOXをお使いの方は、ゲーマータグ(akbox)にてフレンドリクエストを受け付けています。