You are on page 1of 33

JAVA ENTERPRISE EDITION (JEE)

PUC Minas Poos de Caldas Seminrios de Engenharia de Software 1 Semestre de 2012

PARTICIPANTES
Alexandre Viana Edno Franco Joo Paulo Franco Weverton Carvalho

SUMRIO
As Plataformas Java Java EE: Viso Geral Modelo Geral de Aplicaes no Java EE Java EE Containers Diferenas entre o Java SE e o Java EE Java EE Profiles Aplicaes Distribudas Multicamadas (Multitier)

Camada Cliente Camada Web Camada de Negcios Camada EIS

AS PLATAFORMAS JAVA
Ambiente de execuo de aplicaes escritas na linguagem Java Constitudas pela mquina virtual Java (JVM) e de uma interface de programao de aplicaes (API) Atualmente, h 4 plataformas Java:

Java Plataform, Standard Edition (Java SE) Java Plataform, Enterprise Edition (Java EE) Java Plataform, Micro Edition (Java ME) Java FX

JAVA ENTERPRISE EDITION VISO GERAL


A plataforma Java, edio Enterprise, surge diante da necessidade de desenvolvimento de aplicaes corporativas com cada vez menos recursos e com mais velocidade. Nesse sentido, a plataforma JEE prov os seguintes benefcios:

Recursos annotation e menor configurao em XML Gerenciamento efetivo da complexidade da aplicao Melhoria geral da performance

JAVA EE PROFILES
Web Profile: destinado a aplicaes Web de prxima gerao Full Profile: contm todas as tecnologias da plataforma para desenvolvimento de poderosas aplicaes corporativas

MODELO GERAL DE APLICAES NO JAVA EE A linguagem de programao Java e a mquina virtual Java (JVM) Define uma arquitetura para implementao de servios corporativos na forma de aplicaes multicamadas (multitier)

A lgica de negcios e de apresentao a ser implementada pelo desenvolvedor nas camadas de Negcios e Web. O desenvolvedor conta com os servios de sistema fornecidos pela prpria plataforma ao implementar detalhes especficos de sistema.

JAVA EE CONTAINERS
Representa o modelo de interface do Java EE entre um componente e as funcionalidades de baixo nvel especficas do sistema no qual a JVM est executando. Permite que o desenvolvedor se concentre na lgica de domnio da aplicao que est construindo, evitando a necessidade de implementao de caractersticas de segurana, gerenciamento de transaes e outros detalhes intrnsecos da plataforma hospedeira.

JAVA EE CONTAINERS

Nesse sentido, o conceito de containers se apresenta na plataforma EE na forma dos seguintes modelos:

Modelo de segurana: os recursos do sistema so acessados somente pelos usurios autorizados. Modelo de transaes: os mtodos de uma transao so tratados como uma nica unidade Modelo de servios JNDI: apresentam uma interface unificada para que os componentes tenham acesso a servios de nomes e diretrios de maneira consistente Modelo de conectividade remota: permite que um cliente chame mtodos em um componente remoto como se estivessem na mesma JVM.

JAVA EE CONTAINERS
Container Cliente: dos componentes da aplicao e/ou de um browser web com Java Plug-in. Container Web: gerencia a criao de pginas web a partir de servlets e/ ou pginas JSP. Converte requisies HTTP em chamadas a componentes. Pode apresntar alguns componentes EJB. Container EJB: gerencia a execuo dos componentes de negcios.

APLICAES DISTRIBUDAS MULTICAMADAS


MQUINA DO Camada Cliente

CLIENTE

Camada Web SERVIDOR Java EE Camada de Negcios

SERVIDOR DE

Camada EIS

BANCO DE DADOS

APLICAES DISTRIBUDAS MULTICAMADAS


Camada Cliente (Client Tier)

CAMADA CLIENTE (CLIENT TIER)


Na

plataforma Java EE, a parte cliente pode assumir 2 formas:


Cliente Web
Pginas dinmicas (HTML, XML) Browser Web

Aplicao Cliente

No caso de o usurio necessitar de uma interface mais rica, tipicamente desenvolvida usando a API Swing ou AWT.

Pode

incluir componentes baseados na arquitetura JavaBeans, mas no executa regras de negcios complexas.

CAMADA CLIENTE (CLIENT TIER)

A camada cliente se comunica ou diretamente com a camada de negcios ou atravs de componentes da camada web.
MQUINA DO CLIENTE

Camada Web
SERVIDOR Java EE Camada de Negcios

APLICAES DISTRIBUDAS MULTICAMADAS


Camada Web (Web Tier)

CAMADA WEB

(WEB TIER)

Cuida de toda a comunicao J2EE com clientes web, invocando a lgica de negcios e a transmisso de dados em resposta s solicitaes recebidas.

CAMADA WEB

(WEB TIER)

Ativar a lgica de negcios


Gerar contedo dinmico Apresentar dados e coletar entradas Suportar mltiplos tipos de cliente

CAMADA WEB (WEB TIER)


Java Server Pages (JSP) e Servlets Produzem, em Java/HTML, contedo dinmico em resposta a requisies de servio na web.

APLICAES DISTRIBUDAS MULTICAMADAS


Camada de Negcios (Business Tier)

CAMADA DE NEGCIOS
(BUSINESS TIER) Consiste de componentes que implementam a lgica de negcios de uma aplicao. Representa uma evoluo em relao s arquiteturas cliente-servidor (2 camadas). Tecnologias:

