Title: Applets
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.
2Sumá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
3Introduçã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.
4Applets 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(No Transcript)
7(No Transcript)
8Seguranç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.
9Seguranç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)
10Segurança - cont.
- BL BF AV 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
11Seguranç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.
12Política de segurança do JDK 1.2
13Seguranç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
14Segurança - Signed Applet - cont.
- Private key -gt Public key
- Sender (Public key) -gt 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)
15Seguranç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.
16Desempenho - 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
17Desempenho - 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
18Desempenho - 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
19Desempenho - 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
20Componentes 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
- ltAPPLET CODEarq.class WIDTH100 HEIGHT100gt
- lt/APPLETgt
- Browser integra uma versão da JVM dentro dele
21Tags 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.
22Passagem de informações para applets
- ltAPPLET CODEFontTestApplet.class WIDTH200,
HEIGHT200gt - ltPARAM NAMEfont VALUEHelveticagt
- lt/APPLETgt
- __________________________________________________
_____ - 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 24(No Transcript)
25API - 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
26API - Métodos Gerenciadores dos Applets - cont.
- void destroy()
- chamado automaticamente quando o browser desliga
27(No Transcript)
28Sites exemplos
- http//www.ssec.wisc.edu/sanjayl/planets/kidsat/i
movie.htm - http//liftoff.msfc.nasa.gov/realtime/jtrack/3d/JT
rack3d.html
29Bibliografia
- 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.
30Bibliografia - cont.
- SUN. http//java.sun.com
- Hostile Java Applets. Http//users.visi.net/nghcr
ft/home/java/java.htm - Segurança em Java. http//www.phxjug.org/meetings/
security/tsld001.htm
31- Merci beaucoup par votre attention !
- --------------------------------------------------
--