4. Основные компоненты и понятия
• Идентификаторы ресурсов
• Транспорт
• Сериализатор
• Сессия
• Realm - домен, namespace
• Peer — узел
• Клиент
• Роутер
• Роль
6. Идентификаторы ресурсов
Необходимы для:
• Подписок
• Процедур
• Ошибок
Представляют собой URI
• system.send.file
• chat.message
• users.admins.message
• user.profile.updated
7. Сериализация и типы данных
Поддерживаемые сериализаторы:
• JSON • MsgPack
Поддерживаемые типы данных:
Обязательные: Дополнительно:
• integer
• string
• bool
• list (array)
• dict
любые, зависит
от поддержки в
сериализаторе
9. Транспорт
• В основе лежат сообщения
• Сообщения упорядочены
• Двунаправленный обмен сообщениями
• Websocket
• Raw TCP
• HTTP long-polling (в разработке)
• Unix sockets
44. Advanced profile
• Publish / Subscribe
• белый и черный списки
• идентификация издателя
• подписки по паттернам
• метасобытия
• список подписчиков
• список событий
45. Advanced profile
• Remote Procedure Calls
• белый и черный списки
• идентификация вызывающего
• регистрация RPC по паттернам
• отмена выполнения
• прогрессивное выполнение
64. Применение
Browser
Browser
Большое интеграционное решение
Server side infrastructure
WAMP Router
Mobile
Desktop
SUBSCRIBE to TOPICs
REGISTER RPC
REGISTER RPC
REGISTER RPC
SUBSCRIBE to TOPICs
Internal
service 1
Internal
service 2
Internal
service 3
Frontoffice
app
client
Frontoffice
app
client
CRUD
Nginx / HAProxy
CRUD
CRUD
Backoffice
app
client SUBSCRIBE to TOPICs
PUBLISH Event
PUBLISH Event
CALL RPCs
Nginx / HAProxy
Backoffice
app
client
DB
CRUD
CRUD
Backoffice app
serverside
Frontoffice app
serverside
65. Consumer 1 Consumer 2 Consumer 3 Consumer 4 Consumer 5
Provides RPC
Call RPC
Publish events
Subscribe to topics
Call RPC
Provides RPC
Publish events
Service
Provider 1
Service
Provider 2
Service
Provider 3
Service
Provider 4
Service
Provider 5
Publish events
WAMP Router
(realm 1, realm 2, realm 3, ....)
Subscribe to topics
Publish events
Применение
WAMP как основа композитных SOA решений
66. Применение
WAMP как основа композитных SOA решений
• Унифицированная сервисная шина
• Асинхронное выполнение процедур
• Стандартизация интерфейсов взаимодействия
• Минимальные накладные расходы
• Гибкая инфраструктура
• Изолированность и слабая связанность сервисов
• Легкость подключения новых сервисов
68. Итоги
• Простой и открытый протокол
• RPC + PubSub из коробки
• Унифицированная маршрутизация
• Транспорт и сериализация на любой вкус
• Минимальные накладные расходы
• Нативное использование в веб-приложениях
• Позволяет строить распределенные приложения
со слабым связыванием компонентов
• Множество реализаций на разных языках
• Open source & комьюнити
69. Полезные ссылки
• http://wamp.wsA
• Описание
• Спецификация
• Реализации
• https://groups.google.com/group/wampws
• http://autobahn.ws
• https://github.com/crossbario/crossbar/wiki
• Crossbar.io
• Примеры клиентов на разных языках