SlideShare una empresa de Scribd logo
1 de 24
20.12.2017
Plain Concepts
Tech Day
Carlos Landeras y Rodrigo Cabello
Los autobuses de Madrid en tiempo real con
Azure Relay, .Net Core y una Raspberry Pi
Software Engineers
#PlainConceptsTechDay 2
9:00 – 9:45 CSS Grid Layout - ¡Se acabaron los hacks, larga vida al CSS!
9:45 - 10:30 Desarrollo de aplicaciones multiplataforma utilizando Xamarin
10:30 - 11:15 Docker: de principante a pro
11:15 - 11:25 ¿Qué es la Fundación Theodora?
11:25 - 11:45 Break
11:45 - 12:30 Los autobuses de madrid en tiempo real con Azure Relay,
.Net Core y una Raspberry Pi
12:30 - 13:15 Swagger Code Generation: Cuando front encontró a back
13:15 - 14:00 Entrega contínua con Visual Studio Team Services
Plain
Concepts
Tech Day
@plainconcepts 3
Más de 9 años de experiencia en
tecnologías .NET y desarrollo de
aplicaciones Web. Apasionado de las
nuevas arquitecturas y herramientas Front-
End.
Carlos Landeras
Experiencia de más de 8 años en el
desarrollo de aplicaciones web. Apasionado
de las nuevas tecnologías y aplicaciones que
utilizan técnicas basadas en Inteligencia
Artificial.
Rodrigo Cabello
SOFTWARE ENGINEER SOFTWARE ENGINEER
@mrcabellom @Carlos_Lande
Qué veremos
4
1. WebSocket
2. Azure Relay
3. Demo(Conexiones híbridas)
4. .Net Core ARM
5. Demo autobuses Madrid real-time
5
WebSocket
• Socket de comunicación es un recurso que se utiliza para transferir
datos entre aplicaciones.
• Extensión del protocolo HTTP para simular un socket. Utilizan el
puerto 80/443 (TLS). Proporcionan un canal de comunicación
bidireccional y full-dúplex sobre un único socket TCP.
• En los navegadores web, se utilizan para mantener un flujo de
comunicación constante.
• API WebSockets para la mayoría de navegadores web.
WebSocket
@plainconcepts 6
INTRODUCCIÓN
var connection = new WebSocket('ws://html5rocks.websocket.org/echo');
7
Azure Relay
• Azure Relay es uno de los pilares de la plataforma Azure Service
Bus.
• Permite exponer servicios de redes corporativas en la nube (Sin
realizar cambios intrusivos o abrir nuevas conexiones en el
firewall).
• Azure Relay cuenta con dos servicios:
• Conexiones híbridas: Websockets
• WCF Relays: Windows Communication Foundation (WCF).
• Conexiones híbridas:
• Evolución segura y de protocolo abierto. Basada en
WebSockets y Http.
• Sustituye a BizTalk Services.
Azure Relay
@plainconcepts 8
INTRODUCCIÓN
• Permite establecer una comunicación bidireccional entre dos aplicaciones utilizando un streaming binario.
• Se puede configurar fácilmente a través del portal de Azure.
• Mecanismo de autenticación basado en SHA-256.
• Azure Relay permite hasta 25 clientes con el Rol de Agente de escucha.
• Librerías disponibles para:
• .NET Framework, .NET Core
• Node.js
Azure Relay
@plainconcepts 9
INTRODUCCIÓN
• Creando nuestro namespace de Relay
• Añadimos un nuevo recurso Relay en Azure.
• Seleccionamos nuestro nombre de enpoint (*.servicebus.windows.net)
• Seleccionamos la localización del rendezvous point.
Azure Relay
@plainconcepts 10
CONEXIONES HÍBRIDAS
• Creando una conexión híbrida
• Seleccionamos el identificador de nuestra conexión.
• Elegimos si la conexión será autenticada.
• Creamos las políticas de acceso compartidas.
• Cada política tiene su propia clave primaria.
Azure Relay
@plainconcepts 11
CONEXIONES HÍBRIDAS
• Roles de Agente de escucha y Remitente.
• Conexiones mediante Web Sockets Secure (443).
• wss://{namespace}/$hc/{name}?sb-hc-action=…&sb-hc-token=
Azure Relay
@plainconcepts 12
PROTOCOLOS DE CONEXIÓN
13
Demo Conexiones híbridas
Demo ConsoleStream
@plainconcepts 14
Microsoft.Azure.Relay hyco-ws
Demo EMTStream
@plainconcepts 15
Microsoft.Azure.Relay
GEO
BUS
GetRouteLines Línea 27 GetArriveStop
Arquitectura Demo
@plainconcepts 16
17
.NET Core ARM
• ¿Qué es una Raspberry Pi?
• Ordenador de placa simple (SBC) de bajo coste desarrollado en el Reino Unido en 2011
• Arquitectura ARM.
• Sistemas Operativos soportados:
• Raspbian
• Noobs
• Ubuntu
• Windows IoT
• GPIO (Python, C, C++) Acceso a sensores.
.NET Core ARM
@plainconcepts 18
RASPBERRY PI
• Si tenemos varios SDK instalados, tenemos que añadir como target la version del sdk 2.0.0
• Comprobamos que nuestro proyecto tiene como target dicha versión ejecutando el commando dotnet –version
dentro de la carpeta de la solución.
• Publicando el Proyecto con la línea de commandos
.NET Core ARM
@plainconcepts 19
CONFIGURACIÓN DEL ENTORNO
> dotnet publish -c Release –r linux-arm
• Raspbian Linux OS
• Dotnet runtime 2.0.0
• Ejecutar dotnet AzureRelay.dll
• Ejecutar ./AzureRelay (nativo)
.NET Core ARM
@plainconcepts 20
RASPBIAN ARM RASPBERRY PI
> sudo apt-get install curl libunwind8 gettext
> curl -sSL -o dotnet.tar.gz
https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.0.0/dotnet-
runtime-latest-linux-arm.tar.gz
> sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
> sudo ln -s /opt/dotnet/dotnet /usr/local/bin
21
DEMO Autobuses de Madrid en
tiempo real
¡Estamos
CONTRATANDO!
22
careers@plainconcepts.com
int ledPin = 13;
void setup()
{ pinMode(ledPin, OUTPUT);
}
void loop(){ digitalWrite(ledPin, HIGH);
delay(1000); digitalWrite(ledPin, LOW);
delay(1000);
}
@plainconcepts
www.plainconcepts.com/careers
¡GRACIAS!
www.plainconcepts.com
@plainconcepts
www.plainconcepts.com
MADRID
Paseo de la Castellana 163, 10º
28046 Madrid. España
T. (+34) 91 5346 836
BILBAO
Calle Ledesma 10-bis 3º
48001 Bilbao. España
T. (+34) 94 6073 371
BARCELONA
Carrer Compte d’Urgell 240 4º A
08036 Barcelona. España
T. (+34) 93 7978 566
SEVILLA
Avenida de la innovación s/n
Edificio Renta Sevilla, 3º A
41020 Sevilla. España
T. (+34) 600 58 75 43
DUBAI
Dubai Internet City. Building 1
73030 Dubai. EAU
T. (+971) 4 551 6653
LONDON
Impact Hub Kings Cross
24B York Way, N1 9AB
London. UK
SEATTLE
8201 164th Ave NE
Redmond, WA 98052
Washington
T. (+1) 206 708 1285

