TDC2014 - OSGi e ESBs - A Saga!

745 visualizações

Publicada em

TDC2014 - Florianópolis - Trilha de Arquitetura - OSGi e ESBs - A Saga!

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
745
No SlideShare
0
A partir de incorporações
0
Número de incorporações
32
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDC2014 - OSGi e ESBs - A Saga!

  1. 1. OSGi e ESBs A Saga!
  2. 2. DISCLAIMER! O CONTEÚDO DOS SLIDES REPRESENTA A VISÃO PESSOAL DOS PALESTRANTES
  3. 3. Oi! Hanneli (a.k.a. @hannelita)! Middleware Consultant at ! Café e Pokémon <3 Luan (a.k.a. @BR_LuanCestari)! Cloud Developer! Naruto e Tecnologia
  4. 4. O que vamos ver aqui • Buzzwords que trollam sua vida • Problemas que parecem simples (Só parecem) • Um pouco sobre OSGi e conceitos • Um pouco sobre ESBs e conceitos • Um ESB++ • Dicas de escolhas para sua arquitetura • Gifs e imagens engraçados (ou não)
  5. 5. O que NÃO vamos ver aqui • Buzzwords explicadas de forma complexa • Um manual detalhado sobre Camel, ESBs e Patterns de Integração
  6. 6. Java Ruby Python EJB JMS Rails NoSQL Lambda Go ErlangORM JS PHP Cloud PaaS MySQL JSFWSRESTAWS CDI Angular CSS JUnit Test JMeter Hibernate XMLYML JSON HTTP OAuthApache EclipseJBoss LinuxJSPGit HTML JPA Redis Neo4j Mongo Oracle Heroku Tomcat Struts JDBC
  7. 7. OSGi ESB Camel CloudPatterns
  8. 8. Problemas simples MyEnterpriseMothaFucka.ear MyEJBs.jar MyWebApp.war
  9. 9. Como builda o projeto? 1. mvn clean install 2. parar o server 3. deploy no server 4. server starta 5. acessa aplicação
  10. 10. Temos o seguinte EJB package tdc; ! @javax.ejb.Stateless public class MeuEJB { public String listarLocais() { return "{"locais": ["a","b","c"] }"; } }
  11. 11. Vamos dar uma mexidinha package tdc; ! @javax.ejb.Stateless public class MeuEJB { public String listarLocais() { return "{"locais": ["d","e","f"] }"; } public int size() {! return 42;! }! }
  12. 12. Como colocar as alterações no ar? 1. para tudo - para o server 2. rebuild 3. redeploy 4. restart no server
  13. 13. Sério mesmo?
  14. 14. Você muda UMA CLASSE UMA CLASSE UMA
  15. 15. E REBUILDA TUDO TUDO
  16. 16. Você aprendeu 2348743578 novos frameworks
  17. 17. Para rebuildar o projeto todo quando muda UMA CLASSE
  18. 18. Durma com peso na consciência depois disso.
  19. 19. Como evito essa tragédia? Servidor de Aplicação MyEnterpriseMothaFucka.ear MeuEJB.java *
  20. 20. Mais uma Servidor de Aplicação financeiro.ear rh.ear MyEnterpriseMothaFucka.ear
  21. 21. O update de MeuEJB.java precisa entrar em produção urgente para atender o rh.ear
  22. 22. Mas o financeiro.ear ainda precisa da versão antiga de MeuEJB.ear
  23. 23. Como evito essa tragédia - parte II? Servidor de Aplicação MyEnterpriseMothaFucka.ear MeuEJB_V2_.java * MeuEJB.java
  24. 24. Sabe com o que isso se parece? Droga, é uma peça contínua
  25. 25. Sabe com o que isso se parece? Peças menores!
  26. 26. Sabe com o que isso se parece?
  27. 27. É exatamente essa a base do O S G i pen ervice ateway nitiative Container OSGi
  28. 28. Arquitetura de um Container OSGiFUC***** BORING
  29. 29. Arquitetura de um Container OSGi Bundle = Services Pecinha = = Conecta pecinhas = Life Cycle = Install, start, stop e uninstall nas pecinhas Modules = Qual parte do código das pecinhas será privada ou pública Security Execution Environment = Qual versão do OSGi está sendo implementada JVM SO
  30. 30. Exemplos de Container OSGi Felix Equinox Knopflerfish
  31. 31. Esse tal de OSGi parece legal
  32. 32. Vamos pensar em “OSGi em Macro Escala" JMS EJB
  33. 33. Vamos pensar em “OSGi em Macro Escala" JMS Web Service
  34. 34. Como fica o lado de JMS? 1. para tudo - para o server 2. rebuild 3. redeploy 4. restart no server
  35. 35. Você já viu isso antes… SÉRIO MESMO QUE VOCÊ VAI PARAR UM LADO PORQUE TROCOU O OUTRO???
  36. 36. O OSGi não resolve as coisas nesse nível
  37. 37. Vamos dar um jeito Aplicações JMS EJBWeb Service E S B nterprise ervice us
  38. 38. Arquitetura do ESB FUC***** BORING
  39. 39. Arquitetura (Prática) do ESB Container OSGi Deploy + Log + Segurança + Utils Ferramenta para comunicar os bundles
  40. 40. Um Exemplo de ESB Ferramenta para comunicar os bundles JMS Web Service Não precisa escrever uma estratégia do zero para! comunicar os bundles
  41. 41. Apache Camel Canivete Suíço das Integrações Fórmulas infalíveis para integrar qualquer ! tipo de aplicação Que podem estar em linguagens diferentes! from(“jms”).to(“xml") Pra quem quer falar difícil, fale Enterprise Integration Pattern (EIP)
  42. 42. Container OSGi Deploy + Log + Segurança + Utils Ferramenta para comunicar os bundles
  43. 43. Um ESB Com Camel No Cloud == Fabric8 == A Saga! (ou nosso ESB++)
  44. 44. Quando preciso de um ESB? • Quando possuir diversas aplicações que se comunicam • Aplicações com linguagens ou protocolos distintos • Coexistência de duas ou mais versões distintas da mesma aplicação
  45. 45. Quando NÃO preciso de um ESB? • Só tenho uma app na empresa • Um Web Service ou um JMS resolve tudo às vezes
  46. 46. Mantenha sua arquitetura tão simples quanto um slide de fundo branco com texto negro.
  47. 47. Obrigado! Perguntas? @hannelita hannelita@gmail.com @BR_LuanCestari luan.cestari@gmail.com Valeu, TDC!!!

×