1 / 26

Сервер приложений С++

Сервер приложений С++. Андрей Шетухин, Илья Космодемьянский SUP Fabrik. первые наработки - 2003 год нагруженный проект, много запросов, мало памяти, мало CPU компьютеры выросли, но выросли и нагрузки ; ничего не изменилось новые требования : модульность, упрощение API , переносимость.

mateja
Download Presentation

Сервер приложений С++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Сервер приложений С++ Андрей Шетухин, Илья Космодемьянский SUP Fabrik

  2. первые наработки - 2003 год • нагруженный проект, много запросов, мало памяти, мало CPU • компьютеры выросли, но выросли и нагрузки; ничего не изменилось • новые требования: модульность, упрощение API, переносимость

  3. Парадигма MVC и CAS • что такое MVC и зачем оно нужно? • наши модификации • достоинства предложенной схемы • архитектура CAS

  4. Классическая архитектура MVC

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

  6. Модификация MVC

  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 минут свободного времени

  15. Hello, World! • Создаем модуль

  16. Hello, World! • Пишем код

  17. Hello, World! • Создаем шаблон

  18. Hello, World! • Проверяем результат

  19. Тоже самое – на mod_perl

  20. И на PHP

  21. Пример посложнее • Лента новостей

  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 для работы с разнообразными поставщиками данных

  26. Вопросы?

More Related