apresentação tcc-pós

Post on 16-Apr-2017

1.389 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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?

top related