SlideShare una empresa de Scribd logo
1 de 11
mod_perlで簡単Apacheモジュール開発 Takayuki Hirayama 1 Copyright 2009  Fractalist inc. All rights reserved.
mod_perlって何者? よくある誤解 CGIの高速なやつ× Apacheに組み込んだPerlインタープリタ(例:PHP)× ApacheのAPIにPerlでアクセスできるようにし、Apacheのモジュール(プラグイン)を Perlで開発できるようにするもの 2 Copyright 2009  Fractalist inc. All rights reserved.
mod_perlの要素 mod_perlとmod_perl2がある mod_perl : Apache1.3系用 mod_perl2 : Apache2.x系用 Apacheから見たmod_perlハンドラ(mod_perl2) mod_perlハンドラ 完全にApacheモジュールとして開発する パラメータなどは全てAPIを通じて取得する 高速 cgi-scriptハンドラ プログラム側からCGI風にパラメータ取得できる %ENVパラメータにパラメータ格納 printで出力 開発環境ではCGIとして開発できるので開発しやすい ModPerl::Registry レスポンスハンドラでCGIとして書かれたプログラムを動かせる ただしグローバル変数などの挙動に制約あり 3 Copyright 2009  Fractalist inc. All rights reserved.
httpd.conf mod_perlハンドラ LoadModuleperl_module modules/mod_perl.so # MyApp::Apache2::HelloWorldモジュールにハンドラを実装する # /somewhere/perl/lib 以下に.pmファイルを置く PerlSwitches-I/somewhere/perl/lib # 事前ロード PerlModuleMyApp::Apache2::HelloWorld # 特定ロケーションにハンドラを設定 <Location /index> SetHandlermodperl PerlResponseHandlerMyApp::Apache2::HelloWorld </Location> cgi-script ハンドラ + ModPerl::Registry LoadModuleperl_modulemodules/mod_perl.so <Location “/index.cgi”>    # perl-scriptセットハンドラを指定して、    # PerlResponseHandlerにModPer::Registryを指定する SetHandlerperl-script PerlResponseHandlerModPerl::Registry </Location> 4 Copyright 2009  Fractalist inc. All rights reserved.
Apache2のHTTPリクエストライフサイクル デフォルトのハンドラを「上書きする」ハンドラをモジュールとして提供する ※ http://perl.apache.org/docs/2.0/user/handlers/http.html より引用 5 Copyright 2009  Fractalist inc. All rights reserved.
何が作れるの? レスポンスハンドラ(PerlResponseHandler) パラメータに応じたレスポンス (通常のWebアプリケーション) プロトコルハンドラ カスタム認証ハンドラ(PerlAuthzHandler) カスタムログ出力(PerlLogHandler) Input/Output Filterハンドラ 全てのリクエストに対し一定の処理をかける(PerlInputFilterHandler) 全てのレスポンスに対し事後的に一定の処理をかける(PerlOutputFilterHandler) 6 Copyright 2009  Fractalist inc. All rights reserved.
ソースはどんな感じ? #file:/somewhere/perl/lib/MyApp/Apache2/HelloWorld.pm #---------------------- package MyApp::Apache2::HelloWorld; use strict; use warnings; use Apache2::RequestRec (); use Apache2::RequestIO (); # 定数の宣言 use Apache2::Const -compile => qw(OK); # ハンドラメソッドの宣言 # これだけ! sub handler {     my $r = shift; # Apache2::RequestRecObjectが引数に入ってくる     $r->content_type(‘text/plain’); # HTTPヘッダの格納     $r->print( “Hello World!
” ); # 出力結果の格納     return Apache2::Const::OK; } 1; 7 Copyright 2009  Fractalist inc. All rights reserved. クラスメソッドとして定義することもできる 継承などが利用できるので開発効率大 開発用のオートリロードも可能
特徴1:高速+軽快! Apache起動時に実行イメージをロードする PHPでは基本的にインタプリタのみロード 必要最小限のモジュールのみ使用するようにできるので、実行イメージが小さくなる 必ずしも大きなWAFに頼る必要はない Ruby on RailsやCakePHPでは原則オールインワンで利用せざるを得ない ハンドラだけ定義できるので場合によっては限定的な影響範囲にのみ適用できる 8 Copyright 2009  Fractalist inc. All rights reserved.
特徴2:高い開発効率 C言語でなくPerlで記述できる リソースの垣根が低い 枯れた技術/モジュール等資産の再活用 多彩なCPANモジュールを利用できる CGI URI Encode Log::Log4perl HTTP::MobileAgent etc… ミドルウェアとの連携も容易 memcached DBI 9 Copyright 2009  Fractalist inc. All rights reserved.
特徴3:変数ライフサイクル Apache親プロセスと子プロセスでファイルロードタイミングなどを意識できる 10 Copyright 2009  Fractalist inc. All rights reserved. Apache 親プロセス リクエスト Apache 子プロセス fork(2) レスポンス Apache 子プロセス Apache 子プロセス Apache 子プロセス Apache 子プロセス Apacheのpreforkモデルのイメージ
まとめ 利用シチュエーション 広告配信 カスタムログ収集 その他小さいアプリケーションを短期間で開発したい場合 まとめ 11 Copyright 2009  Fractalist inc. All rights reserved. Webアプリケーションの開発要件に応じて 様々な形態から採用検討することが重要

