Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSGi - TDC FLN 2014

OSGi - TDC FLN 2014

TDC Florianopolis 2014

hannelita

May 18, 2014
Tweet

More Decks by hannelita

Other Decks in Technology

Transcript

  1. 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
  2. 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)
  3. O que NÃO vamos ver aqui • Buzzwords explicadas de

    forma complexa • Um manual detalhado sobre Camel, ESBs e Patterns de Integração
  4. Java Ruby Python EJB JMS Rails NoSQL Lambda Go Erlang

    ORM JS PHP Cloud PaaS MySQL JSF WS REST AWS CDI Angular CSS JUnit Test JMeter Hibernate XML YML JSON HTTP OAuth Apache Eclipse JBoss Linux JSP Git HTML JPA Redis Neo4j Mongo Oracle Heroku Tomcat Struts JDBC
  5. Como builda o projeto? 1. mvn clean install 2. parar

    o server 3. deploy no server 4. server starta 5. acessa aplicação
  6. Temos o seguinte EJB package tdc; ! @javax.ejb.Stateless public class

    MeuEJB { public String listarLocais() { return "{\"locais\": [\"a\",\"b\",\"c\"] }"; } }
  7. 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;! }! }
  8. Como colocar as alterações no ar? 1. para tudo -

    para o server 2. rebuild 3. redeploy 4. restart no server
  9. Como evito essa tragédia - parte II? Servidor de Aplicação

    MyEnterpriseMothaFucka.ear MeuEJB_V2_.java * MeuEJB.java
  10. É exatamente essa a base do O S G i

    pen ervice ateway nitiative Container OSGi
  11. 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
  12. Como fica o lado de JMS? 1. para tudo -

    para o server 2. rebuild 3. redeploy 4. restart no server
  13. Você já viu isso antes… SÉRIO MESMO QUE VOCÊ VAI

    PARAR UM LADO PORQUE TROCOU O OUTRO???
  14. Arquitetura (Prática) do ESB Container OSGi Deploy + Log +

    Segurança + Utils Ferramenta para comunicar os bundles
  15. 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
  16. 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)
  17. 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
  18. Quando NÃO preciso de um ESB? • Só tenho uma

    app na empresa • Um Web Service ou um JMS resolve tudo às vezes