Your SlideShare is downloading. ×
TDC2014 - OSGi e ESBs - A Saga!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

TDC2014 - OSGi e ESBs - A Saga!

455
views

Published on

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

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


0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
455
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. OSGi e ESBs A Saga!
  • 2. DISCLAIMER! O CONTEÚDO DOS SLIDES REPRESENTA A VISÃO PESSOAL DOS PALESTRANTES
  • 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. 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. O que NÃO vamos ver aqui • Buzzwords explicadas de forma complexa • Um manual detalhado sobre Camel, ESBs e Patterns de Integração
  • 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. OSGi ESB Camel CloudPatterns
  • 8. Problemas simples MyEnterpriseMothaFucka.ear MyEJBs.jar MyWebApp.war
  • 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. Temos o seguinte EJB package tdc; ! @javax.ejb.Stateless public class MeuEJB { public String listarLocais() { return "{"locais": ["a","b","c"] }"; } }
  • 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. Como colocar as alterações no ar? 1. para tudo - para o server 2. rebuild 3. redeploy 4. restart no server
  • 13. Sério mesmo?
  • 14. Você muda UMA CLASSE UMA CLASSE UMA
  • 15. E REBUILDA TUDO TUDO
  • 16. Você aprendeu 2348743578 novos frameworks
  • 17. Para rebuildar o projeto todo quando muda UMA CLASSE
  • 18. Durma com peso na consciência depois disso.
  • 19. Como evito essa tragédia? Servidor de Aplicação MyEnterpriseMothaFucka.ear MeuEJB.java *
  • 20. Mais uma Servidor de Aplicação financeiro.ear rh.ear MyEnterpriseMothaFucka.ear
  • 21. O update de MeuEJB.java precisa entrar em produção urgente para atender o rh.ear
  • 22. Mas o financeiro.ear ainda precisa da versão antiga de MeuEJB.ear
  • 23. Como evito essa tragédia - parte II? Servidor de Aplicação MyEnterpriseMothaFucka.ear MeuEJB_V2_.java * MeuEJB.java
  • 24. Sabe com o que isso se parece? Droga, é uma peça contínua
  • 25. Sabe com o que isso se parece? Peças menores!
  • 26. Sabe com o que isso se parece?
  • 27. É exatamente essa a base do O S G i pen ervice ateway nitiative Container OSGi
  • 28. Arquitetura de um Container OSGiFUC***** BORING
  • 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. Exemplos de Container OSGi Felix Equinox Knopflerfish
  • 31. Esse tal de OSGi parece legal
  • 32. Vamos pensar em “OSGi em Macro Escala" JMS EJB
  • 33. Vamos pensar em “OSGi em Macro Escala" JMS Web Service
  • 34. Como fica o lado de JMS? 1. para tudo - para o server 2. rebuild 3. redeploy 4. restart no server
  • 35. Você já viu isso antes… SÉRIO MESMO QUE VOCÊ VAI PARAR UM LADO PORQUE TROCOU O OUTRO???
  • 36. O OSGi não resolve as coisas nesse nível
  • 37. Vamos dar um jeito Aplicações JMS EJBWeb Service E S B nterprise ervice us
  • 38. Arquitetura do ESB FUC***** BORING
  • 39. Arquitetura (Prática) do ESB Container OSGi Deploy + Log + Segurança + Utils Ferramenta para comunicar os bundles
  • 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. 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. Container OSGi Deploy + Log + Segurança + Utils Ferramenta para comunicar os bundles
  • 43. Um ESB Com Camel No Cloud == Fabric8 == A Saga! (ou nosso ESB++)
  • 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. Quando NÃO preciso de um ESB? • Só tenho uma app na empresa • Um Web Service ou um JMS resolve tudo às vezes
  • 46. Mantenha sua arquitetura tão simples quanto um slide de fundo branco com texto negro.
  • 47. Obrigado! Perguntas? @hannelita hannelita@gmail.com @BR_LuanCestari luan.cestari@gmail.com Valeu, TDC!!!