Más contenido relacionado

Destacado

素敵なjavascript ~google chrome編~
素敵なjavascript ~google chrome編~素敵なjavascript ~google chrome編~
素敵なjavascript ~google chrome編~
ngi group.
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
ngi group.
 
muninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリングmuninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリング
ngi group.
 
正規表現のススメ_20091217
正規表現のススメ_20091217正規表現のススメ_20091217
正規表現のススメ_20091217
ngi group.
 
The Royal Lagoon Bhubaneswar
The Royal Lagoon Bhubaneswar The Royal Lagoon Bhubaneswar
The Royal Lagoon Bhubaneswar
SJ Developers And Housing (P) Limited
 
Mixiアプリで体験する Open Social
Mixiアプリで体験する Open SocialMixiアプリで体験する Open Social
Mixiアプリで体験する Open Social
ngi group.
 
Zshって最強らしい
Zshって最強らしいZshって最強らしい
Zshって最強らしい
ngi group.
 

Destacado (17)

素敵なjavascript ~Firefox編 ~
素敵なjavascript ~Firefox編 ~素敵なjavascript ~Firefox編 ~
素敵なjavascript ~Firefox編 ~
 
素敵なjavascript ~google chrome編~
素敵なjavascript ~google chrome編~素敵なjavascript ~google chrome編~
素敵なjavascript ~google chrome編~
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
 
Git紹介~入門編~
Git紹介~入門編~Git紹介~入門編~
Git紹介~入門編~
 
Html5 入門編 その2
Html5 入門編 その2Html5 入門編 その2
Html5 入門編 その2
 
Yii紹介
Yii紹介Yii紹介
Yii紹介
 
muninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリングmuninで簡単&自在サーバーモニタリング
muninで簡単&自在サーバーモニタリング
 
正規表現のススメ_20091217
正規表現のススメ_20091217正規表現のススメ_20091217
正規表現のススメ_20091217
 
The Royal Lagoon Bhubaneswar
The Royal Lagoon Bhubaneswar The Royal Lagoon Bhubaneswar
The Royal Lagoon Bhubaneswar
 
SvnからGitへの移行について
SvnからGitへの移行についてSvnからGitへの移行について
SvnからGitへの移行について
 
軽量高機能webサーバーnginx
軽量高機能webサーバーnginx軽量高機能webサーバーnginx
軽量高機能webサーバーnginx
 
RubyとPost Gis
RubyとPost GisRubyとPost Gis
RubyとPost Gis
 
Tokyo Cabinet
Tokyo CabinetTokyo Cabinet
Tokyo Cabinet
 
Mixiアプリで体験する Open Social
Mixiアプリで体験する Open SocialMixiアプリで体験する Open Social
Mixiアプリで体験する Open Social
 
