Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
1
Agenda
Introduo
Beans
Arquitectura JEE
JEE Components (client, web and business components)
JEE Clients e JEE Containers
JEE APIs
JEE Application Servers : Caractersticas e comparativo
Packaging and Deployment (JAR, WAR e EAR)
Sesso Prtica
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
2
Introduo
Exigncias do mercado de IT
In the world of information technology, enterprise applications must be designed, built,
and produced for less money, with greater speed, and with fewer resources.
Fonte: Oracle TM
Possvel abordagem?
Utilizar a plataforma JEE (Java Enterprise Edition), uma vez que apresenta as seguintes
caractersticas:
Conjunto vasto e rico de APIs, que satisfazem, maioritariamente, as exigncias dos projectos;
Tempos de adaptao de equipas de desenvolvimento bastante reduzidos;
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
3
JAVA Platforms
JAVA PLATFORMS
Uma Maquina Virtual (JVM) para execuo numa mquina e arquitectura especifica.
JAVA API. Conjunto de componentes, bibliotecas de cdigo, independentes da
plataforma de execuo. Ainda h ferramentas especificas para cada plataforma
Java SE (Java Platform, Standard Edition). Funcionalidade principal da linguagem JAVA. Tipos
de Dados e Objectos, Bibliotecas comuns de Redes, Segurana, Parsing etc.
Java ME (Java Platform, Micro Edition). A edio para o desenvolvimento de aplicaes para
dispositivos mveis e embutidos. Java Card. Mais especifico para SmartCards
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
4
Aplicaes WEB
Web Application: Uma Aplicao Web uma aplicao dinmica usando o modelo
WEB onde h programas Clientes e a aplicao associada a um servidor
aplicacional/servidor de Web. Aplicaes de WEB podem ser consideradas de um
dois tipos:
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
5
Java Beans e Java Enterprise Beans
JavaBeans
So componentes reutilizveis de software escritos na linguagem de programao
Java.
So usados para encapsular muitos objectos num um nico objecto (o bean),
assim eles podem ser transmitidos como um nico objecto em vez de vrios
objectos individuais.
O JavaBean um Objecto Java que :
serializvel : implementa a interface java.io.Serializable (que possibilita a
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
6
Exemplo: Java Bean
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
7
Exemplo: Java Bean
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
8
Enterprise Java Beans
Enterprise JavaBeans (EJB) is a managed, server-side component architecture for
modular construction of enterprise applications.
The EJB specification provides a standard way to implement the back-end 'business'
code typically found in enterprise applications (as opposed to 'front-end' interface
code). Such code addresses the same types of problems, and solutions to these
problems are often repeatedly re-implemented by programmers. Enterprise
JavaBeans are intended to handle such common concerns as persistence,
transactional integrity, timing and messaging events, and security in a standard way,
@Schedule(minute="*/30", hour="*")
public void automaticUpdate() {
this.RunSynchronizeUpdate (new Date());
logger.info("Automatic Update occured");
}
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
9
Arquitectura JEE
A plataforma JEE utiliza o modelo de camadas para as aplicaes empresariais.
A camada lgica da aplicao dividida em componentes de acordo com a sua
funo, que est intimamente relacionada com cada camada aplicacional.
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
10
JEE Components
Nota:
Os componentes JEE so implementados e
compilados como uma classe standard em
Java, com a diferena de que so validados de
acordo com a especificao JEE, executados e
geridos atravs de um servidor JEE.
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
11
JEE Clients
Os clientes JEE, de acordo com a especificao, agrupam-se em:
Web clients
Navegadores (e.g. IE, Mozilla Firefox, etc.) que renderizam as pginas enviadas
pelo servidor (HTTP RESPONSE).
Application clients
Aplicaes instaladas nas client machines que acedem normalmente de forma
directa aos componentes de negcio (Enterprise JavaBeans (EJB)).
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
12
JEE Containers
A arquitectura JEE providencia a cada componente (client, web and business) um
conjunto de servios na forma de container,
Exemplo: gesto de transaes e de estado, multithreading, resource pooling
(conexo a fontes de dados) e outras de complexidade relevante.
Application Client Container
Controla a execuo de client components
Applet Container
Consiste no Navegador e no plugin para a
execuo de applets.
Web Container
Controla a execuo de pginas web, servlets
e JavaBeans (web components).
EJB Container
Controla a execuo de Enterprise JavaBeans
(business components).
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
13
JEE APIs
API Resumo
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
14
JEE APIs
API Resumo
Novidades JEE7:
HTML5-friendly markup
Faces Flows
Resource library contracts
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
15
JEE APIs
API Resumo
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
16
JEE APIs
API Resumo
Especifica atravs e as validaes dos dados de componentes
Bean Validation
JavaBeans, tanto em client-side como em server-side.
Java Message Service API Permite aos componentes da aplicaes JEE criar, enviar, ler e
(JMS) receber mensagens de forma distribuda e assncrona.
Permite aos componentes das aplicaes JEE o envio de
JavaMail API
mensagens de correio electrnico .
Nota:
A plataforma JEE necessita tambm das APIs Java SE (Standard Edition), que por sua vez
ficam disponveis para as aplicaes JEE, como por exemplo:
-Java Database Connectivity API (JDBC)
-Java Naming and Directory Interface API (JNDI)
-Java API for XML Web Services (JAX-WS)
-Java Authentication and Authorization Service (JASS)
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
17
JEE APIs
Analisemos a relao entre as APIs da plataforma JEE e os containers e
componentes mencionados anteriormente.
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
18
JEE Application Servers Caractersticas e
comparativo
Caractersticas
Um servidor JEE tem de (ou deve) ser compliant com a especificao de uma verso
JEE permitindo o deployment, a gesto e execuo de todos os componentes do stack.
JSR-000342 - https://jcp.org/en/jsr/detail?id=342
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
19
JEE Application Servers Caractersticas e
comparativo
O que escolher?
-A escolha depende de vrios factores:
Financeiros
Nota:
Tcnicos
Nos exerccios prticos
Suporte tcnico em ambientes de produo
utilizaremos Glassfish
Exigncias de performance e fiabilidade em ambientes de carga
Suporte de clustering
Cliente
-Para aplicaes que no necessitem do stack completo JEE, usual a utilizao do Apache Tomcat.
-Em relao a solues comerciais, a aposta dos clientes incide sobre o Oracle Weblogic (PT-SI) e
WebSphere (CGD). (Info Altran)
-O JBoss AS utlizado tambm em solues comerciais de Passenger Information em redes de
transportes (Thales Portugal). (Info Altran)
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
20
Software Necessrio
Java Runtime Environment (1.8 para executar GlassFish 4.1)
Java SDK Standard Edition
Java EE 7
Server - Glassfish 4
DataBase : JavaDB, MySql
IDE Netbeans (8.2)
ANT: Java Based Build Tool
Bundled with Netbeans : Glassfish, Tomcat, JavaDB, ANT
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
21
Sesso Prtica Configuring JEE with
GlassFish
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
22
Using Glassfish
Obtm quick-start-guide.pdf
Hello.war (Packaged Web Application)
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
23
IDE Caractersticas
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
24
Comparativo
Fonte:
http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Java
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
25
Comparativo
Fonte:
http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Java
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
26
Sesso Prtica Configuring Netbeans
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
27
Packaging and Deployment (JAR, WAR e EAR)
Java Archive (JAR) um ficheiro compactado usado para distribuir um conjunto de classes Java, uma aplicao-
executavel de java, ou outros itens como imagens, XMLs, etc. usado para armazenar classes compiladas e metadados
associados que podem constituir um programa, uma biblitoeca de cdigo etc. Baseado no formato zip
Arquivos jar podem ser criados e extrados usando o utilitrio "jar" da JDK.
Ferramentas de compresso (como o Winzip / WinRar) tambm podem criar e extrair arquivos .jar.
Do Site do Oracle
Security: You can digitally sign the contents of a JAR file. Users can then optionally grant your software security
privileges it wouldn't otherwise have.
Decreased download time: If your applet is bundled in a JAR file, all the applet's class files and associated resources
can be downloaded to a browser in a single HTTP transaction
Compression: The JAR format allows you to compress your files for efficient storage.
Packaging for extensions: The extensions framework provides a means by which you can add functionality to the Java
core platform
Package Sealing: Packages stored in JAR files can be optionally sealed so that the package can enforce version
consistency. Sealing a package within a JAR file means that all classes defined in that package must be found in the
same JAR file.
Package Versioning: A JAR file can hold data about the files it contains, such as vendor and version information.
Portability: The mechanism for handling JAR files is a standard part of the Java platform's core API.
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
28
Packaging and Deployment (JAR, WAR e EAR)
As aplicaes JEE podem ser distribudas em ficheiros Java Archive (JAR), Web
Archive (WAR) ou Enterprise Archive (EAR).
dashboard Estrutura de um ficheiro WAR/EAR
META-INF Directoria com pginas web (HTML e JSP), que tambm podem
dashboard
estar ao nvel da raiz.
resources Directoria que apresenta ficheiros relacionados com o layout
css resources das pginas web, CSS e imagens, como tambm cdigo
JavaScript.
images
js Directoria onde se encontram as classes Java dos
WEB-INF componentes web e business (/classes) e bibliotecas
...
auxiliares (/lib), como por exemplo jstl.jar.
WEB-INF
Configuraes de uma aplicao web baseada em JSF,
classes faces-config.xml
definindo regras de navegao, beans, converters e validators.
lib
Configuraes especficas para o JEE Server onde a aplicao
faces-config.xml sun-web.xml
ser instalada.
sun-web.xml Define o mapeamento entre URLs e servlets e outras
web.xml
configuraes como autenticao em determinados URLs.
web.xml
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
29
Building Java Projects with ANT
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
30
Sesso Prtica Building and Packaging with ANT
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
31
Debugging Java EE Applications
NetBeans IDE. logging output appears in the Output window as well as the server log.
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
32
Debugging Java EE Applications
If you start the GlassFish Server with the --verbose flag, all logging and debugging
output will appear on the terminal window or command prompt and the server log.
If you start the GlassFish Server in the background, debugging information is
available only in the log.
You can view the server log with a text editor or with the Administration Console
log viewer.
Index.jsp
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
34
Implement and Check Log
page2.jsp Call it from a link on the index page
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
35
Dvidas/questes
Curso Intensivo JEE Mdulo I: Viso geral da plataforma JEE Verso: 1.2
NOTA: Proibida a reproduo (total ou parcial) ou distribuio deste documento sem a autorizao da UBI eAltran
Novembro 2017
36