01 Javaee Intro
01 Javaee Intro
Enterprise
[Link]
Gabriele
Tolomei
DAIS
–
Università
Ca’
Foscari
Venezia
Administrivia
• Durata:
60
ore
– lezioni
teoriche
+
esercitazioni
[Link]
• Materiale
DidaDco
– slides
pubblicate
sul
sito
web
del
corso
hGp://[Link]/teaching/yyyy-‐2014/java-‐ee/
– risorse
online
• ContaD:
– [Link]@[Link]
Requisi.
• CostruD
base
di
programmazione
[Link]
– if-‐else,
for,
while,
etc.
• Paradigma
di
programmazione
Object-‐Oriented
(OO)
– sintassi
Java
• Fondamen.
di
computer
networking
– applicazioni
client/server
su
Web
– HTML/XML
– protocollo
HTTP
(richiesta/risposta)
Programma
del
Corso
• 09/01
–
Introduzione
• 10/01
–
Java
Servlets
• 16-‐17/01
–
JavaServer
Pages
(JSP)
• 23-‐24/01
–
Lab:
Applicazione
“AffableBean”
• 30-‐31/01
–
Enterprise
JavaBeans
(EJB)
+
Lab
Modulo
1:
Introduzione
• Tecnologia
Java
– 1
Linguaggio
vs.
4
PiaGaforme
• La
piaGaforma
Java
Enterprise
[Link]
(Java
EE)
– Applicazioni
Enterprise
• Java
EE
[Link]
Servers
– JBoss
• Ambiente
di
sviluppo
– Eclipse
Modulo
1:
Introduzione
• Tecnologia
Java
– 1
Linguaggio
vs.
4
PiaGaforme
• La
piaGaforma
Java
Enterprise
[Link]
(Java
EE)
– Applicazioni
Enterprise
• Java
EE
[Link]
Servers
– JBoss
• Ambiente
di
sviluppo
– Eclipse
Tecnologia
Java:
Premessa
• Java
è
sia
un
linguaggio
di
programmazione
che
una
pia1aforma
– il
linguaggio
di
programmazione
è
un
linguaggio
“ad
alto
livello”
che
supporta
il
paradigma
OO
– la
piaGaforma
specifica
l’ambiente
in
cui
le
applicazioni
(programmi)
scriGe
in
Java
vengono
eseguite
(Java
Run6me
Environment
o
JRE)
• 1
Linguaggio
di
Programmazione
vs.
4
PiaGaforme
– Java
Standard
[Link]
(Java
SE)
– Java
Enterprise
[Link]
(Java
EE)
– Java
Micro
[Link]
(Java
ME)
– JavaFX
Le
PiaGaforme
Java
• TuGe
le
piaGaforme
Java
consistono
di
– Java
Virtual
Machine
(JVM)
+
Applica6on
Programming
Interface
(API)
• La
JVM
è
un
[Link]
programma
(interprete)
eseguito
su
uno
specifico
sistema
ospite
(host)
che
consente
l’esecuzione
di
programmi
Java
– JVM
interpreta
il
codice
intermedio
(bytecode
contenuto
in
file
.class)
risultato
della
compilazione
del
codice
sorgente
(.java)
• Esistono
varie
implementazioni
JVM,
una
per
ciascun
sistema
host
supportato
– Linux
x86/x64
– Mac
OS
X
x64
– Win
x86/x64
– …
• La
API
è
una
collezione
di
componen.
sonware
“standard”
messi
a
disposizione
degli
sviluppatori
Java
per
creare
nuovi
componen.
e/o
applicazioni
Java:
Linguaggio
+
PiaGaforma
Java Language
Connector/
Web
Web
Legacy
Messaging
Client
Tier
Tier
Tier
Tecnologia
Scopo
Componen.
[Link]
dall’[Link]
Server
Enterprise
JavaBeans
(EJB)
che
incapsulano
le
funzionalità
principali
dell’applicazione
API
per
la
creazione
di
Web
Services
REST
(via
JAX-‐RS
RESTful
Web
Services
HTTP
GET
e
POST)
API
per
la
creazione
ed
il
consumo
di
Web
JAX-‐WS
Web
Service
Endpoints
Services
XML/SOAP
API
per
il
mapping
tra
i
da.
contenu.
nei
Java
Persistence
API
En..es
sistemi
di
memorizzazione
persistente
e
corrisponden.
oggeD
Java
Essenzialmente
EJB
che
non
richiedono
Java
EE
Managed
Beans
requisi.
di
sicurezza/transazionalità
Java
EE:
Data
Tier
• Il
Data
Tier
si
riferisce
alle
varie
“sorgen.
da.”
cui
può
aDngere
l’applicazione
e
comprende:
– [Link]
Database
Management
Systems
(MySQL,
Oracle,
etc.)
– Enterprise
Resource
Planning
Systems
(SAP)
– Mainframes
(IBM
AS/400)
• Le
sorgen.
da.
– sono
localizzate
su
hosts
diversi
da
quello
su
cui
è
in
esecuzione
il
Java
EE
[Link]
Server
– vengono
accedute
dalle
componen.
del
Business
Tier
Java
EE:
Data
Tier
Tecnologia
Scopo
API
a
basso
livello
per
l’accesso
ed
il
recupero
Java
Database
[Link]
API
(JDBC)
dei
da.
memorizza.
su
suppor.
permanen..
Tipicamente
usata
per
eseguire
query
SQL
ad
un
[Link]
RDBMS
API
per
la
creazione
di
Web
Services
REST
(via
Java
Persistence
API
HTTP
GET
e
POST)
API
per
la
creazione
ed
il
consumo
di
Web
Java
EE
Connector
Architecture
Services
XML/SOAP
API
per
la
definizione
e
la
[Link]
delle
Java
[Link]
API
(JTA)
transazioni
tra
sorgen.
da.
[Link]
e
distribuite
Modulo
1:
Introduzione
• Tecnologia
Java
– 1
Linguaggio
vs.
4
PiaGaforme
• La
piaGaforma
Java
Enterprise
[Link]
(Java
EE)
– Applicazioni
Enterprise
• Java
EE
[Link]
Servers
– JBoss
• Ambiente
di
sviluppo
– Eclipse
Java
EE
[Link]
Servers
• Server
che
implementa
la
piaGaforma
Java
EE
• Ospita
i
componen.
Middle
Tier
di
un’applicazione
enterprise
mul.-‐.ered
• Fornisce
i
servizi
standard
specifica.
da
Java
EE
a
ques.
componen.
soGoforma
di
container:
– [Link]
della
concorrenza,
scalabilità
– sicurezza
– persistenza,
transazioni
– [Link]
del
ciclo
di
vita
dei
componen.
sw
• Java
EE
servers
“famosi”:
GlassFish
(Oracle),
JBoss
AS
(Red
Hat),
WebLogic
(Oracle-‐BEA),
WebSphere
(IBM),
etc.
– hGp://[Link]/wiki/Comparison_of_applica.on_servers#Java
Java
EE
Containers
• Interfaccia
tra
un
componente
dell’applicazione
e
le
funzionalità
di
“basso
livello”
fornite
dalla
piaGaforma
per
supportare
quel
componente
• Le
funzionalità
di
un
container
sono
specificate
dalla
piaGaforma
• Un
.po
di
container
per
ciascun
.po
di
componente
• Java
EE
Server
fornisce
ai
vari
containers
un
ambiente
omogeneo
in
cui
è
[Link]
il
funzionamento
di
ciascun
componente
dell’applicazione
Web
Container
• Interfaccia
tra
le
componen.
web
ed
il
server
web
• Un
componente
web
può
essere
una
Servlet,
una
pagina
JSF
o
JSP
• [Link]
il
ciclo
di
vita
del
componente
• Smista
le
richieste
ai
vari
componen.
dell’applicazione
• Fornisce
interfacce
verso
“da.
contestuali”
(ad
es.
informazioni
sulla
richiesta
corrente)
[Link]
Client
Container
• Interfaccia
(gateway)
tra
le
applicazioni
client
Java
EE
ed
il
server
Java
EE
• I
clients
sono
[Link]
applicazioni
Java
SE
che
usano
i
componen.
server
Java
EE
• In
esecuzione
su
macchine
client
(generalmente
diverse
dal
server
Java
EE)
EJB
Container
• Interfaccia
tra
Enterprise
JavaBeans
che
implementano
la
business
logic
dell’applicazione
e
il
server
Java
EE
• In
esecuzione
sulla
macchina
che
ospita
il
server
Java
EE
• [Link]
l’esecuzione
dei
componen.
EJB
dell’applicazione
Java
EE
Server:
JBoss
• Implementazione
open
source
delle
specifiche
Java
EE
– JBoss
Enterprise
Middleware
Suite
(JEMS)
• JEMS
[Link]:
– Java
EE
[Link]
Server
(JBoss
AS,
Tomcat)
– O/R
Mapping
e
Persistence
(Hibernate)
– Portal
Playorm
(JBoss
Portal)
– Business
Process
Management
and
Rules
(JBoss
jBPM,
JBoss
Rules)
– Object/Data
Cache
(JBoss
Cache)
– Distributed
[Link]
Management
(JBoss
[Link])
– Development
Tools
(JBoss
Tools
plugin
for
Eclipse)
JBoss
AS:
Un
po’
di
storia…
• ProgeGo
open
source
di
un
EJB
Container
(1999)
• Supporto
di
J2EE
server
(ver.
2.x)
• Service-‐oriented
Architecture
(ver.
3.x)
• Supporto
di
Java
EE
1.4
+
EJB
3
(ver.
4.x)
• Supporto
di
Java
EE
5
(ver.
5.x)
• Supporto
di
Java
EE
6
(ver.
6.x)
• Versione
aGuale:
JBoss
7.1.1
à
WildFly
8
JBoss
AS
5.1
• Java
EE
[Link]
Server
che
useremo
durante
il
corso
• JBoss
Web
à
Apache
Tomcat
6.0
• JBoss
WS
3.0
à
Supporto
Web
Services
per
JAX-‐
WS/JAX-‐RPC
• 2
nuove
configurazioni:
– standard:
fully
Java
EE
– web:
Java
Servlet/JSP
container
+
JTA/JCA
+
JPA
(il
server
può
essere
acceduto
solo
via
HTTP)
• Riferimento
documentazione:
– hGp://[Link]/jbossas/docs/5-‐[Link]
JBoss
AS
5.1:
ArchiteGura
JBoss
AS
5.x:
Requisi.
di
Sistema
JBoss
5.x
Java
SE
(JDK)
1.5+
OS/Playorm
Any
Java-‐compliant
Main
Memory
(RAM)
512
MB
CPU
400
MHz
Disk
100
MB
DB
([Link])
Any
JDBC-‐compliant
NOTA:
JBoss
AS
non
richiede
l’intero
JDK,
per
cui
il
solo
JRE
è
sufficiente
per
un
correGo
funzionamento
delle
applicazioni
in
ambiente
di
produzione.
TuGavia,
JDK
è
[Link]
e
raccomandato
perché
fornisce
tools
extra
di
supporto
JBoss
AS
5.1:
Directories
• La
directory
“root”
di
installazione
è
riferita
come
$JBOSS_HOME
(variabile
di
ambiente)
o
[Link]
(Java
system
property)
e
[Link]: