CAS: сервер приложений на C++ для веб-приложений

Попытки создания удобных и одновременно высокопроизводительных веб-
инструментариев регулярно предпринимаются еще со времен использования первых CGI-
сценариев. К сожалению, из-за высокой сложности разработки подобных систем лишь не-
многие их них доводятся до состояния, пригодного для коммерческого использования.
Прототип CAS был разработан в ноябре 2003 года в компании “НетБридж Сервисез”
(Mail.ru). Представлял он собой монолитное приложение, для каждой модификации тре-
бующее перекомпиляции кода проекта. Тем не менее, в нем уже присутствовали все ос-
новные компоненты современного сервера приложений: класс представления (библиотека
CTPP версий 1.X), классы моделей, реализующие конкретный интерфейс, наследованный
от абстрактного класса и контроллер в виде массива объектов, содержащих имя обрабаты-
ваемого URL и набора исполняемых объектов-моделей.
Очевидные недостатки подобной схемы, а именно: требование пересборки всего проекта
при изменении любого класса модели, негибкая организация объекта контроллера и един-
ственный возможный шаблонизатор продиктовали необходимость разработки новой со-
временной удобной версии.
Дальнейшее развитие этой системы привело к созданию сервера приложений C++ (C++
Application Server, CAS) – инструментария, лишенного недостатков предыдущей версии,
обладающего широкими возможностями конфигурирования и расширения функционала
и в то же время способного обрабатывать сотни и тысячи запросов в секунду.
Сейчас CAS – полноценный сервер приложений, имеющий в своей основе архитектуру
MVC и поддерживающий ее дополнительные расширения. При проектировании и разра-
ботке этого продукта особое внимание уделялось удобству работы программистов с его
API, простоте администрирования и эксплуатации.
Сервер приложений имеет интерфейсы для работы с Apache 1.3, Apache 2.X и FastCGI.
Поддерживаются платформы: FreeBSD (i386, amd64), Linux 2.6 (i386, amd64), Solaris
(i386, amd64, sparc, ultrasparc).
Конфигурация CAS хранится в виде XML и допускает возможность задать большинство
параметров “по умолчанию”, а наиболее часто используемые секции конфигурации выне-
сти в отдельные файлы. Выбор XML как языка описания конфигурации позволяет пользо-
ваться стандартными утилитами для проверки их синтаксиса и редактирования.
Классы моделей-обработчиков и других функциональных объектов можно загружать как
виде отдельных модулей, так и как монолитные библиотеки. В случае необходимости воз-
можна разработка собственных вариантов классов контроллера и представления. Таким
образом, функциональность CAS можно изменять практически произвольно.
В этом докладе мы расскажем как использовать сервер приложений для разработки слож-
ных высоконагруженных вебпроектов на языке С++
Авторы: Андрей Шетухин, Илья Космодемьянский

Описание: https://docs.google.com/leaf?id=1tOGIKeIPoN_tUvF7-pocH1OLu_2tSNrrhioxFyktfnxkxbv3pu8UghFaGt_2&hl=en

Видео: http://devpoint.ru/video/f/Konferenciya_DevPoin/20706_Sovremennye_resheniya_dlya_postroeniya_vysokoproizvoditelnyh_veb-sistem_Doklad_Andreya_Shetuhina.html

Офсайт: http://cas.havoc.ru/

Leave a Comment