SlideShare uma empresa Scribd logo
1 de 33
USO DE COMPONENTES NA
  PROGRAMAÇÃO: ESTUDO
  EXPERIMENTAL COM O
  FRAMEWORK OSGI

Aluno: Thiago Alexandre Lenz
Orientador: 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
                            Pacotes
                           visíveis a
                            visíveis
                           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 testes
 Teste                                                Resultado
 Iniciar o Apache Felix sem nenhum bundle do          OK
 protótipo
 Instalar os bundles: LifeCycleCore,                  OK
 LifeCycleFinance e LifeCycleAdm
 Iniciar os bundles:LifeCycleCore, LifeCycleFinance   OK
 e LifeCycleAdm
 Atualizar a versão 1.0.0 do bundle                   OK
 LifeCycleFinance para a versão 1.0.1
 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?

Mais conteúdo relacionado

Mais procurados

Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Leinylson Fontinele
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de HardwareMiguel Correia
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
TCC - Pós Engenharia de Software
TCC - Pós Engenharia de SoftwareTCC - Pós Engenharia de Software
TCC - Pós Engenharia de Softwarethiago.lenz
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Leinylson Fontinele
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Leinylson Fontinele
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos iiCarlos Melo
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Requisitos Nao Funcionais
Requisitos Nao FuncionaisRequisitos Nao Funcionais
Requisitos Nao Funcionaisguesta36ce2
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...Marcos Alves Vieira
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 

Mais procurados (20)

Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Conceitos iniciais de Active Directory
Conceitos iniciais de Active DirectoryConceitos iniciais de Active Directory
Conceitos iniciais de Active Directory
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
TCC - Pós Engenharia de Software
TCC - Pós Engenharia de SoftwareTCC - Pós Engenharia de Software
TCC - Pós Engenharia de Software
 
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
Banco de Dados II Aula 08 - Linguagem de Consulta SQL (Comandos DML)
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos ii
 
Política de Grupo - Active Directory
Política de Grupo - Active DirectoryPolítica de Grupo - Active Directory
Política de Grupo - Active Directory
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Requisitos Nao Funcionais
Requisitos Nao FuncionaisRequisitos Nao Funcionais
Requisitos Nao Funcionais
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 

Semelhante a Componentes e OSGi: Estudo experimental com o framework OSGi

Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cBruno Borges
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoRegis Machado
 
FES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFChico2
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEBruno Borges
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDiogo Augusto Pereira
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticasRicardo Monteiro
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosRafael Chaves
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 

Semelhante a Componentes e OSGi: Estudo experimental com o framework OSGi (20)

Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
FES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdf
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 
Cake PHP
Cake PHPCake PHP
Cake PHP
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidade
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticas
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
10-codigo-limpo-parte-3.pdf
10-codigo-limpo-parte-3.pdf10-codigo-limpo-parte-3.pdf
10-codigo-limpo-parte-3.pdf
 

Componentes e OSGi: Estudo experimental com o framework OSGi