Component

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
В соответствии с принятыми в данной вики договорённостями, правильное название этой статьи — Компонент.
Для ссылок сюда с других страниц
ЯВики используйте название
Компонент
На других ресурсах
можно также давать ссылку
http://jawiki.ru/Component

Компонент — общее название для сервисов и транспортов и обозначает программу или модуль, расширяющий список предоставляемых сервером услуг. Примеры: rss.jabber.ru (сервис), icq.jabber.ru (транспорт), translate.jrudevels.org (сервис).

Термин «компонент» применяется, в основном, в техническом общении для определения способа реализации сервисов и транспортов. Фраза «Сервис XXX выполнен в виде внешнего компонента» означает, что это отдельная программа, а не встроенный в сервер модуль или ещё что-то, и его можно использовать с любым сервером, поддерживающим XEP-0114. Часто слово «внешний» опускается, а для определения внутренних компонентов используют слова модуль, плагин и т.д.

Классификация компонентов

Компоненты делятся на внутренние и внешние.

Внутренний компонент — 
неотделимый от конкретной реализации XMPP-сервера модуль, плагин или кусок, который нельзя использовать с другой реализацией.
Внешний компонент — 
отдельная программа, которая подключается к серверу динамически и расширяет предоставляемые им услуги. Она может быть запущена как на том же, так и на отдельном компьютере.

Разработка внешних компонентов

У каждого компонента должен быть свой JID (обычно это поддомен домена сервера) и пароль (secret), с которыми он авторизуется на сервере. На сервере же этот JID и пароль должны быть прописаны в файле конфигурации. Процесс авторизации описан в XEP-0114. Соединение с сервером обычно осуществляется через TCP/IP.

После того, как компонент подсоединился и авторизовался, сервер начинает перенапрвлять компоненту все станcы, пришедшие на его JID из сети, и наоборот, т.е. работает как обычный шлюз. Кроме этого, сервер обычно добавляет JID компонента в список сервисов, который можно получить через Service Discovery. Больше никакой работы сервер не делает, т.е. рассылать информацию о присутствии, следить за ростерами своих пользователей, если есть, и т.п. компонент должен сам.

Зону DNS для компонента нужно определить так, чтобы он (его JID) имел IP-адрес сервера, даже если сама программа, реализующая внешний компонент, запущена на компьютере с другим IP-адресом.