SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Migrando de Applets p/ JavaFX & Novos Modelos de Distribuição de apps Java 
Bruno Borges Principal Product Manager 
Java Evangelist
Copyright © 2014, Oracle and/or its affiliates. 3 All rights reserved. 
• Java Evangelist 
• Orale Product Manager 
• Entusiasta JavaFX e IoT 
• Onde me encontrar 
• @brunoborges 
• plus.google.com/+BrunoBorges 
Bruno Borges
Copyright © 2014, Oracle and/or its affiliates. 4 All rights reserved. 
Agenda 
• História dos Java Applets 
• Java Applets e Browsers Hoje em Dia 
• JavaFX: WebView e o ScriptEngine 
• Modelos de Distribuição de Aplicações Java
Copyright © 2014, Oracle and/or its affiliates. 9 All rights reserved. 
Java Applets & 
Browsers Hoje em Dia
Copyright © 2014, Oracle and/or its affiliates. 10 All rights reserved. 
Java Applets Hoje 
• Qualquer feature que navegadores não suportam de maneira uniforme 
• Alguns exemplos 
• Transferência de muitos arquivos, de grandes tamanhos, e com resumo 
de envio 
• Criptografia local de dados 
• Autenticação por dispositivos físicos (tokens / leitores digitais / outros) 
• Broadcast de áudio, vídeo, e desktop sharing 
• Acesso a recursos do computador não expostos por navegadores 
• Processamento de dados local 
Porque ainda usam Applets? Exemplos de features nativas
Copyright © 2014, Oracle and/or its affiliates. 11 All rights reserved. 
Exemplo: Segurança de Internet Banking 
Como proteger o cliente de fraudes? 
Segurança 
Internet 
Banking 
Segurança 
Internet 
Banking 
Dados 
• Usuário e Senha 
• Conta Bancária 
• CPF 
Token 
• Token Físico 
• Cartão de Senhas Device 
• Origem de Acesso 
• Unicidade
Copyright © 2014, Oracle and/or its affiliates. 12 All rights reserved. 
Navegador Web 
Navegadores Web e Java Applets 
Features 
Nativas 
Camada Servidor 
AppServer 01 
AppServer 0N 
AppServer 0X 
AppServer 02 
Subsistemas 
LBR
Copyright © 2014, Oracle and/or its affiliates. 13 All rights reserved. 
Meios de Acesso ao Seu Serviço 
Como os clientes acessam seus serviços hoje? 
Aplicativos para 
Smartphones 
Seu 
Aplicativo 
Navegadores 
Web 
Aplicativos para 
Tablets 
Aplicativos 
para PCs
Copyright © 2014, Oracle and/or its affiliates. 14 All rights reserved. 
COMO MIGRAR 
SEM VIRAR A 
CHAVE?
Copyright © 2014, Oracle and/or its affiliates. 15 All rights reserved. 
Virando o jogo! 
Do Java no Browser ao Browser no Java! 
+
Copyright © 2014, Oracle and/or its affiliates. 16 All rights reserved. 
Modelo de Acesso Atual no PC 
• Vantagem 
• Execução “semi-transparente” 
• Altamente dependente 
• Sistemas Operacionais 
• Navegadores Web 
• Java “gratuito” de java.com 
• Java Browser Plugin 
• Navegadores podem bloquear 
• Atualizações automáticas (Windows) 
Sites que usam Java Applets 
Navegador Web 
Página Web 
Features 
Nativas
Copyright © 2014, Oracle and/or its affiliates. 17 All rights reserved. 
Novo Modelo de Acesso no PC 
• Vantagem 
• Ambiente “web” controlado 
• Não precisa jogar fora o site 
• Altamente Independente 
• Java gratuito ou suportado pela Oracle 
• Atualização controlada 
• Independência de navegadores de 
terceiros (Firefox, Chrome, Safari, etc) 
Serviços Web de amanhã que ainda precisam de features nativas 
Aplicação Java 
Browser Interno “WebView” 
Features 
Nativas
Copyright © 2014, Oracle and/or its affiliates. 18 All rights reserved. 
Novo Meio de Acesso via Aplicativo 
Mais uma Opção. Maior Independência. 
Custo de Implementação Baixo 
Navegador Web 
Página Web 
Applets 
Aplicação Java 
Browser Interno “WebView” 
Features 
Nativas
Copyright © 2014, Oracle and/or its affiliates. 19 All rights reserved. 
JavaFX: 
WebView & ScriptEngine
Copyright © 2014, Oracle and/or its affiliates. 20 All rights reserved. 
Two-tier Hybrid Java Desktop Applications 
Nome confuso, explica! 
JavaFX Web (WebView) 
Windows Linux Mac OS 
Java Virtual Machine 
Application
Copyright © 2014, Oracle and/or its affiliates. 21 All rights reserved. 
JavaFX 
• Java SE 8 
• Novo motor Javascript: Nashorn 
• Segue padrão ECMAScript 262 v5.1 
• Capaz de rodar aplicativos Node.JS 
• JavaFX 8 
• Suporte a componentes Swing (permite migrar JApplets) 
• Componente WebView 
• Suporte a CSS3, Javascript (via Nashorn), HTML5 tags, DOM 
• Javascript pode chamar APIs Java e vice-versa 
WebView e ScriptEngine
Copyright © 2014, Oracle and/or its affiliates. 22 All rights reserved. 
JavaFX 8 – WebEngine 
• html5test.com 
• acid3.acidtests.org 
• webkit sunspider 0.9.1 test 
Compatibilidades e Performance 
Firefox 29: 244.8ms 
Chrome 34: 259.8ms 
JavaFX 8: 252.4ms 
http://www.websocket.org/echo.html
Copyright © 2014, Oracle and/or its affiliates. 23 All rights reserved. 
Criando o browser em JavaFX
Copyright © 2014, Oracle and/or its affiliates. 25 All rights reserved. 
Como empacotar a aplicação 
• bit.ly/javafxpackager8unix 
• Linha de comando: 
• $ javafxpackager 
• Apache Ant Task 
• Suporte nativo no NetBeans 
• Gera os seguintes pacotes 
• Windows: EXE/MSI 
• Linux: RPM/DEB 
• Mac: DMG 
• Outros: installer/image 
Nova ferramenta: javafxpackager
Copyright © 2014, Oracle and/or its affiliates. 26 All rights reserved. 
Modelos de Distribuição 
de Aplicações Java
Copyright © 2014, Oracle and/or its affiliates. 27 All rights reserved. 
Distribuição por Java Web Start 
• A partir do servidor, usando Java Web Start 
• Usuário abre aplicação através de um link no site 
• Novas versões da aplicação são detectadas automaticamente 
• Pode substituir o modelo que usa Applets 
• Benefício: auto-update do Java (em Windows) 
• Desvantagens 
• Java deve estar instalado no PC do usuário. 
• Sofre dos mesmos riscos que Applets, pois roda através 
do Java Browser Plugin 
Como esta aplicação pode ser instalada no cliente?
Copyright © 2014, Oracle and/or its affiliates. 28 All rights reserved. 
Distribuição por Download 
• A partir do site do fabricante do software, através de um “download 
link” 
• Usa o mesmo JAR, acessível em modo “standalone” 
• JRE pode ser “self-contained” em pacotes DEB/RPM, DMG, e EXE 
• Modelo utilizado pela Receita Federal para o IRPF e ReceitaNet 
Como esta aplicação pode ser instalada no cliente?
Copyright © 2014, Oracle and/or its affiliates. 29 All rights reserved. 
Distribuição por Appstores para PCs 
• Como um programa self-contained em Appstores, distribuído em 
“lojas virtuais” para PCs 
• O Java vem embutido (bundled) com a aplicação 
• Você pode controlar qual versão do Java irá junto da aplicaçãos 
Como esta aplicação pode ser instalada no cliente?
Copyright © 2014, Oracle and/or its affiliates. 30 All rights reserved. 
Percepção do Usuário 
• Appstore 
• Aplicação específica 
• Usuários de smartphone confiam 
no modelo de appstores 
• Download Link 
• Usuários “geeks” e uso geral 
• Java Web Start 
• Uma “nova janela do browser” 
Como o usuário irá ver o novo acesso ao seu site
Copyright © 2014, Oracle and/or its affiliates. 31 All rights reserved. 
Modelo Atual versus Novas Opções 
Diferenças entre os modelos de distribuição 
Applet 
Java Web 
Start 
Download 
Link 
Appstore 
Independente da Instalação Prévia do Java NÃO NÃO SIM SIM 
Independe do Java Browser Plugin NÃO NÃO SIM SIM 
Independe da Atualização do Java NÃO NÃO SIM SIM 
Independe do Java LiveConnect™ NÃO SIM SIM SIM 
Independe de Restrições de Browsers Web NÃO NÃO SIM SIM 
Atualização Automática do App OOTB SIM SIM NÃO SIM 
Controle da Versão do Java pelo Banco NÃO NÃO SIM SIM 
Controle do Ambiente de Execução NÃO NÃO SIM SIM 
Viabilidade de Suporte Oracle NÃO NÃO SIM SIM 
* LiveConnect™ - comunicação via Javascript entre o browser tradicional e o Java
Copyright © 2014, Oracle and/or its affiliates. 32 All rights reserved. 
Desafios da Implementação 
• Mudança na interação entre JavaScript <-> Applet para convivência 
• Javascript do site deve ser inteligente para funcionar tanto em 
navegadores comuns, quanto no navegador JavaFX em caso de 
convivência do modelo atual com o novo meio de acesso 
• Usar uma única versão de bibliotecas de terceiros 
• Exemplo: quando dois Applets usam diferentes versões do BouncyCastle 
• Padronização e uniformidade em funcionalidades 
• Eliminar redundância. Exemplo: evitar que dois ou mais Applets 
implementem mesmos métodos de criptografia 
Pontos de atenção para a nova proposta de distribuição
Copyright © 2014, Oracle and/or its affiliates. 34 All rights reserved. 
Conclusão 
• Diminua a dependência de fatores externos 
• Elimine o fator “browser” e o sistema operacional 
• Concentre-se na aplicação JavaFX 
• Crie pacotes para os 3 principais SOs 
• Distribua sua aplicação de diversas formas 
• Standalone download link 
• Appstores para PCs 
• Java Web Start 
Migrando de Applets para uma aplicação two-tier “híbrida” Java
Copyright © 2014, Oracle and/or its affiliates. 36 All rights reserved. 
The preceding is intended to outline our general product direction. It is intended 
for information purposes only, and may not be incorporated into any contract. 
It is not a commitment to deliver any material, code, or functionality, and should 
not be relied upon in making purchasing decisions. The development, release, 
and timing of any features or functionality described for Oracle’s products 
remains at the sole discretion of Oracle.
Copyright © 2014, Oracle and/or its affiliates. 38 All rights reserved.

