SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque (6)

Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
Porque utilizar JBoss
Porque utilizar JBossPorque utilizar JBoss
Porque utilizar JBoss
 
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕ...
 
JBoss TRE - Aula1
JBoss TRE - Aula1JBoss TRE - Aula1
JBoss TRE - Aula1
 
Jboss tutorial
Jboss tutorialJboss tutorial
Jboss tutorial
 
Tutorial de Clusterizacao e Load Balance de aplicacoes JEE
Tutorial de Clusterizacao e Load Balance de aplicacoes JEETutorial de Clusterizacao e Load Balance de aplicacoes JEE
Tutorial de Clusterizacao e Load Balance de aplicacoes JEE
 

Semelhante a Java EE 6 e JBoss 6.0

Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
Nécio de Lima Veras
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
Paulo Neto
 

Semelhante a Java EE 6 e JBoss 6.0 (20)

JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Jboss eap 6
Jboss eap 6Jboss eap 6
Jboss eap 6
 
Novidades de Java EE 7
Novidades de Java EE 7Novidades de Java EE 7
Novidades de Java EE 7
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
Inovações Na Plataforma Java
Inovações Na Plataforma JavaInovações Na Plataforma Java
Inovações Na Plataforma Java
 
Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java v1.1
Java v1.1Java v1.1
Java v1.1
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
GlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EEGlassFish, Maven, Cloud e o futuro do Java EE
GlassFish, Maven, Cloud e o futuro do Java EE
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
JBoss Portlet Bridge
JBoss Portlet BridgeJBoss Portlet Bridge
JBoss Portlet Bridge
 

Mais de Edgar Silva

Mais de Edgar Silva (20)

API Methodology by Skalena
API Methodology by SkalenaAPI Methodology by Skalena
API Methodology by Skalena
 
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
Flyweigth - Arquitetura de Referência para Open Banking Brasil Fase 1
 
Skalena - Finance Business Unit
Skalena - Finance Business UnitSkalena - Finance Business Unit
Skalena - Finance Business Unit
 
Plataforma de Consentimento (LGDP) Skalena
Plataforma de Consentimento (LGDP) SkalenaPlataforma de Consentimento (LGDP) Skalena
Plataforma de Consentimento (LGDP) Skalena
 
Casos de Sucesso WSO2 no Governo Brasileiro
Casos de Sucesso WSO2 no Governo BrasileiroCasos de Sucesso WSO2 no Governo Brasileiro
Casos de Sucesso WSO2 no Governo Brasileiro
 
DevOps Tour SP 2019
DevOps Tour SP 2019DevOps Tour SP 2019
DevOps Tour SP 2019
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções
 
WSO2 Governance Registry 5.4.0 - Overview
WSO2 Governance Registry 5.4.0 - OverviewWSO2 Governance Registry 5.4.0 - Overview
WSO2 Governance Registry 5.4.0 - Overview
 
WSO2 Enterprise Integrator 6.1 - Integração na Era da Transformação
WSO2 Enterprise Integrator 6.1 - Integração na Era da TransformaçãoWSO2 Enterprise Integrator 6.1 - Integração na Era da Transformação
WSO2 Enterprise Integrator 6.1 - Integração na Era da Transformação
 
Transformação Digital de Forma Pragmatica WSO2
Transformação Digital de Forma Pragmatica WSO2Transformação Digital de Forma Pragmatica WSO2
Transformação Digital de Forma Pragmatica WSO2
 
WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017
 
WSO2 API Manager 2.0 - Overview
WSO2 API Manager 2.0 - Overview WSO2 API Manager 2.0 - Overview
WSO2 API Manager 2.0 - Overview
 
Workshop WSO2 BPS 3.5.x - BPMN
Workshop WSO2 BPS 3.5.x - BPMN Workshop WSO2 BPS 3.5.x - BPMN
Workshop WSO2 BPS 3.5.x - BPMN
 
WSO2 Telco MCX
WSO2 Telco MCXWSO2 Telco MCX
WSO2 Telco MCX
 
Workshop MSF4J - Getting Started with Microservices and Java
Workshop MSF4J - Getting Started with Microservices and JavaWorkshop MSF4J - Getting Started with Microservices and Java
Workshop MSF4J - Getting Started with Microservices and Java
 
WSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API ManagementWSO2 API Manager : Going beyond the just API Management
WSO2 API Manager : Going beyond the just API Management
 
Workshop/Tutorial WSO2 Micro Services Server
Workshop/Tutorial WSO2 Micro Services ServerWorkshop/Tutorial WSO2 Micro Services Server
Workshop/Tutorial WSO2 Micro Services Server
 
WSO2 Micro Services Server - Basic Workshop Part 1
WSO2 Micro Services Server - Basic Workshop Part 1WSO2 Micro Services Server - Basic Workshop Part 1
WSO2 Micro Services Server - Basic Workshop Part 1
 
Conectando Turismo e Viagens - Plataforma WSO2
Conectando Turismo e Viagens - Plataforma WSO2Conectando Turismo e Viagens - Plataforma WSO2
Conectando Turismo e Viagens - Plataforma WSO2
 
WSO2 Application Server como Alternativa ao Tomcat
WSO2 Application Server como Alternativa ao TomcatWSO2 Application Server como Alternativa ao Tomcat
WSO2 Application Server como Alternativa ao Tomcat
 

Java EE 6 e JBoss 6.0

  • 1.
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. @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
  • 8. 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
  • 9. @ManagedBean(name="scriptService") @RequestScoped public class ScriptServiceBean { @ManagedProperty(value = "script") private String scriptName; } 9
  • 10. 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
  • 11. EJB 3.1 JSR-318: http://jcp.org/en/jsr/detail?id=318 • Interfaces opcionais • EJB Lite • Deploy War 11
  • 12. JAX-RS JSR-311: http://jcp.org/en/jsr/detail?id=311 • RESTful WebServices • Anotações • MediaTypes • REST • WOA (se isto existir) 12
  • 13. @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
  • 14. Bean Validation JSR-303: http://jcp.org/en/jsr/detail?id=303 • Lembra do Hibernate Validator • Agora isto é padrão JEE 14
  • 15. 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
  • 16. 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
  • 17. Profiles • Um perfil para cada propósito: – Full – Web • No futuro, quem sabe outros profiles: – Teste – Telco (SIP) – SOA 17
  • 18. JBoss Application Server 6.0 http://www.jboss.org/jbossas 18
  • 19. 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
  • 20. Novidades • Otimizações do desempenho • J2EE6, OSGi • Novos projetos • Novo modelo de releases • Projeto totalmente “mavenizado”
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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)
  • 37. JBoss OSGi • Container OSGi • Diferentes perfis: – minimal, default, web e all • Camada de integração com uma framework OSGi: – Felix, Equinox ou Microcontainer
  • 38. 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.
  • 39. 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
  • 40. 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
  • 41. • 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)
  • 42. 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
  • 43. 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)
  • 44. Demo
  • 45. Demo
  • 48. O Jeito que você programa hoje, pode ser o mesmo de amanha?
  • 49. QA (Dev e Prod) c Servidor Local Servidores Produção
  • 50. Apache Web Server + Mod_Cluster
  • 51. QA (Dev e Prod) Red Hat PaaS Servidor Local c Servidor Cloud Servidor Cloud Servidores Produção
  • 52. Apache Web Server + Mod_Cluster
  • 53. Referências • Slides JbossInBossa 2010: http://flaviarainone.blogspot.com/ • JBoss.ORG http://www.jboss.org/jbossas • Blog Edgar Silva http://www.edgarsilva.com.br