Download - 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
2
Estrutura da apresentação• Objetivos e Justificativa• Componentes e processos• Framework OSGi• Protótipos• Considerações finais
3
Objetivos• Geral• OSGi e Componentes de Software
• Específicos• Estudo bibliográfico• Protótipos (Modularization, Lifecycle, Services)• Resultados e testes
4
Justificativa• Justificativa• Sistemas complexos• Organização modular• Linguagem Java • Disponibilidade e flexibilidade
5
Componentes de Software• Definições• Unidade de software • Dividir em pequenos problemas
• Requisitos• Clareza• Interconexão via interfaces
6
Componentes de Software• Facilidade de troca
7
Componentes na UML
• Diversas formas de representação
8
Componentes e Orientação a Objetos
• Evolução• OO focado em hierarquias • Componentes focados em agregação e composição
9
Processo de Identificação de componentes• Engenharia de Domínio • Análise • Projeto• Implementação
• Desenvolvimento Baseado em Componentes• Componentes existentes
10
OSGi Framework• Origem• Novo conceito• Orientação a Serviços (SOA in a VM)• Três níveis
11
Modularização• Divisão de funcionalidades• Modularização lógica e física• Java possui problemas com a modularização
12
Controle de visibilidade• Modificadores públicos
Pacotes visíveisPacotes
visíveis a Bundle A
13
Controle de visibilidade• Solução: exportar apenas algumas classes
Pacotes não
expostos
14
Desorganização do classpath• Várias versões da mesma classe
15
Desorganização do classpath• Solução: versionamento e arquivo manifesto
16
Dificuldade de manutenção e implantação• Resolução de dependências
• Atualização da aplicação• Para tudo
17
Manifesto e classe de ativação• Semelhante ao método main
18
Dependências• Importação e exportação de pacotes• Ordem de resolução• Já resolvidos• Maior versão• Ordem de instalação
19
Ciclo de Vida• Estados de um bundle
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
21
Serviços• Registro e descoberta
22
Protótipo - Modularização• Relação entre componentes
23
Protótipo – Ciclo de vida• Relação entre componentes
24
Protótipo – Serviços• Protótipo
25
Resultados de testes - Modularização• Resultado
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
27
Resultados de testes - Serviços• Teste 1 – Iniciar o consumidor sem serviço
28
Resultados de testes - Serviços• Teste 2 – Iniciar os 2 serviços
29
Resultados de testes - Serviços • Teste 3 – parar um dos serviços
30
Considerações Finais• Componentes e engenharia• Framework OSGi• Série de vantagens• Flexibilidade, dinamismo...
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
32
Tks!!!
33
Dúvidas?