Zshって最強らしい
Zshって最強らしいZshって最強らしい
Zshって最強らしい
 
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedeeしょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
 

Similar a フラクタリスト技術知識共有会発表資料 090903

【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
devsumi2009
 
20090313 Cakephpstudy
20090313 Cakephpstudy20090313 Cakephpstudy
20090313 Cakephpstudy
Yusuke Ando
 
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
devsumi2009
 
Tcl/Tk+ハッシュリスト
Tcl/Tk+ハッシュリストTcl/Tk+ハッシュリスト
Tcl/Tk+ハッシュリスト
Hiromu Shioya
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
iwata
 
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
terada
 

Similar a フラクタリスト技術知識共有会発表資料 090903 (20)

【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
【13-A-2】 「Delphi for PHP のエバンジェリストが、日本の PHP エバンジェリストと、 PHP と IDE の今と未来を語る」~Em...
 
PHP超入門@LL温泉
PHP超入門@LL温泉PHP超入門@LL温泉
PHP超入門@LL温泉
 
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
 
Gorm @ gopher china
Gorm @ gopher chinaGorm @ gopher china
Gorm @ gopher china
 
20090522 Candycane
20090522 Candycane20090522 Candycane
20090522 Candycane
 
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
 
20090313 Cakephpstudy
20090313 Cakephpstudy20090313 Cakephpstudy
20090313 Cakephpstudy
 
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
 
Tcl/Tk+ハッシュリスト
Tcl/Tk+ハッシュリストTcl/Tk+ハッシュリスト
Tcl/Tk+ハッシュリスト
 
2007 0822 Antelope Php
2007 0822 Antelope Php2007 0822 Antelope Php
2007 0822 Antelope Php
 
Spring Framework勉強会
Spring  Framework勉強会Spring  Framework勉強会
Spring Framework勉強会
 
Web技術勉強会 第19回
Web技術勉強会 第19回Web技術勉強会 第19回
Web技術勉強会 第19回
 
LT openpear@LL温泉
LT openpear@LL温泉LT openpear@LL温泉
LT openpear@LL温泉
 
Development toolsforteamdevelopment
Development toolsforteamdevelopmentDevelopment toolsforteamdevelopment
Development toolsforteamdevelopment
 
Hoppyではじめよう!リアルタイムweb
Hoppyではじめよう!リアルタイムwebHoppyではじめよう!リアルタイムweb
Hoppyではじめよう!リアルタイムweb
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説
 
Revisited
RevisitedRevisited
Revisited
 
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
 
Install Moodle
Install MoodleInstall Moodle
Install Moodle
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

