Movim (My Open Virtual Identity Manager) — это распределенная социальная сеть , построенная на основе XMPP , популярного протокола связи с открытыми стандартами. Movim — это бесплатное программное обеспечение с открытым исходным кодом, лицензированное по лицензии AGPL-3.0 или более поздней версии . [1] [2] Доступ к нему можно получить с помощью существующих клиентов XMPP и учетных записей Jabber .
Проект был основан Тимоти Жоссуаном в 2010 году. Его поддерживают Тимоти Жоссуан и Кристин Хо. [3]
Movim — это распределенная платформа социальных сетей. Она создает уровень абстракции для коммуникации и управления данными, используя при этом силу базового протокола XMPP.
XMPP — это широко используемая платформа для связи с открытыми стандартами. Использование XMPP позволяет сервису взаимодействовать с существующими клиентами XMPP, такими как Conversations , Pidgin , Xabber и Jappix . Пользователи могут напрямую входить в Movim, используя существующую учетную запись Jabber.
Movim решает проблемы конфиденциальности, связанные с централизованными социальными сетями , позволяя пользователям настраивать собственный сервер (или «модуль») для размещения контента; модули затем могут взаимодействовать для обмена обновлениями статуса, фотографиями и другими социальными данными. [4] Пользователи могут экспортировать свои данные в другие модули или в офлайн-режиме, что обеспечивает большую гибкость. [4]
Он позволяет пользователям размещать свои данные на традиционном веб-хостинге, облачном хосте, у интернет-провайдера или у друга. Фреймворк, который создается на PHP , является бесплатным программным обеспечением и может быть опробован внешними разработчиками.
Movim разработан с использованием PHP , CSS и HTML5 . [5] Изначально программное обеспечение использовало фреймворк Symfony . Из-за сложности приложения и управления соединениями XMPP разработчики переписали Movim как отдельное приложение. Теперь у него есть собственные библиотеки и API .
Movim ранее был основан на библиотеке JAXL для реализации XMPP. [6] JAXL был заменен на Moxl (библиотека Movim XMPP), лицензированную по лицензии AGPL-3.0-only , [7] для управления подключением к серверу через протокол XMPP WebSocket . Утверждается, что это уменьшило сложность кода и нагрузку на производительность, а также обеспечило лучшее управление ошибками. [8]
Платформа использовала Modl (Movim Data Layer) до версии 0.13, слой базы данных PHP, использующий шаблоны DAO для взаимодействия с базой данных. [9] Затем проект был перенесен в Laravel Eloquent ORM. [10]
Проект состоит из набора библиотек, которые обеспечивают уровень абстракции поверх XMPP для связи и управления данными.
Запросы обрабатываются экземплярами производного класса контроллера интерфейса. Эта методология похожа на обработку запросов в фреймворке MVC .
Доступ к интерфейсу обеспечивается системой виджетов, позволяющих за счет возможностей интроспекции писать элементы AJAX без использования JavaScript . Отображение страницы использует систему вложенных шаблонов.