Protocolo Extensível de Mensagens e Presença Logotipo do protocolo XMPP.
Função | Mensagem instantânea |
---|---|
Acrônimo | XMPP |
Data de criação | 1999 |
Porto | 5222 (cliente - servidor) e 5269 (servidor - servidor) |
RFC | RFC 6120 - RFC 6121 - RFC 6122 - RFC 3922 - RFC 3923 |
Extensible Messaging and Presence Protocol (que pode ser traduzido por "protocolo extensível de presença e mensagem"), muitas vezes abreviado comoXMPP, é um conjunto deprotocolos depadrão abertoda Internet Engineering Task Force (IETF) paramensagens instantânease, mais geralmente, um arquitetura descentralizada de troca de dados. O XMPP também é um sistema de colaboração e troca de multimídia quase em tempo real por meio de sua extensãoJingle, da qualvoz sobre rede IP(telefonia pela Internet),videoconferênciae troca de arquivos são exemplos de aplicações.
O XMPP é composto por um protocolo TCP / IP baseado em uma arquitetura cliente-servidor que permite trocas descentralizadas de mensagens instantâneas ou não, entre clientes, no formato Extensible Markup Language (XML). O XMPP está em constante e aberto desenvolvimento dentro da IETF .
Os servidores podem ser privados ( intranet ) ou públicos, ou seja, ligados a outros servidores públicos via Internet (como no Facebook ). Todos os servidores públicos criam a chamada rede Jabber (ou rede XMPP).
O XMPP é, portanto, usado em todo o mundo por centenas de servidores públicos e privados e milhões de usuários. Muitos players industriais usam XMPP, como Apple , Cisco , Gizmo5 , GNOME , Google , IBM , Oracle Corporation , etc.
O protocolo XMPP é separado em duas partes diferentes:
O XMPP é projetado de forma mais ampla e aberta do que apenas mensagens instantâneas proprietárias e populares. É, portanto, usado por empresas e administrações no contexto de trocas de dados entre aplicativos ( ETL , EAI , ESB ) dentro de sistemas de informação, mas também no contexto de computação em grade , notificações de alerta ou 'informação, supervisão de sistema e rede ou computação em nuvem . Finalmente, o XMPP também é usado no campo de compartilhamento e colaboração quase em tempo real, como quadro branco interativo (TBI) ou edição e desenvolvimento colaborativos, mas também jogos na Internet (especialmente jogos de cartas). E platô).
Foi em 1998 que Jeremie Miller inventou o Jabber, um protocolo de mensagens instantâneas baseado em XML . Seu trabalho foi inspirado no ICQ , criado em 1996, o primeiro sistema do gênero.
Em janeiro de 1999, ele anunciou publicamente no Slashdot “uma plataforma de computação de código aberto completa para mensagens instantâneas com comunicação transparente para outros sistemas de mensagens instantâneas (mensagens instantâneas)”. O protocolo foi desenhado, assim como um servidor funcional ( jabberd ) e clientes de teste (WinJab e Gabber).
Em agosto de 1999, Jeremie Miller pediu a padronização do protocolo pelo IETF a fim de promover padrões abertos e interoperabilidade. O IMPP WG foi então criado e publicado em fevereiro de 2000, as RFCs 2778 e 2779, mas não chegou a um consenso.
O servidor jabberd 1.0 de código aberto foi lançado em maio de 2000 e estabiliza o protocolo. Em junho, Jeremie Miller publica um Internet-Draft, mas o prazo já passou. A versão 1.2 do jabberd introduziu o dialback que evita o roubo de identidades do servidor.
A Jabber Software Foundation foi criada em agosto de 2001 para coordenar o número crescente de desenvolvedores de código aberto e empresas que adotam tecnologias Jabber, bem como para gerenciar a documentação, criação e manutenção de protocolos XML.
Em 2002, os rascunhos da Internet são novamente submetidos à IETF como XMPP Core e XMPP IM, e um XMPP WG é criado.
O RFC 3920 XMPP Core e XMPP-IM 3921 e o RFC 3922 e 3923 CPIM E2E são aceitos em outubro de 2004.
Em 2007, o JSF se tornou o XSF para XMPP Standards Foundation e ofereceu serviços de autoridade intermediária de certificação TLS / SSL.
A Apple introduziu o suporte ao Jabber em seu software de mensagens iChat fornecido com o OS X Tiger em maio de 2005.
Google de 2005 a 2013A empresa Google lançou o Google Talk em agosto de 2005, um cliente XMPP proprietário vinculado aos servidores do Google. Este cliente fornece voz (telefonia pela Internet) através do protocolo Jingle , cujas especificações são publicadas com a biblioteca libjingle. O JSF então se encarrega de sua padronização. Poucos meses depois, esses servidores são abertos para a rede Jabber. Em maio de 2013, o Google anunciou sua intenção de abandonar o XMPP em favor do protocolo proprietário Hangouts do Google+ .
Facebook de 2008 a 2015Em maio de 2008, os desenvolvedores do Facebook anunciaram suporte para XMPP para seu aplicativo de bate-papo . A implementação entrará em vigor em 10 de fevereiro de 2010, porém o servidor não está conectado ao restante da rede Jabber. Em julho de 2015, o Facebook removeu o suporte para XMPP, forçando-o a passar por sua própria API.
Testes de ICQ / AIM e Yahoo!Em janeiro de 2008, a AOL , então fornecedora dos softwares de mensagens instantâneas ICQ e AIM (compatível e baseado no protocolo OSCAR ), montou um servidor experimental que permite a conexão via XMPP. É, portanto, uma base de mais de 50 milhões de usuários que expande a rede Jabber. Em fevereiro de 2008, o Yahoo! , proprietário do Yahoo! Messenger , também anuncia interesse em XMPP. Desde então, os servidores podem se conectar a outros servidores XMPP
Skype em 2011Em junho de 2011, o Skype anunciou a criação de um conector XMPP na versão Windows de seu software cliente em desenvolvimento. No entanto, o uso é limitado a texto e não a vídeo / áudio. Essa integração parecia ter como objetivo conectar-se ao Facebook, que estava usando XMPP .
WLM em 2011Em setembro de 2011, a Microsoft anunciou que o Windows Live Messenger (também chamado de MSN (da MicroSoft Network)) oferecerá uma maneira de se conectar a suas mensagens instantâneas por meio do protocolo XMPP usando o sistema de autenticação OAuth no contexto de seu novo sistema operacional Windows 8 e especialmente os serviços online associados a ele. No entanto, a integração será feita apenas no nível cliente-servidor, proibindo as pessoas presentes em outros domínios XMPP (como gmail.com ou jabber.org) de interagir com eles, sendo poucas as especificações mantidas.
Este anúncio foi seguido rapidamente pela integração em clientes de e-mail alternativos com suporte a vários protocolos.
Pode ser interessante notar que a Microsoft tem ações no Facebook e comprou o Skype em maio de 2011
Em setembro de 2008, a Cisco anunciou um acordo para adquirir a empresa Jabber Inc .. Nem o XSF, a fundação sem fins lucrativos, nem o protocolo XMPP são afetados por essa aquisição.
XMPP é o coração do Jabber; O XMPP é para o Jabber o que o Protocolo de Transferência de Hipertexto (HTTP) é para a World Wide Web .
O protocolo é mantido pela XMPP Standards Foundation (anteriormente Jabber Software Foundation ) e é padronizado pela Internet Engineering Task Force (IETF) sob o nome de XMPP.
Jeremie Miller iniciou o projeto em 1998 e a primeira versão pública foi lançada em maio de 2000. O principal resultado do projeto é o jabberd , um servidor gratuito que permite que o software cliente se conecte e converse. Este servidor é usado para criar uma rede Jabber privada (atrás de um firewall ), ou para se juntar a outros servidores públicos federados na Internet, para bater papo online com seus correspondentes.
Muitos aplicativos Jabber podem ser criados:
Graças ao Jingle , a extensão multimídia do XMPP, é possível estender os streams a qualquer conteúdo binário: telefonia pela Internet , videoconferência , etc.
A rede de usuários do Jabber é descentralizada, ou seja, é composta por vários servidores interligados. Funciona de forma semelhante ao e-mail : as mensagens instantâneas são transferidas de um utilizador para outro através do respectivo servidor. Outra semelhança, um usuário é identificado por um nome de usuário e um nome de servidor, sendo os dois campos separados por uma arroba "@". Esse identificador é chamado de Jabber ID ou mais simplesmente “endereço Jabber”.
Por exemplo, se um usuário [email protected] deseja se comunicar com [email protected] , o software cliente de Bob primeiro envia sua mensagem para seu servidor ( jabber.org ). Em seguida, o servidor de Bob entrará em contato com o servidor de Gilles ( jabber.cz ) pela Internet e encaminhará a mensagem para ele. Finalmente, o servidor jabber.cz será capaz de contatar o software cliente de Gilles, se estiver online, e comunicar a mensagem a ele (caso contrário, a mensagem será mantida pendente no servidor e entregue quando Gilles estiver online). Obviamente, todas essas etapas são feitas de forma instantânea e transparente para o usuário, assim como os e-mails.
|
↔ |
|
← |
|
→ |
|
↔ |
|
Um "endereço Jabber" é o identificador de um usuário Jabber.
É composto por duas ou três partes:
Esses dois ou três campos são apresentados como usuário @ servidor / recurso ou mais simplesmente como usuário @ servidor , como um endereço de e-mail.
Por exemplo, o usuário bob no servidor jabber.org usando o recurso Work terá o seguinte endereço Jabber:
[email protected]/Work ou mais simplesmente [email protected] , como um endereço de e-mail.
A lista de contatos de um usuário Jabber é armazenada no servidor. Um usuário encontrará sua lista de contatos se ele se conectar ao Jabber em outras estações de trabalho ou com outros clientes.
Presença e estadosQuando um cliente Jabber se conecta (ou desconecta) a um servidor, este anuncia automaticamente a presença online (respectivamente desconexão) do usuário para todos os seus contatos.
Também é possível se tornarem “invisíveis”: o usuário então aparece desconectado aos olhos de seus correspondentes, enquanto vê as notificações de presença de seus contatos.
Existem vários estados de presença: "online", "offline", "ausente" e assim por diante.
Recursos e prioridadesO recurso é uma parte opcional de um endereço Jabber. É o último campo deste, separado dos demais por uma barra ("/").
Um recurso, livremente configurável pelo usuário em seu software cliente, geralmente indica a localização onde um usuário Jabber está localizado. Por exemplo, os valores de Casa , Trabalho , Laptop ou Software são comuns. O recurso se torna útil quando um usuário efetua login de vários locais ou com vários clientes ao mesmo tempo. Seus contatos têm então a opção de enviar-lhe uma mensagem para um ou outro de seus recursos, ou para o padrão, ou seja, o de maior prioridade . Se vários recursos conectados ao mesmo tempo tiverem prioridades iguais, a mensagem será endereçada ao último recurso conectado.
A prioridade é um número inteiro entre -128 e +127. É opcional e configurável na maioria dos clientes Jabber. Em caso de ausência, o servidor considera sua prioridade igual a 0. Seu principal uso é para o envio de mensagens destinadas a um endereço Jabber sem recurso.
TransporteMuitos servidores Jabber oferecem um serviço de transporte (também chamado de gateways ) que permite que o usuário converse com usuários de outros sistemas de mensagens instantâneas.
O usuário pode se cadastrar para estes transportes, fornecendo suas informações específicas para a rede de destino (por exemplo, para o ICQ , é necessário fornecer o UIN ( Nome de Identificação do Usuário ) e a senha). Feito isso, o usuário pode adicionar contatos usando essa outra rede, como faria para um contato usando o Jabber. Atualmente, os transportes estão disponíveis para os protocolos mais utilizados, como IRC , MSN Messenger , Yahoo! Messenger e ICQ / AOL Instant Messenger (AIM). Existem também outros meios de transporte, como serviços de e-mail.
Ao utilizar um transporte, o usuário fica limitado às capacidades do cliente e do transporte utilizado; provavelmente não terá todas as funções do cliente oficial da rede de destino.
Contatos de outras redes aparecem na lista de contatos como contatos Jabber com endereços Jabber específicos: identificador @ transporte . Então, por exemplo:
No entanto, algumas empresas operam esses protocolos e serviços proprietários estão bloqueando ou bloquearam o acesso a servidores Jabber importantes, como jabber.org e jabber.com , em sua rede. Isso, portanto, torna impossível usar os transportes em questão nesses servidores. Algumas empresas Também modificaram seu protocolo, de acordo com algumas A fim de impedir o uso de sua rede por clientes alternativos ou por transportes Jabber.
Grupos de focoOs grupos de discussão ou conferências ("MUC" para " Multi User Chat " ou " GroupChat ") criam conversas para mais de dois usuários, como canais IRC .
É possível criar grupos públicos ou privados, convidar contatos para um grupo, moderar grupos (“ chutar ” e “ banir ” como no IRC), registrar discussões e tornar a sala persistente.
Transferência de arquivosO Jabber permite que os arquivos sejam transferidos diretamente entre os usuários, ou por meio de um proxy intermediário, com a possibilidade de interromper e retomar a transferência.
TinirO Jingle permite sessões de voz sobre rede IP e videoconferência . O Jingle foi integrado a vários clientes Jabber, como Psi , Kopete , Spark e Pidgin desde 2008 . Foi usado pelo Google Talk até 2014, antes de ser substituído pelo Google Hangout .
Publicação-assinaturaUm mecanismo de publicação-assinatura está em desenvolvimento e padronização, o XEP-0060, que envolve a capacidade de distribuir e armazenar informações em servidores Jabber, bem como assinar esses feeds de notícias.
Este mecanismo pode, entre outras coisas, possibilitar a criação de publicações de resumos e artigos, assinaturas desses tópicos, presença estendida, favoritos compartilhados, sistemas de leilão e troca, catálogos online, sistemas de workflow , notificações de eventos ...
Presença estendidaUm mecanismo de presença estendida está em desenvolvimento e padronização , envolve a capacidade de transmitir informação dinâmica relacionada com o estado do utilizador, nomeadamente o seu estado de espírito, a sua atividade, a sua geolocalização, a sua música a ser ouvida, o seu perfil, o seu apelido, a navegação na web, as conversas em grupo, os jogos, os vídeos sendo visto, e certamente mais por vir.
A presença estendida é baseada em uma simplificação e especialização do mecanismo de assinatura de publicação.
Jingle, graças ao seu amplo design, escalabilidade e padronização, oferece um amplo espectro de aplicações:
O protocolo XMPP (Jabber) foi publicado como um " rascunho " pela IETF , para que pudesse se tornar um padrão de mensagens instantâneas.
Em 2002 , o grupo XMPP foi formado e trabalhou na padronização do protocolo. Portanto, em 4 de outubro de 2005, as especificações do protocolo foram publicadas como RFCs . Desde aquela data, a XMPP Standards Foundation cedeu o controle de suas principais tecnologias ao IETF, enquanto continua a desenvolver várias extensões para o protocolo (série XEP).