TOP業務システム> さくらITクラブポイント(ポイントシステム)の追加
PHP事例
実例から学ぶPHP活用術

第1回:高速バス座席予約システム

著者:ゼンド・ジャパン  佐藤 栄一   2007/5/25
前のページ  1  2  3
さくらITクラブポイント(ポイントシステム)の追加

   さらに利用者の利便性を考えて、利用に応じたポイントの付与と予約時のポイント使用を可能にしています。これによって、利用頻度の多い利用者ほど、メリットを享受できるようになりました。

   先ほど解説した座席予約システムによって顧客情報のシステム化ができ、ポイントシステムの導入が可能となったのです。

PHPによるメリット

   今回紹介したもの以外にも様々な機能追加を実施しており、座席予約システムは運用開始当初よりも大幅に機能アップしています。

   PHPによるWebシステムでは、より柔軟に今回紹介したような機能追加を実施できるので、小回りの効いたシステム改善が行える点が大きなメリットといえるでしょう。


深夜の座席予約が可能に

   座席予約システムは、1日に何回かアクセスが集中する時間帯があります。それは企業の始業および終業時間、昼休みの時間帯など、容易に予測可能なケースです。

   また、深夜0時前後にもアクセスが集中します。これは帰宅後の時間帯で、自宅から予約や検索をしているためです。特に年末年始などは予約が殺到するので、キャンセルによる空席の有無を確認するため通常よりも大幅にアクセス数が増加します。

   これまで人手では対応が難しかった深夜の時間帯においてもシステム化することで、利用者はインターネットさえあれば高速バスの座席予約が行えるようになりました。


Zend PlatformよるPHP環境の補強および拡張

   座席予約システムが稼動しているサーバには、PHP環境の補強および拡張のためにZend Platformが導入されています。Zend Platformは、表2のような機能を持っています。このうち座席予約システムでは、パフォーマンスツールとPHPインテリジェンスを重点的に利用しています。

機能名 機能概要
スクリプトキャッシング 実行時にPHPコードから翻訳した中間コードをメモリまたはディスクに保持することによって、毎回実施される翻訳処理を省略します。
コンテンツキャッシング Webページの表示結果をディスクに保持することによって、2回目以降のPHPコードの実行を省略します。
データ圧縮 リクエスト元のWebブラウザがHTTP1.1に対応していれば、自動的に圧縮して送信します。
ダウンロードサーバ Webサーバからのファイルダウンロード処理をZend Platformが肩代わりすることによって、2倍のダウンロードセッションに対応します。
PHPインテリジェンス PHP実行時の様々な事象に対するしきい値を設定し、異常がある場合には詳細なレポートを出力します。PHPサーバの異常挙動をいち早く検出できます。
セッションクラスタリング アクセス元を特定するためSession情報を複数のサーバで共有することが可能です。PHPコードの変更無しに複数サーバ間でセッション情報が共有できます。
Javaブリッジ PHPコードからJavaを呼び出すことが可能ですが、呼出し毎にJava VM(インスタンス)が起動する為、多大なシステム資源を消費してしまいます。Javaブリッジでは、1つのJava VM(インスタンス)でJavaプログラムを実行します。これによって、際限ないシステム資源を大量の浪費を抑えます。
BIRTレポート
*Zend Platform Ver3.0より
Eclipse BIRT(Business Intelligence Reporting and Tools)とは、レポーティング機能を実装するためのEclipse Foundationのプロジェクトです。デザインツールで作成した帳票レイアウトを使用して、帳票(PDFやHTML)の出力が可能です。
ジョブキュー
*Zend Platform Ver3.0より
PHPコードをジョブとして、実行タイミングをスケジューリングして実行するための機能を提供します。PHPコードを非同期で実行できます。

表2:Zend Platformの搭載機能


PHPコードの高速化(パフォーマンスツールの使用)

   座席予約システムでは、Zend Platformのパフォーマンスツール機能を使用して高速化をはかっています。高速化の度合いは、平均1.36倍(最大4.86倍)の高速化を達成しており、座席予約システムのレスポンス向上に貢献しています。


チューニングと障害切り分け(PHPインテリジェンスの使用)

   Zend PlatformのPHPインテリジェンスのレポート機能を、高速化チューニングやトラブル発生時の切り分けに使用しています。日常は、PHPの実行時間の監視に使用しており、大幅な実行時間の遅延が発生する場合には、レポートの内容を確認してPHPコードのチューニングを実施します。

   何らかのシステム障害が発生した場合、PHPインテリジェンスのレポートが原因究明に役立ちます。図8はPHPインテリジェンスがデータベースへの接続エラーを検出した際のレポートです。

PHPインテリジェンスによるイベントレポート(データベースへの接続エラー:再現イメージ)
図8:PHPインテリジェンスによるイベントレポート
(データベースへの接続エラー:再現イメージ)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   このケースでは、MySQLデータベースで問題が発生していることをあらわしており、MySQLデータベースの復旧作業を実施して解決しました。


まとめ

   座席予約システムは、現在も機能追加による拡張を継続しており、利用者への利便性向上や新しいサービスのリリースを行っています。PHPの高速性、柔軟な開発スタイル、高い開発効率、さらにZend Productsによる拡張性が支えていることはいうまでもありません。

■企業情報
会社名:株式会社さくら観光
設立:昭和61年5月
資本金:1,100万円
認可番号:福島県知事登録国内旅行業第2−153号
Webサイト:
http://www.489.fm/

■事業内容
福島県知事登録国内旅行業(国内旅行主催)
国外旅行取扱
海外旅行手配

前のページ  1  2  3


ゼンド・ジャパン株式会社 取締役 佐藤 栄一
著者プロフィール
ゼンド・ジャパン株式会社  取締役  佐藤 栄一
ZendプロダクトおよびMySQLプロダクトを担当。ゼンド・ジャパン株式会社は、PHPのコア技術者が設立したイスラエルZend Technologiesと提携関係にあり、Zendプロダクトの国内総代理店です。ZendプロダクトをベースとしたXAMPによるシステム構築を推進しています。


INDEX
第1回:高速バス座席予約システム
  PHPの活用事例を紹介
  座席予約システムの画面紹介
さくらITクラブポイント(ポイントシステム)の追加