воскресенье, 17 мая 2009 г.

Столпы KDE4. Decibel

Прогресс не стоит на месте. KDE4, таки постепенно цепляется за нашу жизнь, пуская корни. Видимо бороться с сим явлением уже бесполезно, ведь наука и техника не стоят на месте. Я и сам все чаще посиживаю в кедах, и даже начинаю привыкать к этому оконному менеджеру. На Хабре Kraplax продолжил публикацию статей из серии "Столпы KDE4". Теперь это Столпы KDE4. Decibel.

Единица измерения общения

Decibel — это фрэймворк для организации общения в реальном времени [далее ОРВ], включающий такие сервисы как Интеграция компьютер-телефон [КТИ] (Computer Telephone Integration [CTI] — прим. пер.), IP-телефонии (VoIP), текстовых чатов и обмена сообщениями. Decibel предоставляет простой, основанный на D-Bus интерфейс программирования приложений, который позволит включать возможности технологий ОРВ даже в приложения, не фокусирующиеся на общении.

Decibel — это сревис, отвечающий за ОРВ; поэтому все, что соединяет двух пользователей и позволяет моментально получать ответы находится во власти Decibel. Decibel основан на Telepathy API и использует Tapioca — совместимую реализацию этого API. Остановимся поподробнее на этих технологиях.

Телепатия

Цель системы Telepathy состоит в том, чтобы предоставить фоэймворк, основанный на D-Bus, который бы унифицировал все формы ОРВ, включая, но не ограничиваясь, мгновенный обмен сообщениями, IRC, голосовая и видео телефония. Telepathy пытается предоставить простой интерфейс клиентским приложениям, позволяя им быстро создавать код для использования ОРВ по любому поддерживаемому протоколу.
Проект Telepathy создает унифицированный фрэймворк для разных способов коммуникации. Он использует систему сообщений D-Bus для предоставления простого интерйейса клиентским приложениям, позволяя им быстро воспользоваться приемуществами Telepathy.
  • Разбиение прежде монолитных приложений на более простые компоненты, которые сосредоточены на определенной функциональности
  • Предоставление стандартного интерфейса для сторонних разработчиков предоставляют возможность создания движков новых протоколов, а также интерфейсов к уже существующим соединениям
  • Компененты, отвечающие за определенную функциональность могут быть подгружены по запросу, и могут не висеть в памяти все время
  • Компоненты изолированы друг от друга, что повышет отказоустойчивость, а иакже позволяет установить особые настройки безопасности для каждого в отдельности

Ядром Telepathy является спецификация интерфейса D-Bus, которая описывает как компоненты Telepathy сообщаются друг с другом. Текущая версия спецификации 0.17 (для более ранних версий см. DbusSpec). Для более подробной информации по структуре фрэймворка см. Обзор Системы.
Также существует пакет TelepathyQt, который включает в себя набор классов реализации Telepathy через библиотеки Qt. Этот пакет используется в пакете Tapioca — библиотека Qt4 классов, реализующих высокоуровневые классы поверх TelepathyQt для использования в клиентских приложениях.

Кто есть кто?

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

Общение в реальном времени [ОРВ]


Общение в реальном времени относится ко всем интерактивным способам общения с использованием компьютера. Сюда входят текстовые чаты (ICQ, MSN, IRC, Jabber и другие), телефония (IP-телефония и КТИ), видео конференции и другое. Другие способы общения, такие как e-mail, группы новостей, форумы и блоги не позволяют получить ответ моментально, поэтому не входят в даную категорию.

Интеграция компьютер-телефон [КТИ]

Интеграция компьютер-телефон означает подключение телефона к компьютеру, а также управление телефоном через компьютер. Например, компьютер может быть использован для набора номера в телефоне с помощью приложения адресной книги в компьютере. Также компьютер может отображать информацию о входяшем звонке по данным контакта в адресной книге компьютера.

Telepathy

Telepathy — это проект freedesktop.org, который фокусируется на создании набора API, для общения с сервисами ОРВ. Это низкоуровневые API, основанные на D-Bus.

D-Bus

Также является проектом freedesktop.org, сильное влияние на который оказал DCOP из KDE3, и используемый для организации простого общения между приложениями. Главная цель D-Bus состоит в обмене данными между приложениями (для большей интеграции между ними), а также между приложениями рабочего стола и операционной системой (включая запуск системных демонов и процессов).
(демоны — это процессы, автоматически запускаемые в фоне, выполняющие особые функции и чаще всего имеющие особые привилегии в системе. Демоны являются аналогами служб (сервисов) в Windows — прим. пер. для не слишком осведомленных пользователей Windows).