Mais conteúdo relacionado

Mais procurados

Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Ms Insights - Sessão MEW302
Ms Insights - Sessão MEW302Ms Insights - Sessão MEW302
Ms Insights - Sessão MEW302Flavio J Medeiros
 
Java, historico e futuro
Java, historico e futuroJava, historico e futuro
Java, historico e futuroFabiano Souza
 
Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Fernanda Bernardo
 
Usando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkUsando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkEmerson Thompson
 
Criando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APICriando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APIJessica Zanelato Soares
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETRenato Groff
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)Juarez Junior
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaAna Albert
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228MoisesInacio
 

Mais procurados (20)

[OFICINA JAVA] - Conhecendo Java
[OFICINA JAVA] - Conhecendo Java[OFICINA JAVA] - Conhecendo Java
[OFICINA JAVA] - Conhecendo Java
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Jenkins
JenkinsJenkins
Jenkins
 
Ms Insights - Sessão MEW302
Ms Insights - Sessão MEW302Ms Insights - Sessão MEW302
Ms Insights - Sessão MEW302
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Java, historico e futuro
Java, historico e futuroJava, historico e futuro
Java, historico e futuro
 
Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?Reinventar a roda a cada novo framework js, vale a pena?
Reinventar a roda a cada novo framework js, vale a pena?
 
