Trilha – JavaModularização em Java com OSGI               Filipe Portes         Mestre de Obra de Software                ...
Mim Tarzan... Quase graduado em Ciência da Computação Um dos Coordenadores do Grupo de Usuários Java de Goiás - @gojava Ma...
Modularização         Definindo um módulo:         “A Software Module is a deployable, manageable,         natively reusab...
Globalcode – Open4education
Globalcode – Open4education
2 Faces da Modularização Modelo de Desenvolvimento   Formas de construir arquiteturas modulares, e tratar os   problemas c...
Design Lógico e Físico Design Lógico: podemos dizer que são as relações entre as classes, métodos e pacotes. Como serão as...
Uso vs Reuso               Quanto maior a granularidade,               menos dependências, mais fácil de               usa...
Design em camadas Design comum encontrado em diversos sistemas, nas camadas superiores observa-se uma granularidade maior,...
Design Modular                 Globalcode – Open4education
Globalcode – Open4education
Mudanças Isoladas                    Globalcode – Open4education
Bibliografia                                                              Excelente Livro sobre Modularização             ...
Principais Patterns 18 patterns descritos no padrão GOF Base Patterns    Manage relationships    Module Reuse    Cohesive ...
Jar Hell           Globalcode – Open4education
Globalcode – Open4education
“Just about every software developer is an OSGi         consumer today because just about every platform         and every...
Globalcode – Open4education
Principais Benefícios Encapsulamento Deploy Dinâmico Versionamento Gerenciamento de Dependências Outros: http://www.osgi.o...
Globalcode – Open4education
Módulos = Bundles Bundle é um módulo ou parte dele Equivalente a um Jar, porém com diversas informações adicionais que são...
Life Cycle de um Bundle                          Globalcode – Open4education
Services           Globalcode – Open4education
Globalcode – Open4education
OSGI Services “This is similar to the service-oriented architecture made popular with web services. The key difference bet...
Bibliografia OSGI core especification versão 5: http://www.osgi.org/Download/Release5 Modularidade com Java Module System ...
Demo OSGI + Maven + JavaFX = <3 <3 Implementação Apache Felix https://github.com/filipeportes/ModuleFX                    ...
Dúvidas?? Contato   @filipeportes   omeuefilipe@gmail.com   https://github.com/filipeportes                               ...
Upcoming SlideShare
Loading in …5
×

Modularização em java com osgi

2,809 views

Published on

