Title: Apresenta
1Uma arquitetura reflexiva
Copyleft by Ana Paula Mota
2Paullinia cupana
- Guaraná (Paulinia cupana) do tupi waraná.
Arbusto que tem propriedades estimulantes, pelo
conteúdo de cafeínaPlanta originária da
Amazônia - Maior estado produtor é a Bahia
- Sementes de guaraná possuem até 4x mais cafeína
do que grãos de café
Copyleft by Ana Paula Mota
3Roteiro
- Reflexão Computacional
- Arquiteturas reflexivas
- MOP(Meta-Object Protocol)
- Guaraná
- Exemplos
- Desempenho
- Referências
Copyleft by Ana Paula Mota
4Reflexão computacional
- Manter informação sobre si mesmo
- Mudar comportamento
- Inspecionar operações interceptadas e
modificá-las - Duas camadasCamada funcional e camadas de
gerenciamento
Copyleft by Ana Paula Mota
5Camada Funcional
- Nível da aplicação
- Componentes responsáveis pelas funcionalidades da
aplicação
Copyleft by Ana Paula Mota
6Camada de gerenciamento
- Aspectos do nível funcional
- Meta-objetos inspecionar operações
interceptadas, modificá-las e entregá-las ao
objeto do alvo - Persistência, controle de concorrência,
monitoramento
Copyleft by Ana Paula Mota
7Arquiteturas reflexivas
- All-in-one único meta-objeto
- Coupled meta-objetos bem acoplados
- Difícil reaproveitamento de código e manutenção
Copyleft by Ana Paula Mota
8Arquiteturas reflexivas
- Open C All-in-one, não permite composição de
meta-objetos - MOOSTRAP e MetaXa composição seqüencial
(meta-objetos similares) - MetaXa múltiplos meta-objetos em forma de uma
lista ligada
Copyleft by Ana Paula Mota
9Guaraná
- Baseado em uma versão free-Java (Kaffe OpenVM)
- Protocolo de meta-objetos em tempo de execução
- Possibilidade de composição de meta-objetos
- Controle de acesso ao nível de gerenciamento
- Qualquer programa Java roda com Guaraná
Copyleft by Ana Paula Mota
10Comparação MOP
- Encaminhar operações de seu sucessor
- Manipular resultados mesmo sem interesse
- Não há concorrência na manipulação de resultados
Copyleft by Ana Paula Mota
11Comparação MOP
Copyleft by Ana Paula Mota
12Comparação MOP
- Manipular resultados apenas se notificados pelo
kernel - Pode produzir um resultado para uma operação
(fig3(a)) - Resultado produzido pelo objeto não tem que ser
apresentado ao meta(fig3(d))
Copyleft by Ana Paula Mota
13Principais conceitos
- Composer
- Delega operações e resultados e compõe
resultados - Implementar a corrente de meta-objetos
(meta-objeto não tem que recorrer ao seu
sucessor). - Padrão Composite
Copyleft by Ana Paula Mota
14Principais conceitos
- Meta-objeto primário
- Meta-objeto associado a um objeto
- Meta-configuração
- Definida pelo criador do objeto(inicial)
- Meta-configuração não é propagada em sua
totalidade - Escondida da camada funcional
Copyleft by Ana Paula Mota
15Principais conceitos
Copyleft by Ana Paula Mota
16Principais conceitos
- Messages
- utilizadas para trocar informações entre
meta-objetos - Mensagens não entendidas são ignoradas
- Kernel implementa operação broadcast
Copyleft by Ana Paula Mota
17Principais conceitos
Copyleft by Ana Paula Mota
18Guaraná Criação de um objeto
Copyleft by Ana Paula Mota
19Guaraná Criação de um objeto
- Alocar espaço
- Meta-objeto para novo objeto
- Objeto Message para meta-configuração
- Invocar o construtor(chamada pode ser
interceptada)
Copyleft by Ana Paula Mota
20Guaraná Criação de um objeto
Copyleft by Ana Paula Mota
21Segurança
- Limitar capacidade de meta-objetos de agir
- Exemplos
- Não apresentar operações a meta-objetos
- Ignorar resultados/operações de meta-objetos
- Hierarquia não pode ser subvertida
Copyleft by Ana Paula Mota
22Classes centrais do Guaraná
- Guarana (kernel do Guarana) modifica
meta-configuração dos objetos - Operation inspeciona invocações e acessos a
campos dos objetos, validar e executar operações - Result objeto criado como resultado de uma
operação
Copyleft by Ana Paula Mota
23Classes centrais do Guaraná
- MetaObject raiz da hierarquia de classes de
meta-objetos - Composer meta-objeto que delega operações,
resultados e mensagens - Message modificação de informações de
meta-configuração
Copyleft by Ana Paula Mota
24Interceptando operações
Copyleft by Ana Paula Mota
25Interceptando operações
Copyleft by Ana Paula Mota
26Modificando resultados
Copyleft by Ana Paula Mota
27Modificando resultados
Copyleft by Ana Paula Mota
28Modificando resultados
Copyleft by Ana Paula Mota
29Desempenho
- Plataformas onde os testes foram
- realizados.
Copyleft by Ana Paula Mota
30Desempenho
- Tempo para interceptar algumas operações no
interpretador.
Tempo em milissegundos
Copyleft by Ana Paula Mota
31Desempenho
- Tempo de intercepção de algumas operações JIT
compiler.
Tempo em milissegundos
Copyleft by Ana Paula Mota
32Por que não 100 Java?
- Estender interpretador Java baixa performance
- Classes da API do Java deveriam ser modificadas
- Interceptar chamadas de construtores sem violar
regras de segurança - Kaffe OpenVM é a máquina virtual mais portátil
que existe
Copyleft by Ana Paula Mota
33Referências
- Homepage oficial http//www.lsd.ic.unicamp.br/ol
iva/guarana/ - Artigos
- Alexandre Oliva e Luiz Eduardo Buzato. The Design
and Implementation of Guaraná, The Implementation
of Guaraná on Java e The Reflective Archicteture
of Guaraná
Copyleft by Ana Paula Mota