Слайд 2первые наработки - 2003 год
нагруженный проект, много запросов, мало памяти, мало CPU
компьютеры

выросли, но выросли и нагрузки; ничего не изменилось
новые требования: модульность, упрощение API, переносимость
Слайд 3Парадигма MVC и CAS
что такое MVC и зачем оно нужно?
наши модификации
достоинства предложенной

схемы
архитектура CAS
Слайд 4Классическая архитектура MVC

Слайд 5Критика
плохо работает под большой нагрузкой
сложность разработки моделей, контроллеров и представлений
ненужный код в

моделях
проблемы с масштабированием
Слайд 7Достоинства
модели – универсальные
формирование ответа – только в представлении
для генерации HTML/JSON/XML кроме шаблона

ничего не требуется
простота внесения правок
высокая скорость работы
Слайд 8Проект CTPP
виртуальная машина
библиотека функций
компилятор
коллектор результатов
кэш байткода

Слайд 9Результаты
CTPP2
HTML::Template::JIT
HTML::Template::Pro
HTML::Template
Template::Toolkit

Слайд 10Архитектура CAS
модульность
изоляция сущностей
простота разработки и сопровождения
расширяемость
универсальность
интегрируемость

Слайд 11Жизненный цикл
загрузка конфигурации
загрузка модулей
создание сервера приложений
обработка запросов
выход

Слайд 12Обработка запроса
контролллер исполняется первым
модели запускаются последовательно
если возникла ошибка – работают финализаторы
представление формирует

данные
Слайд 13От слов – к делу!
необходимый инструментарий
пишем “Hello, World!”
тестируем результаты работы
пример посложнее –

лента новостей
сравним с mod_perl
и с PHP – тоже сравним
Слайд 14Инструменты
компилятор C++
система сборки cmake
сервер приложений C++
10 минут свободного времени

Слайд 18Hello, World!
Проверяем результат

Слайд 22Интеграция
единые шаблоны для всего проекта, независимо от “движка”
простота миграции между технологиями
высокая скорость

прототипирования и разработки
поддержка популярных языков и сред: Perl, PHP, Python
Слайд 23Интерфейсы
Apache 1.3.X
Apache 2.X
FastCGI

Слайд 24Платформы и архитектуры
Linux
FreeBSD
Solaris
i386
amd64
UltraSPARC

Слайд 25Развитие проекта
сервер-сборщик (привет, Mail.ru ;)
несколько разных View: HTML, JSON, XML
отдельные части сервера

– в виде самостоятельных библиотек
модули CAS для работы с разнообразными поставщиками данных