BlueZSpammer: Marketing de proximidad con un HotSpot Bluetooth casero

Iniciado por Gospel, 24 Septiembre 2006, 00:49 AM

0 Miembros y 1 Visitante están viendo este tema.

SirGraham

#20
Hola,

Cuando Gospel en su momento nos comento el hacer esta aplicacion "casera" de marketing de proximidad, nosotros en EndoraSoft ya estabamos haciendo cosas "profesionales" en ese ambito desde el 2003 (en diferentes plataformas). Es nuestro sistema XBlue.

Asi todo le apoyamos y le dimos algunos consejos. Uno de ellos .... (y no me cansare de decirlo) Es que en el "Marketing de proximidad" lo mas sencillo es el envio de ficheros por bluetooth. Cualquiera sabe hacer eso. El problema viene despues: toda la gestion y control necesarios para hacer todos las aplicaciones que permite (o puede permitir) un sistema de este tipo.

Ademas, todo ello indudablemente haciendo un hardware propietario destinado exclusivamente para este fin... (no como, por ejemplo, el Access Point de Bluegiga, que fue desarrollado para otra cosa, o incluso el uso de PCs, etc...)

Nos llegan muchos emails de gente que esta intentando hacer cosas, sin percatarse del trabajo o las dimensiones de un proyecto de este tipo (para hacerlo bien claro)... como ya envia por bluetooth lo demas parece que "no es importante"... 

;D

Luego se encuentran con los problemas: concurrencia, moviles raros, permanete actualizacion de la base de datos, aplicativos que se salen fuera de lo que su diseño puede hacer....

Me temo que esa es la dura realidad...

Aprovecho para Felicitaros a todos los miembros del foro el nuevo año....
O como diria Xenu (moderador de nuestro foro) la celebracion que realizais los mortales por dar una vuelta completa a vuestra estrella....

Saludos,
Sir Graham
   

Gospel

Cita de: SirGraham en 27 Diciembre 2008, 10:49 AM
Aprovecho para Felicitaros a todos los miembros del foro el nuevo año....
O como diria Xenu (moderador de nuestro foro) la celebracion que realizais los mortales por dar una vuelta completa a vuestra estrella....

Este Xenu y su rollo cienciológico... xDDDD

¡FELIZ AÑO a ti también!

SirGraham

Hola Gospel,

Andas por esas tierras de Dios... o has vuelto a casa por navidad (como el turron)?

Ya me contaras que tal te va....

Saludos,
Sir Graham.

   

bluga

Hola a todos,soy un poco nuevo en esto y estoy tratando de hacer un hotspot casero con solo un modulo bluetooth y  a ver si me podeis ayudar.

¿Se podría con un solo bluetooth(hci), extraer servicios y enviar todo concurrentemente o hacen falta dos?. Si es asi, ¿que seria mejor? un proceso para cada tarea y su hilo o hilos correspondientes o solo un proceso con un thread para extraer y otros 6 para enviar?

Y una ultima, para gestionar concurrentemente el envio de archivos,¿hay que especificar en algun sitio (libreria, o programandolo  a parte) que tal envio se hace por tal "canal", y otro envio por otro?(entendiendo por canal a una de las 7 conexiones concurrentes que puede hacer un modulo bluetooth), o eso lo gestiona automaticamente el bluetooth hasta llegar a las 7 conexiones simultaneas?

Muchas gracias. Un saludo

SirGraham

#24
Hola,

Trato yo de contestar a tus dudas... ya que creo algo de experiencia tengo en el tema...
:)

Citar¿Se podría con un solo bluetooth(hci), extraer servicios y enviar todo concurrentemente o hacen falta dos?

No. no hacen falta dos, pero con uno estas bastante mas limitado.

Citar¿que seria mejor? un proceso para cada tarea y su hilo o hilos correspondientes o solo un proceso con un thread para extraer y otros 6 para enviar?

Nosotros empleamos threads multiples para el proceso general de envio y para cada envio en si. En el de busqueda tambien se emplean theads (en las distintas fases de busqueda) mas que nada para evitar ciertos procesos que son bloqueantes. Aunque esto depende mucho del stack de bluetooth y del SO que estes usando (nosotros lo tenemos para varias plataformas: Windows, Linux, Symbian, nuestra plataforma propia, etc...). Por ejemplo en el caso concreto de linux, lo tenemos tambien hecho en noblocking, con lo cual podriamos prescindir del ciertos threads.

No obstante, como diria Yoda: Los threads poderosos son, pero con ellos tener cuidado debes... mi padawan...

Manejar threads implica un control de datos exaustivo en cada momento, en este caso complica mucho el tema si no se hace "escrupulosamente" bien.

CitarY una ultima, para gestionar concurrentemente el envio de archivos,¿hay que especificar en algun sitio (libreria, o programandolo  a parte) que tal envio se hace por tal "canal", y otro envio por otro?(entendiendo por canal a una de las 7 conexiones concurrentes que puede hacer un modulo bluetooth), o eso lo gestiona automaticamente el bluetooth hasta llegar a las 7 conexiones simultaneas?

Por supuesto tienes que realizar una conexion, a cada terminal por su canal correspondiente (en este caso del del Obex Push) y enviar la informacion segun el protocolo de Obex.  Lo de los canales se "sobreentiende" por que si no no tendria ningun sentido usar el SDP en la busqueda. Con un simple inquiry tendriamos suficiente.

No obstante, (por si se te ha pasado por la cabeza) el uso de aplicaciones externas para el envio (como es el caso del BluezSpammer) es incompatible con el uso de threads en concurrencia (si ya de por si es complicado usar threads sin mas, usando con una ejecucion externa de una aplicacion puede pasar cualquier cosa). Asi que lo mas prudente es implementarse el protocolo OBEX y realizar la conexion directamente...

Por otra parte no esperes ("ni de coña") poder llegar a las 7 conexiones simultaneas. En un envio de ficheros el ancho de banda disponible del bluetooth no te da aunque sea Bluetooth 2.0.  Todos los que en Marketing de proximidad calculan las conexiones concurrentes segun la formula:

El numero de modulos bluetooth disponibles x 7 = numero conexiones concurrentes que pueden hacer.

... te mienten DESCARADAMENTE!!!!:P



Como comentario final: una herramienta de estas (marketing de proximidad) parece sencilla al principio...
...pero segun vas mentiendote en el tema ... se torna MUUUCCHOOO mas complicada de lo que parecia.


;D

Saludos,
Sir Graham.




   

bluga

Gracias, por tus respuestas.
Me quedan dudas acerca de cuales procesos son bloqueantes.
por ejemplo ¿podría hacer la extraccion de servicios de 2 moviles a la vez? o bien extraccion a un movil y envio a otro concurrentemente,usando algun mecanismo de sincronización entre los hilos como mutex,semaforos, regiones...

Gracias

SirGraham

Hola,

Entiendo por "extraccion".... a un Inquiry de Bluetooth. Osea obtener los datos de los terminales con bluetooth cercanos.

La operacion bloqueante es un Inquiry.
Esto no quita que no puedas en un thread estar realizando otras. De echo para poder usar el Inquiry sin bloqueo es necesario o bien usar threads o en el caso de Linux implementarla en comandos simples de HCI.

Ahora bien, un scanner completo de Marketing de proximidad es algo mas que un Inquiry....  vamos bastante mas....
...y hasta aqui puedo leer ... como en el 1,2,3....

Saludos,
Sir Graham.