slidy z přednášky o Java a J2EE

Transkript

slidy z přednášky o Java a J2EE
Java a J2EE
Java a J2EE
Cleverlance
Lukáš Marek
[email protected]
Java a J2EE
Java a J2EE
Agenda:
!
Java ve zkratce
!
architektura aplikací
!
aplikaèní servery a Enterprise Java
!
DEMO
!
enterprise aplikace
!
zajímavé produkty
vývojová IDE
!
Cleverlance
Java
Java a J2EE
Co je Java
!
Plnì objektovì orientovaný jazyk
!
Zdrojový kód je pøekládán do platformovì nezávislého
byte-code
!
Byte-code je interpretován v Java Virtual Machine (JVM)
!
Pro každou platformu musí být specifická JVM
!
existují JVM rùzných výrobcù (Sun, IBM, Blackdown, GNU
Kaffe)
Cleverlance
Java a J2EE
Java
Java aplikace
Java Virtual Machine
Operaèní systém
Hardware
Cleverlance
Java a J2EE
Architektura
Client - server
server - C/C++..
client - C/C++..
Thin client
server - WebForms, PHP...
client - HTML
Cleverlance
Java a J2EE
Architektura
Výhody:
- oddìlení obchodní
logiky od dat
- oddìlení obchodní a
prezentaèní logiky
- více typù klientù sdílí
jednu obchodní logiku
client
Cleverlance
business
logic
data storage
Java a J2EE
J2EE
Co to je?
!
aplikaèní server poskytuje kompletní tzv. middleware
!
middle-ware = database connection, resource pooling, security,
transactions, session-tracking, location transparency
Komponenty:
!
!
distribuované objekty
rozdìl a panuj
Proè J2EE standard?
!
stejný kód funguje na rùzných platformách
!
!
stejný kód funguje v aplikaèních serverech rùzných výrobcù
platformy i AS jsou snadno porovnatelné z hlediska vlastností i
výkonu
Cleverlance
J2EE
Java a J2EE
Co to je 'Enterprise' Java?
!
Klíèová API: JDBC, RMI/IIOP, JNDI, EJB, Servlets, JSP,
JMS, JTA
!
Rozšiøující API: JAXP, JAAS, JCA, JavaMail, JMX
!
Aplikaèní kontejner = RMI/IIOP + JNDI + EJB + JMS + JTA
+ JDBC
!
Webový kontejner = Servlets + JSP
Cleverlance
EJB
Java a J2EE
EJB - serverová komponenta
Session EJB
!
reprezentuje logiku - akci, výpoèet apod.
!
stateless, statefull
Entity EJB
!
reprezentuje data
!
je persistentní
!
mùže být ukládána programovì (BMP) nebo pomocí
kontejneru (CMP)
Message-driven EJB
!
reakce na asynchronní (JMS) zprávu
Cleverlance
EJB
Java a J2EE
EJB - distribuovaný objekt
objekt
net
stub
!
!
!
skeleton
stub, skeleton - objekty pro pøenos informací pøes sí•
client ani objekt nemusí obsahovat komunikaèní logiku
nezávislost na použitém sí•ovém (http, rmi) ani "datovém"
(CORBA, XML-RPC) protokolu
Cleverlance
Java a J2EE
J2EE
client
SOAP, UDDI,
IIOP...
HTTP (HTML,
WML)...
browser
JSP
EJB
EJB
JCA
DB
Cleverlance
JMS
legacy
Java a J2EE
DEMO
Cleverlance
Java a J2EE
distribuované transakce
Java a J2EE
!
DB
ck
X
Chyba:
let je již obsazen
Øešení = distribuované
DB transakce
!
nároèné na
hotel
prostøedky
!
musí být
podporováno db
DB ! øešeno pomocí JTA
ÈSA
Cleverlance
!
obtížnì øešitelný
chybový stav
vìtšinou vyžaduje
lidský zásah
Java a J2EE
Java a J2EE
infrastruktura
DB
lbb
klient
Cleverlance
webserver
AS
ldap
jBoss
Java a J2EE
Aplikaèní server JBoss
!
Základ tvoøí 30kb mikrokernel, zbytek dokonale modulární
!
Jako web kontejner lze použít Tomcat nebo Jetty, pro
jednoduší instalaci existují pøedkonfigurované verze
!
Clustering - propracovaný systém pro škálovatelnost
výkonu, clusterované JNDI, ošetøení výpadku a load
balancing RMI všech EJB typù a èásteènì MDB, replikace
SFSB
!
http://www.jboss.org
Cleverlance
Cleverlance
Java a J2EE
Java a J2EE
JSP a servlety umí:
!
!
umí oddìlit prezentaèní a business logiku
resource pooling
JSP a servlety neumí:
!
!
sdílet logiku pro více frontendù
data caching, distribuované objekty apod.
kdy NEPOUŽÍT EJB:
!
!
když je potøeba aplikaci udìlat relativnì rychle
když je potøeba udìlat relativnì jednoduchou aplikaci
Cleverlance
JDBC
Java a J2EE
Java Database Connection
!
!
!
!
!
!
standardní API pro pøístup k databázi
pøístup je realizován JDBC driverem
více typù driverù (JDBC-ODBC bridge)
pøístup ke všem relaèním databázím je unifikován
možnost rozšiøování standardní cestou
transparentní pøipojení k více databázím (URL)
Ukázka kódu
Cleverlance
Java a J2EE
Java a J2EE
TagLibs
!
!
možnost definovat vlastní JSP tagy
tag je normální Java tøída, implementující urèitý interface
Jakarta taglibs
!
sada JSP tagù, øešící obvyklé situace - pøístup k databázi,
internacionalizace, logování, I/O operace apod.
<i18n:ifndef key="specialDisclaimer">
<H3>DISCLAIMER</H3>
<i18n:message key="specialDisclaimer" />
Only those locales that do NOT have a
specialDisclaimer key in their ResourceBundle will
see the special disclaimer text.
</i18n:ifndef>
Cleverlance
Java a J2EE
Java a J2EE
MVC
!
!
!
!
!
Model-View-Control
standardní design pattern
model - logika a øízení toku programu (data)
control - ovládací prvky
view - prezentace dat
Jakarta Struts
!
open-source implementace MVC pro JSP stránky
<th align="right">
<bean:message key="prompt.username"/>
<action
</th>
path="/logon"
<td align="left">
type="example.LogonAction"
<html:text property="username" size="16"/>
name="logonForm"
</td>
scope="request"
input="/logon.jsp"
unknown="false"
validate="true" />
Cleverlance
Java a J2EE
rychlost Javy
http://dada.perl.it/shootout
Cleverlance
Cleverlance
Java a J2EE
!
!
!
IDE
100% pure Java
subjektivnì pomalejší, potøebují více pamìti.
využití vlastností jazyka - pro zobrazení tøíd, závislostí
tøíd, inteligentní doplòování kódu, ladìní.
vìtšinou umožòují snadnou tvorbu pluginù v Javì.
Netbeans (Forte), JBuilder....
nativní
rychlejší, potøebují málo pamìti.
nenabízí takové možnosti jako èistì Javové IDE.
JCreator...
kombinace
kombinuje vlastnosti obou typù prostøedí
Eclipse, Visual Age
Cleverlance
Java a J2EE
Java a J2EE
Resources:
http://java.sun.com
http://jakarta.apache.org
http://www.builder.cz
http://dione.zcu.cz/java/
http://www.techware.cz
http://www.netbeans.org
http://www.eclipse.org
http://www.intellij.com
Cleverlance