Más contenido relacionado

La actualidad más candente

Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxPlain Concepts
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talkCarlos Landeras Martínez
 
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.melidevelopers
 
Lunch & Learn: Despliegue de nube privada con OpenStack
Lunch & Learn: Despliegue de nube privada con OpenStackLunch & Learn: Despliegue de nube privada con OpenStack
Lunch & Learn: Despliegue de nube privada con OpenStackSoftware Guru
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisQuobis
 
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónLuis Ruiz Pavón
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación DockerITPAMI
 
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftDesarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftSoftware Guru
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .NetGlobant
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDBArsys
 

La actualidad más candente (18)

Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginx
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
 
OpenShift y PostgreSQL
OpenShift y PostgreSQLOpenShift y PostgreSQL
OpenShift y PostgreSQL
 
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.Cloud + Docker - La arquitectura MELI usando AWS en la nube.
Cloud + Docker - La arquitectura MELI usando AWS en la nube.
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Lunch & Learn: Despliegue de nube privada con OpenStack
Lunch & Learn: Despliegue de nube privada con OpenStackLunch & Learn: Despliegue de nube privada con OpenStack
Lunch & Learn: Despliegue de nube privada con OpenStack
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - Quobis
 
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
 
Fury DevopsConf 2015
Fury DevopsConf 2015Fury DevopsConf 2015
Fury DevopsConf 2015
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y SwiftDesarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
Desarrollando aplicaciones iOS con datos en tiempo real con Firebase y Swift
 
