Павел Кудинов: Высоконагруженные приложения как...

16
HighLoad 2007 и веб-сервисы Высоконагруженные приложения как совокупность веб- сервисов Павел Кудинов

Upload: guestf673

Post on 16-Jun-2015

1.572 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

HighLoad 2007

и веб-сервисы

Высоконагруженные приложения как совокупность веб-сервисовПавел Кудинов

Page 2: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Что такое веб-сервис?

“Программный интерфейс, предназначенный для взаимодействия приложений в рамках WWW” – W3C

V HTTP– XML– RPC/SOA/REST– SOAP– WSDL

Page 3: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Почему именно XML?базовые свойства:

• самодостаточность

• индуктивность

• кроссплатформенность

• распространенность

Page 4: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Почему именно XML?важные следствия:• понятен и человеку и машине• возможность декларирования

– как форматная (например, схемы XML)– так и функциональная (например, WSDL)

• возможность трансформирования– XSLT, XQuery

• интегрируемость с современными инструментами– поддержка XML реляционными СУБД– NXD (Native XML Database)

Page 5: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Что такое веб-сервис?

“Программный интерфейс, предназначенный для взаимодействия приложений посредствам XML в рамках WWW”

V HTTPV XML– RPC/SOA/REST– SOAP– WSDL

Page 6: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

RPC, SOA или REST?

REST!

Page 7: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Парадокс применимости веб-сервисов: проблемы

• вычисления– разбор XML

• хранение и передача– избыточность XML (1:10)

• сетевые операции– протокол HTTP

Page 8: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Парадокс применимости веб-сервисов: детали• вычисления

– контекстный метод обработки• DOM• SAX• регулярные выражения• инкапсуляция

• хранение и передача – сжатие (1:10)

• сетевые операции– протокол HTTP 1.1 (keep-alive)

Page 9: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Парадокс применимости веб-сервисов: решение

B

E

C

A

D

F

A

BCDEF

Page 10: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Приложениекак совокупность веб-сервисов

Пример из мира SEO:

получение информации о доменах

whois

список доменов

DNS HTTP

google

alexa

DMOZ

count PR

topic count

rank

head

html

IPcreate

expire

Page 11: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Шлюз как веб-сервис

whois

gate

proxy proxy proxy

whois.ru

whois.de

whois.fr

www1 www2 www3

HTTP HTTP HTTPwhoiswhois

google

XML

alexa dmoz

HTMLHTMLHTML

gate gate gate gate

XML XML XML XML

источник данных

исходные данные

прокси

шлюзовые веб-сервисы

конечные данные

Page 12: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Агрегация данных как веб-сервисalexagate

XML

dmozgate

whoisgate

XML XML

XML

union XSLT

googlegate

XML

httpgate

XML

шлюзовые веб-сервисы

частичная информация

веб-сервис агрегации

полная информация

Page 13: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Многозадачность как веб-сервис

домендомендомендомендомен ...

XML

union

XML XML

GET GET GET

jobs

домен

веб-сервис агрегации

полная информация

параллельные запросы

менеджер задач

очередь обработки

Page 14: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Индуктивность архитектуры

union

XML

gate

jobs

XML

XML

XSLTHTML

XSLT

XSLT

HTML

HTML

loop

XML

XSLT

HTML

человек

машина

источник

union

XML

jobs

XML

loop

XML

Page 15: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Как обеспечить сетевую многозадачность

Эффективное решение:

реализация веб-сервисов

в качестве автономных HTTP приложений

см. доклад HighLoad-2007

«Сетевая многозадачность:

событийные машины»

Page 16: Павел Кудинов: Высоконагруженные приложения как совокупность веб-сервисов

Спасибо за внимание!

Высоконагруженные приложения как совокупность веб-сервисов

Павел КудиновПавел КудиновАгентство «Точка Кипения»Агентство «Точка Кипения»Технический директорТехнический директор[email protected]@kudinov.namepavel-kudinovpavel-kudinovpavel-kudinovpavel-kudinov