serra startec 2013 - java ee

59
Plataforma Java EE

Upload: rodrigo-candido-da-silva

Post on 28-Jun-2015

522 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Serra StarTec 2013 - Java EE

Plataforma Java EE

Page 2: Serra StarTec 2013 - Java EE

Boa tarde !!!

!  Rodrigo Cândido da Silva ! http://about.me/rcandidosilva !  @rcandidosilva

Page 3: Serra StarTec 2013 - Java EE

Agenda

!  Plataforma Java !   Java Enterprise Edition (Java EE) !   Java Persistence API (JPA) !  Enterprise JavaBeans (EJB) !   JavaServer Faces (JSF) !  Contexts and Dependency Injection (CDI) !   Java EE 7 !  Perguntas e Respostas

Page 4: Serra StarTec 2013 - Java EE

Plataforma Java

Page 5: Serra StarTec 2013 - Java EE

Porque Java?

!  68% das novas aplicações são em Java !   Java substituiu o C++ como a competência mais

procurada em profissionais !  2 milhões de novos profissionais de TI são

necessários a cada ano !   Java é executado em múltiplas plataformas !   Java é executado em ampla gama de

dispositivos, de Smart Cards aos servidores dos grandes Data Centers

Page 6: Serra StarTec 2013 - Java EE

Java Everywhere

Page 7: Serra StarTec 2013 - Java EE

Quais empresas usam Java

Page 8: Serra StarTec 2013 - Java EE

Mercado

Page 9: Serra StarTec 2013 - Java EE

Oportunidades

Page 10: Serra StarTec 2013 - Java EE

JAVA EE

Page 11: Serra StarTec 2013 - Java EE

Java Enterprise Edition

!  Suporte ao desenvolvimento de aplicações “enterprise” !  Aplicações distribuídas, seguras, escaláveis, de alta

disponibilidade e com baixo custo de manutenção

!  Plataforma para desenvolvimento de software de pequeno, médio e grande porte em múltiplas camadas de componentes !  Componentes “rodam” em um servidor Java EE

Page 12: Serra StarTec 2013 - Java EE

Java Enterprise Edition

Page 13: Serra StarTec 2013 - Java EE

Java Enterprise Edition

!  Serviços oferecidos pelos containeres Java EE: !  Gestão de memória, ciclo de vida de objetos !  Conexões, Transações, Serviço de nomes !  Segurança !  Tolerância a falhas !   Integração !  WebServices !  Clustering !  Alta disponibilidade !  Confiabilidade...

Page 14: Serra StarTec 2013 - Java EE

JPA Java Persistence API

Page 15: Serra StarTec 2013 - Java EE

Java Persistence API !   Primeira especificação (padrão) de mapeamento de objetos

Java para base de dados relacional !   Integração com outros frameworks

!   Hibernate é uma implementação de JPA !   TopLink Essencials é uma implementação de JPA (RI)

!   POJO (Plain Old Java Objects) à Entidades !   Mapeamento via metadados (annotation Java 5)

!   Pode ser utilizado fora de containeres EJBs (ligthweigth container)

!   Uso de injeção de dependência ao invés de lookups JNDI

Page 16: Serra StarTec 2013 - Java EE

Java Persistence API

Page 17: Serra StarTec 2013 - Java EE

!   JPA Entity

Java Persistence API

Page 18: Serra StarTec 2013 - Java EE

Java Persistence API

!  EntityManager (javax.persistence)

(B) find / query (C) persist (D) clear / serialização (E) merge (F) remove

Page 19: Serra StarTec 2013 - Java EE

Java Persistence API

!  Persistence Unit

Page 20: Serra StarTec 2013 - Java EE

EJB Enterprise JavaBeans

Page 21: Serra StarTec 2013 - Java EE

Enterprise Java Beans !   Plataforma para criação de aplicações de negócio

portáveis, robustas e reutilizáveis usando a linguagem de programação Java;

!   Componente para construir aplicações sem precisar reinventar uma série de recursos e serviços (transações, segurança, persistência);

!   Modelo de alto nível para objetos distribuídos (computação distribuída);

!   Pode ser utilizado em soluções Web e não Web;

Page 22: Serra StarTec 2013 - Java EE

Enterprise Java Beans

EJB Session Bean

Java Web

Swing

Cliente WS

Web Browser

JVM + Container EE Rede Local

Componentes Negócio Compartilhados

Page 23: Serra StarTec 2013 - Java EE

Enterprise Java Beans

EJB Session Bean

Segu

ranç

a

Con

trol

e Tr

ansa

cion

al

Esca

labi

lidad

e

Queues Topics

Data Sources

Environment Entries

EJB

Infra Estrutura do Container

