OSGi e ESBs
A Saga!
DISCLAIMER!
O CONTEÚDO DOS
SLIDES REPRESENTA
A VISÃO PESSOAL
DOS PALESTRANTES
Oi!
Hanneli (a.k.a. @hannelita)!
Middleware Consultant at !
Café e Pokémon <3
Luan (a.k.a.
@BR_LuanCestari)!
Cloud Develop...
O que vamos ver aqui
• Buzzwords que trollam sua vida
• Problemas que parecem simples (Só parecem)
• Um pouco sobre OSGi e...
O que NÃO vamos ver aqui
• Buzzwords explicadas de forma complexa
• Um manual detalhado sobre Camel, ESBs e
Patterns de In...
Java
Ruby
Python
EJB
JMS
Rails
NoSQL
Lambda
Go
ErlangORM JS
PHP
Cloud
PaaS
MySQL
JSFWSRESTAWS
CDI Angular CSS
JUnit
Test
J...
OSGi
ESB Camel
CloudPatterns
Problemas simples
MyEnterpriseMothaFucka.ear
MyEJBs.jar
MyWebApp.war
Como builda o projeto?
1. mvn clean install
2. parar o server
3. deploy no server
4. server starta
5. acessa aplicação
Temos o seguinte EJB
package tdc;
!
@javax.ejb.Stateless
public class MeuEJB {
public String listarLocais() {
return "{"lo...
Vamos dar uma mexidinha
package tdc;
!
@javax.ejb.Stateless
public class MeuEJB {
public String listarLocais() {
return "{...
Como colocar as alterações
no ar?
1. para tudo - para o server
2. rebuild
3. redeploy
4. restart no server
Sério mesmo?
Você muda UMA CLASSE
UMA CLASSE
UMA
E REBUILDA TUDO
TUDO
Você aprendeu 2348743578
novos frameworks
Para rebuildar o projeto todo
quando muda UMA CLASSE
Durma com peso na
consciência depois disso.
Como evito essa tragédia?
Servidor de Aplicação
MyEnterpriseMothaFucka.ear
MeuEJB.java
*
Mais uma
Servidor de Aplicação
financeiro.ear
rh.ear
MyEnterpriseMothaFucka.ear
O update de
MeuEJB.java precisa
entrar em produção
urgente para atender o
rh.ear
Mas o financeiro.ear
ainda precisa da versão
antiga de MeuEJB.ear
Como evito essa tragédia - parte II?
Servidor de Aplicação
MyEnterpriseMothaFucka.ear
MeuEJB_V2_.java
*
MeuEJB.java
Sabe com o que isso se parece?
Droga, é uma peça contínua
Sabe com o que isso se parece?
Peças menores!
Sabe com o que isso se parece?
É exatamente essa a base do
O
S
G
i
pen
ervice
ateway
nitiative
Container OSGi
Arquitetura de um Container OSGiFUC***** BORING
Arquitetura de um Container OSGi
Bundle =
Services
Pecinha =
= Conecta pecinhas =
Life Cycle = Install, start, stop e unin...
Exemplos de Container OSGi
Felix
Equinox
Knopflerfish
Esse tal de OSGi parece legal
Vamos pensar em “OSGi em
Macro Escala"
JMS EJB
Vamos pensar em “OSGi em
Macro Escala"
JMS Web Service
Como fica o lado de JMS?
1. para tudo - para o server
2. rebuild
3. redeploy
4. restart no server
Você já viu isso antes…
SÉRIO MESMO QUE VOCÊ VAI
PARAR UM LADO PORQUE
TROCOU O OUTRO???
O OSGi não resolve as coisas
nesse nível
Vamos dar um jeito
Aplicações
JMS
EJBWeb Service
E
S
B
nterprise
ervice
us
Arquitetura do ESB
FUC***** BORING
Arquitetura (Prática) do ESB
Container OSGi
Deploy + Log + Segurança + Utils
Ferramenta para comunicar os bundles
Um Exemplo de ESB
Ferramenta para comunicar os bundles
JMS
Web Service
Não precisa escrever uma estratégia do zero para!
c...
Apache Camel
Canivete Suíço das Integrações
Fórmulas infalíveis para integrar qualquer !
tipo de aplicação
Que podem estar...
Container OSGi
Deploy + Log + Segurança + Utils
Ferramenta para comunicar os bundles
Um ESB Com Camel
No Cloud
==
Fabric8
==
A Saga! (ou nosso ESB++)
Quando preciso de um ESB?
• Quando possuir diversas aplicações que se
comunicam
• Aplicações com linguagens ou protocolos ...
Quando NÃO preciso de um
ESB?
• Só tenho uma app na empresa
• Um Web Service ou um JMS resolve tudo às vezes
Mantenha sua arquitetura tão simples
quanto um slide de fundo branco com
texto negro.
Obrigado!
Perguntas?
@hannelita
hannelita@gmail.com
@BR_LuanCestari
luan.cestari@gmail.com
Valeu, TDC!!!
TDC2014 - OSGi e ESBs - A Saga!
TDC2014 - OSGi e ESBs - A Saga!
TDC2014 - OSGi e ESBs - A Saga!
Próximos SlideShares
Carregando em…5
×

TDC2014 - OSGi e ESBs - A Saga!

741 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
741
No SlideShare
0
A partir de incorporações
0
Número de incorporações
32
Ações
Compartilhamentos
0
Downloads
8
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!!!

×