リード開発メモ

大阪のソフトウェア会社です。 技術的な事柄についてのメモとしてブログを始めます。

2013年01月

PHP 条件を指定してオブジェクトをソートする

条件を指定してオブジェクトをソートするには以下のようにする。


楽天Webサービスからのレスポンスが空になる

以下のようにして楽天Webサービスにリクエストを送ったらエラーになった。
どうやらレスポンス内にコロンが含まれているかららしく、file_get_contents を使えという。
しかしこれでもうまくいかない。file_get_contents が空文字を返すのだ。

そこで curl を使ってみたところうまくいった。
楽天Webサービスは https なのだが、CURLOPT_SSLVERSION を指定しないといけないようだ。

SOAP と REST の違い

Webサービスについて調べているのだが、SOAP と REST の違いについて以下が分かりやすかったので引用させていだく。

http://d.hatena.ne.jp/hikm/20070228/1172684400


●XML-RPC(XML Remote Procedure Call)
1998年に策定された、比較的シンプルな仕様。
XMLを利用してネットワーク越しにサーバー側のなんらかの処理を呼び出し、結果をXMLで受け取る。
クライアントからサーバーへのアクセスには、HTTPのPOSTを用いる。
リクエストはHeaderと、Bodyで構成される。Body部分はXMLで表現する。
Header部分の、「User-Agent」、「Host」、「Content-Type」、「Content-Length」は必須。
戻り値は複数の値をとれないが、戻り値を配列にすることで複数の値を返せる。

●SOAP(Simple Object Access Protocol)
XML-RPCを拡張した仕様。
SOAPはHTTPだけでなく、他のプロトコルも使うことが出来る。
リクエストはXML-RPCと同様にHeaerと、Bodyで構成されるが、Headerは省略可能。
戻り値を複数の値にすることが可能。

●REST(Representational State Transfer)
RESTは仕様ではなく、WebAPIの仕様を決める上での基本的な考え方(アーキテクチャスタイル)を表す。
リソース(名詞)に対して、メソッド(動詞)を適用するという考え。
Webにおいては、HTTPの4つのメソッドGET、POST、PUT、DELETEによりリソースに対して何を行うか伝える。
Blogの場合で考えると、GETで記事表示、POSTで新規投稿、PUTで記事更新、DELETEで記事削除。
AmazonECSのRESTに基づく通信では、パラメータをURLに含めてGETメソッドを用いることにより、サーバーからXMLデータを取得する。


最近は REST が主流なようだが、何よりも WEB ブラウザに URL を入力するだけで結果を確認できる簡単さがいい。

Apache パフォーマンスを調べる

Apache 付属の ApacheBench でパフォーマンスを調べることができる。

ab -n 100 -c 10 http://xxxx.com/

これで、同時接続数を「10」で、計「100」リクエストを発行する。

結果で注目すべきは以下の項目。

・Failed requests
失敗したリクエスト数。この数値は、負荷試験にて処理できなかったリクエスト数が表示される

・Requests per second
1秒間あたりで処理されたリクエスト数

・Transfer rate
1秒間あたりで転送された容量

PHP 5.4 でAPC が効かない

PHP のキャッシュを利かすため、APC を使おうとしたが、どうやってもうまく動かない。
今のところ失敗している。
APC は3.1.10でPHP 5.4.xをサポートしたとのことなので、組み合わせは問題ないと思う。

手順は以下のとおり。

http://downloads.php.net/pierre/ から php_apc-3.1.10-5.3-vc9-x86.zip をダウンロード。
php_apc.dllを、php/extフォルダにコピーする。

php.iniを開いて
extension=php_apc.dll
と書き、Apache を再起動。

すると、PHP のワーニングのメッセージボックスが2回表示される。
コマンドラインから php -v としても php_apc.dll に依存関係のある dll が見つからないというエラーになる。

ひょっとしたら自分でビルドしたのを使えばうまくいくのか。。。
また時間があるときにリベンジしてみよう。

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

livedoor 天気