- Подписка на печатную версию:
-
- Подписка на электронную версию:
-
- Подшивки старых номеров журнала (печатные версии)
-
LXF125:Что за штука
Материал из Linuxformat.
Что за штука… Telepathy
- Марко Фиоретти открыл, каким образом части вашего – а заодно и чужого – рабочего стола могут взаимодействовать в режиме реального времени.
- Это не передача мыслей на расстояние, а штука, которая, возможно, уже работает внутри вашей Linux-машины: вы о ней и не подозреваете, но горько пожалеете, если она выйдет из строя.
- А для чего нужна эта технология? Как она действует?
- Telepathy (http://telepathy.freedesktop.org) – это каркас, «комплекс программных библиотек и протоколов» для унификации многих видов онлайн-коммуникаций в реальном времени.
- Типа обмена мгновенными сообщениями (IM)?
- Это самый частый вариант использования Telepathy, но потенциальная сфера его применения гораздо шире (если ее «освоит» достаточное количество Linux-приложений). Новая технология пригодится для организации голосовых переговоров через Интернет (VoIP), видеочатов и прямых соединений между различными клиентами протоколов реального времени.
- Какую пользу может принести Telepathy при обмене мгновенными сообщениями?
- Если в двух словах, то большинство современных клиентов недостаточно тесно увязаны с другими программами. Добавляя их поддержку в свои приложения, разработчики вынуждены ограничиваться единственным клиентом, или же дублировать значительную часть кода.
- А зачем обычным настольным клиентам столь тесное взаимодействие?
- Традиционный обмен мгновенными сообщениями заключается в том, что два пользователя пересылают друг другу небольшие кусочки текста в реальном времени, непосредственно между двумя компьютерами...
- Ну да, знаю. И что здесь плохого?
- Да ничего, но ведь общение ограничено экранной перепиской. На сегодня для программиста FOSS нет стандартного способа наладить такую же непосредственную связь в режиме реального времени между программами других типов.
- Верно, но что даст на практике связь другого рода?
- Простейший пример – коллективное редактирование и рецензирование, полностью конфиденциальное, быстрое и без обращения к посредникам (вроде Google Docs). Сейчас, когда вы с коллегой совместно работаете над текстовым документом, вам приходится не по разу обмениваться его разными версиями через свои клиенты IM, так?
- Так. А если у наших текстовых процессоров будет Telepathy...
- То они будут обмениваться данными прямиком междусобой или через ваши IM-клиенты, используя те же самые учетные записи и настройки. Все, что вы набираете в своем процессоре, мгновенно (с учетом латентности сети, конечно) будет отображаться в текстовом процессоре коллеги. Уверен, вы уже представили себе выгоды от такого усовершенствования.
- Да, я начинаю улавливать идею. Но ведь Telepathy не ограничивается работой с текстом?
- Ни в коем случае! Теоретически, технология Telepathy может в той или иной форме использоваться в любой части рабочего стола. Например, с помощью Telepathy можно играть в компьютерные игры на расстоянии, открывать удаленным пользователям доступ к папкам на своем винчестере или обмениваться музыкальными плей-листами в реальном времени. Возможно так же распространение информации о присутствии для программ разного рода (например, плазмоидов KDE 4).
- Что такое информация о присутствии?
- Это уведомление других интернет-пользователей о том, что вы на ходитесь в сети и готовы к общению. Естественно, кому и когда можно сообщать такую информацию, контролируете вы. Среди прочего, Telepathy обеспечивает стандартизацию и этой функции.
- Готова ли технология Telepathy к использованию?
- Да, и уже используется во многих приложениях: например, Gnome за действует Telepathy в своей программе обмена сообщениями Empathy. Одно из применений Telepathy – обеспечение общего доступа к файлам и папкам для абонентов Empathy через инструмент удаленного доступа к рабочему столу Vino. Кроме того, возможна отправка файлов тем же абонентам с помощью модуля nautilus-sendto в составе Nautilus. А есть еще проект OLPC, где Telepathy предполагается использовать для определения присутствия и коллективной работы. Несколько текущих проектов направлено на реализацию cовместной работы через Telepathy, сбор информации о присутствии и тому подобных сервисов в Plasma, интерфейсе KDE. Многие свободные настольные программы уже примут на вооружение Telepathy к моменту выхода данной статьи.
- Текстовые процессоры в том числе?
- Да. Существуют модули коллек тивной работы для AbiWord (AbiCollab, http://www.abisource.com/wiki/AbiCollab) и текстовых редакторов, например Gedit (http://alban.apinc.org/blog/collaborative-editing).
- А как насчет обмена музыкой и игр, о котором вы упомянули?
- Модули для Rhythmbox и Banshee позволяют изменить онлайн-статус в зависимости от воспроизводимой дорожки, а так же непосредственно обмениваться музыкальными файлами с абонентами IM. По части игр – благодаря Telepathy, можно играть в многопользовательском режиме в Sudoku, Tetris (через GTetrinet, http://gtetrinet.sourceforge.net)и PyHalebarde (https://launchpad.net/pyhalebarde).
- Теперь о технических деталях. Вы сказали, цель технологии — унифицированное управление связью в реальном времени. Почему же тогда Telepathy называют не программой или демоном, а каркасом?
- Это один из постулатов Unix и Linux: «делай одно дело, и делай его хорошо». Telepathy устанавливает правила игры и обеспечивает основной «инвентарь» для нее: это комплект библиотек с единым интерфейсом и стандартизация служб различного назначения.
- И это хорошо: программистам теперь меньше работы!
- Конечно! Если есть общая система связи, то для добавления новой функции достаточно написать небольшой модуль. Кроме того, можно смешивать ПО с разными лицензиями, а так же увеличивать производительность за счет загрузки в память только тех компонентов, которые непосредственно используются приложениями.
- Такая архитектура более безопасна и надежна, правда?
- Вы правы: зависание одного компонента не приведет к краху всего комплекса. Приложение состоит из отдельных модулей, и к каждому из них можно применить свой вариант политики безопасности SELinux.
- А как это делается? По волшебству?
- Telepathy основывается на шине сообщений D-Bus, которая принята в Gnome и KDE 4 для обмена информацией между процессами.
- Позвольте, но ведь D-Bus годится только для связи между приложениями, работающими на одном компьютере?
- Верно, но Telpathy пред лагает механизм для обмена произвольными сообщениями, в том числе, D-Bus по сети, называемый «трубами» [tubes]. Трубы, «проложенные» между двумя или несколькими пользователями, объединяют объекты Telepathy, работающие на разных компьютерах.
- Каково внутреннее устройство Telepathy?
- Основные компоненты – менеджеры соединений и канальные объекты, плюс компонент Mission Control. Первая составляющая – объекты, которые обеспечивают соединение с учетной записью IM или VoIP и предоставляют интерфейсы для отправки или получения информации о присутствии, управление псевдонимами и пр. Один менеджер соединений может управлять несколькими протоколами и соединениями.
- А что такое канальные объекты?
- Это списки контактов или настроек учетных записей с интерфейсами для чтения, установки различных параметров и обмена данными.
- Наконец, самая важная часть?
- Mission Control – единственный компонент Telepathy, который должен дежурить постоянно. Это центр управления, который вовремя запускает менеджеры соединений и следит за созданием канальных объектов и управлением ими. Кроме того, с помощью Mission Control пользователь уведомляет других людей о своем присутствии (или скрывает его).
- Где можно узнать о разработке ПО, совместимого с Telepathy?
- Для начала изучите руководство разработчика Telepathy (Telepathy Developer’s Manual) (http://people.collabora.co.uk/~davyd/telepathy-book) и взгляните на примеры использования Telepathy API на http://telepathy.freedesktop.org/wiki/recipes. Если хотите программировать для KDE, посетите http://techbase.kde.org/projects/telepathy.
- Сильно ли повлияет Telepathy на развитие свободного ПО?
- Если Telepathy ограничат традиционными рамками клиентов IM и VoIP, это будет несправедливой недооценкой новой технологии. По-настоящему значительное влияние Telepathy окажет в том случае, если ее поддержку включат во многие менеджеры рабочих столов и приложения. Если это произойдет, то новая технология может стать важным компонентом социального рабочего стола, о котором мы говорили в LXF122.