Usando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkUsando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic Framework
 
Criando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma APICriando uma PWA com React para consumir uma API
Criando uma PWA com React para consumir uma API
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NETASP.NET 5 - Novidades do Desenvolvimento Web em .NET
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
 
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
Algaworks ebook-java-ee-7-com-jsf-primefaces-e-cdi-2a-edicao-20150228
 

Destaque

Applets e Java web start
Applets e Java web startApplets e Java web start
Applets e Java web startArtur Rodrigues
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceBruno Borges
 
Top Plugins de Segurança para WordPress
Top Plugins de Segurança para WordPressTop Plugins de Segurança para WordPress
Top Plugins de Segurança para WordPressTales Augusto
 
Desenvolvimento de Jogos com Software Livre
Desenvolvimento de Jogos com Software LivreDesenvolvimento de Jogos com Software Livre
Desenvolvimento de Jogos com Software LivreRelsi Maron
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavajesuinoPower
 

Destaque (7)

Applets e Java web start
Applets e Java web startApplets e Java web start
Applets e Java web start
 
Sistemas Distribuídos - Multithreading
Sistemas Distribuídos - MultithreadingSistemas Distribuídos - Multithreading
Sistemas Distribuídos - Multithreading
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service
 
Top Plugins de Segurança para WordPress
Top Plugins de Segurança para WordPressTop Plugins de Segurança para WordPress
Top Plugins de Segurança para WordPress
 
