Java EE 6 e JBoss 6.0
Upcoming SlideShare
Loading in...5
×
 

Java EE 6 e JBoss 6.0

on

  • 3,179 views

Slides do Evento Java&Net SP 2010

Slides do Evento Java&Net SP 2010

Statistics

Views

Total Views
3,179
Views on SlideShare
3,179
Embed Views
0

Actions

Likes
1
Downloads
63
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Java EE 6 e JBoss 6.0 Java EE 6 e JBoss 6.0 Presentation Transcript

  • Tema 1 Visão geral da plataforma e servidores de aplicação Visão geral da Plataforma Java no presente JBoss Application Server 6 Edgar Silva Manager, Solutions Architects Red Hat Brasil edgar@redhat.com @jedgarsilva
  • 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
  • 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 implementações com pouco pragmatismo! • Resultado: Contribuições da Comunidade / JCP • Spring Framework, Hibernate, Seam – Adições de solicitações da comunidade como a evolução das Specs. 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
  • Servlet 3.0 JSR-315: http://jcp.org/en/jsr/detail?id=315 • Principais novidades: – Uso de Anotações para Definir Servlets, Listeners e Filters – Fragmentação do web.xml – Chamada Assync (Comet), objetivo Ajax 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
  • JSF 2.0 JSR-314: http://jcp.org/en/jsr/detail?id=314 • Anotações • Facelets como parte do padrão • Expression Language • ExceptionHandlers • Escpos de Usuários 8
  • @ManagedBean(name="scriptService") @RequestScoped public class ScriptServiceBean { @ManagedProperty(value = "script") private String scriptName; } 9
  • JPA 2.0 JSR-317: http://jcp.org/en/jsr/detail?id=317 • Second-Level Cache • Criteria • Muitas adições baseadas no Hibernate dentro do padrão JPA. 10
  • EJB 3.1 JSR-318: http://jcp.org/en/jsr/detail?id=318 • Interfaces opcionais • EJB Lite • Deploy War 11
  • JAX-RS JSR-311: http://jcp.org/en/jsr/detail?id=311 • RESTful WebServices • Anotações • MediaTypes • REST • WOA (se isto existir) 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 "<h1><font face='Verdanda'>Welcome to RestEasy running on Google App - Client HTML</font></h1>"; } @GET @Path("/{name}/{vars:.*}") @Produces("application/xml") public String executeWithGetXML(@PathParam("name") String serviceName, @PathParam("vars") String vars){ 13
  • Bean Validation JSR-303: http://jcp.org/en/jsr/detail?id=303 • Lembra do Hibernate Validator • Agora isto é padrão JEE 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
  • CDI 1.0 JSR-299: http://jcp.org/en/jsr/detail?id=299 • Context Dependency Injection – Uso de Factories – Interceptors – Injeção de Dependências – Agora isto também é padrão 16
  • Profiles • Um perfil para cada propósito: – Full – Web • No futuro, quem sabe outros profiles: – Teste – Telco (SIP) – SOA 17
  • JBoss Application Server 6.0 http://www.jboss.org/jbossas 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
  • Novidades • Otimizações do desempenho • J2EE6, OSGi • Novos projetos • Novo modelo de releases • Projeto totalmente “mavenizado”
  • Otimizando o servidor • Uma série de esforços realizados nesse sentido • VFS 3.0 – Nova API – Montagem explícita + ciclo de vida associado aos Structure Deployers – Sincronizado com o sistema de arquivos – Otimização no acesso a arquivos zipados
  • Otimizando o servidor • JBoss Microcontainer – Diversas otimizações realizadas no kernel • Busca de dependências • Máquina de estados – Em desenvolvimento • JBoss Reflection: substituição de reflexão por Javassist com cache de bytecodes, sem carga de classes necessária – Manipulação direta de Flavia Rainone bytecodes através do Core Developer JBoss MC, JBoss AOP Javassist
  • HornetQ • Novo JMS Provider do JBoss AS 6.0 M3 • Arquitetura baseada em POJOs • APIS: – JMS 1.1 API – APIs próprias: 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
  • 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 próprios archives da sua aplicação • Integração com o JBoss Admin console
  • JBoss Embedded AS • Trabalho em desenvolvimento – Versão 1.0.Alpha3 – jboss-as-depchain • Módulo que referencia todo o classpath necessário para usar o JBoss Embedded – Provê um ambiente de testes para aplicações em uma máquina virtual standalone – Pode ser usado com o ShrinkWrap
  • Weld • Implementação de referência da JSR 299 - CDI • Parte do projeto Seam 3 • Integrado ao JBoss AS 6 M1 – Projeto de integração em desenvolvimento
  • RichFaces • Component library para JSF • Framework para integração de AJAX em aplicações • Versão 3.3.3.Final – Suporte básico a JSF 2.0 – JBoss AS 6.0. M3
  • RichFaces • Versão 4.0 – Suporte completo a JSF 2.0 – Em desenvolvimento – Estender os horizontes da especificação, assim como foi feito com JSF 1.2 – CDK (Component Development Kit) com templates avançados, anotações, extensões faces-config, etc – Melhorias no AJAX framework
  • Infinispan • Irá substituir o JBoss Cache • Avançada plataforma de dados em grade – Avançados algoritmos de concorrência – Perfeito para a última tecnologia de processadores multi core • Compatibilidade com JTA • Algoritmos eficientes de eviction • Expõe uma Cache interface
  • Hibernate Core • Versão – atual: 3.5.1 – no JBoss AS 6.0 M3: 3.5.0.CR1 • Implementa JPA 2 (JSR 317) • Adicionou Infinispan como cache nível 2 • Suporte a JDBC4
  • Hibernate Validator • Versão 4.0.2.GA – Incluída no JBoss AS 6.0.M3 • Implementação de referência da JSR 303 – Bean Validation Emmanuel Bernard, JBoss HIbernate
  • Clustering • Novo httpd-based load balancer: mod_cluster – Configuração dinâmica dos nós httpd – Cálculo do fator do balanceamento de carga dos servidores – Granularidade fina do ciclo de vida das aplicações web – Distinção entre shutdown e crash
  • JBoss Marshalling • Alternativa à API de Serialization – aproximadamente 2x mais rápida! • Suporte plugável a – Class resolvers – Substituição de objetos – Tabelas pré-definidas de classes e de objetos – Externalizers
  • RESTeasy • Implementação certificada da JSR JAX-RS • Permite acesso a serviços providos por resource methods de forma facilitada – Anotações • Versão 2.0-beta-2
  • RESTeasy • Mais: – implementação embeddable para ambientes de teste – Framework para criar clientes HTTP, com anotações – Integrado nos projetos EJB, Seam, Guice, Spring e Spring MVC
  • RESTeasy • Cache: – Client “browser” cache – Server in-memory cache • Abstrações de HTTP assíncronas • Modelo rico de interceptadores • Rico conjunto de providers (XML, Atom, etc)
  • JBoss OSGi • Container OSGi • Diferentes perfis: – minimal, default, web e all • Camada de integração com uma framework OSGi: – Felix, Equinox ou Microcontainer
  • JBoss OSGi • JBoss Microcontainer + OSGi – Em desenvolvimento – Ao final, permitirá que bundles se comuniquem com outros componentes de outros modelos de programação: • Bundle -> EJB • MC bean -> bundle • etc.
  • JBoss OSGi • Services – JBoss Microcontainer • Como serviço, permite que os bundles utilizem injeção, dependências e outros recursos do Microcontainer – Blueprint service (RFC-124) • Controle de ciclo de vida, extenders, service listeners, etc. • Configurado através do MANIFEST ou de arquivos xml em OSGI-INF/blueprint
  • Outras alterações • Nomenclatura dos projetos – Compatível com OSGi – Duas opções: • 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: integração levada ao próximo nível
  • • Aspectos de Segurança no JBoss AS: – IDM : LDAP, DB, Grupos/Papéis/Usuários – Federated Identity: Suporte SAMLv2, WS-Trust e OpenID. – AuthZ: Developer friendly authorization framework – XACML: Implementação Oasis XACMLv2 – Negotiation: Provide SPNego/Kerberos based Desktop Marcus Moyses SSO. Stefan Guilhen – Core Developer, Security • – (Security Token Service Lead)
  • Road Map • JBoss AS 6.0 Final – Certificado em JavaEE 6, TCK 100% • JBoss AS 7 – Maior performance ainda – Ferramentas de gerenciamento – Facilidades de configuração
  • JBoss AS 7 + KVM • KVM: Kernel Virtual Machine – Tecnologia de Virtualização já dentro do Kernel do Linux. • Conceitos Novos do JBoss AS7: – Exposição de APIs de Gerenciamento: • REST, CLI etc – Servidores • Domain • ServerGroup • Cluster (HA Server Group)
  • Demo
  • Demo
  • Clouds: Ambiente Elástico Computacional
  • JBoss PaaS
  • O Jeito que você programa hoje, pode ser o mesmo de amanha?
  • QA (Dev e Prod) c Servidor Local Servidores Produção
  • Apache Web Server + Mod_Cluster
  • QA (Dev e Prod) Red Hat PaaS Servidor Local c Servidor Cloud Servidor Cloud Servidores Produção
  • Apache Web Server + Mod_Cluster
  • Referências • Slides JbossInBossa 2010: http://flaviarainone.blogspot.com/ • JBoss.ORG http://www.jboss.org/jbossas • Blog Edgar Silva http://www.edgarsilva.com.br
  • Edgar Silva edgar@redhat.com