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

ScModelo SCOR (Supply Chain Operations Reference – model)
ScModelo SCOR (Supply Chain Operations Reference – model)ScModelo SCOR (Supply Chain Operations Reference – model)
ScModelo SCOR (Supply Chain Operations Reference – model)Sergio Grisa
 
Apresentaçao Avarias e Soluçoes
Apresentaçao Avarias e Soluçoes Apresentaçao Avarias e Soluçoes
Apresentaçao Avarias e Soluçoes André Ferreira
 
A02 Gestao por Processos (identicando e correlacionando processos)
A02   Gestao por Processos (identicando e correlacionando processos)A02   Gestao por Processos (identicando e correlacionando processos)
A02 Gestao por Processos (identicando e correlacionando processos)Saulo Oliveira
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoMaria Alice Jovinski
 
Uml diagrama de atividades
Uml   diagrama de atividadesUml   diagrama de atividades
Uml diagrama de atividadesJordan Oliveira
 
Gerenciamento de Qualidade
Gerenciamento de QualidadeGerenciamento de Qualidade
Gerenciamento de Qualidadeelliando dias
 
Gestão da Qualidade Total
Gestão da Qualidade TotalGestão da Qualidade Total
Gestão da Qualidade TotalGerisval Pessoa
 
Aula 2 controle da qualidade total
Aula 2  controle da qualidade totalAula 2  controle da qualidade total
Aula 2 controle da qualidade totalinstitutocarvalho
 
Aula 01-Conceitos de Qualidade
Aula 01-Conceitos de QualidadeAula 01-Conceitos de Qualidade
Aula 01-Conceitos de QualidadeCris Fidelix
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTRicardo Terra
 

Mais procurados (20)

Haskell
HaskellHaskell
Haskell
 
ScModelo SCOR (Supply Chain Operations Reference – model)
ScModelo SCOR (Supply Chain Operations Reference – model)ScModelo SCOR (Supply Chain Operations Reference – model)
ScModelo SCOR (Supply Chain Operations Reference – model)
 
UML - Diagrama de Pacotes
UML - Diagrama de PacotesUML - Diagrama de Pacotes
UML - Diagrama de Pacotes
 
Apresentaçao Avarias e Soluçoes
Apresentaçao Avarias e Soluçoes Apresentaçao Avarias e Soluçoes
Apresentaçao Avarias e Soluçoes
 
A02 Gestao por Processos (identicando e correlacionando processos)
A02   Gestao por Processos (identicando e correlacionando processos)A02   Gestao por Processos (identicando e correlacionando processos)
A02 Gestao por Processos (identicando e correlacionando processos)
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniao
 
Afasia livro fono
Afasia livro fonoAfasia livro fono
Afasia livro fono
 
Uml diagrama de atividades
Uml   diagrama de atividadesUml   diagrama de atividades
Uml diagrama de atividades
 
Gerenciamento de Qualidade
Gerenciamento de QualidadeGerenciamento de Qualidade
Gerenciamento de Qualidade
 
Gestão da Qualidade Total
Gestão da Qualidade TotalGestão da Qualidade Total
Gestão da Qualidade Total
 
Iso27001 sgsi
Iso27001 sgsiIso27001 sgsi
Iso27001 sgsi
 
Aula 2 controle da qualidade total
Aula 2  controle da qualidade totalAula 2  controle da qualidade total
Aula 2 controle da qualidade total
 
Revisão UML
Revisão UMLRevisão UML
Revisão UML
 
Fdd
FddFdd
Fdd
 
Aula 01-Conceitos de Qualidade
Aula 01-Conceitos de QualidadeAula 01-Conceitos de Qualidade
Aula 01-Conceitos de Qualidade
 
02 apqp 2010-microsol
02 apqp 2010-microsol02 apqp 2010-microsol
02 apqp 2010-microsol
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
UML
UMLUML
UML
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLT
 

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