Caio Pedroso

Gustavo Turco

Juliana Saldanha

Kaleb Alves

Telefonia Fixa e VoIP - 2º quadrimestre de 2019

Tópicos

  • Introdução e História;

  • Funcionamento;

  • Comparação;

  • Mitos e lendas;

  • Aplicações.

Extensible

Messaging and

Presence

Protocol

P - Protocolo

P - Presença

M - Mensagens

X - Extensível

Protocolo Extensível de Mensagens e Presença

  • Desenvolvido na comunidade de código aberto Jabber;

  • Protocolo projetado para mensagens instantâneas e controle de presença;

  • É um protocolo de comunicação para MOM (Message-Oriented Middleware) baseado em XML (Extensible Markup Language);

  • Permite a troca quase em tempo real de dados estruturados e extensíveis entre entidades da rede;

  • É definido em um padrão aberto.

Vantagens

  • Aberto;

  • Padronizado;

  • Comprovado;

  • Descentralizado;

  • Seguro;

  • Extensível;

  • Flexível;

  • Diverso.

Funcionamento

Funcionamento

Nós e JID's

<JID> ::= [<node>"@"]<domain>["/"<resource>]
<node> ::= <conforming-char>[<conforming-char>]*
<domain> ::= <hname>["."<hname>]*
<resource> ::= <any-char>[<any-char>]*
<hname> ::= <let>|<dig>[[<let>|<dig>|"-"]*<let>|<dig>]
<let> ::= [a-z] | [A-Z]
<dig> ::= [0-9]
<conforming-char> ::= #x21 | [#x23-#x25] | [#x28-#x2E] |
                      [#x30-#x39] | #x3B | #x3D | #x3F |
                      [#x41-#x7E] | [#x80-#xD7FF] |
                      [#xE000-#xFFFD] | [#x10000-#x10FFFF]
<any-char> ::= [#x20-#xD7FF] | [#xE000-#xFFFD] |
               [#x10000-#x10FFFF]

Funcionamento

XMPP Core

XMPP Extensions

Dados de Comunicação;
Segurança;
Mensageira One to One.

Chat multi usuários;
Requisições HTTP;
Avatares (fotos perfil).

Funcionamento

Funcionamento

Stanza

<message
    from='marquinhosGabriel@cruzeirao.lit/pda'
    id='6x1'
    to='vitorhugoleirodoGalo@atletico.lit
    type='chat'>
    
    <body> esse ano a liberta é nossa! </body>
</message>
<message
    from='professor@ufabc.aba'
    id='argxbra'
    to='turmaTelefonia@ufabc.aba'
    type='groupchat'>
    
    <body> Hoje não tem aula </body>
</message>

Funcionamento

Em uma aplicação moderna...

const xml = require('@xmpp/xml')
 
const recipient = 'user@example.com'
const days = ['Monday', 'Tuesday', 'Wednesday']
const message = xml(
  'message',
  {to: recipient},
  xml('body', {}, 1 + 2),
  xml('days', {}, days.map((day, idx) => xml('day', {idx}, day)))

Concorrência: Websockets

  • Apoio de grandes browsers;

  • Canais de comunicação persistentes e centralizados;

  • Número ilimitado de sessões abertas.

Comparação

XMPP Websocket
Velocidade
Transferência de dados
Flexibilidade
Acessibilidade
Segurança

Mitos e Lendas

"XMPP é baseado em XML e portanto é lento."

Mitos e Lendas

"XMPP é incompetente para a Web."

Mitos e Lendas

"A base do XMPP é muito pequena e funções que deveriam ser essenciais são colocadas como extensões depois."

Aplicação: Mensagem Instantânea

  • Mensagens individuais e em grupo;

  • Notificações de presença;

  • Lista de contatos;

  • Fácil criação de novos aplicativos de maneira segura e escalonável;

  • Notificações push;

  • Arquivo de mensagens;

  • FunXMPP: versão enxuta do XMPP.

Aplicação: Mensagem Instantânea

Aplicação: Internet das Coisas (IoT)

  • IoT: proporciona a objetos do cotidiano se conectarem à Internet;

  • Protocolos de comunicação;

  • Padrões de comunicação;

  • Escalabilidade e segurança.

Aplicação: Jogos Online

  • Sinalização em tempo real;

  • Presença (status online);

  • Notificações push;

  • Chat no jogo.

Aplicação: Jogos Online

Aplicação: Redes Sociais

  • Segurança: cada usuário se conecta com seu username;

  • Natureza em tempo real: um usuário recebe atualizações de ações de outro que o envolva;

  • Construções de assinatura e publicações: feed de atividades.

Aplicação: Redes Sociais

Aplicação: Militar

  • Rotulagem de segurança de mensagens e salas de conversa com vários usuários;

  • Forte autenticação;

  • Alertas personalizados codificados com base em palavras-chave e no remetente.

Referências Bibliográficas

  • XMPP. XMPP. [S. l.], [201-?]. Disponível em: https://xmpp.org/. Acesso em: 8 jul. 2019.
  • ISODE. Military XMPP. [S. l.], [201-?]. Disponível em: https://www.isode.com/markets/military-xmpp.html. Acesso em: 11 jul. 2019.
  • THINKWIK. Web Sockets vs. XMPP: Which Is Better For Chat Application?. [S. l.], 2 out. 2017. Disponível em: https://medium.com/@thinkwik/web-sockets-vs-xmpp-which-is-better-for-chat-application-113e3520b327. Acesso em: 10 jul. 2019.
  • LEE, David. Fat Markup: Trimming the Fat Markup Myth one calorie at a time. Montréal, Canadá, 6 - 9 ago. 2013. Disponível em: https://www.balisage.net/Proceedings/vol10/html/Lee01/BalisageVol10-Lee01.html. Acesso em: 12 jul. 2019.
  • HUANG, Lin-Shung et al. Transparent Proxies: Threat or Menace?. [S. l.], [201-?]. Disponível em: https://pt.scribd.com/document/45454194/Web-Socket. Acesso em: 15 jul. 2019.
  • CALDAS, Edson. 10 iniciativas brasileiras de Internet das Coisas para ficar de olho. [S. l.], 6 fev. 2018. Disponível em: https://epocanegocios.globo.com/colunas/Tecneira/noticia/2018/02/10-iniciativas-brasileiras-de-internet-das-coisas-para-ficar-de-olho.html. Acesso em: 16 jul. 2019.
Made with Slides.com