フラクタリスト技術知識共有会発表資料 090903

  • 1. mod_perlで簡単Apacheモジュール開発 Takayuki Hirayama 1 Copyright 2009  Fractalist inc. All rights reserved.
  • 2. mod_perlって何者? よくある誤解 CGIの高速なやつ× Apacheに組み込んだPerlインタープリタ(例:PHP)× ApacheのAPIにPerlでアクセスできるようにし、Apacheのモジュール(プラグイン)を Perlで開発できるようにするもの 2 Copyright 2009  Fractalist inc. All rights reserved.
  • 3. mod_perlの要素 mod_perlとmod_perl2がある mod_perl : Apache1.3系用 mod_perl2 : Apache2.x系用 Apacheから見たmod_perlハンドラ(mod_perl2) mod_perlハンドラ 完全にApacheモジュールとして開発する パラメータなどは全てAPIを通じて取得する 高速 cgi-scriptハンドラ プログラム側からCGI風にパラメータ取得できる %ENVパラメータにパラメータ格納 printで出力 開発環境ではCGIとして開発できるので開発しやすい ModPerl::Registry レスポンスハンドラでCGIとして書かれたプログラムを動かせる ただしグローバル変数などの挙動に制約あり 3 Copyright 2009  Fractalist inc. All rights reserved.
  • 4. httpd.conf mod_perlハンドラ LoadModuleperl_module modules/mod_perl.so # MyApp::Apache2::HelloWorldモジュールにハンドラを実装する # /somewhere/perl/lib 以下に.pmファイルを置く PerlSwitches-I/somewhere/perl/lib # 事前ロード PerlModuleMyApp::Apache2::HelloWorld # 特定ロケーションにハンドラを設定 <Location /index> SetHandlermodperl PerlResponseHandlerMyApp::Apache2::HelloWorld </Location> cgi-script ハンドラ + ModPerl::Registry LoadModuleperl_modulemodules/mod_perl.so <Location “/index.cgi”> # perl-scriptセットハンドラを指定して、 # PerlResponseHandlerにModPer::Registryを指定する SetHandlerperl-script PerlResponseHandlerModPerl::Registry </Location> 4 Copyright 2009  Fractalist inc. All rights reserved.
  • 5. Apache2のHTTPリクエストライフサイクル デフォルトのハンドラを「上書きする」ハンドラをモジュールとして提供する ※ http://perl.apache.org/docs/2.0/user/handlers/http.html より引用 5 Copyright 2009  Fractalist inc. All rights reserved.
  • 6. 何が作れるの? レスポンスハンドラ(PerlResponseHandler) パラメータに応じたレスポンス (通常のWebアプリケーション) プロトコルハンドラ カスタム認証ハンドラ(PerlAuthzHandler) カスタムログ出力(PerlLogHandler) Input/Output Filterハンドラ 全てのリクエストに対し一定の処理をかける(PerlInputFilterHandler) 全てのレスポンスに対し事後的に一定の処理をかける(PerlOutputFilterHandler) 6 Copyright 2009  Fractalist inc. All rights reserved.
  • 7. ソースはどんな感じ? #file:/somewhere/perl/lib/MyApp/Apache2/HelloWorld.pm #---------------------- package MyApp::Apache2::HelloWorld; use strict; use warnings; use Apache2::RequestRec (); use Apache2::RequestIO (); # 定数の宣言 use Apache2::Const -compile => qw(OK); # ハンドラメソッドの宣言 # これだけ! sub handler { my $r = shift; # Apache2::RequestRecObjectが引数に入ってくる $r->content_type(‘text/plain’); # HTTPヘッダの格納 $r->print( “Hello World! ” ); # 出力結果の格納 return Apache2::Const::OK; } 1; 7 Copyright 2009  Fractalist inc. All rights reserved. クラスメソッドとして定義することもできる 継承などが利用できるので開発効率大 開発用のオートリロードも可能
  • 8. 特徴1:高速+軽快! Apache起動時に実行イメージをロードする PHPでは基本的にインタプリタのみロード 必要最小限のモジュールのみ使用するようにできるので、実行イメージが小さくなる 必ずしも大きなWAFに頼る必要はない Ruby on RailsやCakePHPでは原則オールインワンで利用せざるを得ない ハンドラだけ定義できるので場合によっては限定的な影響範囲にのみ適用できる 8 Copyright 2009  Fractalist inc. All rights reserved.
  • 9. 特徴2:高い開発効率 C言語でなくPerlで記述できる リソースの垣根が低い 枯れた技術/モジュール等資産の再活用 多彩なCPANモジュールを利用できる CGI URI Encode Log::Log4perl HTTP::MobileAgent etc… ミドルウェアとの連携も容易 memcached DBI 9 Copyright 2009  Fractalist inc. All rights reserved.
  • 10. 特徴3:変数ライフサイクル Apache親プロセスと子プロセスでファイルロードタイミングなどを意識できる 10 Copyright 2009  Fractalist inc. All rights reserved. Apache 親プロセス リクエスト Apache 子プロセス fork(2) レスポンス Apache 子プロセス Apache 子プロセス Apache 子プロセス Apache 子プロセス Apacheのpreforkモデルのイメージ
  • 11. まとめ 利用シチュエーション 広告配信 カスタムログ収集 その他小さいアプリケーションを短期間で開発したい場合 まとめ 11 Copyright 2009  Fractalist inc. All rights reserved. Webアプリケーションの開発要件に応じて 様々な形態から採用検討することが重要