XMPP - Comunicando-se através de um protocolo aberto

Preview:

Citation preview

XMPP

Marcelo Terres

Comunicando-se através de um protocolo aberto

• O que é XMPP ?• História• Protocolo• Extensões• Servidores• Clientes• Características que merecem destaque• Openfire• Ejabberd• Tigase e Prosody• Casos de sucesso • Usando XMPP além das mensagens instantâneas

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPComunicando-se através de um protocolo aberto

O XMPP - Extensible Messaging and Presence Protocol (Protocolo Extensível de Mensagens e Presença) é uma tecnologia aberta usada para comunicações em

tempo real, que provê uma ampla gama de aplicações que incluem mensagens instantâneas,

presença, chat multi usuário, ligações de voz e vídeo, colaboração, etc…

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPO que é XMPP ?

• 1998 - criação do protocolo jabber• 1999 - primeiro envio para IEFT• 2000 - lançado jabberd 1.0 e depois o jabberd1.2• 2001 - criada a JSF (Jabber Software Foundations)• 2002 - nova submissão ao IEFT. Criação de workgroup• 2004 - aprovação do core e criação das RFCs 3920, 3921,

3922 e 3923• 2006 - Primeiro XMPP summit e revisão das RFCs• 2007 - JFS se torna XSF (XMPP Standard Foundation)• 2008 - Jabber Inc é adquirida pela Cisco• 2009/2010 - Novas XEP e projetos envolvendo XMPP

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPHistória

• Aberto 

• Suporte a recursos básicos de redes IMo mensagemo transferência de arquivos (XEP-0096 e XEP-0234)o MUC - multi-user chat (XEP-0045)

• Suporte a extensões (XEPs)

• Componentes externos (XEP-0114)

• Padronizado pela XSF

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPProtocolo

• Permite a extensão do protocolo pela adição de novos recursos

• Podem ser submetidas a XSF para análise

• Após aprovadas passam a ser parte integrante do XMPP

• Novas extensões experimentais:o Microblogging over XMPP (XEP-0277) o Jingle Nodes (XEP-0278)o Message Carbons (XEP-0280)

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPExtensões

• jabberd• jabberd2• Openfire (Jive Messenger /

Wildfire)• ejabberd• Prosody• Tigase• M-Link 

     http://xmpp.org/software/servers.shtml

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPServidores

• Linuxo Empathyo Kopete

• Windowso Exoduso Mirandao Pandion

• Maco Adium

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPClientes

• Linux/Windowso Pidgin (Gaim)o Sparko Psio OneTeam (suporte a Jingle Nodes)

• Webo SparkWebo Tigase Messenger

• Mobile     http://xmpp.org/software/clients.shtml

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPClientes

• Cliente multi protocolos para Mac

• Interface clean

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPClientes - Adium

• Interface clean

• Suporte a transportes diretamente no cliente

• Suporte exclusivo a XMPP

• Suporte a Jingle Nodes

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPClientes - OneTeam

• Suporte exclusivo a XMPP

• Interface padrão Windows que facilita a migração, adaptação e utilização por parte de usuários da rede MSN

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPClientes - Pandion

• Suporte a múltiplos protocolos de IM

• Intenso desenvolvimento

• Interface simples

• Múltiplos recursos

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPClientes - Pidgin

• Suporte a múltiplos protocolos de IM

• Suporte a SIP

• Ligações do áudio/vídeo

• Conferências de áudio

• Suporte a Jingle Nodes em desenvolvimento

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPClientes – Sip Communicator

• Federação (Server 2 Server)

• Integração com outros softwares e serviços

• Gateways para integração com outras redes de IM

• Jingle Nodes

• Versatilidade

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPCaracterísticas que merecem destaque

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.com

Licença Creative Commons Atribuição 3.0 Brasil

XMPPFederation (server 2 server)

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.com

Licença Creative Commons Atribuição 3.0 Brasil

XMPPIntegração com softwares e serviços

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.com

Licença Creative Commons Atribuição 3.0 Brasil

XMPPGateways

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.com

Licença Creative Commons Atribuição 3.0 Brasil

XMPPJingle Nodes

• Ejabberd 2.x possui suporte. Servidor Talk.im já implementado

• Cliente OneTalk em fase beta. Versão estável para iPhon.

• Suporte a Openfire em fase alpha

• Cliente Openfire em fase de desenvolvimento

• Implementação de suporte no Sip Communicator em andamento

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPJingle Nodes

• Pode ser utilizado com as principais linguagens de programação do mercado (várias bibliotecas disponíveis):

• Ruby• Python• Java• Perl• Etc..

• A criatividade do desenvolvedor é o limite:• Projetos de interação com outros softwares• Bots• Controle remoto de aplicações

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPVersatilidade

• Plugins (Auditoria, Gateways, Mensagens para grupos)

• Controle avançado de S2S (server 2 server)

• Instalação simples e rápida

• Console administrativo web simples e completo

• Desenvolvimento em Java 

• Nova versão (3.7.0) em estágio beta 

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPOpenfire - Prós

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.com

Licença Creative Commons Atribuição 3.0 Brasil

XMPPOpenfire – Console do administrador

• Desenvolvimento lento (última versão final de maio/2009)

• Dependência do Java

• Clustering depende de componente pago (Oracle Coherence)

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPOpenfire - Contras

• Lista Openfire-br : mais de 500 membros• Cliente Spark – recursos próprios específicos para

Openfire– Fastpath– Sip Phone– Asterisk IM– Controle de uso de clientes

• Spark – desenvolvimento estagnado• Compatível com Red5 (Servidor Flash Open Source)• Redfire = Openfire 3.7.0 + Red5

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPOpenfire

• Desenvolvimento acelerado com novos releases mensais

• Suporte a novas XEPs e desenvolvimento de novos produtos usando o servidor como base

• Versão 3.0 já em fase alpha 1

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPejabberd - Prós

• Desenvolvimento em Erlang

• Administração mais complexa e com menor flexibilidade

• Falta de uma estrutura padronizada de plugins (módulos)

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPejabberd - Contras

• Tigase– Desenvolvimento pleno– Suporte a Cluster– Desenvolvimento em Java– Várias XEPs implementadas e suporte a vários DBs– Monitoração por SNMP, HTTP e XMPP

• Prosody– Desenvovimento pleno– Desenvolvimento em Java– Simplicidade na implementação do servidor (segundo os

desenvolvedores)

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPTigase e Prosody

• Jabber.orgo mais de 300 mil contaso mais de 10 mil usuários

simultâneos  • Google Talk

      • Sua empresa

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPCasos de sucesso

Redes Sociais

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPUsando XMPP além do IM

Waves

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPUsando XMPP além do IM

Web feeds em realtime

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPUsando XMPP além do IM

PERGUNTAS

MAIS INFORMAÇÕES EM

 XMPP Standard Foundationhttp://xmpp.org/

Lista Openfire-BRhttp://listas.softwarelivre.org/cgi-bin/mailman/listinf/openfire-br Lista ejabberd-BR http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/ejabberd-br

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPComunicando-se através de um protocolo aberto

  Contato

 Marcelo Terres<mhterres@yahoo.com>

                Mundo Open Source                    http://mundoopensource.blogspot.com

Twitter/Identi.ca@mhterres

Autor: Marcelo H. Terres (mhterres@yahoo.com) - http://mundoopensource.blogspot.comLicença Creative Commons Atribuição 3.0 Brasil

XMPPComunicando-se através de um protocolo aberto