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

60 %
40 %
Information about Разработка веб-сервисов осень 2013 лекция 6
Education

Published on February 21, 2014

Author: Technopark

Source: slideshare.net

Разработка веб-сервисов Беседа 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

Возможности СУБД Языки обработки данных. SQL Описание данных: CREATE TABLE students ( id int, name varchar(255), birth date, comments text, primary key (id) ); 36

Возможности СУБД Языки обработки данных. 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

Add a comment

Related presentations

Related pages

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

Java осень 2013 лекция 8 1. Углубленное программирование на Java Лекция 8 «Базы данных ...
Read more

Search "Разработка веб-сервисов осень 2013 лекция 12 ...

Java осень 2013 лекция 8 1. Углубленное программирование на Java Лекция 8 «Базы данных ...
Read more

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

Home; Education; Разработка веб-сервисов осень 2013 лекция 8; Download. of 35 ×
Read more

IT.Mail.Ru

Java (осень 2013) ... Java, лекция №6 (HD, 2013) 17.10.2013 г. Java, ... Разработка веб-сервисов.
Read more

Разработка интернет-приложений. Лекция 2 - YouTube

... (осень 2015) Лекция №2 Лектор ... Лекция 5-6 - Duration: ... Разработка веб-сервисов.
Read more

3.5 Безопасность веб-приложений. Аудит - YouTube

... (осень 2014) Лекция 3.5 ... 3.6 Безопасность веб ... Разработка веб-сервисов.
Read more