IP-телефония [VoIP]

IP-телефония или VoIP (от Voice over Internet Protocol — досл. «голос через протокол интернета» — прим. пер.) это передача голосовых сообщений через сеть, основанную на интернет протоколе (на сегодняшний день — практически все компьютерные сети). Например, внутри локальной сети с использованием технологий VoIP для внутриофисного общения, или через интернет для межличностного общения. Службы VoIP могут использовать обычные телефонные линии для доступа к обычным телефоннам, или просто соединять два VoIP приложения.

Tapioca (Проект)

Проект, целью которого является реализации спецификаций Telepathy. Разаработчики Tapioca предоставляют привязки к различным языкам программирования, которые недоступны у разработчиков Telepathy. Также они пытаются в некотором смысле допилить саму Telepathy.

Houston

Houston — это часть Decibel. Это демон политик который отслеживает статус пользователя для всех используемых каналов коммуникации, сохраняет настройки, реагирует на внешние запросы подключений и т.д.

Что Decibel даст пользователю?


Так как Decibel не является приложением, а скорее сервисом, то обычным пользователям вряд ли будут видны явные приемущества. Скорее приемущества будут неявными. Однако, следует также заметить, что несмотря на то, что приемущества возможны, это дело каждого отдельного приложения решать, какие особенности будут использованы, а какие — нет.
Есть два фактора, на которые стоит обратить внимание при использовании приемуществ Decibel. Во-первых, так как Decibel ориентирован на ОРВ, то и приемущества будут именно в этой области. Во-вторых, не существует подобных систем, поэтому все примеры того, что Decibel мог бы уметь делать должны противопоставляться тому, что он уже умеет делать.
Однако, оба этих фактора не значат, что приемущества, видимые пользователям, должны быть малы. Можно назвать несколько примеров использования приемуществ Decibel в приложениях.
Например, приложения не входящие в категорию приложений ОРВ могут получить дополнительные функции. Например, E-Mail клиент сможет использовать Decibel для предоставления on-line статуса контактов в записной книге и в списке писем. Или офисные приложения могут включать в себя функции чата или даже видео конференций с автором документа или каналом поддержки. Так как Decibel позволяет легко организовывать каналы коммуникаций между пользователями, это может создать благоприятные условия для совместной работы над проектом. Например, программа обработки графики может создать соединение с другой такой же программой где-нибудь в интернете. Тогда можно будет организовать совместное редактирование графического документа.

Что Decibel даст разработчику?

Разработчики приложений получат
  • централизованное хранилище настроек ОРВ, таких как данные учетной записи и on-line статус;
  • средства для установления исходящих соединений с использованием этих настроек;
  • средства реагирования на попытки создания входящих соединений;
Это позволит реализовать такие функции как «Режим off-line для всех учетных записей», «уведомлять обо всех входящих сообщениях в текстовых чатах, чтобы я мог вести логи», «начать переписку с человеком, с этими контактными данными». Для реализации последней, например, разработчику необходимо будет найти и получить доступ к данным пользователя (которые, чаще всего разбросаны по разным приложениям), найти общий для текущего пользователя и запрошенного контакта, выйти в сеть необходимым аккаунтом и начать сессию. Decibel повзоляет скрыть все эти подробности от разработчика, если тому они особенно не интересны.

Итог

Чтобы привнести некоторую ясность попробую обобщить: Telepathy — система стандартов, TelepathyQt — реализация стандартов системы Telepathy в связке с Qt4. Tapioca — надстройка над TelepathyQt, расширяющая ее возможности и позволяющаяя более удобно организовывать высокоуровневые задачи. Decibel же использует TelepathyQt и Tapioca в качестве своих движков так же, как Phonon использует Xine и DirectShow. Decibel объединит под одним интерфейсом все функции реализации общения в реальном времени, и позволит приложениям легко связываться между собой. Decibel не сделает из вашего приложения конфетку, однако привнесет дополнительный функционал, который может добавить привлекательности.
В заключение хочется добавить, что текущая версия Decibel еще слишком сыра для использования, и является скорее доказательством существования с полной реализацией основных функций. Следующие версии Decibel ориентированы на интеграцию с KDE, а также улучшение текущей функциональности и примеров программ. До повсеместного внедрения потребуется еще несколько релизов, однако теперь вы имеете довольно полное представление о назначении и функционале Decibel.

Для написания статьи была взята информация с официальных сайтов Decibel, Tapioca, Telepathy, а также поста о Decibel на planetkde.org.

Это кросс-пост статьи с WeLinux.ru

Комментариев нет: