Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol | |
---|---|
Intercâmbio de mensagens XML via protocolo XMPP | |
Características | |
Classificação | protocolo de rede (chat) |
Data/Ano | 1999 |
Usado por | WhatsApp, Kontalk, Zoom, Grindr, Mailfence, Jitsi |
Fonte | RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core, RFC 6121: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence |
Commons | Extensible Messaging and Presence Protocol |
página oficial | |
Diferente de | XAMPP |
Localização | |
[ Editar Wikidata ] [ Mídias no Commons ] [ Editar infocaixa ] |
Protocolo de Presença e de Mensagem Extensível, do inglês Extensible Messaging and Presence Protocol (abreviado XMPP, conhecido anteriormente como Jabber[1]), é um protocolo aberto e extensível criado em 2000 por Jeremie Miller, baseado na linguagem de marcação XML para mensageiros instantâneos (sistemas de comunicação em tempo real), desenvolvido originalmente para mensagens instantâneas e informação de presença, formalizado pelo grupo internacional "Força Tarefa de Engenharia de Internet" (IETF). Uma alternativa aos protocolos fechados de comunicação (como por exemplo no ICQ).
Aplicações de software com XMPP são distribuídas por milhares de servidores através da Internet e utilizadas por milhões de pessoas em todo o mundo, de acordo com a XMPP Standards Foundation.[2]
Introdução
[editar | editar código-fonte]Jeremie Miller iniciou o projecto Jabber em 1998; a principal versão pública ocorreu em Maio de 2000. O produto principal do projecto é o jabberd, um servidor em que os clientes XMPP se ligam para se comunicarem. Este servidor pode criar uma rede privada XMPP (por detrás de um firewall, por exemplo) ou pode se juntar à rede XMPP global e pública. O XMPP surgiu como alternativa aos protocolos fechados de comunicação predominantemente utilizados em aplicações como ICQ, MSN Messenger etc. Por ser um protocolo aberto, o desenvolvimento de aplicações que fazem uso do mesmo pode ser feito sem a necessidade de permissões especiais ou pagamento de royalties.
Um conceito chave do sistema XMPP são os chamados transportes, também conhecido como gateways, que permitem aos utilizadores acederem a redes usando outros protocolos tais como AIM, ICQ (usando OSCAR), MSN Messenger e Windows Messenger (com o .NET Messenger Service), SMS ou E-mail. Ao contrário dos clientes multiprotocolos, como Trillian ou Pidgin, XMPP fornece este acesso no nível de servidor, comunicando via serviços especiais de gateway em um computador remoto. Qualquer utilizador XMPP pode se registrar em um destes gateways, fornecendo a informação necessária para aceder a essa rede, e pode então comunicar-se com os utilizadores dessa rede como se fossem utilizadores de XMPP. Isto significa que qualquer cliente que suportar inteiramente o protocolo XMPP pode ser usado para aceder a qualquer rede em que exista um gateway, sem necessitar de código extra no cliente.
Por ser um padrão aberto, o XMPP favorece a interoperabilidade. Usuários podem escolher a aplicação cliente que mais lhe convém, desde que ela compreenda o protocolo. Existem diversas aplicações que usam XMPP como Gajim, Conversations, Pidgin, Miranda, Kopete, Adium, etc.
O então denominado protocolo Jabber, administrado pela XMPP Standards Foundation (conhecida anteriormente como Jabber Software Foundation), foi aceito pela IETF como padrão sob o nome XMPP, com RFC número 3920. É frequentemente considerado em competição com SIMPLE, baseado no protocolo do SIP, como protocolo padrão da notificação de presença e de mensagens instantâneas; no entanto, o projeto do XMPP tem por finalidade fornecer uma plataforma de interface mais geral entre aplicações.
Em agosto de 2005, a empresa Google lançou o Google Talk, baseado em XMPP, o que ajudou a popularizar o protocolo, em função da grande quantidade de usuários deste produto. Mais tarde, o protocolo continuou sendo usado nos outros serviços de comunicação da empresa, mais precisamente, os serviços de comunicação instantânea embutidos em Gmail e Orkut.
Clientes XMPP
[editar | editar código-fonte]Alguns dos maiores provedores de mensagens usam, ou usaram, várias formas de protocolos baseados no XMPP no sistemas de back-end, como por exemplo o Facebook.[3]
XMPP apenas
[editar | editar código-fonte]Nome | Plataforma | Licença |
---|---|---|
Akeni Jabber Client | Multi-plataforma | Proprietária, gratuito para uso não-comercial |
Coccinella[4] | Multi-plataforma | GPL |
Converse.js[5] | Multi-plataforma | |
Exodus[4] | Windows | GPL |
Gabber | Linux/Unix, Gnome | GPL |
Gajim | Linux/Unix, Windows | |
Google Talk | Windows | Proprietária, gratuito |
Gossip | Linux/Unix, Gnome | GPL |
Jabbear Web and desktop Messenger | Windows, Web | Proprietária |
Jabber Instant Messenger[5] | Windows | Proprietária |
JabberFox | MacOS X | BSD |
Jabbin | Linux/Windows | GPL |
JAJC | Windows | Proprietária |
JBother | Java | GPL |
Jeti | Java | GPL |
Kaidan[5] | Multi-plataforma | |
Nitro | MacOS | GPL |
Pandion | Windows | GPL |
Psi[5] | Multi-plataforma | GPL |
Profanity[5] | Linux/Unix, MacOS | |
Tkabber | Multi-plataforma | GPL |
Gajim | Multi-plataforma | GPL |
UWPX[5] | Windows |
Multi-protocolo com suporte XMPP
[editar | editar código-fonte]Nome | Plataforma | Licença |
---|---|---|
Adium[4] | MacOS X | GPL |
Bitlbee via IRC[4] | Multi-plataforma | Freeware |
Centericq | Multi-plataforma | GPL |
Empathy | Linux/Unix, Gnome | GPL |
Fire | MacOS X | GPL |
Jitsi | Multi-plataforma Windows, Mac OSX, Linux e outros) | LGPL |
Pidgin | Multi-plataforma | GPL |
Gush | ? | Creative Commons |
Kopete | Linux/Unix | GPL |
Miranda IM[5] | Windows | GPL |
Trillian | ? | Proprietária |
SIM | Multi-plataforma | GPL |
Spark[5] | Multi-plataforma | GPL |
Whatsapp[3][6][7] |
Servidor Multi-protocolo com suporte XMPP
[editar | editar código-fonte]Nome | Plataforma | Licença |
---|---|---|
DJabberd | Multi-plataforma | GPL |
ejabberd[3] | Multi-plataforma | GPL |
iChat Server | MacOS X | GPL |
jabberd14 | Multi-plataforma | GPL |
jabberd2 | Multi-plataforma | GPL |
Openfire | Multi-plataforma | Apache License |
Prosody | Multi-plataforma | MIT |
psyced | Multi-plataforma | GPL |
Tigase | Multi-plataforma | GPL |
Exemplo de comunicação cliente-servidor
[editar | editar código-fonte]Um cliente (kuusipuu) se liga a um servidor XMPP (amessage.de porta 5222/tcp), envia uma mensagem (Assunto: "teste 1449" e Corpo: "teste 1449") a um outro cliente (tero) e se desliga.
kuusipuu:
<?xml version="1.0"?> <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="amessage.de">
amessage.de:
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' from='amessage.de' id='1461777714'>
kuusipuu:
<iq type="set" id="auth_2" to="amessage.de" > <query xmlns="jabber:iq:auth"> <username>kuusipuu</username> <password>mypassword</password> <resource>Work</resource> </query> </iq>
amessage.de:
<iq from="amessage.de" id='auth_2' type='result'/>
kuusipuu:
<message to="tero@exemplo.com" > <subject>teste 1449</subject> <body>teste 1449</body> </message> <presence type="unavailable" > <status>Logged out</status> </presence> </stream:stream>
amessage.de:
</stream:stream>
- ↑ «Jabber Inc. - About Us». Consultado em 14 de setembro de 2009. Arquivado do original em 3 de julho de 2007
- ↑ «Fast-Growing Open Network Overtakes IM Originator». Consultado em 11 de setembro de 2009. Arquivado do original em 3 de novembro de 2007
- ↑ a b c ProcessOne (23 de fevereiro de 2014). «Whatsapp, Facebook, Erlang and realtime messaging: It all started with ejabberd / ProcessOne». ProcessOne (em inglês). Consultado em 19 de setembro de 2024
- ↑ a b c d «Lista de clientes XMPP». XMSG Org
- ↑ a b c d e f g h «XMPP Software». XMPP Org. Consultado em 19 de setembro de 2024
- ↑ psanni (8 de março de 2016). «Inside Of WhatsApp : Part 1». Sunny Patel (em inglês). Consultado em 19 de setembro de 2024
- ↑ «WhatsApp? Nicht ohne Risiken.» [Whatsapp? Não sem riscos.]. Shakal. 26 de junho de 2015. Cópia arquivada em 26 de julho de 2015
Ligações externas
[editar | editar código-fonte]Pilha de protocolos TCP/IP |
---|
Camada de aplicação |
Camada de transporte |
Camada de rede |
Camada de enlace de dados |