Podobné dokumenty

Vážení studenti 1

Vážení studenti 1 prostředí (IDE - Integrated Development Environment), např.: JCreator, Eclipse, NetBeans, BlueJ. V prvním ročníku využíváme vývojové prostředí JCreator. V tomto kurzu student získá dovedností při p...

Více

CX8-525 page1,2 datasheet .cdr

CX8-525 page1,2 datasheet .cdr Dr. Cristian Heil a Prof. Marcel Urban zapoèali výzkum, který završili pøesnými definicemi podmínek nezbytných k efektivnímu kombinování individuálních zdrojù zvuku ve slyšitelném pásmu, k vytvoøen...

Více

Pokročilé programování na platformě JAVA, letní semestr 2012

Pokročilé programování na platformě JAVA, letní semestr 2012 nejpozději do září – pátek 28. září 2012 12:00 (poledne) odevzdání buď emailem nebo osobně (pokud to bude nutné)

Více

Článek

Článek pomocí SMTP protokolu a přenosem zprávy mezi jednotlivými MTA. Samozřejmě obsahuje také stručný popis protokolů POP3 a IMAP4, které slouží pro příjem elektronických zpráv ze vzdáleného poštovního s...

Více

Přednáška 11

Přednáška 11 zázemí apod.) neměřitelné vlivy (neměřitelný vliv je náhodná složka) tak dělíme na – v čase neměnné – fixed effects – v čase proměnlivé – náhodná složka uit jak bychom to řešili (odhad modelu)? – p...

Více

Jak na vysokou dostupnost dat a efektivní disaster recovery

Jak na vysokou dostupnost dat a efektivní disaster recovery primární lokality, kam se při běžném provozu replikují všechna kritická data. Na trhu lze aktuálně najít různá řešení, ovšem s  rozdílnou výkonností a  spolehlivostí. Pokud bychom brali v úvahu „so...

Více

exe memory stick_new_RL_zaloha.qxd

exe memory stick_new_RL_zaloha.qxd exe memory stick_new_RL_zaloha.qxd

Více