apresentação tcc-pós

33

Click here to load reader

Upload: thiagolenz

Post on 16-Apr-2017

1.389 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apresentação TCC-pós

USO DE COMPONENTES NA PROGRAMAÇÃO: ESTUDO EXPERIMENTAL COM O FRAMEWORK OSGI

Aluno: Thiago Alexandre LenzOrientador: Me. Fernando Schütz

Page 2: Apresentação TCC-pós

2

Estrutura da apresentação• Objetivos e Justificativa• Componentes e processos• Framework OSGi• Protótipos• Considerações finais

Page 3: Apresentação TCC-pós

3

Objetivos• Geral• OSGi e Componentes de Software

• Específicos• Estudo bibliográfico• Protótipos (Modularization, Lifecycle, Services)• Resultados e testes

Page 4: Apresentação TCC-pós

4

Justificativa• Justificativa• Sistemas complexos• Organização modular• Linguagem Java • Disponibilidade e flexibilidade

Page 5: Apresentação TCC-pós

5

Componentes de Software• Definições• Unidade de software • Dividir em pequenos problemas

• Requisitos• Clareza• Interconexão via interfaces

Page 6: Apresentação TCC-pós

6

Componentes de Software• Facilidade de troca

Page 7: Apresentação TCC-pós

7

Componentes na UML

• Diversas formas de representação

Page 8: Apresentação TCC-pós

8

Componentes e Orientação a Objetos

• Evolução• OO focado em hierarquias • Componentes focados em agregação e composição

Page 9: Apresentação TCC-pós

9

Processo de Identificação de componentes• Engenharia de Domínio • Análise • Projeto• Implementação

• Desenvolvimento Baseado em Componentes• Componentes existentes

Page 10: Apresentação TCC-pós

10

OSGi Framework• Origem• Novo conceito• Orientação a Serviços (SOA in a VM)• Três níveis

Page 11: Apresentação TCC-pós

11

Modularização• Divisão de funcionalidades• Modularização lógica e física• Java possui problemas com a modularização

Page 12: Apresentação TCC-pós

12

Controle de visibilidade• Modificadores públicos

Pacotes visíveisPacotes

visíveis a Bundle A

Page 13: Apresentação TCC-pós

13

Controle de visibilidade• Solução: exportar apenas algumas classes

Pacotes não

expostos

Page 14: Apresentação TCC-pós

14

Desorganização do classpath• Várias versões da mesma classe

Page 15: Apresentação TCC-pós

15

Desorganização do classpath• Solução: versionamento e arquivo manifesto

Page 16: Apresentação TCC-pós

16

Dificuldade de manutenção e implantação• Resolução de dependências

• Atualização da aplicação• Para tudo

Page 17: Apresentação TCC-pós

17

Manifesto e classe de ativação• Semelhante ao método main

Page 18: Apresentação TCC-pós

18

Dependências• Importação e exportação de pacotes• Ordem de resolução• Já resolvidos• Maior versão• Ordem de instalação

Page 19: Apresentação TCC-pós

19

Ciclo de Vida• Estados de um bundle

Page 20: Apresentação TCC-pós

20

Serviços• Contrato entre consumidor e fornecedor• Vantagens• Baixo acoplamento• Foco em interfaces• Meta-dados de serviços• Suporte em tempo real a várias implmentações

Page 21: Apresentação TCC-pós

21

Serviços• Registro e descoberta

Page 22: Apresentação TCC-pós

22

Protótipo - Modularização• Relação entre componentes

Page 23: Apresentação TCC-pós

23

Protótipo – Ciclo de vida• Relação entre componentes

Page 24: Apresentação TCC-pós

24

Protótipo – Serviços• Protótipo

Page 25: Apresentação TCC-pós

25

Resultados de testes - Modularização• Resultado

Page 26: Apresentação TCC-pós

26

Resultados de testes - Ciclo de vida• Script de testesTeste ResultadoIniciar o Apache Felix sem nenhum bundle do protótipo

OK

Instalar os bundles: LifeCycleCore, LifeCycleFinance e LifeCycleAdm

OK

Iniciar os bundles:LifeCycleCore, LifeCycleFinance e LifeCycleAdm

OK

Atualizar a versão 1.0.0 do bundle LifeCycleFinance para a versão 1.0.1

OK

Parar o bundle LifeCycleAdm OK

Page 27: Apresentação TCC-pós

27

Resultados de testes - Serviços• Teste 1 – Iniciar o consumidor sem serviço

Page 28: Apresentação TCC-pós

28

Resultados de testes - Serviços• Teste 2 – Iniciar os 2 serviços

Page 29: Apresentação TCC-pós

29

Resultados de testes - Serviços • Teste 3 – parar um dos serviços

Page 30: Apresentação TCC-pós

30

Considerações Finais• Componentes e engenharia• Framework OSGi• Série de vantagens• Flexibilidade, dinamismo...

Page 31: Apresentação TCC-pós

31

Trabalhos Futuros• Aplicações WEB com Eclipse Virgo – WABs• Comparativo entre Apache Felix, Equinox e Knopflerfish• Estudo avançado sobre o framework OSGi• Integração OSGi e Maven: Maven Bundle Plugin

Page 32: Apresentação TCC-pós

32

Tks!!!

Page 33: Apresentação TCC-pós

33

Dúvidas?