2. Felipe Martínez
Ingeniero Informático de Sistemas con 15
años de experiencia. En los últimos años me he
especializado en tecnologías móviles (Android
/ iOs / Cross Platform). Me apasiona afrontar
nuevos retos e investigar con nuevas
tecnologías.
#mobilebusiness #mobiledevelopment #apps
Conceptos Básicos…
fmaralv@gmail.com
@fmaralv
http://www.linkedin.com/profile/view?id=215678645
4. Contenidos
Introducción al uso de este SDK basado en la
conectividad
Wifi-Direct
para
implementar
comunicaciones entre apps.
1 - Overview Alljoyn: Introducción y conceptos básicos
para poder hacer uso de este SDK.
Conceptos Básicos…
2 - Ejemplo de App Chat: Ejemplo práctico de cómo
poder hacer uso del SDK de Alljoyn en una app.
6. ¿Qué es Alljoyn?
Alljoyn es una tecnología P2P Open Source que
permite una comunicación inter-dispositivo, basada
en proximidad (no depende de los planes de datos ),
y completamente ad hoc, sin la necesidad de
intermediarios. Esta conectividad se establace
haciendo uso del protocolo Wi-Fi Direct o Bluetooth.
7. Internet of things (IOT)
El objetivo del IOT es permitir el intercambio de
información entre el mundo digital y el mundo
físico.
No existe una definición unificada sobre qué es el
IOT .La mejor forma de explicar el concepto es
imaginar un mundo en el que todos los objetos
cotidianos tienen una relación o una referencia
digital,mediante la tecnología(ej.:RFID). En este
mundo todos los objetos se pueden comunicar
entre sí , almacenando e intercambiando
información.
8. Internet of things (IOT)
El Internet de las Cosas es uno de los pilares del
paradigma Internet del Futuro(Future Internet).
Con IOT se abre la posibilidad de que cualquier
cosa(objeto físico) pueda conectarse a Internet
para transmitir o recibir información.
Este concepto abre la puerta a nuevos modelos de
negocio y nuevos servicios.
Nuevas soluciones cross
los objetos de un
vehículo podrán interactuar con los de edificios ,
otros vehículos o infraestucturas.
9. Desafios de IOT
Lagunas en torno a la privacidad y seguridad.
Falta de estándares globales.
Las Infraestructurasde comunicaciones actuales
han de adaptarse (y a veces hasta crearse
nuevas) para soportar nuevos dispositivos y
protocolos (p. ej. tecnología Zigbee)
Evolucionar los sistemas de procesamiento en
tiempo real actuales, para que puedan soportar
tecnologías Big Data ,Cloud , y Business Analytics.
10. Internet of EveryThing
Del «Internet of Things» al «Internet of EveryThing»
Para llegar al “EveryThing” es necesario dar un salto
exponencial:
El móvil o cualquier otro dispositivo del usuario
será bombardeado por servicios de la ciudad.
2.Necesidad de ampliar las infraestructuras de
comunicaciones actuales y mejora en las
tecnologías Big Data: servicios en tiempo real.
11. Internet of EveryThing
Business Analytics: La información deberá estar
filtrada, para que el usuario sólo reciba la que le
pueda interesar: Información personalizada.
4.Cloud Computing: La información deberá
disponibilizarse de manera global y distribuida.
12. Open Source
Alljoyn se distribuye bajo licencia Open Source por lo
que no tiene ningún coste. Al ser un software basado
en licencia Open Source estamos aceptando los
términos que implican el uso de este tipo de licencia:
http://opensource.org/docs/osd#fields-of-endeavor
13. Open Source
En cualquier caso siempre podremos realizar una
app comercial que hago uso de Alljoyn respetando los
términos de la licencia que nos obliga a mencionar el
propietario original.
15. AllSeen Alliance
Con fecha 10 de Diciembre del 2013 Qualcomm
anuncia su adhesión a la alianza “Allseen Alliance”.
Esta alianza entre grandes empresas como LG,
Sharp, Panasonic ,Silicon Image, Cisco, HTC,…etc.
Esta alianza tiene como objetivo promover el
concepto de “Internet of Things”. Se busca una mayor
interacción entre diferentes sectores como la
educación
,
salud
,
casa
conectada
,
automoción…etc.
16. Ejemplos de Uso
Existen multitud de ámbitos de uso como juegos ,
multipantalla , proximidad social , colaboración
,educación…etc , el limite esta en tu imaginación.
Ejemplos de apps: https://wwwdev.alljoyn.org/app-developers
17. Wi-Fi Direct
Wifi Direct (2010) es un programa de certificación
que en resumidas cuentas permite la conectividad por
proximidad entre dos dispositivos de forma
inalámbrica sin necesidad de un punto de acceso.
Alianza Wifi: http://www.wi-fi.org/about/organization
18. Wi-Fi Direct Vs Alljoyn
Si con Wifi-Direct podemos establecer comunicación entre
dispositivos ¿Para que necesitamos Alljoyn?
Alljoyn no depende de hardware o sistemas operativos
(multiplataforma).
Desarrollar apps que implementen conectividad Wifi-Direct
sin necesidad de trabajar con Android 4.0 (API level 14).
19. Wi-Fi Direct vs Bluetooth
Android soporta Wifi-Direct (2010) desde la v4.0
(API level 14) mientras que Bluetooth v4.0 (2010)
es soportado desde la v4.3 (API level 18).
Wi-Fi Direct ofrece mayor velocidad de conexión y
soporta mayores distancias que Bluetooth
Wifi-Direct (250 Mbps y 656 feet) Vs Bluetooth 4.0
(250 Mbps y 200 feet)
Wi-Fi Direct es más seguro que Bluetooth
Wifi-Direct (WPA2 ) Vs Bluetooth 4.0 ( AES 128-bit )
20. Wi-Fi Direct vs Bluetooth
Wi-Fi Direct tiene mejor compatibilidad con
versiones anteriores que Bluetooth.
http:// www.tested.com/news/166998-google-app-play-0813/
http://www.pcworld.com/article/208778/Wi_Fi_Direct_vs_Bluetooth_4_0_A
_Battle_for_Supremacy.html
21. Futuro
Qualcomm está trabajando en su propia solución a
nivel hardware llamada FlashLinq, que en teoría podría
extender el alcance de Alljoyn a un kilómetro en el
mejor de los casos, y aún sería muy superior a otras
soluciones en el peor.
23. Arquitectura Alljoyn
El modelo de arquitectura de Alljoyn se basa en dos
partes claramente diferenciadas:
1. La librería para el soporte a la parte cliente de
las aplicaciones
2. Un servicio en segundo
Generalidades…
plano que proporciona
todos los servicios relacionados con el bus de
comunicación como pueda ser el registro del
servicio o la búsqueda de nuevos dispositivos.
27. Integración del SDK
Deberemos seguir los siguientes para trabajar con el
SDK:
1. Añadir las librerías que contienen el SDK .
2. Debemos cargar la librería nativa de alljoyn desde
código.
3. Configurar ofuscadores de código como ProGuard.
4. Modificar el Manifiesto de la aplicación
introduciendo permisos de uso , actividades ,
servicios…etc
32. Implementación MCV
Nos encontramos limitaciones en los componentes
Android:
AsynTask:
Intent Service:
No especifica como notificar a
Implementación cambia
los clientes.
Ningún controlo sobre la
concurrencia.
No especifican método de
gestión de errores.
dependiendo del la versión de
android.
En la versión actual se ejecutan en
serie.
Suelen ser fuente de context leak.
No especifican método de gestión
de errores/excepciones.
33. Programación Reactiva
La programación reactiva es un paradigma de
programación
orientado a flujos de datos y a la
propagación de cambios.
Prog. Imperativa
Prog. Reactiva
X = 10;
X = 10;
y = x + 5;
Func<int> y = () -> {x + 5};
X= 20
X= 20
Cual es el valor de Y? 15
Cual es el valor de Y? 25
34. Programación Reactiva
La programación reactiva es un paradigma de
programación
orientado a flujos de datos y a la
propagación de cambios.
Prog. Imperativa
Prog. Reactiva
X = 10;
X = 10;
y = x + 5;
Func<int> y = () -> {x + 5};
X= 20
X= 20
Cual es el valor de Y? 15
Cual es el valor de Y? 25
35. RxJava
Una librería para componer programas asíncronos y
basados en eventos mediante el uso de secuencias
observables.
Open source.
Creada por Netflix.
Un port de “Reactive extension” creadas por
Microsoft.
Observable / Observer como elementos básicos.