Palestra sobre arquiteturas modulares e modularização em Java com OSGI.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,809
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
34
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Modularização em java com osgi

  1. 1. Trilha – JavaModularização em Java com OSGI Filipe Portes Mestre de Obra de Software Globalcode – Open4education
  2. 2. Mim Tarzan... Quase graduado em Ciência da Computação Um dos Coordenadores do Grupo de Usuários Java de Goiás - @gojava Mais de 5 anos de experiência com desenvolvimento e arquitetura Java Atualmente trabalha no Centro de Gestão e Estudos Estratégicos em Brasília – DF Sósia oficial do Brad Pitt Globalcode – Open4education
  3. 3. Modularização Definindo um módulo: “A Software Module is a deployable, manageable, natively reusable, composable, stateless unit of software that provides a concise interface to consumers” Instalável Gerenciável Reutilizável Combinável Não guarda estado Oferece uma Interface claraFonte: Java Application Architecture: Modularity Patterns with Examples Using OSGi Globalcode – Open4education
  4. 4. Globalcode – Open4education
  5. 5. Globalcode – Open4education
  6. 6. 2 Faces da Modularização Modelo de Desenvolvimento Formas de construir arquiteturas modulares, e tratar os problemas comuns nesse cenário. Design Patterns Modelo de Execução Foca em como gerenciador sistemas modulares em tempo de execução, ou seja, Plataformas que suportem um Eco-sistema Modular oferecendo recursos que facilitem e potencializem a modularização OSGI, jigsaw, etc... Globalcode – Open4education
  7. 7. Design Lógico e Físico Design Lógico: podemos dizer que são as relações entre as classes, métodos e pacotes. Como serão as camadas. Padrão MVC,TDD, DDD, TDC, ABC, XYZ, XPO... Design Físico: como serão as unidades de deploy desse software, apenas 1 projeto, 1 projeto principal e outros menores, como se dará a comunicação entre eles? Globalcode – Open4education
  8. 8. Uso vs Reuso Quanto maior a granularidade, menos dependências, mais fácil de usar e mais difícil de reutilizar. Quanto menor a granularidade, mais dependências, mais fácil de reutilizar e mais difícil de usar. Globalcode – Open4education
  9. 9. Design em camadas Design comum encontrado em diversos sistemas, nas camadas superiores observa-se uma granularidade maior, ou seja, entidades mais fácil de se usar, a medida que se desce para as camadas inferiores a granularidade diminui, ou seja, entidades menores e mais fáceis de reutilizar. Globalcode – Open4education
  10. 10. Design Modular Globalcode – Open4education
  11. 11. Globalcode – Open4education
  12. 12. Mudanças Isoladas Globalcode – Open4education
  13. 13. Bibliografia Excelente Livro sobre Modularização de Software e Design Patterns com exemplos práticos em Java e OSGI “Esse livro non Ecxsisssteee” – Padre Quevedo sobre esse livro “Meu Precioooossooo” – Gollum sobre esse Livro “Linnndo, Luuuxo, Maara, D++, Liiindoo” – Narcisa sobre esse livro “Aaaahôôôoo trem que pula” – típico goiâno sobre esse livro*As imagens utilizadas nos slides anteriores foram retiradas do livro, Por favor não me processem!!http://www.amazon.com/Java-Application-Architecture-Modularity-Patterns/dp/0321247132 Globalcode – Open4education
  14. 14. Principais Patterns 18 patterns descritos no padrão GOF Base Patterns Manage relationships Module Reuse Cohesive Modules Depency Patterns Acyclic Relationships Physical Layers Usability Patterns Published Interface External Configuration Extensibility Patterns Utility Patterns Globalcode – Open4education
  15. 15. Jar Hell Globalcode – Open4education
  16. 16. Globalcode – Open4education
  17. 17. “Just about every software developer is an OSGi consumer today because just about every platform and every IDE use OSGi. The major platform vendors, including IBM, Oracle, and Red Hat are all using OSGi to build up their platforms. Whats interesting is that OSGi hasnt penetrated the enterprise developer space yet. At least, it hasnt gone mainstream yet. Some people might complain that OSGi is too complex. But what theyre really saying is that designing modular software is really really hard. Because it is.” – Kirk Knoernschildhttp://java.dzone.com/articles/osgi-vs-jigsaw-kirk Globalcode – Open4education
  18. 18. Globalcode – Open4education
  19. 19. Principais Benefícios Encapsulamento Deploy Dinâmico Versionamento Gerenciamento de Dependências Outros: http://www.osgi.org/Technology/WhyOSGi Globalcode – Open4education
  20. 20. Globalcode – Open4education
  21. 21. Módulos = Bundles Bundle é um módulo ou parte dele Equivalente a um Jar, porém com diversas informações adicionais que são interpretadas pela plataforma. Identificador Versão Dependências (bundles e versões) Exposições/publicações Globalcode – Open4education
  22. 22. Life Cycle de um Bundle Globalcode – Open4education
  23. 23. Services Globalcode – Open4education
  24. 24. Globalcode – Open4education
  25. 25. OSGI Services “This is similar to the service-oriented architecture made popular with web services. The key difference between web services and OSGi services is that web services always require some transport layer, which makes it thousands times slower than OSGi services that use direct method invocations.” *Retirado do site www.osgi.org Globalcode – Open4education
  26. 26. Bibliografia OSGI core especification versão 5: http://www.osgi.org/Download/Release5 Modularidade com Java Module System & OSGi - vinicius senger http://www.thedevelopersconference.com.br/arquivos/TDC2 008_OSGI.pdf Globalcode – Open4education
  27. 27. Demo OSGI + Maven + JavaFX = <3 <3 Implementação Apache Felix https://github.com/filipeportes/ModuleFX Globalcode – Open4education
  28. 28. Dúvidas?? Contato @filipeportes omeuefilipe@gmail.com https://github.com/filipeportes Globalcode – Open4education

×