Component
компонент — общее термин для сервисов и транспортов и обозначает программу или модуль, расширяющий список предоставляемых сервером услуг. Например rss.jabber.ru, icq.jabber.ru, translate.jrudevels.org. Делится на внутренние и внешние.
внутренний компонент — неотделимый от сервера модуль, плагин или кусок, который нельзя использовать с другой реализацией XMPP-сервера.
Под внешним компонентом в терминологии XMPP понимается отдельная программа, которая подключается к серверу динамически и расширяет предоставляемые им услуги. Она может быть запущена как на том же компьютере так и на отдельном.
Этот термин применяется в основном в техническом общении, и определяет способ реализации сервисов и транспортов. Фраза "Сервис XXX сделан в виде внешнего компонента" означает, что это отдельная программа, а не встроенный в сервер модуль или еще что-то, и его можно использовать с любым сервером, поддерживающим XEP-0114.
Разработка внешних компонентов
У каждого компонента должен быть свой JID (обычно это поддомен домена сервера) и пароль (secret), с которыми он авторизуется на сервере. На сервере же этот JID и пароль должен быть прописан в файле конфигурации. Процесс авторизации описан в XEP-0114. Соединение с сервером обычно осуществляется через TCP/IP.
После того, как компонент подсоединился и авторизовался, сервер начинает пробрасывать все станцы, пришедшие на JID компонента из сети, в соединение с компонентом и наоборот, т.е. работает как обычный шлюз. Кроме этого сервер обычно добавляет JID компонента в список сервисов, который можно получить через дисковери. Больше никакой работы сервер не делает, т.е. рассылать презенсы, следить за ростерами своих "пользователей", если есть, и т.п. компонент должен сам.