Page 24: Serra StarTec 2013 - Java EE

!  Tipos de EJB: !  Session Bean

!  Representa um processo de negócio !  Message-Driven Bean

!  Trabalha de forma assíncrona

!  Singleton Bean !  EJB introduzido na versão 3.1

!  Entity Bean !  Representa um objeto persistente !  Definido pela especificação JPA

Enterprise Java Beans

Page 25: Serra StarTec 2013 - Java EE

!   Representa um processo de negócio (regra de negócio); !   @Stateless

!   Não mantém estado de conversão com o cliente; !   Não tem compromisso de manter uma sessão; !   Não devemos utilizar atributos de negócio, somente atributos técnicos

em cache; !   É um EJB econômico;

!   @Stateful !   Mantém estado de conversão com o cliente; !   Cada cliente terá uma instancia do EJB exclusiva, desde a criação até a

remoção; !   Podemos ter atributos de negócio com métodos getters e setters;

Session Bean

Page 26: Serra StarTec 2013 - Java EE

Session Bean !   Podem ou não definir interface de acesso !   @LocalBean define EJBs sem interfaces !   Tipos de Interfaces

!   Local (@Local) !   Somente acesso local (mesma JVM); !   Cliente pode ser um componente Web ou outro EJB; !   Localização não é transparente (não suporta clusterização).

!   Remota (@Remote) !   Suporta acesso remoto (fora da JVM); !   Cliente pode ser um componente Web, outro EJB ou aplicação desktop; !   Transparência de localização (suporta clusterização).

Page 27: Serra StarTec 2013 - Java EE

•  EJB Lite ü  Sub-conjunto de funcionalidades direcionadas para deploy dos EJBs no

container Java EE Web Profile (.war)

Enterprise Java Beans

EJB Lite EJB Full •  Local Session Beans •  CMT / BMT •  Segurança Declarativa •  Interceptors

•  Message-Driven Beans (MDB) •  Web Service Endpoints •  2.x / 3.x Remove View •  Inter-operabilidade com RMI-IIOP •  Timer service •  Chamada assíncrona à metodos •  2.x Local View •  CMP / BMP Entity Beans

Page 28: Serra StarTec 2013 - Java EE

Enterprise Java Beans

!  Empacotamento Simplificado !  Possibilita o deploy de componentes EJBs através de um .war !  Somente disponível para os EJB Lite !  ejb-jar.xml não é mais necessário

Java EE 5

Java EE 6

Page 29: Serra StarTec 2013 - Java EE

Message-Driven Bean

!   EJB que é acionado de forma assíncrona;

Síncrono Assíncrono

Page 30: Serra StarTec 2013 - Java EE

Message-Driven Bean !   Existem dois tipos de destinos JMS

!   Point-to-point (queue): uma mensagem enviada para a fila será consumida apenas por um cliente;

!   Publish-subscriber (topic): uma mensagem pode ser recepcionada por múltiplos clientes;

Page 31: Serra StarTec 2013 - Java EE

JSF JavaServer Faces

Page 32: Serra StarTec 2013 - Java EE

JavaServer Faces

!   Java !  Especificação !   Integração !  Ajax Nativo

Page 33: Serra StarTec 2013 - Java EE

MVC - Dividir e conquistar

!  Beleza vs Funcionamento !  Código Organizado !  Manutenção Fácil !  Sabe aonde achar o erro

Page 34: Serra StarTec 2013 - Java EE

Principais Componentes J2EE Web Container J2EE EJB

Container

Controller

Model

View

Servlet

JavaBeans

Java Server Pages

Custom Tag

EJB

javax.faces

JSF e J2EE

Page 35: Serra StarTec 2013 - Java EE

Página JSF

Tags: JSF HTML

Tags: JSF Core

Request

Managed Bean

Session

Managed Bean

Application

Managed Bean

Expression Language: EL

Links, formulários, imagens, combo-box, tabelas, etc…

Através destas tags adicionamos validação, conversão de dados, listeners

Dados para popular as tabelas, combo-box, textos.

Páginas JSF

Page 36: Serra StarTec 2013 - Java EE

JSF: principais componentes Pá

gina

JSF

fa

ces-

conf

ig.x

ml

Man

aged

Bea

n

Page 37: Serra StarTec 2013 - Java EE

Facelets

Page 38: Serra StarTec 2013 - Java EE

Integração

Page 39: Serra StarTec 2013 - Java EE

Frameworks em JSF

!  Basta baixar e usar

Page 40: Serra StarTec 2013 - Java EE

CDI Contexts and Dependency Injection

Page 41: Serra StarTec 2013 - Java EE

CDI (JSR-299)

!  CDI = Context Dependency Injection !  Novo modelo para gerenciamento de beans e

