Павел Кудинов: Высоконагруженные приложения как...
TRANSCRIPT
HighLoad 2007
и веб-сервисы
Высоконагруженные приложения как совокупность веб-сервисовПавел Кудинов
Что такое веб-сервис?
“Программный интерфейс, предназначенный для взаимодействия приложений в рамках WWW” – W3C
V HTTP– XML– RPC/SOA/REST– SOAP– WSDL
Почему именно XML?базовые свойства:
• самодостаточность
• индуктивность
• кроссплатформенность
• распространенность
Почему именно XML?важные следствия:• понятен и человеку и машине• возможность декларирования
– как форматная (например, схемы XML)– так и функциональная (например, WSDL)
• возможность трансформирования– XSLT, XQuery
• интегрируемость с современными инструментами– поддержка XML реляционными СУБД– NXD (Native XML Database)
Что такое веб-сервис?
“Программный интерфейс, предназначенный для взаимодействия приложений посредствам XML в рамках WWW”
V HTTPV XML– RPC/SOA/REST– SOAP– WSDL
RPC, SOA или REST?
REST!
Парадокс применимости веб-сервисов: проблемы
• вычисления– разбор XML
• хранение и передача– избыточность XML (1:10)
• сетевые операции– протокол HTTP
Парадокс применимости веб-сервисов: детали• вычисления
– контекстный метод обработки• DOM• SAX• регулярные выражения• инкапсуляция
• хранение и передача – сжатие (1:10)
• сетевые операции– протокол HTTP 1.1 (keep-alive)
Парадокс применимости веб-сервисов: решение
B
E
C
A
D
F
A
BCDEF
Приложениекак совокупность веб-сервисов
Пример из мира SEO:
получение информации о доменах
whois
список доменов
DNS HTTP
alexa
DMOZ
count PR
topic count
rank
head
html
IPcreate
expire
Шлюз как веб-сервис
whois
gate
proxy proxy proxy
whois.ru
whois.de
whois.fr
www1 www2 www3
HTTP HTTP HTTPwhoiswhois
XML
alexa dmoz
HTMLHTMLHTML
gate gate gate gate
XML XML XML XML
источник данных
исходные данные
прокси
шлюзовые веб-сервисы
конечные данные
Агрегация данных как веб-сервисalexagate
XML
dmozgate
whoisgate
XML XML
XML
union XSLT
googlegate
XML
httpgate
XML
шлюзовые веб-сервисы
частичная информация
веб-сервис агрегации
полная информация
Многозадачность как веб-сервис
домендомендомендомендомен ...
XML
union
XML XML
GET GET GET
jobs
домен
веб-сервис агрегации
полная информация
параллельные запросы
менеджер задач
очередь обработки
Индуктивность архитектуры
union
XML
gate
jobs
XML
XML
XSLTHTML
XSLT
XSLT
HTML
HTML
loop
XML
XSLT
HTML
человек
машина
источник
union
XML
jobs
XML
loop
XML
Как обеспечить сетевую многозадачность
Эффективное решение:
реализация веб-сервисов
в качестве автономных HTTP приложений
см. доклад HighLoad-2007
«Сетевая многозадачность:
событийные машины»
Спасибо за внимание!
Высоконагруженные приложения как совокупность веб-сервисов
Павел КудиновПавел КудиновАгентство «Точка Кипения»Агентство «Точка Кипения»Технический директорТехнический директор[email protected]@kudinov.namepavel-kudinovpavel-kudinovpavel-kudinovpavel-kudinov