11. Схемы взаимодействия
peer-to-peer. Примеры использования
Обмен файлами (BitTorrent etc)
Распределенные вычисления
Децентрализованные платежные системы (Bitcoin)
11
14. Основные компоненты веб-систем
Хранилища данных
Основная задача — временное и постоянное хранение и
обработка данных
От файлов к СУБД
Персистентные хранилища и хранилища в памяти
14
24. Веб-серверы
Запуск приложений
FastCGI — расширение CGI
В отличие от CGI — постоянно запущенные обработчики
Более производительный (нет накладных ресурсов)
TCP/IP и Sockets вместо STDIN
24
29. Веб-серверы
Примеры веб-серверов. Apache HTTP Server
Модули (несколько сотен):
Поддержка языков программирования (perl, php, lua…)
Расширение функций (mod_rewrite, mod_proxy)
Безопасность (ограничение доступа к файлам, mod_auth,
mod_ldap)
29
32. СУБД
Функции СУБД
СУБД — Система Управления Базами Данных
управление данными (в памяти и на диске)
управление изменениями данных и восстановлением
после сбоев
поддержка языков обработки данных
32
33. СУБД
Работа СУБД
Физический уровень работы СУБД
Хранение данных и индексов
Журналы
Хранилища на диске
Хранилища в памяти
33
34. Возможности СУБД
Индексы: ускорение доступа к данным
Хранение данных:
B-tree, hash, функциональные индексы
Простые и составные индексы
Первичный и уникальные ключи
34
36. Возможности СУБД
Языки обработки данных. SQL
Описание данных:
CREATE TABLE students (
id
int,
name
varchar(255),
birth
date,
comments
text,
primary key (id)
);
36
39. Возможности СУБД
Языки обработки данных
Хранимые процедуры:
Возможности
Назначение
Скорость
Фоновая работа
Безопасность
39
40. Возможности СУБД
Принципы работы с пользователями
Ограничения на доступ к данным
Таблицы и табличные пространства (tablespace)
Хранимые процедуры
40
42. Возможности СУБД
Транзакции. Свойства транзакций
ACID
Атомарность — всё или ничего
Согласованность — фиксация только допустимых
результатов
Изоляция — параллельные транзакции не оказывают
влияния на результат
Долговечность — сохранение результатов после фиксации
42
44. Возможности СУБД
Транзакции. Виды транзакций
Обычные
Автономные транзакции
Распределенные транзакции
Двухфазная фиксация изменений
44
45. Возможности СУБД
Репликация — синхронизация данных
Назначение
Устойчивость к сбоям
Снижение нагрузки сети
Разъединённые вычисления
45
46. Возможности СУБД
Репликация
По типу
синхронная
асинхронная
По источнику
master-slave
master-master
По принципам
Запросы или данные
Полная или инкрементальная
46
47. Возможности СУБД
Распределенные СУБД
CAP-теорема:
Согласованность данных – данные непротиворечивы в
любой момент времени
Доступность (avability) – любой запрос получает
корректный ответ
Устойчивость к разделению (partition tolerance) –
разделение не приводит к некорректности ответа
каждой секции
47
50. Серверы очередей
Асинхронная работа. Проблемы
Ajax
Лишние запросы
Фоновые скрипты
Не чаще раза в минуту
Службы СУБД (Oracle.Jobs, MySQL.Events…)
Что это?
50
57. Резюме
В основном используется клиент-серверная схема
Нужны веб-серверы, хранилища данных и серверы
асинхронной работы
Инструментов много, у каждого свои особенности
Комбинируйте и экспериментируйте!
57