Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa

Post on 22-Jan-2016

23 views 0 download

description

Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa Dr. Cesar de Rose Dr. Fernando Dotti Alunos:Alessandro Copetti Caio Graco P. Alegretti Ilustre audiência: gdhein, lgerber, mcristal, mpillon. Sumário. Introdução - PowerPoint PPT Presentation

Transcript of Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa

1

Applets

Disciplina: Ambientes de Execução Paralela

Profs. Dr. Celso Maciel da Costa

Dr. Cesar de Rose

Dr. Fernando Dotti

Alunos: Alessandro Copetti

Caio Graco P. Alegretti

Ilustre audiência: gdhein, lgerber, mcristal, mpillon.

2

Sumário

Introdução

Applets x Aplicativos independentes

Ambientes de compilação e de execução

Segurança

Desempenho

Componentes para execução de applets

Classe e API Applet

3

Introdução

Java: conhecida como linguagem de programação para a Internet

Applets– funciona no interior de um browser

– mais do que complementos para páginas Web

HotJava– Browser escrito em java que roda applets.

– Primeira aplicação que mostrou a força dos applets.

4

Applets x Aplicativos independentes

Aplicativos independentes– aplicativos do Java de uso geral que não necessitam

de navegador para serem executados

Applets– Visualizadores e Browsers

• Appletviewer (appletviewer mypage.html)• Hotjava• Netscape Communicator• Internet Explorer

5

Ambientes de compilação e de execução

6

7

8

Segurança

Camadas de segurança em Java– Linguagem e Compiladores

– Verificador de bytecodes

– Class Loader

– Security Manager

HotJava pode ser configurado para autorizar operações sobre arquivos de maneira mais flexível.

9

Segurança - cont.

Applets podem fazer:– apresentar imagens– executar sons– pegar teclas e clicks de mouse– enviar entrada do usuário para máquina origem

Têm acesso somente às seguintes informações:– versão do Java– nome e versão do S. O.– caracteres que separam:

• arquivos (/ ou \)• caminhos (: ou ;)• linhas(\n ou \r\n)

10

Segurança - cont.

BL BFAV JA

Ler arquivo local N N S S

Escrever arquivo local N N S S

Obter informação de arquivo N N S S

Apagar arquivo N N N S

Executar outro programa N N S S

Ler propriedades do usuário N S S S

Conectar-se à porta rede servidorS S S S

Conectar-se a outra máquina N S S S

Carregar biblioteca Java N S S S

Chamar exit N N S S

Criar uma janela pop-up Aviso S S S

11

Segurança - cont.

Legenda:

BL = Browser carregando uma URL, usando o modelo padrão de segurança de applet

BF = Browser carregando um arquivo local AV = Applet viewer JÁ = Java executando um aplicativo

independente sem gerenciador de segurança.

12

Política de segurança do JDK 1.2

13

Segurança - Signed Applet

Implementação de níveis de privilégios para applets nos browsers

– Execução fora da sandbox

Applet carrega um “certificado de segurança” indicando de onde veio

– Applets perfeitamente confiáveis: mesmos níveis de privilégios de uma aplicação local

mensagem encriptografada pela chave privada

14

Segurança - Signed Applet - cont.

Private key -> Public key Sender (Public key) -> Receiver (Private key) Certificado

– identidade do signatário– assunto– componentes dos nomes x.500

• unidade e organização; país

– datas de validade Cliente:

– consegue certificado da fonte do applet;– associa o applet a seu certificado (keytool - jdk1.2)

15

Segurança - Signed Applet - cont.

Keytool– cria chaves públicas e privadas– mostra, importa e exporta certificados– gera certificados x.509v1 auto autenticados

jarsigner– assina arquivo .JAR– verifica assinatura de arquivos .JAR assinados

Ferramenta de política– cria e modifica os arquivos de configuração de política

externa que define a política de segurança em Java da sua instalação.

16

Desempenho - pontos de gargalo

Orientação a objetos de resolução dinâmica Grau de abstração de hardware (quase) sem

precedentes Interpretação de bytecode Gerenciamento automático de memória Verificação de exceção de limite de arrays Multithreading Carregamento dinâmico Medidas de segurança restritivas

17

Desempenho - Compiladores

