SlideShare a Scribd company logo
1 of 42
Download to read offline
Desenvolvimento de aplicações assíncronas,
orientadas a eventos e poliglotas
com Vert.x
Rodrigo Peleias
@rpeleias
Sumário
● Motivação
● E foi criado o Vert.x
● Tecnologias similares ao Vert.x
● Modelo Arquitetural
● Verticles: o Vert.x em ação!
● Event Bus: “sistema nervoso” do Vert.x
● Um pouco de REST com o Vert.x
● Vert.x na Web
● Histórico do Vert.x
● E tem muito mais com o Vert.x!!
Motivação
A Evolução da Web
Páginas
Estáticas
Apps Orientadas
A Formulários
Requisições
AJAX
Motivação
A Evolução da Web
Páginas
Estáticas
Apps Orientadas
A Formulários
Requisições
AJAX
Aplicações em
Tempo Real
Motivação
Aplicações em tempo Real
Motivação
● Gerenciamento de múltiplos clientes simultâneos
● Alta disponibilidade de recursos
● Agilidade, precisão e segurança na entrega de informações
● Necessidade de informações em tempo real
● Imagina se o servidor web bloquear as requisições?
E foi criado o Vert.x!!
● Framework para a JVM
● Desenvolvimento de aplicações reativas
● Orientado a Eventos
● Assíncrono
● Não blocante
● Simples, porém poderoso
● Modular
● Leve
● Poliglota
E foi criado o Vert.x!!
● Desenvolvimento em Java
E foi criado o Vert.x!!
● Desenvolvimento em Groovy
E foi criado o Vert.x!!
● Desenvolvimento em JavaScript
E foi criado o Vert.x!!
DEMO
Vert.x com Java e Groovy
E foi criado o Vert.x!!
Tecnologias Similares ao Vert.x
Tecnologias Similares ao Vert.x
● Comparação com o Node.js
● Poliglota
● Multithreaded
● Event Bus: trocas de mensagens
● Event Loop
Modelo Arquitetural
Modelo Arquitetural
Verticles: O Vert.x em Ação!!
● Unidade de execução do Vert.x
● Poligota: Verticles em diversas linguagens
● Single thread
● Módulos: agrupamento de verticles
● Comunicação com outros Verticles através de mensagens
● Execução de várias formas
● Linha de comando
● Maven
● Fat Jars
Verticles: O Vert.x em Ação!!
● Desenvolvimento de um Verticle:
● Subclasse de AbstractVerticle
● Sobrescrita dos métodos start() e stop()
Verticles: O Vert.x em Ação!!
● Verticles assíncronos: parâmetro do tipo Future:
● Deploy de vários verticles no método start()
● Sem bloqueios para deploy de outros verticles
Verticles: O Vert.x em Ação!!
● Tipos de Verticles:
● Standard
● Execução em apenas 1 Event Loop
● Vertx gerencia threads e escalonamento
● Worker
● Execução através de Threads de um pool do Vert.x
● Criados para execução de códigos blocantes
● Multithread
● Verticles concorrentes executados por várias Threads
Verticles: O Vert.x em Ação!!
DEMO
Verticle em Java
Execução em Terminal e fat-jar
Event Bus
● Sistema nervoso do Vert.x
● Implantação de verticles
● Troca de mensagens entre Verticles poliglotas
● Múltiplos Servidores e Browsers
EVENT BUS
JAVA GROOVY RUBYJAVA JAVA J.S.
Event Bus
Event Bus – Conceitos e API
● Endereçamento
● Mensagens envidas ao event bus através de mensagens
● Endereço Vert.x é uma simples String
● Qualquer String é válida
● Handlers
● Mensagens recebidas em handlers (manipuladores)
● Registro e um Handler como um endereço
● Único handler pode registrar diversos endereços
Event Bus – Conceitos e API
● Registro de Handlers com endereços
● Exclusão de Handlers
Event Bus – Troca de Mensagens
● Publish / Subscribe
● Mensagens enviadas para um endereço
● Entrega de mensagens para todos os handlers
cadastrados no endereço criado
● Modelo padrão Publish / Subscribe
● Qualquer String é válida
Event Bus – Troca de Mensagens
● Point-to-Point e Request-Response
● Mensagem enviada para um único handler
● Handler pode “responder” a mensagem para o Event Bus
● Modelo padrão request-response
Event Bus – Tipos de Mensagens
● Tipos primitivos
● String
● Buffers
● JSON
● Convenção e pŕatica padrão a troca de mensagens
através de JSON
Event Bus – Demo Event Bus
DEMO
Event Bus em Java
Criação e Troca de Mensagens
REST com Vert.x
● Roteamento de rotas com handlers corretos
● GET - /api/books
● GET - /api/books/:id
● POST - /api/books
● PUT - /api/books/:id
● DELETE - /api/books/:id
REST com Vert.x
DEMO
REST com Vert.x
Criação de API REST com Vert.x
Sistemas Web com Vert.x
● Aplicações Server-side
● Aplicações Web RESTful
● Recomendado para escrita de microserviços RESTful
● Aplicações Web Real-time
● Suporte à autenticação e autorização
● Criação de Rotas
● Suporte a conteúdo estático
● Suporte a diversos tipos de templates
Sistemas Web com Vert.x
● Criação de Servidor HTTP e Rotas
Sistemas Web com Vert.x
● Capturando Handlers e invocando outros Handlers
Sistemas Web com Vert.x
DEMO
Sistema Web Java com Vert.x
Aplicação WEB RESTful
E tem muito mais com o Vert.x!!
● Core e Web
● Acesso a Dados
● MongoDB
● JDBC
● Redis
● Integração: Mail e JCA Clients
● Autenticação e Autorização: auth Common, JDBC e Shiro
● Programação Reativa: Vert.x Rx e Streams Reativos
● Cloud e Docker
● Clustering e alta disponibilidade
E tem muito mais com o Vert.x!!
DEMO
Sistema Web Java com Vert.x
Deploy na Cloud
Histórico do Vert.x
● Primeiro nome: Node.x
● Versão Atual: 3.0.0
● Criador: Tim Fox
● Projeto criado na VMWare
● Ano de criação: 2011
● 2013 – projeto passa a ser mantido pela Eclipse Foundation
Sumário
● Motivação
● E foi criado o Vert.x
● Tecnologias similares ao Vert.x
● Modelo Arquitetural
● Verticles: o Vert.x em ação!
● Event Bus: “sistema nervoso” do Vert.x
● Um pouco de REST com o Vert.x
● Vert.x na Web
● Histórico do Vert.x
● E tem muito mais com o Vert.x!!
Referências
● Documentação e artigos
● http://vertx.io/
● http://vertx.io/community/
● http://vertx.io/blog/blog.html
● http://www.infoq.com/br/news/2012/05/vertx
● GitHub
● https://github.com/vert-x
● Palestras
● https://www.youtube.com/watch?v=EMtoN9wFEOU
● https://www.youtube.com/watch?v=SsJQTvp_F0Y
Perguntas e Respostas
OBRIGADO!!
Rodrigo Peleias
@rpeleias
rodrigo.peleias@gmail.com
www.github.com/rpeleias

