XMPP - Extensible Messaging and Presence Protocol

esquiso

Power Member
xmpp-logo.png

Ora bem, o que é este protocolo e como surgiu?

O XMPP é um protocolo de mensagens instantâneas e de informação de presença baseado em XML, completamente livre, tornando-o tão extensível que já existem quase 250 extensões oficias ao protocolo. Neste momento é um open standard, sendo possível a qualquer pessoa com uma ligação à Internet e um domínio criar um servidor próprio e comunicar com pessoas noutros servidores (à semelhança do e-mail, por exemplo).
A origem do XMPP remonta a 1998, altura em que Jeremie Miller começou a escrever as primeiras linhas do projecto. Entre 1999 e 2000, a comunidade Jabber trabalhou a fundo no projecto, sendo finalizado por um grupo da Internet Engineering Task Force (IETF, uma comunidade que desenvolve e incentiva standards para a Internet), culminando com a saída das RFC para o público em 2004.

Para que serve e que exemplos existem?

O objectivo principal do XMPP é ser um protocolo aberto de troca de mensagens via internet de forma instantânea, juntado-lhe a informação de presença. No entanto, a flexibilidade é um ponto forte do XMPP. É possível controlar uma rede, jogar, fazer chats para pessoas que não estão na nossa lista de contactos, e mais umas coisinhas.
Os exemplos mais famosos da implementação do XMPP são o Google Talk e o Gizmo Project. De facto, aquela caixinha que vemos por defeito no Gmail não é mais do que uma interface web para o XMPP. É também conhecido o apoio do Google ao XMPP, sendo eles os autores da libjingle, que permite VoIP no XMPP.

E como funciona?

Ora, o processo é bastante simples. Tem de haver obrigatoriamente dois utilizadores a trocar dados e um ou mais domínios com um servidor XMPP a correr. Ora, o utilizador X com a conta no dominio Z.pt vai conversar com o utilizador Y, que tem conta no domínio A.eu. Isto num esquema muito simples, vai-se passar assim:

xmpp-diagram.png

O utilizador X vai enviar dados para o servidor presente em Z.pt, que os vai reenviar para o servidor A.eu, que os redirecciona para o utilizador Y. Tão simples quanto isto.

E quais as principais características do XMPP?

  • Prioridades/Resources - a meu ver, este é o enorme ponto forte do XMPP. Ao contrario de outros protocolos, é possível uma mesma conta ligada em clientes diferentes. Para tal, basta atribuir-lhe um resource (exemplo: [email protected]/Home , [email protected]/Mobile , [email protected]/work , [email protected]/PDA , and so on). Paralelamente, vamos atribuir uma prioridade numérica a cada um dos resources (exemplo, 7 para o [email protected]/Home e 8 para o [email protected]/work). Quando o servidor no j.com receber uma mensagem destinada ao utilizador "e", irá encaminha-la para o resource que tiver maior prioridade (neste caso, o "work").
  • Descentralização - Como foi dito acima, qualquer pessoa com um domínio e uma ligação à Internet pode ter um servidor. Isto leva a que, no caso de o servidor estar em baixo, apenas as pessoas ligadas a ele sejam afectadas, e não toda a gente a usar esse protocolo.
  • Transports - ora, esta é uma feature bastante interessante no XMPP. Basicamente, permite que, através da ligação a um servidor próprio, que estará a correr uma extensão do XMPP, os contactos que estejam nos servidores de outros protocolos (MSN, ICQ, AIM, etc) sejam incorporados na nossa lista de contactos. Neste momento, ainda é uma tecnologia com alguns erros, mas num futuro, poderá evoluir. Cria também uma pequena lentidão, pois há mais um servidor no meio (o gateway).

Muito rapidamente é isto. Deixo-vos agora com uma série de links para quem quiser mais, para além dos que já deixei no texto:

Eu sou um user do XMPP, e dos satisfeitos. Tentem, não morde ninguém :)
 
Última edição:
Eu uso o XMPP através do Google Talk há bastante tempo e estou muito satisfeito. Pelo menos as mensagens são todas enviadas ao contrário do MSN. Só tenho pena que não haja grande aderência ao protocolo, já que é bastante superior.
 
Aí nas principiais características acho que é importante mencionar as vastas possibilidades de formatação graças ao já dito antes facto de ser um protocolo baseado em XML.

Além de ser poder usar todo o tipo de recursos de formatação (cores, tamanho, bold, itálico, underlined, font, super/sub script e outros) podem ser misturandos na mesma mensagem, coisa que, p.e., o MSN não permite, neste último se é definida uma font, com uma cor e sem bold, ao activá-lo essa 'mensagem' ficará toda a bold, não permitindo destacar o que se pretende. Em XMPP este problema não existe :)
 
Última edição:
nice tut, bastante simples =).
faltou apenas mencionar o suporte à criptografia que o xmpp oferece, normalmente os servidores de jabber oferecem SSL por defeito, pode ser tambem usado o GnuPG como uma camada extra de segurança, oferecendo assim encriptação e2e.
quanto a este forum não suporta jid(jabber id) para adicionar nos detalhes de contacto do perfil, despromovendo um pouco a aderência.
fica aqui o meu jid [email protected]
 
Back
Topo