Java EE 6 e JBoss 6.0

of 54/54
  • date post

    18-Dec-2014
  • Category

    Documents

  • view

    2.776
  • download

    1

Embed Size (px)

description

Slides do Evento Java&Net SP 2010

Transcript of Java EE 6 e JBoss 6.0

  • 1. Tema 1 Viso geral da plataforma e servidores de aplicao Viso geral da Plataforma Java no presente JBoss Application Server 6 Edgar Silva Manager, Solutions Architects Red Hat Brasil [email protected] @jedgarsilva
  • 2. Agenda Plataforma Java (Passado, Presente e Futuro) Java EE 6.0 Em breve final: JBoss 6.0 Em breve: M1 do JBoss 7.0 Tecnologias Auxiliares Mercado 3 3
  • 3. Plataforma Java EE (Passado, Presente e Futuro) Objetivo: Mercado de Componentes Players do Passado: HP BlueStone, IPlanet, Oracle, WebLogic, Borland, IBM, JBoss e outros, Players do Presente: Oracle, IBM, JBoss/RedHat Realidade: Primeiras implementaes com pouco pragmatismo! Resultado: Contribuies da Comunidade / JCP Spring Framework, Hibernate, Seam Adies de solicitaes da comunidade como a evoluo das Specs. 4 4
  • 4. Java Enterprise Edition 6 Resultado da JSR316 http://jcp.org/en/jsr/detail?id=316 Principais Novidades: Servlets 3.0 JSF 2.0 JPA 2.0 Bean Validation 1.0 EJB 3.1 EJB Lite JAX-RS CDI Profiles 5
  • 5. Servlet 3.0 JSR-315: http://jcp.org/en/jsr/detail?id=315 Principais novidades: Uso de Anotaes para Definir Servlets, Listeners e Filters Fragmentao do web.xml Chamada Assync (Comet), objetivo Ajax 6
  • 6. @Servlet(urlMappings={"/MyApp"}) public class MyServlet { @GET public void handleGet(HttpServletRequest req, HttpServletResponse res) { .... } @ServletFilter @FilterMapping("/foo") public class MyFilter { public void doFilter(HttpServletRequest req, HttpServletResponse res) { ..... } } @Servlet(urlMappings={"/MyApp"}, initParams ={@InitParam(name="lang", value="english")}) public class MyServlet { @GET public void handleGet(HttpServletRequest req, HttpServletResponse res) { .... } } 7
  • 7. JSF 2.0 JSR-314: http://jcp.org/en/jsr/detail?id=314 Anotaes Facelets como parte do padro Expression Language ExceptionHandlers Escpos de Usurios 8
  • 8. @ManagedBean(name="scriptService") @RequestScoped public class ScriptServiceBean { @ManagedProperty(value = "script") private String scriptName; } 9
  • 9. JPA 2.0 JSR-317: http://jcp.org/en/jsr/detail?id=317 Second-Level Cache Criteria Muitas adies baseadas no Hibernate dentro do padro JPA. 10
  • 10. EJB 3.1 JSR-318: http://jcp.org/en/jsr/detail?id=318 Interfaces opcionais EJB Lite Deploy War 11
  • 11. JAX-RS JSR-311: http://jcp.org/en/jsr/detail?id=311 RESTful WebServices Anotaes MediaTypes REST WOA (se isto existir) 12
  • 12. @Provider @Path("/") public class RootService implements java.io.Serializable { @GET @Path("/") @Produces("text/plain") public String homePlain(){ return "Welcome to RestEasy running on Google App - Client Plain/Text"; } @GET @Path("/") @Produces("text/html") public String homeHTML(){ return "Welcome to RestEasy running on Google App - Client HTML"; } @GET @Path("/{name}/{vars:.*}") @Produces("application/xml") public String executeWithGetXML(@PathParam("name") String serviceName, @PathParam("vars") String vars){ 13
  • 13. Bean Validation JSR-303: http://jcp.org/en/jsr/detail?id=303 Lembra do Hibernate Validator Agora isto padro JEE 14
  • 14. public class Address { @NotNull @Size(max = 50) private String street1; @NotNull @ZipCode private String zipcode; @NotNull @Size(max = 30) private String city; Leitura recomendada: http://musingsofaprogrammingaddict.blogspot.com/2009/02/getting-started-with-jsr-303-bean.html 15
  • 15. CDI 1.0 JSR-299: http://jcp.org/en/jsr/detail?id=299 Context Dependency Injection Uso de Factories Interceptors Injeo de Dependncias Agora isto tambm padro 16
  • 16. Profiles Um perfil para cada propsito: Full Web No futuro, quem sabe outros profiles: Teste Telco (SIP) SOA 17
  • 17. JBoss Application Server 6.0 http://www.jboss.org/jbossas 18
  • 18. JBoss AS 6.0 e a Comunidade Influencia direta JSR 299 CDI for the JSR 314 Java Server Java EE Platform Faces 2.0 Gavin King JSR 316 JavaEE 6 JSR 303 Bean JSR 317 JPA 2.0 Validation JSR 318 EJB 3.1 Emanuel Bernard JSR 330 Dependency JSR 311 JAX-RS Injection
  • 19. Novidades Otimizaes do desempenho J2EE6, OSGi Novos projetos Novo modelo de releases Projeto totalmente mavenizado
  • 20. Otimizando o servidor Uma srie de esforos realizados nesse sentido VFS 3.0 Nova API Montagem explcita + ciclo de vida associado aos Structure Deployers Sincronizado com o sistema de arquivos Otimizao no acesso a arquivos zipados
  • 21. Otimizando o servidor JBoss Microcontainer Diversas otimizaes realizadas no kernel Busca de dependncias Mquina de estados Em desenvolvimento JBoss Reflection: substituio de reflexo por Javassist com cache de bytecodes, sem carga de classes necessria Manipulao direta de Flavia Rainone bytecodes atravs do Core Developer JBoss MC, JBoss AOP Javassist
  • 22. HornetQ Novo JMS Provider do JBoss AS 6.0 M3 Arquitetura baseada em POJOs APIS: JMS 1.1 API APIs prprias: core Clebert Suconic, client API, RESTful Project Lead, HonetQ API, e outros j participou do JBoss Cache, JBoss Serialization, JRUnit, JBoss Profiler Pode ser utilizado em outros ambientes
  • 23. HornetQ Desempenho IO nativo para Linux quebrou o recorde da SPECjms2007 em 307% Integrado aos deployers do AS Isso significa que voc pode incluir os seus arquivos config nos prprios archives da sua aplicao Integrao com o JBoss Admin console
  • 24. JBoss Embedded AS Trabalho em desenvolvimento Verso 1.0.Alpha3 jboss-as-depchain Mdulo que referencia todo o classpath necessrio para usar o JBoss Embedded Prov um ambiente de testes para aplicaes em uma mquina virtual standalone Pode ser usado com o ShrinkWrap
  • 25. Weld Implementao de referncia da JSR 299 - CDI Parte do projeto Seam 3 Integrado ao JBoss AS 6 M1 Projeto de integrao em desenvolvimento
  • 26. RichFaces Component library para JSF Framework para integrao de AJAX em aplicaes Verso 3.3.3.Final Suporte bsico a JSF 2.0 JBoss AS 6.0. M3
  • 27. RichFaces Verso 4.0 Suporte completo a JSF 2.0 Em desenvolvimento Estender os horizontes da especificao, assim como foi feito com JSF 1.2 CDK (Component Development Kit) com templates avanados, anotaes, extenses faces-config, etc Melhorias no AJAX framework
  • 28. Infinispan Ir substituir o JBoss Cache Avanada plataforma de dados em grade Avanados algoritmos de concorrncia Perfeito para a ltima tecnologia de processadores multi core Compatibilidade com JTA Algoritmos eficientes de eviction Expe uma Cache interface
  • 29. Hibernate Core Verso atual: 3.5.1 no JBoss AS 6.0 M3: 3.5.0.CR1 Implementa JPA 2 (JSR 317) Adicionou Infinispan como cache nvel 2 Suporte a JDBC4
  • 30. Hibernate Validator Verso 4.0.2.GA Includa no JBoss AS 6.0.M3 Implementao de referncia da JSR 303 Bean Validation Emmanuel Bernard, JBoss HIbernate
  • 31. Clustering Novo httpd-based load balancer: mod_cluster Configurao dinmica dos ns httpd Clculo do fator do balanceamento de carga dos servidores Granularidade fina do ciclo de vida das aplicaes web Distino entre shutdown e crash
  • 32. JBoss Marshalling Alternativa API de Serialization aproximadamente 2x mais rpida! Suporte plugvel a Class resolvers Substituio de objetos Tabelas pr-definidas de classes e de objetos Externalizers
  • 33. RESTeasy Implementao certificada da JSR JAX-RS Permite acesso a servios providos por resource methods de forma facilitada Anotaes Verso 2.0-beta-2
  • 34. RESTeasy Mais: implementao embeddable para ambientes de teste Framework para criar clientes HTTP, com anotaes Integrado nos projetos EJB, Seam, Guice, Spring e Spring MVC
  • 35. RESTeasy Cache: Client browser cache Server in-memory cache Abstraes de HTTP assncronas Modelo rico de interceptadores Rico conjunto de providers (XML, Atom, etc)
  • 36. JBoss OSGi Container OSGi Diferentes perfis: minimal, default, web e all Camada de integrao com uma framework OSGi: Felix, Equinox ou Microcontainer
  • 37. JBoss OSGi JBoss Microcontainer + OSGi Em desenvolvimento Ao final, permitir que bundles se comuniquem com outros componentes de outros modelos de programao: Bundle -> EJB MC bean -> bundle etc.
  • 38. JBoss OSGi Services JBoss Microcontainer Como servio, permite que os bundles utilizem injeo, dependncias e outros recursos do Microcontainer Blueprint service (RFC-124) Controle de ciclo de vida, extenders, service listeners, etc. Configurado atravs do MANIFEST ou de arquivos xml em OSGI-INF/blueprint
  • 39. Outras alteraes Nomenclatura dos projetos Compatvel com OSGi Duas opes: Alpha e beta: major.minor.micro.Alpha/Beta/CR[n] major.minor.micro.Final Milestones: major.minor.micro.TIMESTAMP-Mn major.minor.micro.Final Maven: integrao levada ao prximo nvel
  • 40. Aspectos de Segurana no JBoss AS: IDM : LDAP, DB, Grupos/Papis/Usurios Federated Identity: Suporte SAMLv2, WS-Trust e OpenID. AuthZ: Developer friendly authorization framework XACML: Implementao Oasis XACMLv2 Negotiation: Provide SPNego/Kerberos based Desktop Marcus Moyses SSO. Stefan Guilhen Core Developer, Security (Security Token Service Lead)
  • 41. Road Map JBoss AS 6.0 Final Certificado em JavaEE 6, TCK 100% JBoss AS 7 Maior performance ainda Ferramentas de gerenciamento Facilidades de configurao
  • 42. JBoss AS 7 + KVM KVM: Kernel Virtual Machine Tecnologia de Virtualizao j dentro do Kernel do Linux. Conceitos Novos do JBoss AS7: Exposio de APIs de Gerenciamento: REST, CLI etc Servidores Domain ServerGroup Cluster (HA Server Group)
  • 43. Demo
  • 44. Demo
  • 45. Clouds: Ambiente Elstico Computacional
  • 46. JBoss PaaS
  • 47. O Jeito que voc programa hoje, pode ser o mesmo de amanha?
  • 48. QA (Dev e Prod) c Servidor Local Servidores Produo
  • 49. Apache Web Server + Mod_Cluster
  • 50. QA (Dev e Prod) Red Hat PaaS Servidor Local c Servidor Cloud Servidor Cloud Servidores Produo
  • 51. Apache Web Server + Mod_Cluster
  • 52. Referncias Slides JbossInBossa 2010: http://flaviarainone.blogspot.com/ JBoss.ORG http://www.jboss.org/jbossas Blog Edgar Silva http://www.edgarsilva.com.br
  • 53. Edgar Silva [email protected]