Desenvolvimento de Jogos com Software Livre
Desenvolvimento de Jogos com Software LivreDesenvolvimento de Jogos com Software Livre
Desenvolvimento de Jogos com Software Livre
 
Oracle Database Cloud Service
Oracle Database Cloud ServiceOracle Database Cloud Service
Oracle Database Cloud Service
 
JavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma JavaJavaFX: A nova biblioteca gráfica da plataforma Java
JavaFX: A nova biblioteca gráfica da plataforma Java
 

Semelhante a Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps

Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...E-Commerce Brasil
 
Iniciação JSP!
Iniciação JSP!Iniciação JSP!
Iniciação JSP!JErickPPTs
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web appsJoão Maciel
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sériosaspi2
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenLeandro Costa
 
Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013SpinEngenharia
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasDan Vitoriano
 

Semelhante a Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps (20)

Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 
Aula 1 1
Aula 1 1Aula 1 1
Aula 1 1
 
Javafx
JavafxJavafx
Javafx
 
Software gratuito
Software gratuitoSoftware gratuito
Software gratuito
 
(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax
 
Hello World JavaFX
Hello World JavaFXHello World JavaFX
Hello World JavaFX
 
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
 
Iniciação JSP!
Iniciação JSP!Iniciação JSP!
Iniciação JSP!
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Java e Software Livre
Java e Software LivreJava e Software Livre
Java e Software Livre
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sério
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 
Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013Apresentação da Spin no SIMPASE 2013
Apresentação da Spin no SIMPASE 2013
 
AMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps ModernasAMP Roadshow SP 2019 - Web Apps Modernas
AMP Roadshow SP 2019 - Web Apps Modernas
 

Mais de Bruno Borges

Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on KubernetesBruno Borges
 
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsFrom GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsBruno Borges
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless ComputingBruno Borges
 
Visual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersVisual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersBruno Borges
 
Taking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudTaking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudBruno Borges
 
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...Bruno Borges
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemBruno Borges
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudBruno Borges
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXBruno Borges
 
Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Bruno Borges
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Bruno Borges
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Bruno Borges
 
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Bruno Borges
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Bruno Borges
 
Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Bruno Borges
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXBruno Borges
 
Integrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsIntegrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsBruno Borges
 

Mais de Bruno Borges (20)

Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes
 
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsFrom GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless Computing
 
Visual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersVisual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring Developers
 
Taking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudTaking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure Cloud
 
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
 
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
 
Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
 
Integrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsIntegrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSockets
 

Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps

  • 1. Migrando de Applets p/ JavaFX & Novos Modelos de Distribuição de apps Java Bruno Borges Principal Product Manager Java Evangelist
  • 2. Copyright © 2014, Oracle and/or its affiliates. 3 All rights reserved. • Java Evangelist • Orale Product Manager • Entusiasta JavaFX e IoT • Onde me encontrar • @brunoborges • plus.google.com/+BrunoBorges Bruno Borges
  • 3. Copyright © 2014, Oracle and/or its affiliates. 4 All rights reserved. Agenda • História dos Java Applets • Java Applets e Browsers Hoje em Dia • JavaFX: WebView e o ScriptEngine • Modelos de Distribuição de Aplicações Java
  • 4. Copyright © 2014, Oracle and/or its affiliates. 9 All rights reserved. Java Applets & Browsers Hoje em Dia
  • 5. Copyright © 2014, Oracle and/or its affiliates. 10 All rights reserved. Java Applets Hoje • Qualquer feature que navegadores não suportam de maneira uniforme • Alguns exemplos • Transferência de muitos arquivos, de grandes tamanhos, e com resumo de envio • Criptografia local de dados • Autenticação por dispositivos físicos (tokens / leitores digitais / outros) • Broadcast de áudio, vídeo, e desktop sharing • Acesso a recursos do computador não expostos por navegadores • Processamento de dados local Porque ainda usam Applets? Exemplos de features nativas
  • 6. Copyright © 2014, Oracle and/or its affiliates. 11 All rights reserved. Exemplo: Segurança de Internet Banking Como proteger o cliente de fraudes? Segurança Internet Banking Segurança Internet Banking Dados • Usuário e Senha • Conta Bancária • CPF Token • Token Físico • Cartão de Senhas Device • Origem de Acesso • Unicidade
  • 7. Copyright © 2014, Oracle and/or its affiliates. 12 All rights reserved. Navegador Web Navegadores Web e Java Applets Features Nativas Camada Servidor AppServer 01 AppServer 0N AppServer 0X AppServer 02 Subsistemas LBR
  • 8. Copyright © 2014, Oracle and/or its affiliates. 13 All rights reserved. Meios de Acesso ao Seu Serviço Como os clientes acessam seus serviços hoje? Aplicativos para Smartphones Seu Aplicativo Navegadores Web Aplicativos para Tablets Aplicativos para PCs
  • 9. Copyright © 2014, Oracle and/or its affiliates. 14 All rights reserved. COMO MIGRAR SEM VIRAR A CHAVE?
  • 10. Copyright © 2014, Oracle and/or its affiliates. 15 All rights reserved. Virando o jogo! Do Java no Browser ao Browser no Java! +
  • 11. Copyright © 2014, Oracle and/or its affiliates. 16 All rights reserved. Modelo de Acesso Atual no PC • Vantagem • Execução “semi-transparente” • Altamente dependente • Sistemas Operacionais • Navegadores Web • Java “gratuito” de java.com • Java Browser Plugin • Navegadores podem bloquear • Atualizações automáticas (Windows) Sites que usam Java Applets Navegador Web Página Web Features Nativas
  • 12. Copyright © 2014, Oracle and/or its affiliates. 17 All rights reserved. Novo Modelo de Acesso no PC • Vantagem • Ambiente “web” controlado • Não precisa jogar fora o site • Altamente Independente • Java gratuito ou suportado pela Oracle • Atualização controlada • Independência de navegadores de terceiros (Firefox, Chrome, Safari, etc) Serviços Web de amanhã que ainda precisam de features nativas Aplicação Java Browser Interno “WebView” Features Nativas
  • 13. Copyright © 2014, Oracle and/or its affiliates. 18 All rights reserved. Novo Meio de Acesso via Aplicativo Mais uma Opção. Maior Independência. Custo de Implementação Baixo Navegador Web Página Web Applets Aplicação Java Browser Interno “WebView” Features Nativas
  • 14. Copyright © 2014, Oracle and/or its affiliates. 19 All rights reserved. JavaFX: WebView & ScriptEngine
  • 15. Copyright © 2014, Oracle and/or its affiliates. 20 All rights reserved. Two-tier Hybrid Java Desktop Applications Nome confuso, explica! JavaFX Web (WebView) Windows Linux Mac OS Java Virtual Machine Application
  • 16. Copyright © 2014, Oracle and/or its affiliates. 21 All rights reserved. JavaFX • Java SE 8 • Novo motor Javascript: Nashorn • Segue padrão ECMAScript 262 v5.1 • Capaz de rodar aplicativos Node.JS • JavaFX 8 • Suporte a componentes Swing (permite migrar JApplets) • Componente WebView • Suporte a CSS3, Javascript (via Nashorn), HTML5 tags, DOM • Javascript pode chamar APIs Java e vice-versa WebView e ScriptEngine
  • 17. Copyright © 2014, Oracle and/or its affiliates. 22 All rights reserved. JavaFX 8 – WebEngine • html5test.com • acid3.acidtests.org • webkit sunspider 0.9.1 test Compatibilidades e Performance Firefox 29: 244.8ms Chrome 34: 259.8ms JavaFX 8: 252.4ms http://www.websocket.org/echo.html
  • 18. Copyright © 2014, Oracle and/or its affiliates. 23 All rights reserved. Criando o browser em JavaFX
  • 19. Copyright © 2014, Oracle and/or its affiliates. 25 All rights reserved. Como empacotar a aplicação • bit.ly/javafxpackager8unix • Linha de comando: • $ javafxpackager • Apache Ant Task • Suporte nativo no NetBeans • Gera os seguintes pacotes • Windows: EXE/MSI • Linux: RPM/DEB • Mac: DMG • Outros: installer/image Nova ferramenta: javafxpackager
  • 20. Copyright © 2014, Oracle and/or its affiliates. 26 All rights reserved. Modelos de Distribuição de Aplicações Java
  • 21. Copyright © 2014, Oracle and/or its affiliates. 27 All rights reserved. Distribuição por Java Web Start • A partir do servidor, usando Java Web Start • Usuário abre aplicação através de um link no site • Novas versões da aplicação são detectadas automaticamente • Pode substituir o modelo que usa Applets • Benefício: auto-update do Java (em Windows) • Desvantagens • Java deve estar instalado no PC do usuário. • Sofre dos mesmos riscos que Applets, pois roda através do Java Browser Plugin Como esta aplicação pode ser instalada no cliente?
  • 22. Copyright © 2014, Oracle and/or its affiliates. 28 All rights reserved. Distribuição por Download • A partir do site do fabricante do software, através de um “download link” • Usa o mesmo JAR, acessível em modo “standalone” • JRE pode ser “self-contained” em pacotes DEB/RPM, DMG, e EXE • Modelo utilizado pela Receita Federal para o IRPF e ReceitaNet Como esta aplicação pode ser instalada no cliente?
  • 23. Copyright © 2014, Oracle and/or its affiliates. 29 All rights reserved. Distribuição por Appstores para PCs • Como um programa self-contained em Appstores, distribuído em “lojas virtuais” para PCs • O Java vem embutido (bundled) com a aplicação • Você pode controlar qual versão do Java irá junto da aplicaçãos Como esta aplicação pode ser instalada no cliente?
  • 24. Copyright © 2014, Oracle and/or its affiliates. 30 All rights reserved. Percepção do Usuário • Appstore • Aplicação específica • Usuários de smartphone confiam no modelo de appstores • Download Link • Usuários “geeks” e uso geral • Java Web Start • Uma “nova janela do browser” Como o usuário irá ver o novo acesso ao seu site
  • 25. Copyright © 2014, Oracle and/or its affiliates. 31 All rights reserved. Modelo Atual versus Novas Opções Diferenças entre os modelos de distribuição Applet Java Web Start Download Link Appstore Independente da Instalação Prévia do Java NÃO NÃO SIM SIM Independe do Java Browser Plugin NÃO NÃO SIM SIM Independe da Atualização do Java NÃO NÃO SIM SIM Independe do Java LiveConnect™ NÃO SIM SIM SIM Independe de Restrições de Browsers Web NÃO NÃO SIM SIM Atualização Automática do App OOTB SIM SIM NÃO SIM Controle da Versão do Java pelo Banco NÃO NÃO SIM SIM Controle do Ambiente de Execução NÃO NÃO SIM SIM Viabilidade de Suporte Oracle NÃO NÃO SIM SIM * LiveConnect™ - comunicação via Javascript entre o browser tradicional e o Java
  • 26. Copyright © 2014, Oracle and/or its affiliates. 32 All rights reserved. Desafios da Implementação • Mudança na interação entre JavaScript <-> Applet para convivência • Javascript do site deve ser inteligente para funcionar tanto em navegadores comuns, quanto no navegador JavaFX em caso de convivência do modelo atual com o novo meio de acesso • Usar uma única versão de bibliotecas de terceiros • Exemplo: quando dois Applets usam diferentes versões do BouncyCastle • Padronização e uniformidade em funcionalidades • Eliminar redundância. Exemplo: evitar que dois ou mais Applets implementem mesmos métodos de criptografia Pontos de atenção para a nova proposta de distribuição
  • 27. Copyright © 2014, Oracle and/or its affiliates. 34 All rights reserved. Conclusão • Diminua a dependência de fatores externos • Elimine o fator “browser” e o sistema operacional • Concentre-se na aplicação JavaFX • Crie pacotes para os 3 principais SOs • Distribua sua aplicação de diversas formas • Standalone download link • Appstores para PCs • Java Web Start Migrando de Applets para uma aplicação two-tier “híbrida” Java
  • 28. Copyright © 2014, Oracle and/or its affiliates. 36 All rights reserved. The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 29. Copyright © 2014, Oracle and/or its affiliates. 38 All rights reserved.