Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры


UnixForum
Беспроводные выключатели nooLite купить дешевый 
компьютер родом из Dhgate.com


Lines Club

Ищем достойных соперников.

Библиотека сайта или "Мой Linux Documentation Project"

Фреймворк Telepathy

Глава 20 из книги "Архитектура приложений с открытым исходным кодом", том 1.

Оригинал: Telepathy
Автор: Danielle Madeley
Дата публикации:
Перевод: Н.Ромоданов
Дата перевода: июль 2013 г.

Creative Commons. Перевод был сделан в соответствие с лицензией Creative Commons. С русским вариантом лицензии можно ознакомиться здесь.

Telepathy является модульным фреймворком для коммуникаций в режиме реального времени, в котором можно обрабатывать голосовые, текстовые, видео сообщения, осуществлять передачу файлов и так далее. Фреймворк Telepathy уникален не столько тем, что он абстрагирует особенности различных протоколов передачи мгновенных сообщений, а тем, что он воплощает идею коммуникации как сервиса, во многом похожего на то, как печать является сервисом, доступным одновременно для многих приложений. Для достижения этого в Telepathy интенсивно используется шина передачи сообщений D-Bus и модульная архитектура.

Коммуникации, как сервис, невероятно полезны, поскольку позволяют нам с помощью них выйти за рамки отдельного приложения. Нам предлагается много интересных вариантов применения: можно видеть наличие контакта в почтовом приложении, начать с ним общение, использовать этот контакт для передачи ему файла прямо из браузера файлов или, используя контакты, выполнять совместную работу внутри приложений — возможность, известная в Telepathy как Tubes туннели.

Фреймворк Telepathy был создана Робертом Маккуином (Robert McQueen) в 2005 году, и с того времени разрабатывался и поддерживался несколькими компаниями и отдельными разработчиками, в том числе компанией Collabora, одним из сооснователей которой является Маккуин.

Шина передачи сообщений D-Bus

Шина D-Bus является шиной асинхронной передачи сообщений межпроцессного взаимодействия, что представляет собой остов большинства систем GNU/Linux, в том числе среды рабочего стола для GNOME и KDE. D-Bus является, прежде всего, архитектурой с общей шиной: приложения подключаются к шине (идентифицируемой адресом сокета) и могут либо передавать сообщения, адресованные другому приложению, подключенному к шине, либо осуществлять широковещательную передачу сигнала для всех, кто подключен к шине. Приложения, подключенные к шине, имеют шинный адрес, похожий на IP-адрес, и могут объявлять об использовании нескольких зарегистрированных за ними имен, похожих на имена DNS, например org.freedesktop.Telepathy.AccountManager. Все процессы взаимодействуют через демон D-Bus, с помощью которого происходит передача сообщений и регистрация имен.

С точки зрения пользователя, в каждой системе есть две шины. Системная шина представляет собой шиной, позволяющей пользователю взаимодействовать с компонентами, имеющимися в системе (принтерами, устройствами bluetooth, средствами управления аппаратурой и так далее), и которая совместно используется всеми пользователями системы. Сессионная шина является уникальной для каждого пользователя, то есть для каждого пользователя, который вошел в систему, имеется своя собственная сессионная шина, применяющаяся в пользовательских приложениях для связи их друг с другом. Когда через шину нужно передать большой объем трафика, в приложениях также можно создать собственную шину приложения, или можно создать шину типа «точка-точка» (peer-to-peer), управление которой не будет происходить при помощи демона dbus-daemon.

С помощью нескольких библиотек реализован протокол D-Bus, через который можно взаимодействовать с демоном D-Bus, например, помощью библиотек libdbus, GDBus, QtDBus и python-dbus. На эти библиотеки возложена обязанность отправки и получения сообщений D-Bus, преобразование типов из системы типов данных языков программирования в формат типов шины D-Bus, и публикация объектов в среде шины. Обычно в библиотеках также предоставляются удобные интерфейсы API, используемые для получения списков подключенных приложений и приложений, которые могут быть активированы, а также интерфесы для запроса имен, зарегистрированных в шине. На уровне шины D-Bus, всё это сделано с помощью вызовов методов опубликованного объекта, что выполняется демоном dbus-daemon самостоятельно.

Более подробную информацию о шине D-Bus смотрите по ссылке http://www.freedesktop.org/wiki/Software/dbus.


Продолжение статьи: Компоненты фреймворка Telepathy.


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют