4. Основные компоненты и понятия
• Идентификаторы ресурсов
• Транспорт
• Сериализатор
• Сессия
• Realm - домен, namespace
• Peer, узел
• Клиент
• Роутер
• Роль
6. Идентификаторы ресурсов
• Подписок
• Процедур
• Ошибок
Необходимы для:
Представляют собой URI
• system.send.file
• chat.message
• users.admins.message
• user.profile.updated
7. Сериализация и типы данных
• integer
• string
• bool
• list (array)
• dict
Поддерживаемые сериализаторы:
• JSON • MsgPack
Поддерживаемые типы данных:
Обязательные: Дополнительно:
любые, зависит
от поддержки в
сериализаторе
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
REGISTERRPC
REGISTERRPC
REGISTERRPC
SUBSCRIBE to TOPICs
Internal
service 1
SUBSCRIBE to TOPICs
Internal
service 2
Internal
service 3
Frontoffice
app
client
Frontoffice
app
client
CRUD
Nginx/HAProxy CRUD
CRUD
Backoffice
app
client
SUBSCRIBE to TOPICs
PUBLISHEvent
PUBLISHEvent
CALL RPCs
Nginx/HAProxy
Backoffice
app
client
DB
CRUD CRUD
Backoffice app
serverside
Frontoffice app
serverside
Большое интеграционное решение
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
• Примеры клиентов на разных языках