Desenvolvimento de Sistemas Corporativos Aula 1.4 – JEE

Propaganda
Desenvolvimento de Sistemas
Corporativos
Aula 1.4 – JEE
Prof. Bruno Moreno
[email protected]
Soluções
●
Utilizar padrões de projeto;
●
Projetar a aplicação em múltiplas camadas;
●
Não reinventar a roda: use frameworks.
2
Soluções do Mercado
●
.NET Framework (Microsoft);
●
Java Enterprise Edition – JEE (Oracle);
●
Spring framework – Pivotal Software
–
Foi criado para simplificar a programação em Java
(JEE);
3
Soluções do Mercado
●
.NET Framework (Microsoft);
●
Java Enterprise Edition – JEE (Oracle);
●
Spring framework – Pivotal Software
–
Foi criado para simplificar a programação em Java
(JEE);
4
Plataforma JEE
●
Para suportar aplicações Java Corporativas, foi
criado o Java Enterprise Edition (JEE);
“O objetivo da plataforma Java EE é proporcionar aos
desenvolvedores um conjunto de API poderosas que permitam
desenvolver em um curto espaço de tempo, reduzindo a
complexidade da aplicação e oferecendo desempenho às
aplicações desenvolvidas.”
Fonte: https://docs.oracle.com/javaee/7/tutorial/overview.htm
5
Conceituação
●
●
●
Fundamentada no Java padrão (Java SE);
Define um conjunto de funcionalidades e um
ambiente de execução para aplicações
corporativas;
Enfoca em atributos de qualidade:
–
Confiabilidade;
–
Escalabilidade;
–
Segurança;
–
Robustez.
6
Conceituação
●
●
JEE acrescenta especificações ao SDK do Java
(JSRs, Java Specification Requests), que
incorporam funcionalidades de:
–
Tolerância a falhas;
–
Aplicações distribuídas;
–
Aplicações multicamadas;
–
Dentre outas a serem executadas em um servidor de
aplicação;
A plataforma JEE é uma especificação
–
Somente determina o que deve ser feito;
–
O como fica a cargo do desenvolvedor;
7
Conceituação
●
Java Specification Requests (JSR):
8
Conceituação
●
Na especificação JEE, as extensões ao JSE ficam
todas no pacote “javax”:
–
faces: contrução de interfaces componentizadas;
–
servlet: lida com requisições HTTP;
–
enterprise: lida com injeção de dependência;
–
ejb: acesso a objetos;
–
validation: validação de objetos;
–
transaction: controle de transações;
–
jms: comunicação assíncrona;
–
resource: conectores para integração entre sistemas.
9
Componentes
●
●
Aplicações J2EE são compostas de
componentes;
Um componente é uma unidade autocontida de
software que pode ser composta numa
aplicação em tempo de design
–
●
●
Sem compilação;
Componentes JEE são escritos em Java;
Os componentes JEE estão distribuídos nas
diferentes camadas da arquitetura JEE.
10
Arquitetura
●
Arquitetura típica de aplicações Java EE
11
Arquitetura
●
Clientes
–
Páginas web geradas no servidor web e
renderizadas no navegador;
–
Aplicações desktop;
–
Applets Java;
12
Arquitetura
●
Arquitetura típica de aplicações Java EE
13
Arquitetura
●
Camada de Apresentação (web tier)
–
Geração dinâmica de conteúdo para o
cliente;
–
Coleta dados de usuários e retorna
resultados vindos da camada de negócio
–
Controle de fluxo das telas ou páginas no
cliente;
–
Manutenção de estado de dados de
usuário em sessões;
–
Armazenamento temporário de dados na
forma de managed beans.
14
Arquitetura
●
Camada de Apresentação (web tier)
–
Java Server Faces (JSF):
●
–
Servlets:
●
–
Framework para interfaces ricas de
aplicações Web;
Classes Java capazes de gerar conteúdo
web e processar requisições;
Java Server Pages (JSP):
●
Tecnologia para páginas web dinâmicas
com Java;
15
Arquitetura
●
Arquitetura típica de aplicações Java EE
16
Arquitetura
●
Camada de Negócio (business tier)
–
Execução da lógica de negócio da
aplicação;
–
As principais funcionalidades oferecidas
pela aplicação concentram-se aqui;
–
É implementada por meio dos EJBs
(Enterprise JavaBeans)
●
Em resumo: é um componente de SW que
encapsula a lógica de negócio da aplicação;
17
Arquitetura
●
Arquitetura típica de aplicações Java EE
18
Arquitetura
●
Camada de EIS (Enterprise Information
Systems tier)
–
Armazenamento de dados gerenciados
pela aplicação;
–
Esses dados podem ser provenientes
de diversas fontes, tais como:
●
●
●
Banco de dados;
Serviços web;
Outros sistemas externos (incluindo
sistemas legados)
19
Elementos de JEE
●
Enterprise JavaBeans (EJB)
–
Componente da api Java que permite o
desenvolvimento de sistemas corporativos;
–
Encapsula toda a lógica de negócio da aplicação;
–
Um conteiner de EJB (EJB container) fornece um
ambiente de execução para componentes de
software relacionados, incluindo:
●
●
●
●
Segurança;
Gerenciamento do ciclo de vida;
Processamento de transações;
Outros web services.
20
Elementos de JEE
●
Containers Java EE
–
Ambientes de execução para diversos
componentes de Java EE e ciclo de vida das
aplicacões;
–
Mantidos em servidores de aplicação JEE;
–
Serviços típicos:
●
●
●
Segurança: controle de acesso e recursos;
Transação: agrupamento de métodos;
Distribuição: invocação remota de métodos.
21
Elementos de JEE
●
Servlets
–
São programas que rodam no servidor Web
●
●
Servlets não possuem método main: precisam ser executados
pelos containers;
O conteiner gerencia e executa os servlets;
–
Atuam como camada intermediária entre uma requisição
vinda de um cliente HTTP e as aplicações do servidor
web;
–
O conteiner cria automaticamente uma nova thread para
cada solicitação recebida do servlet;
–
Quando o servlet conclui a execução do método HTTP, a
thread termina
●
O conteiner gerencia o ciclo de vida dos servlets.
22
Elementos de JEE
●
Containers web: camada de apresentação
Tomcat
●
Containers EJB: camada de negócio
23
Elementos de JEE
●
Servidores de Aplicação
–
Para se utilizar as funcionalidades de JEE, é
necessário um servidor de aplicação;
–
Um servidor de aplicações (Application Server, AS)
é capaz de prover implementações das
funcionalidades JEE
●
–
Um servidor que possui implementações para toda
especificação JEE é chamado Full Compliant;
Exemplos de AS: Jboss, Weblogic, Glashfish,
WebSphere, Resin e Apache TomEE;
24
Servidores de Aplicação
●
●
Alguns servidores JEE, no entanto, provém
implementações somente para parte Web
–
Ou seja, esses servidores não dão suporte a parte
Enterprise;
–
Estes são chamados de Web Profile Compliant;
Um AS Web Compliant permite o deploy de
aplicações web
–
O suporte à funcionalidades extras depende de
cada servidor (e suas respectivas extensões).
25
Servidores de Aplicação
●
●
Um servidor de aplicação é composto por
vários contêineres:
–
Contêiner Web;
–
Contêiner EJB;
–
Contêiner JPA;
–
Contêiner JMS;
Cada um desses contêineres manipula os tipos
específicos de componentes;
26
Benefícios do uso de JEE
●
●
Ampla adoção de Java;
Enfoque na lógica de negócio e na
apresentação enquanto a plataforma oferece
um conjunto de serviços de infraestrutura
reusáveis;
●
Abstração de detalhes de infraestrutura;
●
Portabilidade;
●
Independência de implementação.
27
28
Tecnologias de JEE
Tecnologia
Definição/Funcionalidades
Servlets
Geração de conteúdo web e
processamento de requisições e respostas
HTTP
JSP
JavaServer Pages
Implementação de páginas web dinâmicas
com base na linguagem Java
JSF
JavaServer Faces
Framework para criação de interfaces
ricas de aplicações web
EJB
Enterprise JavaBeans
Componentes para encapsulamento da
lógica de negócio de aplicações
JavaBeans
Classes Java (SE) convencionadas
POJO
Plain Old Java Object
Classe Java (SE) que não segue nenhum
tipo de convenção ou modelo
CDI
Context and Dependence Injection
Integração Dinâmica de Componentes
29
Tecnologias de JEE
Tecnologia
Definição/Funcionalidades
JPA
Java Persistence API
Mapeamento objeto-relacional e
persistência e consulta em banco de
dados
JTA
Java Transaction API
Controle de Transações
JAX-RS
Java API para webservices RESTful
Desenvolvimento e utilização de serviços
web de acordo com o estilo REST
JAX-WS
Java API para webservices XML
Desenvolvimento e utilização de serviços
web baseados no protocolo SOAP
JMS
Java Message Service
Serviço de Mensagens Assíncronas
JAAS
Java Authentication and Authorization
Service
Serviço para Controle e Gerenciamento de
Segurança (autenticação e autorização)
JavaMail
Envio e recebimento de e-mails.
30
Implantação de apps. JEE
●
Antes da execução de uma aplicação JEE são
realizados dois procedimentos:
–
Empacotamento (assembly) dos artefatos de
software desenvolvidos na forma de unidades;
–
Implantação (deployment) dos artefatos de
software em um servidor de aplicações JEE.
31
Implantação de apps. JEE
●
Empacotamento:
–
Podem conter um ou mais componentes funcionais:
●
●
●
–
EJBs;
Páginas web;
Servlets, etc.;
Podem conter descritores de implantação
(deployment descriptor)
●
Opcional que descreve o conteúdo da unidade.
32
Implantação de apps. JEE
●
Principal unidade de implantação:
–
Arquivos EAR (Enterprise Archive)
33
Implantação de apps. JEE
●
Principal unidade de implantação:
–
Arquivos EAR (Enterprise Archive)
●
●
Uma aplicação corporativa é
empacotada em um Enterprise
Archive;
Um EAR é composto por:
–
Um (ou mais) módulos EJB – EJBJAR;
–
Um (ou nenhum) módulo Web –
WAR;
–
Bibliotecas adicionais – JAR.
34
Implantação de apps. JEE
●
Principal unidade de implantação:
–
Arquivos EAR (Enterprise Archive)
●
●
Este arquivo é o arquivo que será
"deployado" pelo servidor de
aplicação;
Dentro dele estão
–
Os arquivos .jar;
–
Os arquivos .war
–
O arquivo META-INF/application.xml
●
Informações sobre a aplicação
35
Implantação de apps. JEE
●
Estrutura de um pacote EAR:
●
Um pacote EAR contém:
–
Módulos Java EE;
–
Descritores de
implantação;
–
Instruções através de
anotações.
36
Implantação de apps. JEE
●
Arquivos WAR (Web Archive): módulos web,
contendo servlets, páginas web, imagens, etc.
37
Implantação de apps. JEE
●
Arquivos JAR (Java Archive): módulos EJB,
contendo Enterprise JavaBeans.
38
Implantação de apps. JEE
39
Implantação de apps. JEE
●
Estrutura de arquivos de uma app Java EE
40
Próximas aulas...
●
●
O framework JEE será detalhado
posteriormente pelo Prof. Mário
–
Arquitetura;
–
EJBs;
A partir da próxima aula iremos estudar/revisar
Servlets e JSP.
41
Se prepare...
●
Instale o IDE Eclipse;
●
Instale o Tomcat;
●
Tenha certeza que ambos estão OK!
42
“Deus amou tanto o mundo que deu
seu Filho, seu único filho, pela
seguinte razão: para que
ninguém precise ser condenado; para
que todos, crendo nele, possam ter
vida plena e eterna.”
João 3:16
(A Mensagem)
43
Referências
●
●
●
●
Notas de aula do Prof. Marcelo Fernandes,
IFRN Natal Central;
Notas de aula do Prof. Fellipe Aleixo, IFRN
Natal Central;
Notas de aula do Prof. Everton Cavalcanti,
UFRN DIMAP;
Notas de aula do Prof. Jacques Sauvé, UFCG
DSC.
44
Download