.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net.NET Core General - Globant Tech Insiders .Net
.NET Core General - Globant Tech Insiders .Net
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Azure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARMAzure Relay (Hybrid connections) & .NET Core ARM
Azure Relay (Hybrid connections) & .NET Core ARM
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDB
 

Similar a Autobuses de Madrid en tiempo real con Azure Relay

Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloRealtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloPlain Concepts
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsCarlos Landeras Martínez
 
.NET Core en mi Raspberry Pi y una aplicación en tiempo real
.NET Core en mi Raspberry Pi y una aplicación en tiempo real.NET Core en mi Raspberry Pi y una aplicación en tiempo real
.NET Core en mi Raspberry Pi y una aplicación en tiempo realManuel Rodrigo Cabello Malagón
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menosEduard Tomàs
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a proPlain Concepts
 
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Plain Concepts
 
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 Cloud Native en Azure impartido en Microsoft Madrid y Barcelona Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Cloud Native en Azure impartido en Microsoft Madrid y BarcelonaSanti Macias Rodriguez
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017Diego Bersano
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014quaip
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasAmazon Web Services LATAM
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en DockerJavier Villegas
 
Net Maui Blazor Jornada ASP Net en Español.pptx
Net Maui Blazor Jornada ASP Net en Español.pptxNet Maui Blazor Jornada ASP Net en Español.pptx
Net Maui Blazor Jornada ASP Net en Español.pptxLuis775803
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetesjdezine
 
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboardsTaller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboardsSofia2 Smart Platform
 

Similar a Autobuses de Madrid en tiempo real con Azure Relay (20)

Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloRealtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time Applications
 
.NET Core en mi Raspberry Pi y una aplicación en tiempo real
.NET Core en mi Raspberry Pi y una aplicación en tiempo real.NET Core en mi Raspberry Pi y una aplicación en tiempo real
.NET Core en mi Raspberry Pi y una aplicación en tiempo real
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
Microservices: Ya funciona en mi máquina… Y en producción, ¿qué?
 
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 Cloud Native en Azure impartido en Microsoft Madrid y Barcelona Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
Cloud Native en Azure impartido en Microsoft Madrid y Barcelona
 
Offering Cloud Solutions
Offering Cloud Solutions Offering Cloud Solutions
Offering Cloud Solutions
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
Docker - Sysmana 2014
Docker - Sysmana 2014Docker - Sysmana 2014
Docker - Sysmana 2014
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
Azure Relay .Net Core y una Raspberry Pi
Azure Relay .Net Core y una Raspberry PiAzure Relay .Net Core y una Raspberry Pi
Azure Relay .Net Core y una Raspberry Pi
 
Net Maui Blazor Jornada ASP Net en Español.pptx
Net Maui Blazor Jornada ASP Net en Español.pptxNet Maui Blazor Jornada ASP Net en Español.pptx
Net Maui Blazor Jornada ASP Net en Español.pptx
 
El camino de Java a Kubernetes
El camino de Java a KubernetesEl camino de Java a Kubernetes
El camino de Java a Kubernetes
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
Fury devops conf (1)
Fury devops conf (1)Fury devops conf (1)
Fury devops conf (1)
 
