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

29
Migrando de Applets p/ JavaFX & Novos Modelos de Distribuição de apps Java Bruno Borges Principal Product Manager Java Evangelist

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

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

Migrando de Applets p/ JavaFX & Novos Modelos de Distribuição de apps Java

Bruno Borges

Principal Product Manager

Java Evangelist

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 3

• Java Evangelist

• Orale Product Manager

• Entusiasta JavaFX e IoT

• Onde me encontrar

• @brunoborges

• plus.google.com/+BrunoBorges

Bruno Borges

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 4

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 9

Java Applets & Browsers Hoje em Dia

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 10

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 11

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 12

Navegador Web

Navegadores Web e Java Applets

Features

Nativas

Camada Servidor

AppServer 01

AppServer 0N

AppServer 0X

AppServer 02

Subsistemas

LB

R

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 13

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 14

COMO MIGRAR SEM VIRAR A CHAVE?

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 15

Virando o jogo! Do Java no Browser ao Browser no Java!

+

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 16

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 17

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 18

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 19

JavaFX: WebView & ScriptEngine

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 20

Two-tier Hybrid Java Desktop Applications

Nome confuso, explica!

JavaFX Web (WebView)

Windows Mac OS Linux

Java Virtual Machine

Application

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 21

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 22

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 23

Criando o browser em JavaFX

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 25

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 26

Modelos de Distribuição de Aplicações Java

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 27

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?

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 28

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?

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 29

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?

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 30

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 31

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 32

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 34

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

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 36

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.

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

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 38