Разработка веб-сервисов осень 2013 лекция 6

Post on 25-May-2015

177 Views

Category:

Education

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Разработкавеб-сервисов

Беседа 6: Компоненты веб-систем

План занятия

Сетевое взаимодействие

Основные компоненты веб-систем

Примеры построения веб-систем

2

Схемы взаимодействия

Схемы взаимодействия компонентов

клиент-сервер

peer-to-peer

3

Схемы взаимодействия

Клиент-сервер

Поставщики услуг (серверы)

Потребители услуг (клиенты)

4

Схемы взаимодействия

Клиент-сервер

5

Схемы взаимодействия

Клиент-сервер. Преимущества

Код в одном месте

Пониженные требования к клиентам

Лучшая защищенность

6

Схемы взаимодействия

Клиент-сервер. Недостатки

Единая точка отказа

Высокая стоимость оборудования, а иногда и ПО

Требует квалифицированной поддержки

7

Схемы взаимодействия

peer-to-peer

Основана на равноправии участников

Каждый узел — и клиент, и сервер

8

Схемы взаимодействия

peer-to-peer. Одноранговая сеть

9

Схемы взаимодействия

peer-to-peer. Гибридная сеть

10

Схемы взаимодействия

peer-to-peer. Примеры использования

Обмен файлами (BitTorrent etc)

Распределенные вычисления

Децентрализованные платежные системы (Bitcoin)

11

Основные компоненты веб-систем

Веб-серверы

Хранилища данных

Фоновая обработка данных

Инфраструктурные серверы

12

Основные компоненты веб-систем

Веб-серверы

Основная задача — принимать и отвечать на HTTP-запросы

серверы-акселераторы

серверы приложений

13

Основные компоненты веб-систем

Хранилища данных

Основная задача — временное и постоянное хранение и обработка данных

От файлов к СУБД

Персистентные хранилища и хранилища в памяти

14

Основные компоненты веб-систем

Хранилища данных. Файлы

client1; 100; test@example.com \n

client2; 400; foo@bar.com \n

client3; 1000; bar@foo.com \n

15

Основные компоненты веб-систем

Хранилища данных. Файлы

0; 29; 53

client1; 100; test@example.com \n

client2; 400; foo@bar.com \n

client3; 1000; bar@foo.com \n

16

Основные компоненты веб-систем

Фоновая обработка данных

Задания по расписанию

Очереди

17

Обработка соединений

Принципы сетевой работы

Многопроцессная

Многопоточная (мультитредная)

Мультиплексная

18

Веб-серверы

Функции веб-серверов

Основная функция – принимать HTTP-запросы и отвечать на них

GET /img/logo.gif HTTP/1.1

Host: tp.mail.ru

19

Веб-серверы

Функции веб-серверов

Дополнительно:

аутентификация и авторизация пользователей

поддержка шифрования трафика

логирование запросов

запуск приложений

20

Веб-серверы

Запуск приложений

CGI — интерфейс запуска приложений (скриптов)

GET /index.php?foo=bar HTTP/1.1

Host: tp.mail.ru

21

Веб-серверы

Запуск приложений. СGI

Формирование переменных окружения

REQUEST_METHOD

QUERY_STRING

REMOTE_ADDR

SCRIPT_NAME

Определение обработчика

Вызов обработчика и передача ему данных через STDIN

22

Веб-серверы

Запуск приложений

Внутренний интерпретатор

mod_perl

mod_php

etc…

Разделяемая память

23

Веб-серверы

Запуск приложений

FastCGI — расширение CGI

В отличие от CGI — постоянно запущенные обработчики

Более производительный (нет накладных ресурсов)

TCP/IP и Sockets вместо STDIN

24

Веб-серверы

Типы веб-серверов

Акселераторы

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

25

Веб-серверы

Примеры веб-серверов. Nginx

Традиционно:

Проксирование на бэкенд

Аутентификация и авторизация

URL Rewrite

Кэширование

Сжатие трафика (gzip…)

SSL

26

Веб-серверы

Примеры веб-серверов. Nginx

Нетрадиционно:

Upstream-балансировка

Secure-link

Streams

Embeded perl

27

Веб-серверы

Примеры веб-серверов. Apache HTTP Server

Состав:

HTTP-сервер

Обработка файлов конфигураций

Модули

28

Веб-серверы

Примеры веб-серверов. Apache HTTP Server

Модули (несколько сотен):

Поддержка языков программирования (perl, php, lua…)

Расширение функций (mod_rewrite, mod_proxy)

Безопасность (ограничение доступа к файлам, mod_auth, mod_ldap)

29

Веб-серверы

Примеры веб-серверов. Java-ориентированные

Сервлеты

Загрузка и инициализация класса

Обслуживание запроса

Удаление сервлета

Серверы сервлетов:

