Matrix (протокол)

Matrix — це відкритий протокол для спілкування у реальному часі. Основною метою створення є досягнення високої інтероперабельності, подібної до стандартних протоколів типу SMTP. З технічної точки зору — це протокол прикладного рівня, федеративного типу, що дозволяє обмінюватися повідомленнями у реальному часі між окремими серверами.[1][2]

Повідомлення у JSON форматі поширюються серед федерації публічних серверів. Протокол також інтегрується з веб-сервісами за допомогою WebRTC та забезпечує можливість здійснення відео-дзвінка, VoIP та онлайн чату.

Подібними ініціативами є протоколи XMPP та IRCv3.[3]

Розробка

Основне коло розробників працює у неприбутковій організації Matrix.org, що базується у Великій Британії.[4] Метою організації є створення відкритого, децентралізованого, стійкого протоколу з високою інтероперабельністю для комунікації у інтернеті. Типове застосування: відеотелефонія, VoIP, швидкий обмін повідомленнями, IoT, синхронізація даних.

Огляд

Платформа для організації децентралізованих комунікацій Matrix розвивається як проект, який використовує відкриті стандарти і приділяє велику увагу забезпеченню безпеки і приватності користувачів. В якості транспорту застосовується HTTPS+JSON з можливістю використання WebSockets або протоколу на базі CoAP + Noise. Система формується як співдружність серверів, які можуть взаємодіяти між собою і об'єднуються у загальну децентралізовану мережу. Повідомлення реплікуються по всіх серверів, до яких підключені учасники обміну повідомленнями. Повідомлення поширюються по серверам по аналогії з тим, як коміти поширюються між Git-репозиторіями. У разі тимчасового відключення сервера повідомлення не втрачаються, а передаються користувачам після відновлення роботи сервера. Підтримуються різні варіанти ідентифікаторів користувача, включаючи email, номер телефону, обліковий запис в Facebook тощо.

У мережі відсутня єдина точка відмови або контролю за повідомленнями. Всі сервери, які охоплює обговорення, рівноправні між собою. Будь-який користувач може запустити власний сервер і підключити його до загальної мережі. Можливе створення шлюзів для взаємодії Matrix з системами на базі інших протоколів, наприклад, підготовлені сервіси для двосторонньої відправки повідомлень в IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp і Slack.

Крім миттєвого обміну текстовими повідомленнями і організації чатів, система може використовуватися для передачі файлів, відправки повідомлень, організації телеконференцій, здійснення голосових і відео-дзвінків. Matrix дозволяє використовувати пошук і необмежений перегляд історії листування. Підтримуються також такі розширені можливості як повідомлення про набір тексту, оцінка присутності користувача в онлайн, підтвердження прочитання, push-повідомлення, пошук на стороні сервера, синхронізація історії та стану клієнтів.

Протокол

Специфікація Matrix окреслює RESTful HTTP APIs для захищеної передачі та реплікації даних формату JSON між сумісними серверами, клієнтами та сервісами. Дані підписані у стилі git для усунення можливості підміни. Механізм реплікації відповідає моделі узгодженості в кінцевому рахунку, що дозволяє відновити повідомлення через повторну синхронізацію з інших серверів.

Клієнти

Riot.im офіційний клієнт, є зразком для інших втілень. Для середовищ GNOME є офіційний клієнт Fractal. Також існує багато інших клієнтів, ботів, мостів, серверів та інших реалізацій протоколу Matrix.

Посилання

Примітки

  1. Matrix: a new specification for federated realtime chat [LWN.net]. lwn.net. Процитовано 27 травня 2018.
  2. Matrix.org Reloads Inside "Illusion of Control" Vortex. Dr. Dobb's. Архів оригіналу за 29 березня 2019. Процитовано 27 травня 2018.
  3. Weinberger, Matt. Matrix wants to smash the walled gardens of messaging. ITworld (англ.). Процитовано 27 травня 2018.
  4. Matrix | Crunchbase. Crunchbase (англ.). Процитовано 27 травня 2018.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.