Está en la página 1de 38

1

Rafael Matito
Sistema de Mensajera Instantnea Corporativa con
Jabber y MySQL.
2
Objetivo
Sistema de mensajera instantnea corporativa
basado en Software Libre.
Basado en estndares abiertos.
Facilidad de administracin de los usuarios del
sistema, de sus rupos ! contactos.
Libertad de eleccin de servidor ! clientes.
Bajo coste.
3
Qu necesitamos?
"
Servidor #abber
#abberd$
#abberd%
Sistema &estor de Bases de 'atos (M!S)L*
+plicacin de estin de usuarios del sistema
,-uipos clientes (.S/,&aim,0opete...*
4
1alidacin
! almacenamiento datos
Servidor
2liente
2liente
Esquema de funcionamiento
Base de datos
Mensajes !
autenticacin Mensajes !
autenticacin
5
Qu es Jabber?
#abber es un protocolo libre estionado por la Jabber
Software Foundation basado en el estndar XML
para mensajera instantnea.
,s una alternativa libre ! seura a servicios como
ICQ, AIM, MSN o Yahoo Meen!er.
Ms conocido como el Linu" de la mensajera
instantnea.
#
Caractersticas
$roto%o&o abierto' 2on todas las ventajas del
software libre, se puede proramar un servidor o un
cliente o ver el cdio, entre otras cosas.
(t)ndar' 3a sido aprobado bajo el nombre de 4M.. por
el /nternet ,nineerin 5as6 Force (/,5F*. Sus
especificaciones 3an sido publicadas como RF2 78%9 !
RF2 78%$.
*e%entra&i+ado' Se puede crear un servidor para
#abber, ! se puede interoperar o unirse al resto de la
red #abber. Similar al email.
("tenib&e' Se puede ampliar con mejoras sobre el
protocolo oriinal. Las e:tensiones comunes son
manejadas por la #abber Software Foundation.
,
Caractersticas
Se!uro' 2ual-uier servidor #abber puede estar aislado del e:terior
(intranet*. Se permite SSL para comunicaciones servidor;cliente !
alunos clientes aceptan &.& como encriptacin de las
comunicaciones usando cifrado asim<trico.
Mu&tirede' =n transporte o pasarela permite comunicarse con
otros protocolos usados por clientes como MS> Messener, /2),
+?L o @a3ooA.
F&e"ib&e' los usos de #abber ms all de la M/ inclu!en
monitoriBacin de red, sindicacin de contenido, 3erramientas
de colaboracin, comparticin de arc3ivos, jueos, supervisin
de sistemas remotos...
*i-ero' una amplia ama de compaCas ! de pro!ectos de
software libre utiliBan los protocolos #abber para construir !
para desplear sus productos ! ! servicios en tiempo real.
Libertad de e&e%%i.n de /ro-eedor0
1
cliente #abber
Servidor #abber
.asarela
Red MS>
2liente MS>
.rotocolo #abber
.rotocolo MS>
Ejemplo de comunicacin
Servidor #abber
cliente #abber
cliente #abber
2
Servidores Jabber
13
Implementaciones
/mplementacin con #abberd$
Ms probado, ms tiempo de desarrollo ! ms estable.
,:isten pa-uetes para la ma!ora de distribuciones
>o utiliBa M!S)L de forma nativa.
/mplementacin con #abberd%
5iene ms caractersticas -ue #abberd$
1ersin menos probada ! por lo tanto menos estable
,s ms difcil encontrar pa-uetes para la ma!ora de distribuciones
=tiliBa M!S)L de forma nativa para autenticacin ! almacenamiento
de datos
11
Implementacin con Jabberd1
Jabberd1 no tiene almacenamiento
de datos ni autenticacin contra
bases de datos de forma nativa. Se
necesita descarar la e:tensin
"db45&0
$ara 6) infor6a%i.n'
htt/'77&ibertonia0e%o6/o&inu"0or!7tor87233472721713113713#5
12
Implementacin con Jabberd1
$. /nstalar &>= .t3
%. 'escarar #abberd$ en DusrDlocal ! compilar
7. .robamos el servidor
ErootFserverGDusrDlocalDjabberd;$.H.7IJ .DjabberdDjabberd ;3
servidor.dominio
H. 'escaramos :dbKs-l dentro del directorio donde
tenemos #abberd$
L. /nstalamos las cabeceras ! fic3eros de desarrollo de
M!S)L (m!s-l;devel*
13
Implementacin con Jabberd1
M. Modificamos el fic3ero Ma6efile de :dbKs-l
J =ncomment t3e file t3at corresponds to !our 'B
:dbKs-lK?B#,25SN O
:dbKs-lKm!s-l.o O
:dbKs-l.o O
:dbKs-lKaut396.o O
:dbKs-lKaut3.o O
:dbKs-lKoffline.o O
:dbKs-lKreister.o O
:dbKs-lKconfi.o O
:dbKs-lK-uer!def.o O
:dbKs-lKroster.o O
:dbKs-lKlast.o O
:dbKs-lKbac6end.o O
:dbKs-lKvcard.o O
:dbKs-lKfilter.o O
:dbKs-lKeneric.o O
J :dbKs-lKps-l.o
J :dbKs-lKodbc.o
allG :dbKs-l.so
14
P. 2ompilamos :dbKs-l
Implementacin con Jabberd1
Q. 2reamos la base de datos
ErootFserverGDusrDlocalDjabber;$.H.7D:dbKs-lIJ m!s-l ;u root ;p
R sampleKdabase.s-l
8. ,ditamos el fic3ero :dbKs-l.:ml (seccin
connection*
RA;; 2onfiure information about t3e S)L connection ;;S
RconnectionS
R3ostSservidor.dominioRD3ostS
RdbSjabberRDdbS
RuserSjabberRDuserS
RpassStuclaveRDpassS
RDconnectionS
15
Implementacin con Jabberd1
$9. ,ditamos el fic3ero jabber.:ml (seccin :db*
R:db idNT:dbTS
R3ostDS
RnsSjabberGi-GrosterRDnsS
RnsSjabberG:GofflineRDnsS
RnsSjabberGi-GfilterRDnsS
RnsSjabberGi-GlastRDnsS
RnsSjabberGi-Gaut3RDnsS
RnsSjabberGi-Gaut3G96RDnsS
RnsSjabberGi-GreisterRDnsS
RnsSvcard;tempRDnsS
RloadS
R:dbKs-lSDusrDlocalDjabber;$.H.7D:dbKs-lD:dbKs-l.soRD:dbKs-lS
RDloadS
RjabberdGincludeSDusrDlocalDjabber;
$.H.7D:dbKs-lD:dbKs-l.:mlRDjabberdGincludeS
RloadS
R:dbKfileS.D:dbKfileD:dbKfile.soRD:dbKfileS
RDloadS
R:dbKfile :mlnsNTjabberGconfiG:dbKfileTS
RspoolSRjabberdGcmdline flaN s S.DspoolRDjabberdGcmdlineSRDspoolS
RD:dbKfileS
RD:dbS
1#
Implementacin con Jabberd2
'e a3ora en adelante se asumir -ue se
3a seuido esta implementacin para la
confiuracin del servidor, emisin de
mensajes del sistema...
1,
Requisitos de Jabberd2
?penSSL (versin 9.8M o superior*
Libidn (versin 9.7 o superior*
B' para almacenar datos
M8SQL
Ber6ele! 'B .ostreS)L
Sistema para autenticar
M8SQL
Ber6ele! 'B
?penL'+.
.+M
?racle
.ostreS)L
?racle
11
Instalar Jabberd2
$. 'escaramos el cdio fuente
%. 2onfiuramos
.Dconfiure UUenableUm!s-l UUenableUssl
UUenableUidn
7. 2ompilamos e instalamos
Los fic3eros de confiuracin estarn en
DusrDlocalDetcDjabberd
12
Configuracin del servidor
$. ,stablecer el 3ostname en sm.:ml ! en c%s.:ml
RAUU Session manaer confiuration UUS
RsmS
RidSservidor.dominioRDidS
RAUU Local networ6 confiuration UUS
RlocalS
RidSservidor.dominioRDidS
sm.:ml
c%s.:ml
23
Configuracin del servidor
7. 2onfiurar sm.:ml para usar M!S)L como sistema de
almacenamiento.
%. 2rear la base de datos jabberd% ! establecer la
confiuracin del usuario
Jm!s-l ;u root ;p R toolsDdb;setup.m!s-l
RAUU Storae database confiuration UUS
RstoraeS
RAUU B! default, we use t3e M!S)L driver for all
storae UUS
RdriverSm!s-lRDdriverS
21
Configuracin del servidor
RAUU M!S)L driver confiuration UUS
Rm!s-lS
RAUU 'atabase server 3ost and port UUS
R3ostSlocal3ostRD3ostS
RportS779MRDportS
RAUU 'atabase name UUS
RdbnameSjabberd%RDdbnameS
RAUU 'atabase username and password UUS
RuserSjabberd%RDuserS
RpassSsecretRDpassS
RtransactionsDS
RDm!s-lS
7. 2onfiurar sm.:ml para usar M!S)L como sistema de
almacenamiento.
22
Configuracin del servidor
H. 2onfiurar c%s.:ml para usar M!S)L como sistema de
autenticacin
RAUU +ut3enticationDreistration database
confiuration UUS
Raut3reS
RAUU Bac6end module to use UUS
RmoduleSm!s-lRDmoduleS
23
Configuracin del servidor
RAUU M!S)L module confiuration UUS
Rm!s-lS
RAUU 'atabase server 3ost and port UUS
R3ostSlocal3ostRD3ostS
RportS779MRDportS
RAUU 'atabase name UUS
RdbnameSjabberd%RDdbnameS
RAUU 'atabase username and password UUS
RuserSjabberd%RDuserS
RpassSsecretRDpassS
RDm!s-lS
H. 2onfiurar c%s.:ml para usar M!S)L como sistema de
autenticacin
24
Configuracin del servidor
L. .robar el servidor
DusrDlocalDbinDjabberd
,:iste un script llamado jabberd.rc en el directorio tools
-ue nos permitir arrancar ! parar el servidor
automticamente
25
Otras tareas de configuracin
2rear un usuario administrativo
'es3abilitar el reistro pVblico de cuentas
Wabilitar -ue los usuarios puedan cambiar las
claves
2onfiurar #abberd% para cone:iones SSL
2#
Base de datos
aut3reG almacena los usuarios reistrados
-ueueG almacena los mensajes aVn no entreados
roster;roupsG almacena los rupos
roster;itemsG almacena los contactos
vcardG almacena la informacin personal de los
usuarios
2,
Gestin de usuarios y contactos
+plicacin de estin
de usuarios
Servidor #abberd%
Scripts de
sincroniBacin
usuarios jabberd%
21
Ejemplo de script
22
Gestin de usuarios y contactos
jabberd%
Servidor #abberd%
+plicacin sin desarrollar
; &estin de los usuarios
; &estin de los contactos
; &estin de los rupos
33
Equipos clientes
,:isten muc3os clientes de #abber
Fcil e intuitivo
Multiplataforma
Multiprotocolo
?tras caractersticasG rupos de conversacin,
envo de mensajes a rupos, rupos anidados...
31
Equipos clientes
32
Emisin de mensajes automticos
/nsertando reistros en la tabla 5ueue.
.roramando un script en /h/ -ue 3aa uso de la
clase 9%&a0:abber0/h/; 3ttpGDDcjp3p.netflint.net
=tiliBando jabberdKalert.pl
33
Insertar registros en la tabla queue
,s una tabla -ue usa internamente el servidor
:abberd2, no se recomienda su alteracin desde el
e:terior.
Si el destinatario est conectado en el momento de la
emisin del mensaje no lo recibir 3asta -ue
desconecte ! vuelva a conectar.
,s mu! sencillo realiBar un script -ue inserte reistros
en esta tabla con el formato de los mensajes.
La tabla 5ueue mantiene una lista de todos los
mensajes -ue aVn no 3an sido entreados a sus
destinatarios.
34
Utilizando jabberd_alert.pl
.DjabberKalert.pl Ue destinatarioFdominio.com Un
emisorFdominio.com Uw clave
e N jid del receptor
n N jid del emisor
w N clave del usuario emisor
35
Utilizando la clase class.jabber.php
3#
Un caso de xito, Provivienda
.rovivienda tiene sus empleados en muc3os centros
de trabajo.
2on el fin de a3orrar costes en tel<fono ! ailiBar las
comunicaciones se vena empleando otro sistema de
mensajera instantnea.
,ste sistema no permita la sincroniBacin con la
aplicacin de estin de los empleados, de tal forma
-ue todas las modificaciones 3aban de 3acerse a
mano ! distribuir los cambios.
3,
Un caso de xito, Provivienda
Los usuarios usan #abber de forma transparente, no
necesitan conocer la tecnoloa sub!acente.
5odos los empleados tienen todos los contactos en
los rupos (departamentos ! centros de trabajo* a
los -ue pertenecen, sin importar los traslados, altas
ni bajas.
'isponen de informacin actualiBada sobre el resto
de empleados (tel<fonos, fa:, direccin, email...*.
5ienen una forma cmoda ! rpida de compartir
fic3eros e informacin.
31
Dudas y preguntas

También podría gustarte