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

Презентация:



Advertisements
Похожие презентации
Сервер приложений С++ Андрей Шетухин Rambler Internet Holding.
Advertisements

Технология MVC в высоконагруженных проектах Андрей Шетухин Илья Космодемьянский.
Архитектура новой почты Рамблера Андрей Шетухин. Rambler Mail сегодня 240 тысяч новых регистраций в день 66 миллионов пользователей 20 миллионов живых.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
D7 – новая платформа разработки сайтов и порталов Тушинский Юрий Технический директор Битрикс.
WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
Предпосылки формирования нового подхода к проектированию динамических ресурсов всемирной паутины ацп. Кейно П.П. Научный руководитель: проф., к.т.н. Силуянов.
Требования к параметрам тарифного плана по хостингу для эффективной работы веб-проекта на Drupal Семинар для клиентов Возможности и архитектура.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 3 Основные концепции и архитектура Microsoft.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Краткий обзор ОСРВ. RTLinux Встраивается в обычный Linux RTLinux kernel находится между ядром Linux и «железом» RTLinux обрабатывет все прерывания независимо.
Платформа Microsoft.NET Кафедра системного программирования С.-Петербургского государственного университета Андрей А.Терехов,
Лекция 3 Введение в язык Web- программирования высокого уровня.
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
CommuniWare - инструмент создания интерактивных динамичных web-сайтов Андрей Акопянц Communiware project group, Москва,
Материалы взяты из википедии. HTTP HTTP (англ. HyperText Transfer Protocol «протокол передачи гипертекста»)англ. гипертекста.
Использование открытых СУБД, приложений и компонентов для разработки аналитических систем. Russian Open Source Summit 2014 «От открытого кода к открытым.
Сервисы сетевых операционных систем : web- сервер Seti.ucoz.ru.
Архитектура Яндекс.Поиска v 1.04 Анатолий Орлов Сентябрь 2007 – Май 2008.
Дизайн и Верстка Системы Организации Видео Архива (СОВА) МИЭМ, Пашинцев Иван, С-55.
Транксрипт:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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; }

Hello, World! Создаем шаблон My first example

Hello, World! Проверяем результат lynx -source My first example Hello, World!

Тоже самое – на 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;

И на PHP

Пример посложнее Лента новостей SQL::NonTransaction oNT = GetSQLConnector(oResponse,oGlobalPool).NewNonTransaction(); oData["newslist"] = NTSQLayerCDT(oNT, "SELECT * FROM news ORDER BY date")

Интеграция единые шаблоны для всего проекта, независимо от движка простота миграции между технологиями высокая скорость прототипирования и разработки поддержка популярных языков и сред: Perl, PHP, Python

Интерфейсы Apache 1.3.X Apache 2.X FastCGI

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

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

Вопросы?