Your SlideShare is downloading. ×
Marketing de Proximidad y Open Source :-: Sesion 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Marketing de Proximidad y Open Source :-: Sesion 2

2,735

Published on

Segunda sesión del taller sobre marketing de proximidad y herramientas opensource celebrado en el Gran Canaria Desktop Summit 2009

Segunda sesión del taller sobre marketing de proximidad y herramientas opensource celebrado en el Gran Canaria Desktop Summit 2009

Published in: Technology, News & Politics
3 Comments
0 Likes
Statistics
Notes
  • hola que tal, soy nuevo en esto de software libre, me podrian ayudar en algunas cosas.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Con las herramientas de Bluez la verdad no se como diferenciar entre ignorados y rechazados. En cambio con la libreria Bluecove se puede saber porque los ignorados provocan una excepción timeout mientras que los rechazados devuelven una excepcion de error. Espero haberte solucionado la pregunta.

    Saludos.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hola, muy buena explicación, pero
    ¿Cómo consigues diferenciar entre los ignorados y los rechazados?

    Saludos
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
2,735
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
110
Comments
3
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Marketing de proximidad y Herramientas OpenSource GCDS09 Roberto Dí az Ortega (info@rdiaz.es) Gema Socorro Rodrí guez (info@gemasr.com) Universidad de Las Palmas de Gran Canaria
  • 2. Sesión 2 Librería Bluez Funcionalidades Arquitectura Ejemplo de uso Librería Bluecove Estructura Ejemplo de uso Diversas demos sobre funcionamiento de BlueZ y bluecove
  • 3. ¿Qué es BlueZ? BlueZ proporciona soporte para el núcleo de Bluetooth y sus protocolos, además dispone de interesantes características como: ✔ Implementación completamente modular ✔ Sistema Multithread ✔ Soporte para multiples dispositivos Bluetooth ✔ Abstracción real del hardware ✔ Socket standard para todas las capas ✔ Soporte de seguridad a nivel de dispositivo y servicio
  • 4. ¿Qué es BlueZ? (II) Actualmente Bluez implementa los siguientes módulos: ✔ Bluetooth kernel subsystem core ✔ Capas L2CAP y SCO audio kernel ✔ RFCOMM, BNEP, CMTP y HIDP kernel ✔ HCI, UART, USB PCMCIA y virtual devices drivers ✔ Librerias generales y librerias SDP así como demonios ✔ Utilidades de configuración y testeo ✔ Decodificadores de protocolo y herramientas de análisis
  • 5. Arquitectura de BlueZ GNOME KDE Maemo OpenMoko D-Bus System Bus BlueZ Core + Servicios
  • 6. Arquitectura de BlueZ (II)
  • 7. Arquitectura de BlueZ (III) La Pila de protocolos de BlueZ esta definida como:
  • 8. Empieza la acción.... La librería BlueZ esta disponible en la mayoría de las distribuciones linux actuales: La instalación en distribuciones tipo debian: apt-get install libbluetooth-dev bluez-utils La instalación en distribuciones tipo fedora: yum install bluez-devel Para envíos bluetooth también es necesario instalar ObexFTP
  • 9. Empieza la accion... (II) Una vez instalada la librería BlueZ en el equipo se tiene acceso directo desde la consola de comandos al dispositivo bluetooth: Inicio del servicio de bluetooth en el equipo: /etc/init.d/bluetooth start Una vez iniciado el servicio comenzamos a trabajar con el hcitool, la herramienta del controlador del interfaz.
  • 10. hcitool Una vez instalada la libreria BlueZ se tiene acceso directo al dispositivo bluetooth desde el equipo. El comando hcitool permite obtener y configurar gran parte de las características bluetooth: ✔ dev: Listado de dispositivos locales ✔ inq: Busqueda de dispositivos remotos ✔ scan: Busqueda de dispositivos remotos ✔ name <bdaddr>: Nombre de un dispositivo remoto ✔ info <bdaddr>: Información de un dispositvo remoto ✔ con: listado de conexiones abiertas ✔ rssi: nivel de potencia de señal recibida
  • 11. hcitool (demo)
  • 12. sdptool Una vez se conocen los dispositivos por medio del hcitool. sdptool permite obtener los servicios bluetooth asociados a cada dispositivo remote: ✔ search <bdaddr> service: búsqueda de servicios ✔ browser <bdaddr>: Listado de servicios remotos
  • 13. sdptool (demo) Teclado no encontrado… presione cualquier tecla para continuar… by Windows
  • 14. rfcomm El servicio rfcomm implementa un puerto serie vía bluetooth: ✔ bind <dev> <bdaddr> <canal>: Abre una conexión RFCOMM ✔ release <dev>: Cierra conexión abierta
  • 15. Comandos AT (hacking mode ON ...) Los comandos AT permiten acceder a las capacidades de comunicación de los dispositivos remotos a través de bluetooth: ✔ ATI: Devuelve el fabricante del dispositivo ✔ AT+CGMM: Devuelve el modelo del dispositivo ✔ AT+CGMR: Devuelve el firmware del dispositivo ✔ AT+CGSN: IMEI del terminal ✔ AT+CBC: Devuelve la carga de la batería ✔ ATD<numero>;: Inicia una llamada de teléfono
  • 16. rfcomm y Comandos AT (demo)
  • 17. obexftp y el marketing Obexftp es una aplicación que permite el envío de archivos a través del protolo OBEX: obexftp -b <dbaddr> -B <canal Obex> -U -p <fichero>
  • 18. obexftp demo
  • 19. Integrando todo .... (demo) Llegados a este punto se disponen de todas las herramientas necesarias para llevar a cabo la integración y creación del primer emisor bluetooth
  • 20. Bluecove Bluecove es una libreria java que implementa la especificación JSR-82 multiplataforma. ✔ La librería soporta los siguientes perfiles bluetooth: ✔ SDAP: Perfil de descubrimiento de servicios ✔ RFCOMM: Emulación del puerto serie ✔ L2CAP: Enlace lógico y protocolo de adaptación ✔ OBEX:Protocolo de intercambio de archivos
  • 21. Bluecove
  • 22. Bluecove (LocalDevice) La clase LocalDevice define las funciones básicas de bluetooth sobre el dispositivo local ✔ getBluetoothAdress: obtiene la dirección local ✔ getDeviceClass: Obtiene la clase del dispositivo local ✔ getDiscoverable: Permite saber si el dispositivo es descubrible ✔ getDiscoveryAgent: Obtiene el discovery agent del dispositivo ✔ getFriendlyName: Obtiene el nombre del dispositivo ✔ getLocalDevice: Obtiene el control del dispositivo local ✔ setDiscoverable: Configuración descubrible
  • 23. Bluecove (RemoteDevice) La clase RemoteDevice define las funciones básicas de bluetooth sobre el dispositivo remoto ✔ getBluetoothAdress: obtiene la dirección remoto ✔ getFriendlyName: Obtiene el nombre del dispositivo ✔ getRemoteDevice: Control del dispositivo remoto bajo un protocolo determinado por conn
  • 24. Bluecove (DiscoveryAgent) La clase DiscoveryAgent proporciona los métodos necesarios para la búsqueda de dispositivos y servicios ✔ cancelInquiry: detiene la búsqueda de dispostivos ✔ cancelServiceSearch: Detiene la búsqueda de servicios ✔ searchService: Implementa la búsqueda del servicio indicado por UUID ✔ startInquiry: Inicia la búsqueda de dispositivos
  • 25. Bluecove (DiscoveryListener) La interfaz DiscoveryListener incluye los diferentes métodos que se ejecutan durante la búsqueda de dispositivos y servicios ✔ deviceDiscovered: Se ejecuta al encuentrar un dispositivo ✔ inquiryCompleted: Ejecutado al finalizar la búsqueda ✔ serviceDiscovered:Se ejecuta al encontrar un dispositivo ✔ serviceSearchCompleted: Ejecutado al finalizar la búsqueda de servicios
  • 26. Bluecove (UUID) La clase UUIDdefine los identificadores de cada uno de los servicios de bluetooth Servicios UUID SDP 0x0001 RFCOMM 0x0003 OBEX 0x0008 HTTP 0x000C L2CAP 0x0100 BNEP 0x000F Serial Port 0x1101 ServiceDiscoveryServerServiceClassID 0x1000 BrowseGroupDescriptorServiceClassID 0x1001 PublicBrowseGroup 0x1002 OBEX Object Push Profile 0x1105 OBEX File Transfer Profile 0x1106 Personal Area Networking User 0x1115 Network Access Point 0x1116 Group Network 0x1117
  • 27. OBEX (ClientSession) La interfaz ClientSession proporciona los métodos para peticiones OBEX, estableciendo las cabeceras de conexión de OBEX. ✔ connect: Establece una conexión OBEX ✔ disconnect: Cierra la conexión OBEX actual ✔ createHeaderSet: Crea una cabecera OBEX para una conexión ✔ put: Realiza una operación de envío de comando
  • 28. OBEX (HeaderSet) La interfaz HeaderSet establece las cabeceras de la comunicación a través de OBEX y recibe las respuestas del dispositivo remoto ✔ getResponseCode: Obtiene la respuesta del dispositivo ✔ setHeader: Configura parámetros de la cabecera
  • 29. OBEX (Operation) La clase Operation implementa los métodos para la manipulación de operaciones de PUT y GET simples a través de OBEX Hereda de la clase io los métodos de openInputStream y openOutputStream
  • 30. Estructura de un emisor bluetooth Un sistema de marketing de proximidad esta compuesto por los siguientes bloques: Monitorización y logs Gestión de dispositivos Gestión de envíos remotos obexFTP Bluez
  • 31. Gestión de dispositivos remotos inicio Busqueda de dispositivos Busqueda de servicios inicio si Baneado no Envío
  • 32. Gestión de dispositivos remotos registrar Solicitud de envio Banear Enviar archivo si Aceptado registrar no Banear si Rechazado no inicio
  • 33. Monitorización y Logs Este módulo constituye una base de datos donde se almacenan los datos de envíos aceptados, rechazados ignorados. Gracias a estos ficheros de logs se puede evitar que el sistema envíe a un usuario que haya rechazado una nueva petición de envío. Se pueden establecer políticas de reenvío en función de parámetros como tiempo desde el último envío rechazado.
  • 34. nodo bluecove (demo) Una imagen vale más que mil palabras pero ocupa más memoria.... proverbio freak

×