Game of pods - Kubernetes
Game of pods - KubernetesGame of pods - Kubernetes
Game of pods - Kubernetes
 
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboardsTaller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
 

Más de Manuel Rodrigo Cabello Malagón (7)

MLOPS_GlobalAI2023.pptx
MLOPS_GlobalAI2023.pptxMLOPS_GlobalAI2023.pptx
MLOPS_GlobalAI2023.pptx
 
GlobalAIObjectDetection.pptx
GlobalAIObjectDetection.pptxGlobalAIObjectDetection.pptx
GlobalAIObjectDetection.pptx
 
pydataPointCloud.pptx
pydataPointCloud.pptxpydataPointCloud.pptx
pydataPointCloud.pptx
 
Deep Learning para Desarrolladores C#
Deep Learning para Desarrolladores C#Deep Learning para Desarrolladores C#
Deep Learning para Desarrolladores C#
 
Deep Learning, Python, C# y Azure
Deep Learning, Python, C# y AzureDeep Learning, Python, C# y Azure
Deep Learning, Python, C# y Azure
 
Machine Learning for Developers (PyConEs2017)
Machine Learning for Developers (PyConEs2017)Machine Learning for Developers (PyConEs2017)
Machine Learning for Developers (PyConEs2017)
 
Azure BootCamp 2017 Madrid
Azure BootCamp 2017 MadridAzure BootCamp 2017 Madrid
Azure BootCamp 2017 Madrid
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Último (10)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Autobuses de Madrid en tiempo real con Azure Relay

  • 1. 20.12.2017 Plain Concepts Tech Day Carlos Landeras y Rodrigo Cabello Los autobuses de Madrid en tiempo real con Azure Relay, .Net Core y una Raspberry Pi Software Engineers
  • 2. #PlainConceptsTechDay 2 9:00 – 9:45 CSS Grid Layout - ¡Se acabaron los hacks, larga vida al CSS! 9:45 - 10:30 Desarrollo de aplicaciones multiplataforma utilizando Xamarin 10:30 - 11:15 Docker: de principante a pro 11:15 - 11:25 ¿Qué es la Fundación Theodora? 11:25 - 11:45 Break 11:45 - 12:30 Los autobuses de madrid en tiempo real con Azure Relay, .Net Core y una Raspberry Pi 12:30 - 13:15 Swagger Code Generation: Cuando front encontró a back 13:15 - 14:00 Entrega contínua con Visual Studio Team Services Plain Concepts Tech Day
  • 3. @plainconcepts 3 Más de 9 años de experiencia en tecnologías .NET y desarrollo de aplicaciones Web. Apasionado de las nuevas arquitecturas y herramientas Front- End. Carlos Landeras Experiencia de más de 8 años en el desarrollo de aplicaciones web. Apasionado de las nuevas tecnologías y aplicaciones que utilizan técnicas basadas en Inteligencia Artificial. Rodrigo Cabello SOFTWARE ENGINEER SOFTWARE ENGINEER @mrcabellom @Carlos_Lande
  • 4. Qué veremos 4 1. WebSocket 2. Azure Relay 3. Demo(Conexiones híbridas) 4. .Net Core ARM 5. Demo autobuses Madrid real-time
  • 6. • Socket de comunicación es un recurso que se utiliza para transferir datos entre aplicaciones. • Extensión del protocolo HTTP para simular un socket. Utilizan el puerto 80/443 (TLS). Proporcionan un canal de comunicación bidireccional y full-dúplex sobre un único socket TCP. • En los navegadores web, se utilizan para mantener un flujo de comunicación constante. • API WebSockets para la mayoría de navegadores web. WebSocket @plainconcepts 6 INTRODUCCIÓN var connection = new WebSocket('ws://html5rocks.websocket.org/echo');
  • 8. • Azure Relay es uno de los pilares de la plataforma Azure Service Bus. • Permite exponer servicios de redes corporativas en la nube (Sin realizar cambios intrusivos o abrir nuevas conexiones en el firewall). • Azure Relay cuenta con dos servicios: • Conexiones híbridas: Websockets • WCF Relays: Windows Communication Foundation (WCF). • Conexiones híbridas: • Evolución segura y de protocolo abierto. Basada en WebSockets y Http. • Sustituye a BizTalk Services. Azure Relay @plainconcepts 8 INTRODUCCIÓN
  • 9. • Permite establecer una comunicación bidireccional entre dos aplicaciones utilizando un streaming binario. • Se puede configurar fácilmente a través del portal de Azure. • Mecanismo de autenticación basado en SHA-256. • Azure Relay permite hasta 25 clientes con el Rol de Agente de escucha. • Librerías disponibles para: • .NET Framework, .NET Core • Node.js Azure Relay @plainconcepts 9 INTRODUCCIÓN
  • 10. • Creando nuestro namespace de Relay • Añadimos un nuevo recurso Relay en Azure. • Seleccionamos nuestro nombre de enpoint (*.servicebus.windows.net) • Seleccionamos la localización del rendezvous point. Azure Relay @plainconcepts 10 CONEXIONES HÍBRIDAS
  • 11. • Creando una conexión híbrida • Seleccionamos el identificador de nuestra conexión. • Elegimos si la conexión será autenticada. • Creamos las políticas de acceso compartidas. • Cada política tiene su propia clave primaria. Azure Relay @plainconcepts 11 CONEXIONES HÍBRIDAS
  • 12. • Roles de Agente de escucha y Remitente. • Conexiones mediante Web Sockets Secure (443). • wss://{namespace}/$hc/{name}?sb-hc-action=…&sb-hc-token= Azure Relay @plainconcepts 12 PROTOCOLOS DE CONEXIÓN
  • 18. • ¿Qué es una Raspberry Pi? • Ordenador de placa simple (SBC) de bajo coste desarrollado en el Reino Unido en 2011 • Arquitectura ARM. • Sistemas Operativos soportados: • Raspbian • Noobs • Ubuntu • Windows IoT • GPIO (Python, C, C++) Acceso a sensores. .NET Core ARM @plainconcepts 18 RASPBERRY PI
  • 19. • Si tenemos varios SDK instalados, tenemos que añadir como target la version del sdk 2.0.0 • Comprobamos que nuestro proyecto tiene como target dicha versión ejecutando el commando dotnet –version dentro de la carpeta de la solución. • Publicando el Proyecto con la línea de commandos .NET Core ARM @plainconcepts 19 CONFIGURACIÓN DEL ENTORNO > dotnet publish -c Release –r linux-arm
  • 20. • Raspbian Linux OS • Dotnet runtime 2.0.0 • Ejecutar dotnet AzureRelay.dll • Ejecutar ./AzureRelay (nativo) .NET Core ARM @plainconcepts 20 RASPBIAN ARM RASPBERRY PI > sudo apt-get install curl libunwind8 gettext > curl -sSL -o dotnet.tar.gz https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.0.0/dotnet- runtime-latest-linux-arm.tar.gz > sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet > sudo ln -s /opt/dotnet/dotnet /usr/local/bin
  • 21. 21 DEMO Autobuses de Madrid en tiempo real
  • 22. ¡Estamos CONTRATANDO! 22 careers@plainconcepts.com int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } void loop(){ digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); } @plainconcepts www.plainconcepts.com/careers
  • 24. www.plainconcepts.com MADRID Paseo de la Castellana 163, 10º 28046 Madrid. España T. (+34) 91 5346 836 BILBAO Calle Ledesma 10-bis 3º 48001 Bilbao. España T. (+34) 94 6073 371 BARCELONA Carrer Compte d’Urgell 240 4º A 08036 Barcelona. España T. (+34) 93 7978 566 SEVILLA Avenida de la innovación s/n Edificio Renta Sevilla, 3º A 41020 Sevilla. España T. (+34) 600 58 75 43 DUBAI Dubai Internet City. Building 1 73030 Dubai. EAU T. (+971) 4 551 6653 LONDON Impact Hub Kings Cross 24B York Way, N1 9AB London. UK SEATTLE 8201 164th Ave NE Redmond, WA 98052 Washington T. (+1) 206 708 1285