SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

PHP 5でSOAPおよびRPC Webサービスを開発する

PHPでWebサービスを作成および利用する2つの標準的な方法

  • このエントリーをはてなブックマークに追加

 変転の激しいWeb開発の世界の中で、PHPテクノロジはその汎用性と実用性が高く評価されています。本稿では、PHPを使ったWebサービス開発に焦点を当て、各種ツールキットの概要や、PHPアプリケーションでWebサービスを作成するのに最適な方法について説明します。

  • このエントリーをはてなブックマークに追加

はじめに

 変転の激しいWeb開発の世界の中で、PHPテクノロジはその汎用性と実用性が高く評価されています。PHPは、もともとは1995年にRasmus Lerdorfが作成した単純なスクリプト言語です。それが今では、膨大なサードパーティモジュール、拡張APIライブラリ、オブジェクト指向開発のサポート、名前空間、堅牢なデータベースアクセス、およびその他の機能を伴う、本格的なエンタープライズグレードのWebテクノロジプラットフォームへと進化を遂げました。本稿では、PHPを使ったWebサービスの開発に焦点を当てます。利用できる各種ツールキットの概要や、PHPアプリケーションでWebサービスを作成するのに最適な方法について説明します。

PHPの簡単な歴史

 90年代末以降、PHP(ハイパーテキストプロセッサ)は、その単純さとWeb開発向けの仕様で人気を博しました。PHPは現在、2000万を超えるWebサイト(資料:『PHP: PHP Usage Stats』)やWeb製品で使われています。Facebookなどの人気のサイトや、JoomlaやWordpressなどのコンテンツ管理ツールでもPHPが使われています。PHPはフリーソフトウェアで、PHPライセンス(GNUライセンスとは異なる)のもとでリリースされています。

 PHPテクノロジはオープンソース構造のため、多くの新規企業や中小企業がそのWebプレゼンスやオンラインビジネスの構築・維持に使用する各種のオープンソーステクノロジやフリーテクノロジに無理なく適合します。多くのサイトは、LAMPLinuxApacheMySQLPHP)で動作します。これは、OSはLinuxベース、WebサーバはApache、データベースはMySQL、そしてアプリケーションサーバロジックまたはサイトの動的部分はPHPによって処理されることを意味します。この組み合わせは、Webビジネスの開発とホスティングを最小限の直接的なコストで実現できる最高のフリーソースソリューションです。PHPテクノロジはスケーラブルであり、数百万ものトランザクションやリクエストを処理できます。しかし、オープンソースという特性と正式なサポートの欠如から、大企業では依然としてあまり人気がありません。

 PHPは当初の機能から飛躍的に進化し、エディション5では完全なオブジェクト指向言語になっています。PHPは、非常に活発な開発者コミュニティを持つPHPグループによってサポート、管理、およびメンテナンスが行われており、ほとんどのオンラインホスティングプロバイダにとって事実上の標準になっています(以前は大多数のプロバイダがHTMLの動的レンダリングを主にCGIで行っていました)。

 オブジェクト指向であることに加えて、この言語には、ありとあらゆるWeb開発タスクを支援するための多くの関数モジュール、およびライブラリがあらかじめ組み込まれています。PHPは、ビルドインのデータベースサポート、エラー/例外処理、高度な文字列処理ライブラリ、および強力な正規式エンジンを装備しています。ネットワーキングと電子メールサポート、セッション処理、Webサービスツールキットなども、標準機能として装備しています。

Webサービス標準 ― SOAP、XML RPC、およびREST

 Webサービスについて書かれた書籍や記事は数多くあり、私も「Enterprise Java Contract-First vs. Contract-Last Web Services」という記事でこのテクノロジを解説しました。PHPを使ったWebサービスの開発と利用について特に詳しく説明している書籍もいくつかあります。本稿の目的上、Webサービス開発の各種標準についてまず簡単に触れ、その後で、PHPでの実際の実装について詳しく説明します。

 PHP(他の言語でも同様)でのWebサービスの開発には、SOAPXML RPC、およびRESTという主に3つの方法があります。

SOAP(Simple Object Access Protocol)

 SOAP(Simple Object Access Protocol)はw3c標準であり、現代のエンタープライズの世界で人気の高いWebサービス開発方法です。SOAPでは、クライアント-サーバ通信のためのXMLドキュメントとXMLスキーマが規定され、サービスは複雑なXMLドキュメントのマーシャリングおよびアンマーシャリング(通常は、サービスコンシューマ側およびサービスプロバイダ側のネイティブなオブジェクト構造に対して行う)に基づきます。SOAPは最新のWebサービス(WS)方法で、SOAPによる開発では、通常、「コントラクトファースト(Contract First)」方式を前提とします。これは、スキーマと通信用のXMLドキュメントが最初に処理され、ネイティブコードとロジック開発が最後に処理される方式です。

XML RPC

 XML RPCもXMLに基づきますが、SOAPより比較的単純なWebサービスの開発方法です。RPC(Remote Procedure Call)では、特定のメソッドがクライアントからサーバ上で呼び出され、結果は一般に関数の戻り変数です。RPC WSは、通常、Webサービスを従来のアプリケーションにすばやく簡単に追加でき(実行するロジックが既に開発されているため)、コントラクトラスト(Contract Last)サービスを行います。

REST(REpresentational State Transfer)

 Webサービスを開発する3番目の方法はREST(REpresentational State Transfer)です。RESTはSOAPと同様、サーバへのHTTPリクエストと、レスポンスで返されるXMLドキュメントの処理を伴います。ただし、SOAPとは異なり、RESTでのデータの使用方法について、具体的な標準や定義はありません。RESTとRPCは、SOAPに比べると古い方法です。SOAPのサポートはPHPのバージョン5で追加されましたが、RESTとRPCのサポートは、サードパーティのツールキットで以前から存在していました。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
PHP Webサービスの開発

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Vlad Kofman(Vlad Kofman)

ウォールストリート有数の企業でエンタープライズレベルのプロジェクトに携わる。また、米国政府の防衛関連の仕事も手がけている。特に関心を寄せているのは、オブジェクト指向プログラミング方法論、UI、デザインパターン。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4168 2009/08/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング