17
Introdução ao Java EE Julio M. Faerman

Introdução ao Java EE

  • Upload
    kanan

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Introdução ao Java EE. Julio M. Faerman. Recursos. http://jfaerman.googlepages.com/ Apresentações Exemplos Exercícios Tutoriais Links Downloads. Agenda. Evolução da arquitetura de sistemas de informação Servidor de aplicações Contêiner Web Aplicações Web JEE. - PowerPoint PPT Presentation

Citation preview

Page 1: Introdução ao Java EE

Introdução ao Java EE

Julio M. Faerman

Page 2: Introdução ao Java EE

Recursoshttp://jfaerman.googlepages.com/

• Apresentações• Exemplos• Exercícios• Tutoriais• Links• Downloads

Desenvolvimento web com Java

# 2

Page 3: Introdução ao Java EE

Agenda• Evolução da arquitetura de sistemas

de informação• Servidor de aplicações• Contêiner Web• Aplicações Web JEE

Desenvolvimento web com Java

# 3

Page 4: Introdução ao Java EE

Aplicações MonolíticasEvolução das arquiteturas de software

# 4

Interface do Usuário

Dados

Page 5: Introdução ao Java EE

Evolução das arquiteturas de software

# 5

Aplicações duas camadas

Banco deDados

Cliente “Gordo”

Page 6: Introdução ao Java EE

Aplicações N camadas (tiers)Evolução das arquiteturas de software

# 6

Page 7: Introdução ao Java EE

Benefícios e desafios de aplicações distribuídas

Requisitos não funcionais• Reusabilidade• Manutenibilidade• Desempenho

– Vazão– Latência

• Escalabilidade

• Segurança• Disponibilidade• Tolerância a falhas• Balanceamento de

Carga• Integração

# 7

Page 8: Introdução ao Java EE

Ambientes de programação distribuída

Middlewares

# 8

Page 9: Introdução ao Java EE

A LasanhaDesenvolvimento web com Java

# 9

APP Server

Maquina Virtual Java

Sistema Operacional

Dispositivos Rede

APP

JSE APP

JEE APP

D E

V E

L O

P E

R

D E P L O Y E R

Aplicação

Transporte

Rede

Enlace

Física

Page 10: Introdução ao Java EE

AppServer GenéricoDesenvolvimento web com Java

Sistema OperacionalJava SE (JVM + SE Classpath)

App Server

Web Container EJB Container

Java EE Classpath (servlet, jp, ejb, persistence, jaxp, jms …)

web-app1.war

web-app2.war

ejb-app1.jar

ejb-app1.jar

enterprise-app1.earenterprise-app2.ear

J N D I

EJBs

Data Sources

Message Queue

Mail Session

Cache

HTTP

RMI

Page 11: Introdução ao Java EE

Web Container (JEE 5)• Servlets

– Java Server Pages• Filters• Listeners• Tag Libraries

– Tag Handlers– Tag Files

• Java Server Faces• Web Services

– SOAP– REST*

• Container Managed Authentication

Desenvolvimento web com Java

# 11

Page 12: Introdução ao Java EE

Web Application TípicaDesenvolvimento web com Java

HTTPServletdoGet()doPost()doPut()doDelete()

JSP<html> <% x++; %></html>

HTTPServletout.println(“<html>”) x++;out.println(“/<html>”)

request

response

Filter//beforeChain.doFilter()//after

request

response

compile

ServletContextListener

ServletContextAttributeListener

HttpSessionListener

HttpSessionAttributeListener

HttpSessionActivationListener

ServletRequestListener

ServletRequestAttributeListener

events

Page 13: Introdução ao Java EE

Exercício: App Web JEE• Servlet• Filter• JSP• Tag File• Listener• Deployment

Descriptor

Desenvolvimento web com Java

# 13

Page 14: Introdução ao Java EE

Os problemasDesenvolvimento web com Java

# 14

class InserePedido extends HttpServlet{ ... doPost(…){ if (! tudoCerto) … Pedido p = new Pedido(); p.setXxx(request.getParameter(“Xxx”)); request.setAttribute(“pedido”,p); out.print(“<htlm>…</html>”) requestDispatcher.forward(“some.jsp”) }}

<table> <% for.. %> <tr><td><%= if(pedido.isEspecial()) %>

<%= pedido.getValor() * 0.90%>

1. Duplicação2. Duplicação3. Problemas ortogonais

• Validação• Segurança• Transações

4. Manipulação do HTTP5. Negócio x

Apresentação6. Código prolixo7. …

Page 15: Introdução ao Java EE

Web Frameworks• Abstração

– Actions– Componentes*

• Reuso de apresentação– Componentes**– Templates

• Validação• Conversão• Pontos de extensão

Desenvolvimento web com Java

# 15

Page 16: Introdução ao Java EE

Soluções?Desenvolvimento web com Java

# 16

JSP

ServletStruts

Sitemesh

WebWork

Tapestry

GWT

Velocity

Cocoon

EchoCanyamo

Millstone

OXF

RIFE

TeaServlet

Shocks

Folium

JZonic

JPublishJATO

MaverickSOFIABarracuda

Bishop

Niggle

Verge

Bento

WingS

jStatemachine

Expresso

ActionFrmwk

TeaServlet

Jacquard

Jaffa JWAA

Warfare

Scope

OpenEmcee

Macaw

Chiba JBanana

JWarp

Cassandra WebOnSwing

Dinamica

Helma

JApple

JFormular

Melati

Genie

JSF

BishopSpringMVC

Tiles

Trubine Groovlets

Freemarker

Wicket

Page 17: Introdução ao Java EE

Desenvolvimento web com Java

# 17

Dúvidas?