<< September 2018 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >>
へー、これは興味深い。



関連記事:
セルベッサ by ニュー・トーキョー
http://www.newtokyo.co.jp/cerveza/
ニュー・セルベッサ by オープンソース・ジャパン株式会社
http://www.opensource.co.jp/solution/new_cerveza
PostgreSQL対応の外食産業向けオープンソース受発注システム「ニュー・セルベッサ」が無償公開 by ITProhttp://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20050419/159556/
PEAR

こちらもご利用ください
日本版アマゾン amazon.co.jp 対応 PEAR::Services_Amazon_Jp

お米の国対応だけじゃ・・・ねぇ。

(ノ・・)ン。。。。。。(((●コロコロッ

PEAR::Services_Amazonを使って前回あれこれ遊んでみた。
http://dozo.rgr.jp/log/eid194.html
簡単にアマゾンに検索を掛けられるのでけっこう楽しい。
&いろんなことが出来る。

ただ、日本のアマゾンサイト(amazon.co.jp)を使って検索するには、
ちょっと適応がややこしそう。


一番簡単なソースコードはこんな感じ。
<?
require_once("Services/Amazon.php");

$amazonObj = & new Services_Amazon();
$itemlist = $amazonObj->searchKeyword( "amazon" );

print_r( $itemlist );
?>



これだと、アメリカのamazon.comのリンクとかが張られた結果が返ってきます。
それだと・・・ね・・・。
アフィリエイトもらえないし・・・ね。


ということで拡張したクラスを作ってみた。

↓ ソースコードはこちら
PHPPHP4.3.11, PHP5.0.4リリース
2005.04.01 Friday 18:00
してるみたい。

ChangingLogをヘロヘロ眺めていると気になる文字が

・Added Oracle Instant Client support
えっ?
Oracle Instant Clientを別途入れなくてもいいってこと?



・Changed phpize not to require libtool
ぇっ?
モジュール組み込みが楽になるって事?



・Updated bundled libmbfl library (used for multibyte functions)
ぉぇっ?
ライセンス問題解決?
PEARPEARのServicesシリーズは結構興味深い。

(ノ・・)ン。。。。。。(((●コロコロッ

PEARにはまだbetaだけどServicesシリーズってのがあって、
各種WEBサービスとのやりとりを簡単に作成できる。
種類はこんな感じ
Services_Amazon Provides access to Amazon.com's retail and associate web services
Services_Delicious Client for the del.icio.us web service.
Services_Ebay Interface to eBay's XML-API.
Services_ExchangeRates Performs currency conversion
Services_Google Provides access to the Google Web APIs
Services_Trackback Trackback - A generic class for sending and receiving trackbacks.
Services_Weather This class acts as an interface to various online weather-services.
もちろん基本はお米の国サイトなんだけど、
日本語サイトがあれば置き換えることは可能。

今回はAmazon検索についてあれこれ調べているので、
PEAR::Services_Amazonを使って遊んでみることに。
専用サイトもどうぞ

ご利用は計画的に!!

(ノ・・)ン。。。。。。(((●コロコロッ


これはいいね。
使いやすい。
っていうかもっと早く使えば良かった。
(T_T)


キャッシュとは取得したデータなどを一時的に近くの場所に保存しておき、
それを再利用することでデータを取りに行く時間を短縮する技術。
これを自前で創るのは結構面倒なことが多いんだけど、
PEAR::Cache_Lite
http://pear.php.net/package/Cache_Lite
を使えばさくっとやってくれる。


使用できるパラメータは

'cacheDir' => '/tmp/',
'caching' => true,
'lifeTime' => 3600,
'fileLocking' => true,
'writeControl' => true,
'readControl' => true,
'readControlType' => 'crc32', // crc32, md5, strlen
'pearErrorMode' => CACHE_LITE_ERROR_RETURN,
'memoryCaching' => false,
'onlyMemoryCaching' => false,
'memoryCachingLimit' => 1000,
'fileNameProtection' => true,
'automaticSerialization' => true,
'automaticCleaningFactor' => 1,
'hashedDirectoryLevel' => 1,
な感じ。

バイナリファイルのキャッシング。
キャッシュデータの階層保存。
ガーベージコレクション。
ファイルのロック。
などなどキャッシュ処理を自前で創ったときに頭を抱えたくなる内容が、
パラメータをペチペチいじるだけでOK.


なかには危険なにおいが漂ってくる様なものまである。
長期運用を考えるなら安全確実なものを選ばないと。
情報に大変疎い私にもAJAXという言葉が。。。
XMLHttpRequest?Microsoft.XMLHTTP?Msxml2.XMLHTTP?

(ノ・・)ン。。。。。。(((●コロコロッ

JavaScript。
Javaの言語仕様を真似たブラウザ上で動作するスクリプト言語。
決してJavaのScriptではない。


最近JavaScriptが注目されているらしい。

(@_@) エッ!?

なんでいまさらJavaScript?
私はJavaScriptは結構好きで、
ガリガリ書いてブラウザでポチポチ楽しんだ物だが、
最近、Webアプリを創るときはJavaScriptを使わないようとよく言われる。

(・-・) ウーン

楽で良いのに。




ところがまたJavaScriptが復活!!
きっかけは〜ぁ〜ぁ〜google!!
googleが何かをやると世間が注目するんだなぁ。
と半ば呆れてしまうが。


gmailはJavaScriptをガリガリ使っている。
通常のWebメールは「重い」のが基本なのだが、
gmailはそれをJavaScript+XML通信を使うことで回避したようだ。

(・υ・)``ホォー


その辺の技術をまとめてAJAXと呼ぶそうだ。
AJAXとは「Asynchronous JAvascript + Xml」の略
JavaScriptから通信を行い、
XMLデータを取得、
XSLTと組み合わせてウマーって感じ。


こういうベースシステムがでてくると、
「フレームワークを創ろう」という考えを持つ輩はいるわけで、
ちょっと調べてみることに。



[AJAX]でググると一位は「サッカーの倶楽部チーム」
...orz

[AJAX php]でググる
[SAJAX - Simple Ajax Toolkit by ModernMethod - XMLHTTPRequest Toolkit for PHP]
が引っかかった。
早速視てみよう。
 


(^_^)3 フムフム。

対応言語PHPだけじゃないみたい
・PHP
・Perl
・Ruby
・Lua
・Io
Lua?Io?・・・知らない。。。



果てさて中身は?
 
なにやらChangingLogの内容が多い。

(ノ・・)ン。。。。。。(((●コロコロッ

PEAR::Authの紹介を以前やったが、
これはもう少し踏み込んだもの。
PEAR::Authはユーザー認証の部分だけだが、
PEAR::LiveUserはユーザー権限の部分までパッケージ化されている。


次のプロジェクトで導入を検討しているが、
周りの人曰く





微妙




だそうだ。

私はあまり後ろ向きな意見は採り入れないことにしているが、
じっくりと調査してから導入するかどうか決めようと思ってまふ。



そのPEAR::LiveUserが大幅にパワーアップ?。。。仕様変更?
したみたい。

出だしから


Important




なにやら怪しげな香りがぷんぷんするぞ。


Important:
We are migrading away from .sql dumps which were MySQL specific towards the
MDB2 xml schema format. Therefore we have removed the .sql files from the sql
directory in favor if xml schema files and a installer class defined in install.php.
PHPのsessionって皆さんどうされてるんです?

(ノ・・)ン。。。。。。(((●コロコロッ

負荷分散のためにWebサーバを複数用意することはよくあるけど、
その都度セッション管理どうするか悩んでしまう。

ある時はNFSで、
ある時はデータベースで、
ある時はHTTPで!?

NFSだとガーベージコレクション(Garbage Collection、ガッベージコレクション、ガベージコレクション、ガベコレ、不要ファイルの削除作業)をどうするか別途考えなければならない。
DBだとコネクション数を常に気にしなければならない。
HTTPでは。。。重い?


実際携わっているプロジェクトでは
session_pgsql(Postgresqlセッション保存ハンドラ、PostgreSQL Session Save Handler)を使ってセッション管理をしていた。
だけど、普通のセッション管理と同じようにセッションファイルを作成しているのと、
メインのデータベースとコネクションの取り合いになっていて同時アクセス数が半分になってしまっていた。
さらにPostgreSQL特有の[VACUUM][VACUUM FULL]。
セッション管理みたいなinsert,updateを繰り返すものだと、
[VACUUM]はしょっちゅう打たないといけない。
メンテナンス性の悪いDBは本当に使えない。
他に良い物はないか。
(・−・) ウーン



そういうことで専用サーバを設計しようという人はやっぱりいるわけで、
そのうちの一つがMsession(Mohawk Session Manager)だ。
http://www.mohawksoft.com/

msessionでググって見ると情報は全くない。
調べても調べてもPHPのマニュアルしか出てこない。
なんだこりゃ?
導入実績もわからないし不安でいっぱい。
でもPHP4.2.xのころから対応しているので、
使ってみる価値はあるに違いない。




調べてみるとなかなか面白い。
サーバー側にはデーモンが5つほど常駐、
特別なポート番号でクライアントとやりとりをするみたい。
データはひとつのファイルにシリアル化された物が格納されている。
ガーベージコレクションも勝手にやってくれるみたい。

クライアント側にはPHPに専用モジュールを組み込む。
[configure]で[--with-msession]を追加。
デフォルトのヤツだとうまく動かないので、
公式サイトからPHPのパッチをダウンロードして組み込むことに。
phpinfoには[msession]っていうのが増えていた。
ハンドラの設定は
session.save_handler = msession
session.save_path = msession.saver.com
こんな感じ。







まぁまぁ動いている模様。
特別止まったりすることがなければ継続運用もいいかも。

同時アクセス数150でも十分耐えられる感じだった。
(同時150アクセスってのは通常じゃあり得ない数値)
サーバ負荷も全くなく、
専用サーバでなく、兼用でも良いぐらいだった。
(アイドル99%を切ることはなかった。)
PECLPEAR::DBの最終形態

(ノ・・)ン。。。。。。(((●コロコロッ

PHPにはデータベース操作関数がたくさん用意されているのだが、
その関数をソースコードにガンガン記述することはほとんどやらない。
大概、自前でデータベース操作用のクラスを作成して、
それを使い回したりする。

その役割を担っているのがPEAR::DBでもあるのだが、
PEAR::DBには欠点がある。



重い




ZendOptimizerionCube PHP Acceleratorなどのキャッシュシステムを使えば
ほとんどの場合はカバーできる物の、
DB操作関数を直接利用した場合と比べると速度的に見劣りがしてしまう。

そのPEAR::DBをPECLプロジェクトでやろうというのが、
PECL::PDO(The PHP Data Objects)
http://pecl.php.net/package/PDO/
http://jp.php.net/pdo
だ。


これは「関数」ではなく「クラス」。
利用するとオブジェクトが返ってくるという
PHPエンジニアさんには違和感を感じる仕様ではあるが、
C言語のクラス群なので動作速度はピカイチ!!
しかも同じ使い方で複数のデータベースを取り合え使えるというPEAR::DBの要素はきちっと引き継いでいる。
対応データベース(ドライバ)は以下の通り
PDO_FIREBIRD Firebird/InterBase 6 driver for PDO
 http://pecl.php.net/package/PDO_FIREBIRD
PDO_MYSQL Mysql 3.x/4.0 driver for PDO
 http://pecl.php.net/package/PDO_MYSQL
PDO_OCI Oracle Call Interface driver for PDO
 http://pecl.php.net/package/PDO_OCI
PDO_ODBC ODBC v3 Interface driver for PDO
 http://pecl.php.net/package/PDO_ODBC
PDO_PGSQL PostgreSQL driver for PDO
 http://pecl.php.net/package/PDO_PGSQL
PDO_SQLITE SQLite v3 Interface driver for PDO
 http://pecl.php.net/package/PDO_SQLITE
PHP(PECL)PECLプロジェクト
2005.02.26 Saturday 00:00
PECLPEARより速度は上です。

(ノ・・)ン。。。。。。(((●コロコロッ

PHPには標準でたくさんの関数を持っているが、
それでも足りない機能がたくさんある。
その不足をPHPソースコードでカバーしようと言う試みがPEARなら、
もっと低レベルでカバーしようと言う試みがPECLです。

PECLとは平たく言うと
PHPに新たな関数を自前で創ってしまおうプロジェクト」
ほとんどがβバージョンな上、
インストールが困難な場合があり、
PHPのバージョンに依存してしまう欠点もあるのだが、
インストールしてしまえばかなり使える。

代表的なのが
PECL::imagick
http://pecl.php.net/package/imagick
ImageMagickGraphicsMagickを取り扱う強力な関数。
execよりも安定して動くし、
動作も段違いなので、
使っているのならこちらを導入を検討すると良い。
BlogRanking
オススメしたいグッズ
我の創りし物
カテゴリアーカイブ
banners
loglog
banners
Valid XHTML 1.1!
記事一覧
月別アーカイブ
最近のコメント
  • PEAR::HTML_Template_Flexy(HTML Template Flexy)
    hielebicE (06/25)
  • ping server(pingサーバ)テスト
    dozo (01/13)
  • ping server(pingサーバ)テスト
    hiro (01/13)
  • SOLG撃墜
    DiR (06/03)
  • 鴨シャブシャブでよろしく - 鴨ラーメン 竹亭(ちくてい)
    dozo (04/16)
  • メタルマックス続編 キターー!!!「METAL SAGA(メタルサーガ)〜砂塵の鎖〜」
    dozo (04/15)
  • メタルマックス続編 キターー!!!「METAL SAGA(メタルサーガ)〜砂塵の鎖〜」
    7 (04/14)
  • 鴨シャブシャブでよろしく - 鴨ラーメン 竹亭(ちくてい)
    kou (04/13)
  • 深夜対応終了
    dozo (04/09)
  • 深夜対応終了
    BARISTA (04/09)
最近のトラックバック
リンク
リンク
関連用語
Powered by