もう開発中ではありませんが、私はJAGIServerを広範囲に使用しており、非常に優れていて使いやすいです。単純な AGI の代わりに使用することをお勧めする、FastAGI 用のインターフェイスです。
このフレームワークの新しいバージョンはOrderlyCallsで、これにはさらに多くの機能があるようですが、私はそれらを必要としなかったので試していません。
それはすべて、AGI で何をしたいかによると思います。通常、すべてのユーザー入力を収集して検証し、AGI を使用して Java アプリケーションに接続するためのやや複雑なダイヤルプランがあります。このアプリケーションは、いくつかの変数を読み取り、それを使用していくつかの処理 (操作、クエリなどの実行) を実行し、さらに設定を行います。 AGI チャネルの変数と切断。この時点で、ダイヤルプランは、Java アプリによって設定された変数の結果に応じて続行されます。
Java アプリに ServerSocket があり、AGI からの着信接続を受信し、新しいソケットと JAGIProcessor の新しいインスタンスを使用して JAGIClient を作成するため、これは非常に高速に動作します (これは作成する必要があります。これは、すべての処理を行うオブジェクトです)。処理)、スレッド プール内で JAGIClient を実行します。JAGIProcessor は processCall メソッドを実装し、パラメーターとして渡された JAGIClient と対話して、変数の読み取りと設定、または AGI インターフェイスで許可されていることを実行するために、必要なすべての作業を行います。
したがって、常に実行されている Java アプリがあり、それが単純な J2SE アプリであってもコンテナー上の EE アプリであっても問題ありません。実行すると、新しいプロセスを開始する必要がないため、AGI 要求を非常に高速に処理します (AGI 呼び出しごとにプログラムを実行する単純な AGI とは対照的です)。