15

ショートバージョン:

Perl「アプリ サーバー」(mod_perl の代替) の候補を評価するには、どのような基準を使用すればよいですか?

以下のコストをかけずに、さまざまな Perl プログラムを (サービスとして) 繰り返し実行できるフレームワークを探しています。

  1. 実行ごとに1回perlインタープリターを再起動する

  2. 実行ごとに 1 回の Perl モジュールのロード/コンパイル

(どちらも mod_perl を実行することで得られる利点です)

ノート:

  • Apache の深い統合など、mod_perl によってもたらされる追加の利点についてはあまり気にしません。

  • これは純粋なアプリ サーバーになります。つまり、Web 固有の機能は必要ありません (アプリ サーバーが提供する場合は問題ありませんが、必要ないだけです)。

  • もちろん、明白な基準 (生の速度、本番環境に対応した安定性、積極的な開発、関心のある OS で実行できる能力) を考慮します。私が興味を持っているのは、そのようなフレームワーク/サーバーから望むかもしれない、より些細で微妙なことです。

バックグラウンド:

$work では、現在の状況を置き換えたいと判断された権限 (Emperl で開発され、Apache/mod_perl を介してデプロイされた単純な Web アプリケーション)。

View 用の Java Spring フロント エンドを持つ (自家製の) MVC システムを使用することが決定されました。コントローラーは、バックエンド サービス リクエストを、モデルの役割を実行するアプリごとのサービスに解析します (これについての詳細にこだわらないでください。主な質問とはあまり関係ありません)。

バックエンド サービスのオプションの 1 つは Perl です。これにより、既存のすべての Perl IP (ライブラリ、webapp バックエンド コード) を今後も活用でき、その 100% を Java に移植する必要がなくなります。

要約する:

    | View    | Model/app | Model loaded/executed by:                          |
================================================================================
OLD | Empberl | Model.pm | mod_perl has Model.pm loaded, called from view.epl  |
NEW | Java    | Model.pm | perl generic_model.pl -model Model (does "require") |
================================================================================

ここで、しばらく Perl Web 開発を行ったことがある人は、新しい設計の最も明白な問題にすぐに気付くでしょう。

    | Perl interpreter starts  | Perl modules are loaded and compiled |
=======================================================================
OLD | Once per mod_perl thread | Once per mod_perl thread
NEW | Once per EVERY! request  | Once per EVERY! request              |
=======================================================================

つまり、新しいモデルでは、mod_perl が永続的なサーバー側アプリ コンテナーとして提供するパフォーマンス上の利点はなくなりました!!!

したがって、同じ機能を提供する可能性のあるアプリ コンテナーを検討しています。

(余談ですが、実行可能な可能性として、mod_perl を使用して Apache のインスタンスを単純に実行することを考えました。ただし、Web 機能は必要ないため、他のオプションがあるかどうかを確認したいと思います。法案に適合します)。

4

3 に答える 3

1

HTTP::Daemonを使用して単純なデーモンを作成することができ、コードの必要な部分を後で ( require)、またはデーモンが開始する前に事前にコンパイルするというすべての利点があります。

于 2013-06-11T01:34:11.050 に答える