fabio vellosofabiovelloso.com.br/wildfly8.pdf · java ee 7 concurrency - jsr 236 api para executar...

Post on 25-Sep-2018

232 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 !!!!!

fabio@soujava.org.br

@fabiovelloso

facebook.com/soujava

@soujava

soujava.org.br

fabiovelloso

top related