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

Post on 24-May-2015

244 views 1 download

Tags:

transcript

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. All rights reserved. 3

• 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. 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

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

Java Applets & Browsers Hoje em Dia

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

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

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

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

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

COMO MIGRAR SEM VIRAR A CHAVE?

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

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

+

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

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

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

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

JavaFX: WebView & ScriptEngine

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

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

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

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

Criando o browser em JavaFX

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

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

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

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?

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?

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?

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

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

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

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

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.

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