Componentes EJB Web Services JAX-RS RESTful Endpoints de web-service JAX-WS Entidades da API JPA Managed Beans

CAMADA DE NEGCIOS
(BUSINESS TIER)

Uso incorreto:

Ligaes diretas entre servidores de bancos de dados Calcular a soma de valores dos produtos em um carrinho de compras de uma aplicao de e-commerce.

Normalmente a camada de negcios fica empacotada em um arquivo JAR contendo os EJBs e demais classes de negcio e acesso a dados da aplicao, que pode ser instalada em um container EJB. Um exemplo de container EJB o servidor de aplicaes JBoss.

CAMADA DE NEGCIOS
(BUSINESS TIER)

Outra forma de empacotamento oferecida pela especificao J2EE so os arquivos EAR, ou Enterprise Application Archive. Esses pacotes simplesmente agrupam arquivos WAR, EJB-JAR e suas dependncias em um nico pacote, que guarda toda a parte de software que deve rodar em um servidor J2EE: as camadas WEB e de negcios.

CAMADA DE NEGCIOS
(BUSINESS TIER)

Algumas aplicaes no usam EJBs e processam todas as regras de negcio na aplicao web. Nesse caso, tanto a camada web quanto a camada de negcios ficam numa mesma aplicao web, sem necessidade de um servidor de aplicaes. Isso no significa, contudo, que a aplicao no tenha uma camada de negcios. A definio de camada de negcios diz que esta a parte do software que realiza as regras de negcio. No uma boa prtica misturar cdigo web com cdigo que contem regras de negcio.

Por exemplo, processar regras de negcio em servlets ou actions struts torna as camadas web e de negcio acopladas, pois a mesma classe que processa lgica de apresentao contm as regras de negcio.

Mesmo no usando EJBs, uma boa prtica criar classes de negcio (podem ser POJO mesmo) que contenham as regras de negcio e so chamadas a partir dos servlets ou das actions. Preferencialmente, essas classes podem ser ainda mais desacopladas, usando conceitos de inverso de controle, o que facilitado por um framework como o Spring.

CAMADA DE NEGCIOS
ARQUITETURA DE COMPONENTES EJB EJB (Enterprise Java Beans) uma arquitetura de componentes na camada de negcios do servidor da plataforma JEE para a construo modular de aplicaes corporativas. Essa arquitetura completamente definida por uma especificao formal, onde as responsabilidades do cliente, do servidor e dos componentes individuais so claramente definidas. compatvel com outros API Java e pode se comunicar com aplicativos no-Java.

CAMADA DE NEGCIOS
COMPONENTES EJB: INTERFACES HOME E REMOTE

Interface Home: define mtodos para gerenciamento do ciclo de vida do componente. Interface Remote: define os mtodos funcionais do componente, a serem invocados pelo cliente por meio de objetos locais

CAMADA DE NEGCIOS
TIPOS DE COMPONENTES EJB

Em uma aplicao EJB distribuda, existem 2 tipos de componentes (beans), os quais exercem papis distintos:

Session Beans: representam o banco de dados na forma de objetos com tempo de vida relativamente longo, podendo ser acessados por meio de mltiplos clientes. Sobrevivem queda do container, transparente ao usurio, que somente a percebe como excees ao chamar mtodos atravs da interface home do bean. Entity Beans: representam sesses de clientes nicos, interagem com os Entity Beans para ter acesso ao BD e tem vida mais curta. No sobrevivem queda do container.

APLICAES DISTRIBUDAS MULTICAMADAS


Camada EIS
(Enterprise Information System)

CAMADA EIS
(ENTERPRISE INFORMATION SYSTEM)

- Bancos de Dados Relacionais


- Processamento de Transaes

CAMADA EIS
(ENTERPRISE INFORMATION SYSTEM) Consiste nos servidores de banco de dados, sistemas ERP e outras fontes de dados legadas (mainframes). Recursos localizados em outro computador, acessado remotamente pelos componentes da camada de negcios.

CAMADA EIS
(ENTERPRISE INFORMATION SYSTEM)

As tecnologias dessa camadas so acessadas pelos seguintes APIs:

The Java Database Connectivity (JDBC): para acesso a bases de dados que provem um conector compatvel (consultas SQL) The Java Persistence API (JPA): abstrai dados recuperados pela JDBC em objetos Java The Java EE Connector Architecture (JCA): para conexo a recursos corporativos diversos, como sistemas ERP e sistema de gerenciamento de clientes. The Java Transaction API (JTA): para definir e gerenciar transaes.

CAMADA EIS
(ENTERPRISE INFORMATION SYSTEM)

Sistemas ERP
Sistemas Legados

CONCLUSES
JEE
(Java Enterprise Edition)

REFERNCIAS

JENDROCK E. et al. The Java EE Tutorial. Disponvel em http://docs.oracle.com/javaee/6/tutorial/doc/javaeetutorial6.pdf. Acesso em 15 Mai. 2012. EVANS, I. Your First Cup: An Introduction to the Java EE Platform. Disponvel em http://docs.oracle.com/javaee/6/firstcup/doc . Acesso em 29 Mai. 2012. JOHNSON, M. A beginner's guide to Enterprise JavaBeans: An introductory overview of the Java server-side application component standard. 10 Jan. 1998. Disponvel em http://www.javaworld.com/jw-10-1998/jw-10-beans.html. Acesso em 01 Jun. 2012. JOHNSON, M.; MURRAY, J. Disponvel em http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/D EA2eTOC.html. Acesso em 02. Jun. 2012.

You might also like