More Related Content

What's hot

Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarFilipe Falcão
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIFernando Camargo
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Renato Groff
 
Desenvolvimento web com VRaptor
Desenvolvimento web com VRaptorDesenvolvimento web com VRaptor
Desenvolvimento web com VRaptorDaniel Cavalcante
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...Renato Groff
 
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Renato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Renato Groff
 
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaPhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaHenrique Gogó
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Renato Groff
 
APIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex PiazAPIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex PiaziMasters
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Pablo Souza
 
Desenvolvimento Ágil com Ruby on Rails
Desenvolvimento Ágil com Ruby on RailsDesenvolvimento Ágil com Ruby on Rails
Desenvolvimento Ágil com Ruby on RailsRogerio Chaves
 
ASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorarASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorarWaldyr Felix
 

What's hot (20)

Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizar
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful API
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
NoSQL + Node.js
NoSQL + Node.jsNoSQL + Node.js
NoSQL + Node.js
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
 
Desenvolvimento web com VRaptor
Desenvolvimento web com VRaptorDesenvolvimento web com VRaptor
Desenvolvimento web com VRaptor
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Java web
Java webJava web
Java web
 
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...
 
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
Aplicações Web Escaláveis no Azure: App Service, Docker e Kubernetes - Fevere...
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaPhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
 
APIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex PiazAPIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex Piaz
 
Performance na web
Performance na webPerformance na web
Performance na web
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
Desenvolvimento Ágil com Ruby on Rails
Desenvolvimento Ágil com Ruby on RailsDesenvolvimento Ágil com Ruby on Rails
Desenvolvimento Ágil com Ruby on Rails
 
ASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorarASP.NET MVC, para sua vida melhorar
ASP.NET MVC, para sua vida melhorar
 

Viewers also liked

法文二上-Transport
法文二上-Transport法文二上-Transport
法文二上-Transportgaleyang
 
Presentació Institucional TMB 2014
Presentació Institucional TMB 2014Presentació Institucional TMB 2014
Presentació Institucional TMB 2014TMB
 
Mobilis 2008 - TR4 : Nouvelles mobilités et action publique
Mobilis 2008 - TR4 : Nouvelles mobilités et action publiqueMobilis 2008 - TR4 : Nouvelles mobilités et action publique
Mobilis 2008 - TR4 : Nouvelles mobilités et action publiqueMobilis Conférence
 
Unidade 2.1.2 Bus
Unidade 2.1.2   BusUnidade 2.1.2   Bus
Unidade 2.1.2 Busguest18dcd9
 
MouTV. Una aposta per la informació de servei
MouTV. Una aposta per la informació de serveiMouTV. Una aposta per la informació de servei
MouTV. Una aposta per la informació de serveiTMB
 
La xarxa exprés.cat
La xarxa exprés.catLa xarxa exprés.cat
La xarxa exprés.catAMTU
 
Numérique-Open-Data-Pesa-metro'num2015
Numérique-Open-Data-Pesa-metro'num2015Numérique-Open-Data-Pesa-metro'num2015
Numérique-Open-Data-Pesa-metro'num2015Metro'num 2015
 
Juego interactivo trabajo 4
Juego interactivo trabajo 4Juego interactivo trabajo 4
Juego interactivo trabajo 4Yised Ortiz
 
8 moyenstr 03
8 moyenstr 038 moyenstr 03
8 moyenstr 03cris03glu
 
SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014
SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014
SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014Ajuntament de Barcelona
 
SEO und Linkbuilding im Jahr 2014
SEO und Linkbuilding im Jahr 2014SEO und Linkbuilding im Jahr 2014
SEO und Linkbuilding im Jahr 2014Seokratie
 
Stqbus, app busos sant cugat
Stqbus, app busos sant cugatStqbus, app busos sant cugat
Stqbus, app busos sant cugatPremsa Sant Cugat
 

Viewers also liked (20)

Le voyage
Le voyageLe voyage
Le voyage
 
German 2
German 2German 2
German 2
 
ShareMyBook: As 5 telas e suas Interfaces
ShareMyBook: As 5 telas e suas InterfacesShareMyBook: As 5 telas e suas Interfaces
ShareMyBook: As 5 telas e suas Interfaces
 
法文二上-Transport
法文二上-Transport法文二上-Transport
法文二上-Transport
 
Arquitetura 9
Arquitetura 9Arquitetura 9
Arquitetura 9
 
Presentació Institucional TMB 2014
Presentació Institucional TMB 2014Presentació Institucional TMB 2014
Presentació Institucional TMB 2014
 
Mobilis 2008 - TR4 : Nouvelles mobilités et action publique
Mobilis 2008 - TR4 : Nouvelles mobilités et action publiqueMobilis 2008 - TR4 : Nouvelles mobilités et action publique
Mobilis 2008 - TR4 : Nouvelles mobilités et action publique
 
Unidade 2.1.2 Bus
Unidade 2.1.2   BusUnidade 2.1.2   Bus
Unidade 2.1.2 Bus
 
