Java EE Flashcards
**
Java EE
JEE (Java Enterprise Edition) é uma plataforma de programação para servidores na linguagem de programação Java, que integra uma série de especificações e containers, cada uma com funcionalidades distintas.
É um conjunto de especificações, não um produto;
Define um conjunto de padrões para o desenvolvimento de aplicações corporativas robustas, portáveis, seguras, multicamadas;
Qual o objetivo da JEE?
Fornecer um conhunto avançado de APIs que:
* Tempo
* Complexidade
* Desempenho
de aplicações.
Java EE simplifica o desenvolvimento de aplicações, pois:
- Fornece uma arquitetura baseada em componentes modulares e padronizados;
- Fornece um conjunto completo de serviços para esses componentes.
- Trata de muitos detalhes do comportamento das aplicações automaticamente.
(Sem necessidade de programação complexa.)
Exemplos de servidores de aplicações JEE:
- GlassFish Server Open Source Edition
- WebLogic Application Server
- JBoss Application Server
- WebSpehere Application Server
A tecnologia J2EE — Java 2 Plataform Enterprise Edition por meio do JSP
(JavaServerPages) — enfatiza:
A utilização de componentes Java reutilizados.
Quais são os principais componentes de Java EE?
Os principais componentes incluem:
- Servlets
- JSP (JavaServer Pages)
- EJB (Enterprise JavaBeans)
- JPA (Java Persistence API)
- CDI (Contexts and Dependency Injection)
- Web Services.
O que são Java Servlets?
- Servlets são objetos Java que tratam de requisições e respostas HTTP.
- São executados no servidor e tem o objetivo de gerar conteúdo (HTML e XML) dinâmico para web.
- Permitem que os usuários entrem com informações em páginas web e tenham suas requisições tratadas de forma dinâmica pela plataforma.
O que é JSP?
- Páginas HTML com código Java embutido.
- Os JSPs são compilados em um servlet
No container WEB, uma página JSP transforma-se em um servlet, que é compilado, carregado e inicializado.
(Deprecated) em favor do JSF e facelets.
O que é JSF?
- JavaServer Faces (JSF) é um framework para desenvolver aplicações web de forma ágil, baseado (mas, não limitado) no padrão MVC.
- Permite que o desenvolvedor crie UIs através de um conjunto de componentes UIs prédefinidos.
Cite algumas das vantegens do uso de JSF em relação ao JSP:
O uso de facelets (objetos JSF) traz vantagens em relação ao uso de JSP, como:
- maior modularidade, com o uso de templates e componentes compostos (composite).
- O uso de templates
- Separação mais rígida entre visão e lógica de apresentação
Enterprise JavaBeans (EJB)
- É um modelo de componentes padronizado, executado no lado do servidor e que facilita a construção de aplicações distribuídas robustas.
- É uma arquitetura de componentes multiplataforma para o desenvolvimento de aplicações Java EE, multicamadas, distribuídas, escaláveis e orientadas a objetos.
Java Transaction API (JTA)
- É uma especificação que visa padronizar o uso de transações distribuídas feitas por aplicativos Java.
- Permite que aplicações Java EE acessem transações de uma forma independente de implementações específicas.
- Especifica interfaces Java padrão entre um gerente de transação (transaction manager) e as partes envolvidas em um sistema de transações distribuídas: a aplicação transacional, o servidor Java EE, e o gerente que controla o acesso aos recursos compartilhados afetados pelas transações.
- Define ainda a interface UserTransaction que as aplicações podem utilizar para iniciar, confirmar ou anular
transações.
Java Message Service (JMS)
- Estabelece um padrão para troca de mensagens entre diferentes aplicações.
- É uma API da linguagem Java que permite a componentes baseados em Java/J2EE; Criar, enviar, receber e ler mensagens).
Java Persistence API (JPA)
- Disponibiliza um modelo de persistência para objetos mapeados para bancos de dados
relacionais.
JEE Connector Architecture (JCA)
- Tecnologia utilizada para resolver o problema de conectividade entre servidores de aplicações Java e sistemas existentes (ERPs, CRMs, etc.).
- É uma API que padroniza a ligação a aplicações legadas na plataforma Java Enterprise
Edition.
Web Services API (WSA)
- Permite a codificação e utilização de web services que se comunicam com outros componentes de outras plataformas.
Java Naming and Directory Interface (JNDI)
- É uma API de localização de nomes utilizada para buscar recursos e serviços da plataforma.
- É utilizada pelo ENJ, RMI-IIOP, JDBC, etc.
- Padroniza o acesso ao serviço de nomes e diretórios.
- É utilizado como o repositório central para os recursos gerenciados pelo container.
- É a implementação do padrão “Service Locator”
(Define uma interface unificada para a busca de objetos, recursos e serviços).
CESPE: O JNDI fornece um serviço de nomes e diretórios para o registro e a obtenção de referências a recursos.
Remote Method Invocation (RMI)
- É um modelo de objetos distribuídos (em Java) com o objetivo de facilitar a comunicação entre os objetos distribuídos.
- Permite que uma thread invoque um método em um objeto remoto.
- API de alto nível construída sob sockets.
- Evolução da arquitetura Cliente/Servidor. Porém, há maior flexibilidade no RMI.
- Os objetos remotos podem ser manipulados como se estivessem residindo no computador local.
- Transmissão transparente pela JVM.
Java Database Connectivity (JDBC)
- API de acesso a banco de dados.
Contexts and Dependency Injection (CDI)
- O CDI é o mecanismo oferecido pela plataforma Java EE 6 para gerenciamento de dependências entre componentes (chamados de beans) de uma aplicação corporativa (com ou sem o uso de EJBs), associando-os a contextos e oferecendo uma série de serviços de infraestrutura à aplicação.
- No JEE 6, CDI é a especificação que tem como propósito unir os modelos de componentes do JSF Managed-Beans com o EJB, proporcionando um modelo de fácil implementação para aplicações web.
- Os serviços CDI permitem aos componentes do Java EE, como beans de sessão EJB e beans gerenciados do JavaServer Faces (JSF), serem injetados e interagir de maneira acoplada e flexível iniciando e observando eventos.
A aplicação JEE é construída em 3
(três) camadas, são elas:
- Máquina Cliente (Client Machine)
- Servidor Java EE (Camada Web + Camada de Negócios)
- Servidor de Banco de Dados (Database Server) - EIS (Enterprise information system)