веб-сервисы — пул соединений с базой данных для механизма рекомендаций c ++

Я планирую внедрить механизм рекомендаций для небольшого веб-сайта.
Веб-сайт будет использовать стек LAMP, и по некоторым причинам механизм рекомендаций должен быть написан на C ++. Он состоит из On-line Component и Off-line Component, оба должны подключаться к MySQL. Разница заключается в том, что для компонента On-line потребуется пул соединений, тогда как для автономного компонента будет достаточно нескольких постоянных соединений или даже соединения, как требуется, поскольку для него не требуется производительность в реальном времени в сценарии одновременных запросов, как в On-line компоненте. Линия Компонент.

Онлайн-компонент должен быть упакован как веб-сервис через Apache AXIS2. Приложение внешнего интерфейса PHP на сервере Apache http получает данные рекомендаций из этого модуля веб-службы.

Есть два варианта подключения к БД для On-line Component, о которых я могу подумать:
1. Используйте пул соединений ODBC, я думаю, что unixODBC может быть кандидатом.
2. Используйте API пулов соединений, которые входят в состав HTTP-сервера Apache. mod_dbd будет выбором. http://httpd.apache.org/docs/2.2/mod/mod_dbd.html

Что касается автономного компонента, простой вариант подключения к БД — это прямое подключение через ODBC.

Из-за отсутствия опыта разработки веб-приложений у меня есть следующие вопросы:

Вариант 1 для On-line Component представляет собой тесно связанную конструкцию, не использующую преимущества API пула на HTTP-сервере Apache. Но если я выберу вариант 2 (3-уровневая архитектура) в качестве отдельного компонента помимо HTTP-сервера Apache, как использовать его API пула соединений? Приложение Java может быть развернуто в виде файла WAR и содержится в контейнере сервлетов, таком как tomcat (см. Mahout in Action, раздел 5.5). Существует ли какой-либо аналогичный подход для моего механизма рекомендаций C ++?

Я не уверен, что сделал правильный прототип.
Любые предложения будут оценены 🙂

Спасибо,
Майк

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …