Рассмотрел документацию по FastCGI. Можно отметить для себя 4 части
1. Инициализация (сюда вставим подключение к БД).
2. В цикле запуск отдельных обращений, возможно, с последующей обработкой в параллельном режиме; пока не закончилась одна обработка сервер может запустить вторую (сюда будем вставлять обращения к БД с открытием и закрытием транзакции БД)
3. Закрытие (сюда вставим отключение от БД).
4. Переопределение функций консольного вывода stdout.
Велик соблазн модуль по работе с FastCGI оставить на Си и из него вызывать сгенерированную в BlackBox библиотеку libBB.so,
однако в таком случае вопрос усложняется пунктом 4 - LinLibc.putchar надо будет переопределить на вызов функции из библиотеки FastCGI,
поэтому подключение к FastCGI API лучше сделать на BlackBox, чтобы не было "перевернутого программирования" между Си и BlackBox частями.
Получается, что разница между CGI и FastCGI программами - в экономии времени на загрузку/выгрузку и подключение/отключение к базе данных.
Трудозатраты - перенос API FastCGI на BlackBox.
Пока до раскрутки сайта можно сделать всю работу на обычном CGI (с учетом будущей переделки), а когда появится насущная необходимость -
препарировать программу, разделив на указанные части, пересадить на FastCGI.
Кроме того, получается, что не всегда использование FastCGI может дать выигрыш по загрузке процессора и времени.
CGI - зашел, сделал, вышел (много-много раз по-быстрому). Если много пользователей одновременно сидят на сайте, то один и тот же ресурс памяти можно последовательно использовать для разных пользователей с учетом того, что человеку требуется время для изучения ответа сайта.
FastCGI - зашел, ждем, делаем (когда скажут), выгоняют. Если много пользователей одновременно сидят на сайте, под каждого задерживаются ресурсы памяти.
Было бы логичней тогда назвать его не FastCGI, а LongCGI, видимо, название дано из маркетинговых соображений.
Следовательно, в зависимости от логики работы надо сочетать оба метода, находя, какой из них когда выгодней.
Так что еще рано списывать на свалку истории старичок CGI.
Перенесем методы работы с ним из freepascal
http://freepascal.ru/article/raznoe/20060127073733http://sourceforge.net/projects/pascal-webdev/http://wiki.lazarus.freepascal.org/CGI_Web_Programmingили напрямую
http://www.linuxjournal.com/article/6863?page=0,0