injeção de dependência !  Nova definição para escopos de aplicação !  Também conhecido como “Web Beans” !   Integra as camadas web e negócio da aplicação

!  Facilita a implementação das aplicações que utilizam tecnologias como JSF e EJB (Java EE)

Page 42: Serra StarTec 2013 - Java EE

CDI (JSR-299)

!  Gerenciamento de ciclo de vida de componentes statefull

!  Provê um mecanismo de DI typesafe !  Disponibiliza mecanismo de eventos facilitando o

desenvolvimento com baixo acoplamento !  Tem um mecanismo de Interceptors e Decorators !  Possibilita a criação de extensões portáveis para

qualquer implementação !   Integração com EL

Page 43: Serra StarTec 2013 - Java EE

CDI no Java EE

Page 44: Serra StarTec 2013 - Java EE

CDI Managed Beans

!  Nova definição para “beans !  Instâncias são gerenciadas pelo container !  Serviços disponíveis

!  Injeção de Dependência !  Ciclo de vida !  Interceptors !  Events

Page 45: Serra StarTec 2013 - Java EE

CDI Managed Beans

Page 46: Serra StarTec 2013 - Java EE

Configuração CDI

Page 47: Serra StarTec 2013 - Java EE

Hello World

Page 48: Serra StarTec 2013 - Java EE

O que pode ser injetado

!  CDI Managed Beans (POJO) !  Objetos retornados por @Produces !  EJB Session Bean (local ou remoto) !   Java EE Resources (DataSource, JMS) !   JTA UserTransaction !  EntityManager (JPA) !  Bean Validation Factory !  Destination e ConnectionFactory JMS

Page 49: Serra StarTec 2013 - Java EE

Principais Recursos

!   Injection Points !  Qualifiers !  Alternatives !  EL Names !  Producer Methods !  Java EE Resources !  Scopes and Contexts !   Interceptors !  Stereotypes !  Events

Page 50: Serra StarTec 2013 - Java EE

Java EE History

J2EE 1.3 CMP, Connector Architecture

J2EE 1.4 Web Services Mgmt, Deployment, Async Connector

Java EE 5 Ease of Development, EJB 3, JPA, JSF, JAXB, JAX-WS, StAX, SAAJ

Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS

Web  Profile    Servlet 3, EJB 3.1 Lite  

Java EE 7  JMS 2, Batch, TX, Concurrency, Interceptor, WebSocket, JSON  

Web  Profile    JAX-RS 2  

JAX-RPC, CMP/ BMP, JSR 88

Page 51: Serra StarTec 2013 - Java EE

Top 10 no Java EE 6

!   EJB packaging no WAR !   Type-safe deployment injection !   Deployment descriptors opcionais (web.xml, etc) !   Padronização do Facelets no JSF !   EJB em apenas uma classe !   Extensibilidade para Servlets e CDI !   CDI events !   EJBContainer API !   @Schedule baseado no modelo Cron !   Web Profile

Page 52: Serra StarTec 2013 - Java EE

Java EE 7 Themes

Page 53: Serra StarTec 2013 - Java EE

Java EE 7 Overview

Connector 1.6

Managed Beans 1.0 EJB 3.2

Servlet 3.1

Portable Extensions

JSF 2.2 JAX-RS 2.0

Bea

n Va

lidat

ion

1.1

JMS 2.0 JPA 2.1

EL 3.0

JTA 1.2

JSP 2.2

Interceptors 1.1 CDI 1.1 Common

Annotations 1.1

Updated Major Release

New

Concurrency Utilities (JSR 236)

Batch Applications (JSR 352)

Java API for JSON (JSR 353)

Java API for WebSocket (JSR 356)

Page 54: Serra StarTec 2013 - Java EE

Java EE 7

! Por onde começar?

Page 55: Serra StarTec 2013 - Java EE

Java EE 8.future(); !   JSON-B !   JCache !   More CDI/EJB alignment !   CDI.next() !   Cloud, PaaS, multitenancy/SaaS !   JMS.next()? !   JAX-RS.next()? !   Security? !   Modularity? !   NoSQL? !   Action-oriented Web framework/HTML 5?

Page 56: Serra StarTec 2013 - Java EE

Perguntas e Respostas

?

Page 57: Serra StarTec 2013 - Java EE
Page 58: Serra StarTec 2013 - Java EE

Eventos

Page 59: Serra StarTec 2013 - Java EE

Como Colaborar

!   Blog: !   http://gujavasc.org

! Facebok: !   https://facebook.com/groups/gujavasc

!   Twitter !   https://twitter.com/gujavasc

!   Google+ !   http://bit.ly/15c2QYQ

! Github !   https://github.com/gujavasc