Estáticos– trabalham a partir do código fonte

– ideal para desenvolvimento em plataforma conhecida

Dinâmicos– a nível de bytecode

– analisam o perfil de um programa enquanto roda

– adequados para os applets

– JVM + JIT

18

Desempenho - Compilador JIT (Just in Time)

Traduz rapidamente o bytecode para código nativo da máquina e o coloca em um cache de memória.

Contorna o interpretador compilação é feita dinamicamente em tempo de

execução.– Podem rodar um programa de 5 a 20 vezes mais

rápido do que um interpretador• MS J++: 30% a 40 % da performance C++• Symantec: performance projetada de 100 % do C++

19

Desempenho - Compilação adaptativa

Os melhores compiladores JIT são, na verdade, compiladores adaptativos. [HAL98, p. 90]

HotSpot– compilador JIT hiperativo– toma decisões sobre quais partes de um programa

recompilar• freqüência de execução de trecho de código• tempo de execução do trecho• equilíbrio entre tempo necessário para compilação e tempo

ganho com execução mais veloz• remoção de código compilado da memória para

reaproveitamento

20

Componentes para execução de applets

Código Java– extends Applet // na classe principal– construtor passa a ser init()– Menus são substituídos por outros elementos de interfaces

– Gerenciador de Layout:• aplicativos: BorderLayout• applets: FlowLayout

gerar bytecode (*.class) com javac código html

<APPLET CODE=“arq.class” WIDTH=100 HEIGHT=100>

</APPLET>

Browser integra uma versão da JVM dentro dele

21

Tags Applets

CODEBASE= nome do diretório onde encontram-se as classes

ARCHIVE= – o class loader (carregador de arqs. de classes)

• Resolve os nomes de classes necessárias. • Faz conexões com o servidor Web para cada *.class.

– JAR = Java ARchive são arquivos que agrupam classes java, imagens e sons. Pode ser compactado.

• Comando = jar options file1 file2

– A tag ARCHIVE referencia um arquivo *.JAR.

22

Passagem de informações para applets<APPLET CODE=“FontTestApplet.class” WIDTH=200, HEIGHT=200>

<PARAM NAME=font VALUE=“Helvetica”>

</APPLET>

_______________________________________________________

import java.applet.*;

import java.awt.*;

public class FontTestApplet extends Applet

{ public void paint(Graphics g)

{ String fontName = getparameter(“font”);

font f = new Font(fontName, Font.BOLD, 18);

g.setFont(f);

g.drawString(“Hello World”, 25, 50);

}

}

23

Classe e API Applet

24

Object

Component

Container

Window

Frame

Panel

Applet

Button

Canvas

Scrollbar

Checkbox

List

Label

Choice

25

API - Métodos Gerenciadores dos Applets

void init()– chamado quando o applet é carregado– executado somente uma vez– processa os valores passados no “PARAM”– adicionar componentes de GUI

void start()– executado após init() e quando o usuário retorna à

página

void stop()– chamado automaticamente quando o usuário move-se para

fora da página

26

API - Métodos Gerenciadores dos Applets - cont.

void destroy()– chamado automaticamente quando o browser desliga

27

28

Sites exemplos

http://www.ssec.wisc.edu/~sanjayl/planets/kidsat/imovie.htm

http://liftoff.msfc.nasa.gov/realtime/jtrack/3d/JTrack3d.html

29

Bibliografia

HAL98] Halfhill, T. R. Mais velocidade ao Java. In: Byte Brasil. Editora Globo. Ano 7, n. 80, Maio de 1998.

[HOP96] HOPSON, K. C., INGRAM, S. E. Desenvolvendo Applets com Java, Rio de Janeiro: Campus, 1996.

[HOR98] HORSTMANN, Cay S, CORNELL, Gary. Core Java, vols. 1 e 2. Palo Alto: Prentice Hall, 1998.

[NEW97] NEWMAN, Alexander. Usando Java. Rio de Janeiro: Campus, 1997.

30

Bibliografia - cont.

SUN. http://java.sun.com

Hostile Java Applets. Http://users.visi.net/~nghcrft/home/java/java.htm

Segurança em Java. http://www.phxjug.org/meetings/security/tsld001.htm

31

Merci beaucoup par votre attention !

----------------------------------------------------