Extensible Messaging and Presence Protocol - XMPP	Ricardo Reis1
TópicosIntroduçãoO que é XMPP ?
HistóriaArquiteturaVisão Geral
XMPP Network
Servidores
Clientes
Gateways
Esquema de EndereçamentoComunicaçãoXMPP Stanzas
Ciclo de vida da conexão  ConclusãoReferências Bibliográficas2
Introdução |O que é XMPP ?XMPP é uma padronização do IETF para comunicação em tempo real.Baseado na linguagem XML.Suporta encriptação TLS e autenticação SASL.3
Introdução |HistóriaNo início só havia o caos, muitas aplicações de mensagens instantâneas . (96,97,98,99)Cada uma com o seu protocolo proprietário.Problemática: usuários de um não podiam se     comunicar com usuários de outro.4
Introdução |HistóriaEm 1999, Jeremie Miller anunciou o projeto Jabber.Jabber Software Foundation (JSF) fundado em 2001 para coordenar a implementação do protocolo Jabber.5
Introdução |HistóriaAprovado em 2002 pelo IETF, possui 2 Request for Comments (RFC)  básicos.O RFC(3920) define os métodos de conexão, arquitetura, semântica das stanzas(Mensagens XML), segurança e transporte de dadosO RFC(3921) define a maneira como as mensagens são enviadas, solicitação e definição de presença, gerenciamento de contatos e etc.6
Introdução |HistóriaMais tarde o protocolo passou a se chamar XMPP.Hoje em dia tem mais de 300 extensões ( XEP).7
Arquitetura |Visão GeralA arquitetura do XMPP é muito semelhante à do correio eletrônico (e-mail):
É necessário que a mensagem passe por um servidor, no mínimo, antes de ser entregue ao destinatário.
Usuários são identificados de forma semelhante: usuario@dominio.
Os servidores se comunicam entre si para entregar mensagens.8
Arquitetura |Visão Geral9
Arquitetura |Visão GeralWTF ? E qual a diferença então ?Correio Eletrônico                    StoreandForward
XMPP                     Real Time
Servidores XMPP sabem quando um usuário esta conectado.10
Arquitetura |XMPP NetworkComposta de atores: Servidores, Clientes, Gateways...O sistema consiste em uma rede de servidores que se comunicam.Clientes conectados em servidores diferentes conseguem se comunicar.11
Arquitetura |ServidoresJobsGerenciar conexões (sessões).
Fazer o roteamento de stanzas.Ex: Ejabberd, Openfire, Jabber...12
Arquitetura |ClientesO que fazem ?Se conectam com servidores através de conexões TCP.
É possível se conectar ao mesmo servidor de dois lugares diferentes.Ex: Adium, Pidgin, AQQ13
Arquitetura |GatewayO que é ?É uma forma especial de traduzir mensagens XMPP para o protocolo utilizado por um sistema de mensagens instantâneas diferente (não XMPP) e vice-versa.
Existem gateways para IRC, MSN Messenger, Yahoo Instant Messenger...14
Arquitetura |Esquema de EndereçamentoClientes que se comunicam devem possuir um ID único. Por razões históricas, chamado de Jabber ID ou JID.O JID é composto por 3 partes:usuário@domíno/recurso15
Arquitetura |Esquema de EndereçamentoDomínioO domínio é o nome DNS da entidade.
Representa o servidor no qual o cliente está conectado.
É o identificador primário.16

XMPP - Extensible messaging and presence protocol