MouTV. Una aposta per la informació de servei
MouTV. Una aposta per la informació de serveiMouTV. Una aposta per la informació de servei
MouTV. Una aposta per la informació de servei
 
Despedida de Patricia
Despedida de Patricia Despedida de Patricia
Despedida de Patricia
 
La xarxa exprés.cat
La xarxa exprés.catLa xarxa exprés.cat
La xarxa exprés.cat
 
Numérique-Open-Data-Pesa-metro'num2015
Numérique-Open-Data-Pesa-metro'num2015Numérique-Open-Data-Pesa-metro'num2015
Numérique-Open-Data-Pesa-metro'num2015
 
Juego interactivo trabajo 4
Juego interactivo trabajo 4Juego interactivo trabajo 4
Juego interactivo trabajo 4
 
8 moyenstr 03
8 moyenstr 038 moyenstr 03
8 moyenstr 03
 
SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014
SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014
SSTG Comissió Consultiva Règim intern, Seguretat i Mobilitat Novembre 2014
 
SEO und Linkbuilding im Jahr 2014
SEO und Linkbuilding im Jahr 2014SEO und Linkbuilding im Jahr 2014
SEO und Linkbuilding im Jahr 2014
 
Cap i2intro4
Cap i2intro4Cap i2intro4
Cap i2intro4
 
Stqbus, app busos sant cugat
Stqbus, app busos sant cugatStqbus, app busos sant cugat
Stqbus, app busos sant cugat
 
Juegos interactivos
Juegos interactivosJuegos interactivos
Juegos interactivos
 
JBoss ESB
JBoss ESBJBoss ESB
JBoss ESB
 

Similar to Desenvolvimento de aplicações assíncronas com Vert.x

Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieVivaldo Jose Breternitz
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaSensedia
 
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016Renato Groff
 
Aula07 android conectividade
Aula07 android conectividadeAula07 android conectividade
Aula07 android conectividadeRoberson Alves
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Giovanni Bassi
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftFabrício Lopes Sanchez
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilRenato Groff
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsAndre Baltieri
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 

Similar to Desenvolvimento de aplicações assíncronas com Vert.x (20)

Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
 
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
APIs na nuvem com Azure e ASP.NET Core - Azure Weekend 2016
 
Aula07 android conectividade
Aula07 android conectividadeAula07 android conectividade
Aula07 android conectividade
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Criando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias MicrosoftCriando aplicações web com tecnologias Microsoft
Criando aplicações web com tecnologias Microsoft
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 

More from Rodrigo Peleias

Certificado Palestra Certificacoes
Certificado Palestra CertificacoesCertificado Palestra Certificacoes
Certificado Palestra CertificacoesRodrigo Peleias
 
Certificado Palestra Netbeans
Certificado Palestra NetbeansCertificado Palestra Netbeans
Certificado Palestra NetbeansRodrigo Peleias
 
Project Wonderland Presentation
Project Wonderland PresentationProject Wonderland Presentation
Project Wonderland PresentationRodrigo Peleias
 
Programas Academicos Sun
Programas Academicos SunProgramas Academicos Sun
Programas Academicos SunRodrigo Peleias
 
Palestra - Certificações
Palestra - CertificaçõesPalestra - Certificações
Palestra - CertificaçõesRodrigo Peleias
 
Apresentacao Open Source
Apresentacao Open SourceApresentacao Open Source
Apresentacao Open SourceRodrigo Peleias
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesRodrigo Peleias
 

More from Rodrigo Peleias (13)

Certificado Palestra Certificacoes
Certificado Palestra CertificacoesCertificado Palestra Certificacoes
Certificado Palestra Certificacoes
 
Certificado Palestra Netbeans
Certificado Palestra NetbeansCertificado Palestra Netbeans
Certificado Palestra Netbeans
 
Project Wonderland Presentation
Project Wonderland PresentationProject Wonderland Presentation
Project Wonderland Presentation
 
Programas Academicos Sun
Programas Academicos SunProgramas Academicos Sun
Programas Academicos Sun
 
