applets disciplina: ambientes de execução paralela profs. dr. celso maciel da costa
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 PresentationTRANSCRIPT
![Page 1: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/1.jpg)
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.
![Page 2: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/2.jpg)
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
![Page 3: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/3.jpg)
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.
![Page 4: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/4.jpg)
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
![Page 5: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/5.jpg)
5
Ambientes de compilação e de execução
![Page 6: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/6.jpg)
6
![Page 7: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/7.jpg)
7
![Page 8: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/8.jpg)
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.
![Page 9: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/9.jpg)
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)
![Page 10: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/10.jpg)
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
![Page 11: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/11.jpg)
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.
![Page 12: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/12.jpg)
12
Política de segurança do JDK 1.2
![Page 13: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/13.jpg)
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
![Page 14: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/14.jpg)
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)
![Page 15: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/15.jpg)
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.
![Page 16: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/16.jpg)
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
![Page 17: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/17.jpg)
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
![Page 18: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/18.jpg)
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++
![Page 19: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/19.jpg)
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
![Page 20: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/20.jpg)
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
![Page 21: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/21.jpg)
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.
![Page 22: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/22.jpg)
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);
}
}
![Page 23: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/23.jpg)
23
Classe e API Applet
![Page 24: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/24.jpg)
24
Object
Component
Container
Window
Frame
Panel
Applet
Button
Canvas
Scrollbar
Checkbox
List
Label
Choice
![Page 25: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/25.jpg)
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
![Page 26: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/26.jpg)
26
API - Métodos Gerenciadores dos Applets - cont.
void destroy()– chamado automaticamente quando o browser desliga
![Page 27: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/27.jpg)
27
![Page 28: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/28.jpg)
28
Sites exemplos
http://www.ssec.wisc.edu/~sanjayl/planets/kidsat/imovie.htm
http://liftoff.msfc.nasa.gov/realtime/jtrack/3d/JTrack3d.html
![Page 29: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/29.jpg)
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.
![Page 30: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/30.jpg)
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
![Page 31: Applets Disciplina: Ambientes de Execução Paralela Profs. Dr. Celso Maciel da Costa](https://reader035.vdocuments.net/reader035/viewer/2022062322/56815137550346895dbf50b5/html5/thumbnails/31.jpg)
31
Merci beaucoup par votre attention !
----------------------------------------------------