 |
|
1 2 次のページ
|
 |
イントロダクション
|
ローカルのみでオペレーションを実行できない場合、または実行したくない場合にリモートプログラムを作成します。著者たちは、通常、PHPアプリケーションでこれを構築しています。
例えば、最新のロサンゼルスの天候を知りたいとします。このためには、ロサンゼルスの地方測候所のWebサイトに接続して、ローカルデータベースから、この情報を検索する必要があります。
Webアプリケーションでは、ユーザを見ているサイトから動かさずに、他のサイトのローカルデータベース情報を検索させる必要がある場合もあります。例えば、著者たちのPHPアプリケーションでは、Google APIにクエリを送信し、レスポンスを取得します。
例えば、オンラインショッピングサイトで商品を販売する際、決済方法として、オンライン決済サービスの1つであるPayPalを利用したいと考えたとしましょう。そのためには、あなたのショッピングサイトとPayPalサーバ間で、安全な通信経路を設定する必要があります。
他にも、データベースに保存された、ユーザ名、メールアドレス、電話番号などの登録情報を、特定の管理者が自由に2次利用できるようにしたいと思うかもしれません。
Webサービスとは、ネットワーク上で、マシンとマシンをつなぐソフトウェアシステムのことです。この場合の「サービス」とは、プログラム処理のことをあらわします。
Webサービスを提供するためには、リモートアプリケーションと何らかの通信を行うことが必要となります。
- クライアントアプリケーション:様々な言語(例えば、C/Java/Python、そしてもちろんPHP)によって構築され、様々なOS上で動作します。
-
- リモートアプリケーション:著者たちが通信したい対象です。
- リモートインターフェース:しばしばWSDL(Web Service Description Language)によって記述されます。
- プロトコル:通常はTCP/IP。HTTPとHTTPSで使われています。
- 送信または受信するドキュメント:一般的にSOAP(Simple Object Access Protocol)やXML-RPC(XML Remote Procedure Call)のようなXMLのサブセットでコード化されたものが使われます。
表1:補足
|
DBからデータ取得するアプリケーション例
|
図1は、リモートAPIに接続し、データベースからデータを取得するアプリケーションの例です。プログラムとユーザ(少なくともWebブラウザ)間の通信は、HTMLでコード化されています。

図1:DBからデータ取得するアプリケーション例 (画像をクリックすると別ウィンドウに拡大図を表示します)
2台のマシン間の通信はSOAPによって行われます。この記事では、最初にWebサービスについて簡単に紹介します。今回の記事の目的は、Webサービスの仕組みを理解し、Webサービスで何を実現することができるのか検討することです。HTTPを利用したSOAPベースのWebサービスは最も一般的で、簡単に使用することができますので、これについて特に詳しく紹介します。
次に、クライアントサーバシステムから構成され、単純なオペレーション(今回の場合、リモートのMySQLデータベースからデータを検索します)を行なうサンプルアプリケーションを見ていきます。このサンプルでは、NuSOAP(あらかじめ定められたPHPライブラリ)を利用しRPCを行ないます。
実際にサンプルを見ていく前に、最初にSOAPとWSDLの基本を簡単に説明します。この記事は、Web サービスの導入記事と考えてください。実際のWebサービスは、もっと複雑で豊富な機能を揃えています。もっと詳しく内容を知りたい場合は、本文中でも数回引用している、近日出版される『php|architecherNanobook"Practical Web Services”』を参照してください。
|
1 2 次のページ
|
書籍紹介
PHPプログラマーズマガジン
PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP: Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。
発行:アシアル株式会社 価格:1,029円
ご購入はこちら http://www.asial.co.jp/magazine/
|
|
|

|
著者プロフィール
Alessandro Sfondrini
イタリアのコモ出身の若いプログラマであり、PHPとC言語に関連したWebサービスに興味をもっています。また、近日出版される『php|a Nanobook"Practical Web Services"』の著者です。
|
|
|
|