Apresentacao Wonderland
Apresentacao WonderlandApresentacao Wonderland
Apresentacao Wonderland
 
Abertura - SUD 2009
Abertura - SUD 2009Abertura - SUD 2009
Abertura - SUD 2009
 
Abertura do Evento
Abertura do EventoAbertura do Evento
Abertura do Evento
 
Palestra - Certificações
Palestra - CertificaçõesPalestra - Certificações
Palestra - Certificações
 
Apresentacao Opensource
Apresentacao OpensourceApresentacao Opensource
Apresentacao Opensource
 
Apresentacao Opensource
Apresentacao OpensourceApresentacao Opensource
Apresentacao Opensource
 
Apresentacao Open Source
Apresentacao Open SourceApresentacao Open Source
Apresentacao Open Source
 
Palestra OSUM e SAI
Palestra OSUM e SAIPalestra OSUM e SAI
Palestra OSUM e SAI
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 Portugues
 

Desenvolvimento de aplicações assíncronas com Vert.x

  • 1. Desenvolvimento de aplicações assíncronas, orientadas a eventos e poliglotas com Vert.x Rodrigo Peleias @rpeleias
  • 2. Sumário ● Motivação ● E foi criado o Vert.x ● Tecnologias similares ao Vert.x ● Modelo Arquitetural ● Verticles: o Vert.x em ação! ● Event Bus: “sistema nervoso” do Vert.x ● Um pouco de REST com o Vert.x ● Vert.x na Web ● Histórico do Vert.x ● E tem muito mais com o Vert.x!!
  • 3. Motivação A Evolução da Web Páginas Estáticas Apps Orientadas A Formulários Requisições AJAX
  • 4. Motivação A Evolução da Web Páginas Estáticas Apps Orientadas A Formulários Requisições AJAX Aplicações em Tempo Real
  • 6. Motivação ● Gerenciamento de múltiplos clientes simultâneos ● Alta disponibilidade de recursos ● Agilidade, precisão e segurança na entrega de informações ● Necessidade de informações em tempo real ● Imagina se o servidor web bloquear as requisições?
  • 7. E foi criado o Vert.x!! ● Framework para a JVM ● Desenvolvimento de aplicações reativas ● Orientado a Eventos ● Assíncrono ● Não blocante ● Simples, porém poderoso ● Modular ● Leve
  • 8. ● Poliglota E foi criado o Vert.x!!
  • 9. ● Desenvolvimento em Java E foi criado o Vert.x!!
  • 10. ● Desenvolvimento em Groovy E foi criado o Vert.x!!
  • 11. ● Desenvolvimento em JavaScript E foi criado o Vert.x!!
  • 12. DEMO Vert.x com Java e Groovy E foi criado o Vert.x!!
  • 14. Tecnologias Similares ao Vert.x ● Comparação com o Node.js ● Poliglota ● Multithreaded ● Event Bus: trocas de mensagens ● Event Loop
  • 17. Verticles: O Vert.x em Ação!! ● Unidade de execução do Vert.x ● Poligota: Verticles em diversas linguagens ● Single thread ● Módulos: agrupamento de verticles ● Comunicação com outros Verticles através de mensagens ● Execução de várias formas ● Linha de comando ● Maven ● Fat Jars
  • 18. Verticles: O Vert.x em Ação!! ● Desenvolvimento de um Verticle: ● Subclasse de AbstractVerticle ● Sobrescrita dos métodos start() e stop()
  • 19. Verticles: O Vert.x em Ação!! ● Verticles assíncronos: parâmetro do tipo Future: ● Deploy de vários verticles no método start() ● Sem bloqueios para deploy de outros verticles
  • 20. Verticles: O Vert.x em Ação!! ● Tipos de Verticles: ● Standard ● Execução em apenas 1 Event Loop ● Vertx gerencia threads e escalonamento ● Worker ● Execução através de Threads de um pool do Vert.x ● Criados para execução de códigos blocantes ● Multithread ● Verticles concorrentes executados por várias Threads
  • 21. Verticles: O Vert.x em Ação!! DEMO Verticle em Java Execução em Terminal e fat-jar
  • 22. Event Bus ● Sistema nervoso do Vert.x ● Implantação de verticles ● Troca de mensagens entre Verticles poliglotas ● Múltiplos Servidores e Browsers EVENT BUS JAVA GROOVY RUBYJAVA JAVA J.S.
  • 24. Event Bus – Conceitos e API ● Endereçamento ● Mensagens envidas ao event bus através de mensagens ● Endereço Vert.x é uma simples String ● Qualquer String é válida ● Handlers ● Mensagens recebidas em handlers (manipuladores) ● Registro e um Handler como um endereço ● Único handler pode registrar diversos endereços
  • 25. Event Bus – Conceitos e API ● Registro de Handlers com endereços ● Exclusão de Handlers
  • 26. Event Bus – Troca de Mensagens ● Publish / Subscribe ● Mensagens enviadas para um endereço ● Entrega de mensagens para todos os handlers cadastrados no endereço criado ● Modelo padrão Publish / Subscribe ● Qualquer String é válida
  • 27. Event Bus – Troca de Mensagens ● Point-to-Point e Request-Response ● Mensagem enviada para um único handler ● Handler pode “responder” a mensagem para o Event Bus ● Modelo padrão request-response
  • 28. Event Bus – Tipos de Mensagens ● Tipos primitivos ● String ● Buffers ● JSON ● Convenção e pŕatica padrão a troca de mensagens através de JSON
  • 29. Event Bus – Demo Event Bus DEMO Event Bus em Java Criação e Troca de Mensagens
  • 30. REST com Vert.x ● Roteamento de rotas com handlers corretos ● GET - /api/books ● GET - /api/books/:id ● POST - /api/books ● PUT - /api/books/:id ● DELETE - /api/books/:id
  • 31. REST com Vert.x DEMO REST com Vert.x Criação de API REST com Vert.x
  • 32. Sistemas Web com Vert.x ● Aplicações Server-side ● Aplicações Web RESTful ● Recomendado para escrita de microserviços RESTful ● Aplicações Web Real-time ● Suporte à autenticação e autorização ● Criação de Rotas ● Suporte a conteúdo estático ● Suporte a diversos tipos de templates
  • 33. Sistemas Web com Vert.x ● Criação de Servidor HTTP e Rotas
  • 34. Sistemas Web com Vert.x ● Capturando Handlers e invocando outros Handlers
  • 35. Sistemas Web com Vert.x DEMO Sistema Web Java com Vert.x Aplicação WEB RESTful
  • 36. E tem muito mais com o Vert.x!! ● Core e Web ● Acesso a Dados ● MongoDB ● JDBC ● Redis ● Integração: Mail e JCA Clients ● Autenticação e Autorização: auth Common, JDBC e Shiro ● Programação Reativa: Vert.x Rx e Streams Reativos ● Cloud e Docker ● Clustering e alta disponibilidade
  • 37. E tem muito mais com o Vert.x!! DEMO Sistema Web Java com Vert.x Deploy na Cloud
  • 38. Histórico do Vert.x ● Primeiro nome: Node.x ● Versão Atual: 3.0.0 ● Criador: Tim Fox ● Projeto criado na VMWare ● Ano de criação: 2011 ● 2013 – projeto passa a ser mantido pela Eclipse Foundation
  • 39. Sumário ● Motivação ● E foi criado o Vert.x ● Tecnologias similares ao Vert.x ● Modelo Arquitetural ● Verticles: o Vert.x em ação! ● Event Bus: “sistema nervoso” do Vert.x ● Um pouco de REST com o Vert.x ● Vert.x na Web ● Histórico do Vert.x ● E tem muito mais com o Vert.x!!
  • 40. Referências ● Documentação e artigos ● http://vertx.io/ ● http://vertx.io/community/ ● http://vertx.io/blog/blog.html ● http://www.infoq.com/br/news/2012/05/vertx ● GitHub ● https://github.com/vert-x ● Palestras ● https://www.youtube.com/watch?v=EMtoN9wFEOU ● https://www.youtube.com/watch?v=SsJQTvp_F0Y