Fabio Vellosofabiovelloso.com.br/wildfly8.pdf · Java EE 7 Concurrency - JSR 236 API para executar...
Transcript of Fabio Vellosofabiovelloso.com.br/wildfly8.pdf · Java EE 7 Concurrency - JSR 236 API para executar...
Lançamento WildFly 8 26 de fevereiro de 2014
Fabio Velloso
Lançamento WildFly 8 26 de fevereiro de 2014
Agenda
Introdução e objetivos Java EE 7 WildFly 8 Conclusão
Lançamento WildFly 8 26 de fevereiro de 2014
Agenda
Introdução e objetivos Java EE 7 WildFly 8 Conclusão
Lançamento WildFly 8 26 de fevereiro de 2014
Fabio Velloso Bio
Bacharel em Ciência da Computação - UFSCar
MBA FGV
Desenvolvedor Java desde 1996
Fundador do SouJava
Professor de SOA e Web Services do curso de Pós-Graduação "Lato-Sensu" em Desenvolvimento de Software para Web da UFSCarAtualmente desenvolve projetos pessoais com Big Data, Cloud Computing, Design Thinking, Service Design e Economia Criativa
Lançamento WildFly 8 26 de fevereiro de 2014
Objetivos !
Apresentar novidades do Wildfly 8, funcionalidades evoluídas do JBoss AS 7 e novidades do Java EE 7 com exemplos executando no WildFly 8
Lançamento WildFly 8 26 de fevereiro de 2014
Servidor Java EE da Red Hat Versão final lançada em 11 de fevereiro Em versões anteriores chamamos de JBoss
Application Server Java EE 7 Compatible
Full e Web profile Open Source JBoss EAP
WildFly O que é?
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 Compatible Full e Web profile
Novo servidor Web Redução de portas administrativas Avanços no jboss-cli Maior granularidade no controle de acesso Log de auditoria e papel de auditor Novo admin console Poliglota Suporte Java 8
WildFly Funcionalidades
Lançamento WildFly 8 26 de fevereiro de 2014
Agenda
Introdução e objetivos Java EE 7 WildFly 8 Conclusão
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 API’s
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 API’s RED Hat
JSF 2.2 JSP 2.3 EL 3.0
Web Fragments JAX-RS 2.0
JAX-WS 2.2
Servlet 3.1CDI Extensions
CDI 1.1Commons
Annotations 1.1Concurrency 1.0
Managed Bean 1.0 EJB 3.2
JPA 2.1 JMS 2.0 JCA 1.7 Batch 1.0
Bean
Val
idat
ion
1.1
JSON 1.0 WebSocket 1.0
Interceptors 1.2, JTA 1.2
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7
Novas APIs e funcionalidades Web “modernas” WebSockets Processamento assíncrono e listeners não
bloqueantes (Servlets 3.1) JSON REST
Processamento Batch Concurency Utilities JMS 2.0 CDI
Lançamento WildFly 8 26 de fevereiro de 2014
Full duplex e bidirecional comunicação sobre uma conexão TCP Chats, jogos RFC 6455 HTML 5 e JavaScript no client Não necessita uma nova conexão TCP a cada
troca de mensagem entre server e client Faz o handshake via HTTP Upgrade
Cliente inicia conexão através de uma URI Server aguarda conexão WebSocket que
suporta multiplas conexões
Java EE 7 WebSocket - JSR 356
Lançamento WildFly 8 26 de fevereiro de 2014
Cria o EndPoint e define a URL
Marca método para receber a
mensagem WebSocket
Payload da mensagem WebSocket
Java EE 7 WebSocket - JSR 356
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 Batch API - JSR 352
API para processamento batch em Java EE Define modelo de programação e um
runtime para tarefas a serem executadas Descrito em XML (Job XML) Job é a entidade que encapsula o processo
batch Abstrações:
job, step, reader, processor, writer Pode-se definir a sequência, tarefas
concorrentes e particionar job em múltiplas threads
!
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 Batch API
Define o job
Item oriented processing,
numero de itens no bloco
Bloco onde se define reader,
processor e writer
fase de um job,
independente e sequencial
JobOperator jobOperator = BatchRuntime.getJobOperator(); long jobID = jobOperato.start("SlmpleWildFlyJob", new Properties());
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 Batch API
Valores de reader, processor e writer são nomes CDI de classes que implementam:
ItemReader, ItemProcessor ou ItemWriter ou estendem classes abstratas (Reader e
Writter) !
!
!
!
!!
!
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 JSON Processing - JSR 353
Parser e geração de texto JSON Stream API Consumir
forward read-only pull parsing
Geração Par nome, valor JSON Objects JSON Arrays
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 JSON Processing - JSR 353
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 Concurrency - JSR 236
API para executar tarefas concorrentes em Java EE com segurança, garantindo a integridade do container Estende Java Concurrency Utilities para Java EE ManagedExecutorService é a versão Java EE de
java.util.concurrent.ExecutorService Unidade a ser executada concorrentemente é
chamada de task ManagedExecutorService pode implementar
Runnable ou Callable Callable Task pode retornar valor e lançar
checked exception
Lançamento WildFly 8 26 de fevereiro de 2014
Runnable ou Callable para
“definir” a tarefa
Injeção do ManageExecutor
Submetendo a tarefa
Java EE 7 Concurrency - JSR 236
Lançamento WildFly 8 26 de fevereiro de 2014
Simplificação da API JMSContext combina em funcionalidades os
objetos Connection e Session da JMS 1.1 JMSContext pode ser injetado via CDI
necessita de um connection factory Java EE 7 tem factory padrão
Java EE 7 JMS 2.0 - JSR 343
JMS 2.0JMS 1.1
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 JMS 2.0 - JSR 343
Cria recurso durante deploy
Interface simplificada
Uso opcional Java EE 7 fornece connection factory
padrão já configurada
Nome JNDI Mapeado
Lançamento WildFly 8 26 de fevereiro de 2014
Outras melhorias !
ResourceTemplate
Link
Java EE 7 JAX-RS 2.0 - JSR 339
Client API
Validação
Filters e Interceptors
Processamento assíncrono
Lançamento WildFly 8 26 de fevereiro de 2014
JAX-RS 2.0 Client API
Fluent API
Client API com todos objetosClientBuilder gera objeto Client para
processamento
WebTarget define o path
Define o media type
Chamada HTTP GET
Lançamento WildFly 8 26 de fevereiro de 2014
JAX-RS 2.0 Asynchronous Processing
@Suspended método assíncrono
Nova thread
Executa na nova thread
retorna void
retorna o resultado
Lançamento WildFly 8 26 de fevereiro de 2014
Java EE 7 JAX-RS 2.0 e JSON Processing
Lançamento WildFly 8 26 de fevereiro de 2014
Agenda
Introdução e objetivos Java EE 7 WildFly 8 Conclusão
Lançamento WildFly 8 26 de fevereiro de 2014
Uso de HTTP Upgrade !
!
!
Configuração mais simples de firewall Importante para Cloud
Múltiplas instâncias em um único server Overhead apenas no request/response HTTP
Upgrade inicial !
Função Porta Protocolos
Gerenciamento 9990 HTTP/JSON Management, HTTP Upgraded Remoting -
(Native Management & JMX), Web Administration ConsoleAplicação 8080 HTTP (Servlet, JAX-RS, JAX-WS), Web Sockets, HTTP
Upgraded Remoting (EJB Invocation, Remote JNDI)
WildFly Redução de portas
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Undertow
Novo Servidor Web integrado no WildFly 8 Servlet 3.1 container Suporte a Web Sockets Suporte a HTTP Upgrade Leve e flexível Alta performance
APIs bloqueantes e não bloqueantes com NIO jar de aproximadamente 1MB utiliza menos de 4Mb de heap !
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Undertow
mod_cluster HTTP load balancer MCMP (Mod Cluster Managed Protocol) Conexão adicional entre load balancer e
back-end nodes se comparado com mod_jk e mod-proxy
Recebe informações sobre undeploy e redeploy de aplicações
Recalcula e gerencia melhor a carga !
Java fluent API !
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Undertow
ClientBuilder gera objeto Client para
processamento
Criação de vários handlers
Inicia a execução do processo em uma
JVM
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Server mode
Dois server mode a partir do JBoss 7 Standalone e Domain
!
Standalone Cada Application Server é uma instância
independente Similar as versões do JBoss 4, 5 e 6 JBOSS_HOME/bin/standalone.sh JBOSS_HOME/standalone/configuration
!
!!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Server mode
Domain Múltiplos servidores gerenciados em um ponto
central Físicos ou virtuais
Cada servidor pode ter várias instancias de application servers sob controle de um processo Host Controller
Host Controller é responsável por gerenciar o ciclo de vida dos servers
Start - JBOSS_HOME/bin/domain.sh
Configuração - JBOSS_HOME/domain/configuration !
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Domain mode
Fonte: http://blog.akquinet.de/2012/06/29/managing-cluster-nodes-in-domain-mode-of-jboss-as-7-eap-6/
Master Host Controller
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly jboss-cli
Command line interface Disponível a partir do JBoss 7 Tarefas administrativas Domain e standalone Conectar com controller de um domínio ou
domínio especifico Habilitar níveis de segurança (RBAC) Registrar módulos Deploy de aplicações, undeploy, status do
deploy !
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Controle de acesso
Dois modelos para controle de acesso !
Simples Padrão Usado no JBoss 7 Autentica e tem todos privilégios
!
RBAC (Role Based Access Control) mais granular baseado em roles
!
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Controle de acesso
RBAC (Role Based Access Control) 7 roles pré-definidos Roles são conjuntos de permissões Permissões definem as ações que podem
ser executadas lookup, read, write, start, shutdown
Users e groups são definidos em roles Alteração de perfil
utilizando jboss-cli editando o domain.xml
Perfis armazenados em LDAP !
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Controle de acesso
Perfis padrão Monitor: leitura de configurações e estado do
servidor. Não pode acessar dados sensíveis. Deployer: Mesmas permissões do Monitor,
porém pode efetuar deploy e undeploy. Operator: Estende o papel monitor.
Permissões: Capaz de iniciar/parar um servidor. Maintainer: Capaz de modificar as
configurações, exceto as informações sensíveis
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Controle de acesso
Perfis padrão Administrator: Capaz de modificar
configurações, incluindo as informações sensíveis. Acesso irrestrito, exceto logs de auditoria. Auditor: Mesmas permissões do Monitor, pode
ler dados sensíveis e logs de auditoria. SuperUser: Acesso irrestrito, equivalente o
AS7 sem o RBAC. !
!!
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Admin Console
Lançamento WildFly 8 26 de fevereiro de 2014
Adicionar usuário !
!
Habilitar RBAC !
!!!!!
Outra opção é editar o domain.xml e standalone.xml
WildFly Admin Console
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Admin Console
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Admin Console
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Admin Console
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Admin Console
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Admin Console
Simples Rapido Única instancia para vários domínios Grande evolução visual e funcional em
comparação com outras versões API para estender as funcionalidades
criar subsitemas dentro do JBoss Modules estender a console WEB !
!!
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Logging
Log de auditoria disponível a partir do AS 7 Log de acesso, autenticação e de operações
administrativas Formatado em JSON Não é habilitado por padrão Habilitar log de auditoria com jboss-cli para o host
controller !
Habilitar para todos servidores de um host controller !
!
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Logging
Usuário admin criou um log
Profile em que o log foi criado
Operação add de criação do log
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Automated Patching
Mecanismo de Update Arquivos zip com update e metadado Uso do ClassLoader Modular Pode-se aplicar múltiplos patches Single Server ou múltiplas instâncias Standalone ou managed domain host Local ou remoto Servidor em execução, mas precisa restart Ferramenta atual é jboss-cli
admin console não tem a funcionalidade !
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Suporte Cloud
Wildfly quickckstart Criação de instância do WildFly via
interface Web Métricas, Banco de dados e integração
continua com Jenkins podem ser adicionados Criar a aplicação por linha de comando !
!
!
Acesso jboss-cli por SSH !
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Suporte Cloud
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Suporte Cloud
REST API
BROKER
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Suporte Cloud
Wildfly clickstart Configura um build service, repository e
uma aplicação de exemplo a basic Wildfly com continuous deployment e Maven
Deploy manual !
Nomes JNDI JDBC Realm Maven e Jenkins !
!
!
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Outras novidades
Compatibilidade com JDK 8 Hibernate Search
Indexação para objetos com full text searching Múltiplos data sources, Infinispan e entidades
de banco RESTEasy
JAX-RS 2.0, JSON Web Encryption, Jackson, Yaml, JSON-P e Jettison
Removido suporte a: CMP,JAX-RPC (JSR 101) e JavaTM EE Application
Deployment (JSR-88) !
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly IDEs
Integrado com IDE’s NetBeans 7 e 8 IDEA 13 JBoss Tools
!
NetBeans 8, OpenJDK 8 e WildFly 8 Lambdas Plugin 1.0.7 funcional Plugin 1.0.4 com erros
Stop e Restart
Lançamento WildFly 8 26 de fevereiro de 2014
Agenda
Introdução e objetivos Java EE 7 WildFly 8 Conclusão
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly Conclusão
Suporte a Java EE 7 Rápido e leve Novo servidor Web
HTTP Upgrade mod_cluster
Melhor controle de acesso Interface administrativa melhorada Evoluções na administração por linha de
comando Open Source
Lançamento WildFly 8 26 de fevereiro de 2014
WildFly - http://wildfly.org/8/ Permissões no WildFly - http://claudius.com.br/
2014/02/permissoes-rbac-no-console-wildfly-8/ WildFly no OpenShift - https://www.openshift.com/
quickstarts/wildfly-8 WildFly na CloudBees - https://github.com/
CloudBees-community/wildfly8-clickstart Java EE samples - https://github.com/javaee-
samples/javaee7-samples
WildFly Referências
Lançamento WildFly 8 26 de fevereiro de 2014
OBRIGADO !!!!!
@fabiovelloso
facebook.com/soujava
@soujava
soujava.org.br
fabiovelloso