Apache Tomcat

WebSphere App Server

30

Веб-серверы

Примеры веб-серверов. Иные серверы

lighttp

IIS

0w

Node.js

etc…

31

СУБД

Функции СУБД

СУБД — Система Управления Базами Данных

управление данными (в памяти и на диске)

управление изменениями данных и восстановлением после сбоев

поддержка языков обработки данных

32

СУБД

Работа СУБД

Физический уровень работы СУБД

Хранение данных и индексов

Журналы

Хранилища на диске

Хранилища в памяти

33

Возможности СУБД

Индексы: ускорение доступа к данным

Хранение данных:

B-tree, hash, функциональные индексы

Простые и составные индексы

Первичный и уникальные ключи

34

Возможности СУБД

Языки обработки данных

SQL:

Описание данных

Манипуляция с данными

Хранимые процедуры

35

Возможности СУБД

36

Языки обработки данных. SQL

Описание данных:

CREATE TABLE students (

id int,

name varchar(255),

birth date,

comments text,

primary key (id)

);

Возможности СУБД

Языки обработки данных. SQL

Манипуляция данными

INSERT

UPDATE

DELETE

37

Возможности СУБД

Языки обработки данных. SQL

Интерпретация запроса

План запроса, оптимизатор

38

Возможности СУБД

Языки обработки данных

Хранимые процедуры:

Возможности

Назначение

Скорость

Фоновая работа

Безопасность

39

Возможности СУБД

Принципы работы с пользователями

Ограничения на доступ к данным

Таблицы и табличные пространства (tablespace)

Хранимые процедуры

40

Возможности СУБД

Транзакции

Транзакция — последовательные действия с базой данных, объединенные в одну логическую группу

41

Возможности СУБД

Транзакции. Свойства транзакций

ACID

Атомарность — всё или ничего

Согласованность — фиксация только допустимых результатов

Изоляция — параллельные транзакции не оказывают влияния на результат

Долговечность — сохранение результатов после фиксации

42

Возможности СУБД

Транзакции. Уровни изолированности

Read uncommited

Read commited

Repeatable read

Serializable

43

Возможности СУБД

Транзакции. Виды транзакций

Обычные

Автономные транзакции

Распределенные транзакции

Двухфазная фиксация изменений

44

Возможности СУБД

Репликация — синхронизация данных

Назначение

Устойчивость к сбоям

Снижение нагрузки сети

Разъединённые вычисления

45

Возможности СУБД

Репликация

По типу

синхронная

асинхронная

По источнику

master-slave

master-master

По принципам

Запросы или данные

Полная или инкрементальная

46

Возможности СУБД

Распределенные СУБД

CAP-теорема:

Согласованность данных – данные непротиворечивы в любой момент времени

Доступность (avability) – любой запрос получает корректный ответ

Устойчивость к разделению (partition tolerance) –разделение не приводит к некорректности ответа каждой секции

47

Возможности СУБД

Распределенные СУБД

Колоночные субд

hbase/hadoop, cassandra

Документо-ориентированные

MongoDB, CouchDB

key-value хранилища

Redis, Memcache, tarantool

48

Серверы очередей

Асинхронная работа

Ajax

Фоновые скрипты

Службы СУБД (Oracle.Jobs, MySQL.Events…)

Что еще?

49

Серверы очередей

Асинхронная работа. Проблемы

Ajax

Лишние запросы

Фоновые скрипты

Не чаще раза в минуту

Службы СУБД (Oracle.Jobs, MySQL.Events…)

Что это?

50

Серверы очередей

Обмен сообщениями

Сообщение — пакет некоторых команд, передаваемых от источника к получателю

51

Серверы очередей

Обмен сообщениями. Принципы устройства

Данные

Типы сообщений

Приоритеты выполнения

Параллельность обработки

52

Серверы очередей

Обмен сообщениями. Промышленные протоколы

AMQP — Advanced Message Queuing Protocol

JMS — Java Message Service

53

Серверы очередей

Обмен сообщениями. Протоколы

AMQP

Сообщение

Точка обмена — распределение сообщений

Очереди сообщений

JMS

point-to-point

publisher-subscriber

54

Серверы очередей

Обмен сообщениями. Примеры систем

ActiveMQ

RabbitMQ

Microsoft MQ

Oracle AQ

55

Иные серверы

Примеры серверов

Почтовые серверы (exim, postfix, dovecot…)

Серверы авторизации

Файловые хранилища

Инфраструктурные (dns, серверы времени итп)

56

Резюме

В основном используется клиент-серверная схема

Нужны веб-серверы, хранилища данных и серверы асинхронной работы

Инструментов много, у каждого свои особенности

Комбинируйте и экспериментируйте!

57

Вопросы?

Максим Бабич

tpark@maxbabich.ru

+7 916 9415275

top related