Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемcas.havoc.ru
1 Сервер приложений С++ Андрей Шетухин, Илья Космодемьянский SUP Fabrik
2 первые наработки год нагруженный проект, много запросов, мало памяти, мало 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! Создаем модуль cas-xt -t handler -g -n Hello Using templates from directory "/usr/share/cas/xt" Output directory is "." Creating [DIR] Hello Creating [DIR] Hello/include Creating [DIR] Hello/src Creating [FILE] Hello/src/Hello.cpp Creating [FILE] Hello/CMakeLists.txt
16 Hello, World! Пишем код INT_32 Hello::Handler(CTPP::CDT & oData, ASRequest & oRequest, ASResponse & oResponse, ASLogger & oLogger) { // Put your code here oData["hello"] = "Hello, World!"; // 200 OK oResponse.SetHTTPCode(200); // Header oResponse.SetHeader("X-Module", "Hello"); return HANDLER_OK; }
17 Hello, World! Создаем шаблон My first example
18 Hello, World! Проверяем результат lynx -source My first example Hello, World!
19 Тоже самое – на mod_perl package CAS::Hello; use strict; use Apache::Constants qw(:common); my $T = new HTML::CTPP2(); my $B = $T -> parse_template('news.tmpl'); sub handler { my $r = shift; $r -> content_type('text/html'); $T -> param({hello => 'Hello, World!'}); print $T -> output($B); return OK; } 1;
20 И на PHP
21 Пример посложнее Лента новостей SQL::NonTransaction oNT = GetSQLConnector(oResponse,oGlobalPool).NewNonTransaction(); oData["newslist"] = NTSQLayerCDT(oNT, "SELECT * FROM news ORDER BY date")
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 Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.